Web Developer
Как забраться в голову к посетителю, или о Wi-Fi-аналитике
Один из крупнейших разработчиков системы Wi-Fi аналитики в России, применяющейся в ритейле, торговых центрах и на объектах HoReCa, делится своими секретами.
Понимание критического пути рендеринга
Браузеру предстоит пройти много шагов, прежде чем HTML-ответ от сервера будет преобразован в пиксели на экране. Последовательность этих шагов, необходимая для первого отображения страницы, называется «Критический путь рендеринга» (ориг. Critical Rendering Path).
7 советов начинающему ИП, чтобы избежать проблем (что-то вы точно из этого не знаете)
После регистрации ИП в налоговой инспекции вы получаете не только право вести бизнес, т.е. заниматься предпринимательской деятельностью, но и обязанности, первейшие из которых — сдавать отчётность и платить за себя страховые взносы. Помимо этих ключевых обязанностей каждого ИПешника есть ещё ряд нюансов, о которых стоит знать, чтобы не нарваться на штрафы в первый же месяц своей официальной деятельности. Специально для этой статьи мы отобрали семь важных вопросов, которые надо решить IT-фрилансеру сразу после госрегистрации.
А для тех, кто открыл ООО, мы подготовили: 10 вещей, которые обязательно нужно сделать после регистрации ООО
Как я создавал бесшовный Wi-Fi
У нас в конторе не так давно назрела задача сделать бесшовное Wi-Fi-покрытие, долго терпели и перетаптывались, но в итоге его сделали. Поделюсь опытом, как это было. Началось с того, что два года назад мы полностью перешли на IP-АТС и почти извели аналоговые телефоны включая, в итоге и DECT. Однако, переносные трубки нужны и помимо настольных SIP-телефонов купили несколько Wi-Fi телефонов Tecom. Я и сам, как ответственный за техническую часть в компании постоянно хожу по офису с различными Wi-Fi-ными девайсами, ну и манагеры тоже. У многих на руках упомянутые Wi-Fi SIP-телефоны, + у складских пару Wi-Fi терминалов, есть просто Андроиды и Яблоки с установленными SIP-клиентами от АТС. Раньше все решалось несколькими Wi-Fi роутерами, в принципе, тоже было приемлемо (офис небольшой), но ровно пока ты сидишь на месте – пошел, все, кончился разговор, а Skype-соединение еще быстрее слетает. Это стало изрядно раздражать руководство и менеджеров и пошли наезды что вай-фай не вай-фай. Попытки просто увеличить количество роутеров ясное дело задачу не решило.
Стал читать и таки вычитал, что все уже давно придумано до нас. Есть Wi-Fi точки, которые могут делать переход клиента между собой без разрыва или почти без разрыва соединения. Причем оборудования такого достаточно много на рынке, осталось только выбрать по бюджету и адекватности. Оказалось, на эту тему очень много публикаций в зарубежном интернете, у нас поменьше. Огромным минусом этих систем, что все они хотят контроллера, который стоит как чугунный мост и у некоторых особо жадных еще и лицензии требуются на подключение каждой точки. Я принес смету на наш офис на одном таком уважаемом оборудовании, у генерального глаза округлились и ответ был виден на его лице еще до того, как он дочитал эту калькуляцию.
В общем, по мере изучения задачи проснулся уже спортивный интерес – можно ли сделать гладкое WiFi-покрытие (прям как на форумах) в нормальные деньги и так чтобы без этих контроллеров? Оказалось, можно.
4 вида утечек памяти в JavaScript и как с ними бороться
В этой статье мы рассмотрим распространённые виды утечек памяти в клиентском JavaScript. Также мы узнаем, как их обнаружить с помощью Chrome Development Tools.
jQuery UI Datepicker — добавление возможности выбора нескольких дат на одном календаре
Статья посвящена jQuery UI и его виджету выбора дат.
Часто бывает, что на странице необходимо сделать выбор периода дат (а иногда даже нескольких разрозненных дат). Но Datepicker от jQuery UI позволяет выбирать только одну дату в пределах одного календаря.
Поэтому частым решением на практике является создание двух полей ввода с контролем по типу «от и до». Также можно найти много «костыльных» способов для решения данной задачи — это нам не подходит.
Итак, наша цель — решить задачу самыми минимальными усилиями используя только jQuery UI Datepicker.
Для решения этой задачи существует небольшое расширение для jQuery UI Datepicker, которое увеличивает его стандартные возможности без подключения сторонних виджетов, плагинов и стилей.
Что делать если Instagram не дал доступ к API?
Предыстория
Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.
Сначала расскажу как мы использовали официальный API:
- При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
- Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
- Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
- Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).
Реализация
У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Исследование защищенности карты Тройка
Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.
Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.
В ходе работы был успешно проведен реверс-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.
Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.
Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.
Autofill: чего не знают веб-разработчики, хотя должны знать
Многим известно, что в мобильной версии Safari можно отсканировать свою банковскую карту. Но многие ли разработчики умеют создавать формы, поддерживающие эту возможность?
Готов поспорить, что немногие.
Дело осложняет полное отсутствие документации от Apple по работе этой функции. Но тут есть один момент. Функция сканирования банковских карт является подмножеством автозаполнения — браузерного функционала, давно игнорируемого веб-разработчиками. Понятно, почему они не уделяли ему должного внимания: когда регулярно заполняешь форму тестовыми данными, автозаполнение обычно мешает. Но для наших пользователей это важная функция. В Google выяснили, что при использовании автозаполнения пользователи на 30% быстрее заполняют формы. Так что давайте изучим работу автозаполнения, разберёмся, как создавать формы, поддерживающие кросс-браузерное автозаполнение, и воспользуемся преимуществами новых возможностей наподобие сканирования банковских карт.
Давайте знакомиться: компания Align Technology
Web-приложения в режиме offline. ServiceWorker и CacheStorage
О чём речь?
Всё чаще возникает задача научить frontend-приложение работать в автономном режиме. Это значит придать web-приложению свойство mobile- или desktop-программы — функционировать в отсутствии связи с Интернет, а также в случае отказа сервера.
Цель — оградить пользователя от проблем соединения на его устройстве. Как было бы обидно не сохранить созданные в google docs таблицы из-за потери wi-fi в ближайшем фастфуде!
Для этого нужно инициализировать приложение в браузере и затем закэшировать ресурсы, минимально необходимые для функционирования. После этого приложение возможно запустить из кэша в случае недоступности сервера.
Решение задачи заключается в следующем:
Я хочу, чтобы сайты открывались мгновенно
Вёрстка писем: 60 полезных ресурсов, руководств и исследований
В нашем блоге на Хабре мы часто пишем о создании почтовых рассылок — верстке HTML и CSS, работе с plain-text сообщениями и описываем интересные эксперименты. Сегодня мы представляем вашему вниманию список из 60 полезных ресурсов, туториалов и исследований о работе с email.
Шорткаты в JavaScript
Изучая любой язык программирования, полезно знать о его особенностях и уметь эффективно использовать языковые конструкции. Хочу поделиться с вами шорткатами для JS. Эти сокращения в некоторых случаях могут облегчить чтение кода, а также существенно уменьшить его количество. Однако следует помнить, что они могут сыграть с вами злую шутку и, если использовать их повсеместно, ваш код перестанет быть читаемым и поддерживаемым.
CSRF-уязвимость VK Open Api, позволяющая получать Access Token’ы сторонних сайтов, использующих авторизацию через VK
Как это выглядело
В принципе, процесс получения пользовательского Access Token'а страницей злоумышленника происходил по стандартной схеме эксплуатации CSRF-уязвимости:
- Пользователь заходит на сайт, использующий библиотеку VK Open API (например, www.another-test-domain.com).
- Авторизуется там через VK.
- Потом заходит на сайт злоумышленника (например, www.vk-test-auth.com), который, эксплуатируя уязвимость, получает Access Token, принадлежащий сайту www.another-test-domain.com.
- Получив Access Token пользователя, злоумышленник может обращаться к VK API с теми правами, который пользователь дал сайту www.another-test-domain.com при авторизации на нем через VK.
Демонстрация
На видео показано, как страница «злоумышленника» на домене www.vk-test-auth.com получает Access Token пользователя VK, который авторизовался на сайте www.another-test-domain.com, несмотря на то, что в настройках приложения VK, доступ разрешён только для домена www.another-test-domain.com.
Использование веб-шрифтов, самый лучший способ (на 2015 год)
За последние месяцы было написано несколько статей, рассматривающих вопрос различных техник оптимизации загрузки шрифтов.
1, 2, 3
После того, как я их все прочел, я обнаружил несколько новых вопросов, которые в них не затрагиваются. В конечном итоге, я хотел иметь один ресурс, на котором бы была собрана информация о таких проблемах. Некоторые сниппеты кода взяты или адаптированы из статей, ссылки на которые я привел выше.
Цели:
- Асинхронно загружать веб-шрифты
- Избежать сильного пересчета положения в макете
- Как можно быстрее загружать веб-шрифты
- Избежать загрузки шрифтов для возвращающихся посетителей
А теперь давайте попробуем добиться наших целей поэтапно:
HackerSIM: мечта Неуловимого Джо
Про мегафичу подмены любого номера написал на Хабре.
Анонс конкурса по социнженерным атакам с использованием HackerSIM
Заочный тур.
C 6 по 15 октября вы можете прислать в свободной форме модель угроз, которые возможны, если HackerSIM попадет в руки злоумышленника.
Приславшего материал с максимальной "hack value" ждет утешительный приз 10.000 рублей.
Очный тур.
16 октября, хакспейс «Нейрон». Начало в 19-00.
Каждому участнику предоставляется HackerSIM и в течении 3 часов он должен провести penetration test.
Участие индивидуальное или командное.
Приз — достойный.
Заявки на очный и заочный туры принимаются на почту hackersim@яндексточкару.
(Кому не терпится, у меня есть пара симок специально для хабрачитателей)
Помимо этого симка очень очень старается обеспечить анонимность своего владельца и конфиденциальность его разговоров:
- скрывает реальный круг общения
- маскирует местоположение, используя виртуальный номер
- может искажать голос
- принудительное использование шифрование
- скрывает реальный IMSI
How-to: адаптивные письма в Gmail
В нашем блоге мы часто пишем о создании адаптивных почтовых рассылок (раз, два, три) и вообще уделяем большое внимание email-верстке. Сегодня речь пойдет о способе создания адаптивных писем для почтового клиента Gmail, известного своей довольно скудной поддержкой различных возможностей для верстки. Данную технику в 2014 году описал Джастин Ку (Justin Khoo), позднее метод был дополнен статьей Марка Роббинса в блоге Email Code Geek. Мы представляем вашему вниманию адаптированный перевод основных моментов двух публикаций.
12 малоизвестных фактов о CSS
Update: немного «шлифанул» перевод напильником. Выражаю благодарность всем неравнодушным читателям.
Внимание! Под катом почти 1.5 Мб картинок и много интересных ссылок.
Итак, начнём-с…
1. В свойстве border-radius
можно использовать slash-синтаксис.
Об этом уже писалось 4 года назад, но многие новички и даже некоторые опытные разработчики не знают о существовании этой «фишки».
Верите или нет, но следующий код валиден:
.box {
border-radius: 35px 25px 30px 20px / 35px 25px 15px 30px;
}
Information
- Rating
- Does not participate
- Location
- Таллин, Эстония, Эстония
- Date of birth
- Registered
- Activity