Обновить
0
@zeratorread⁠-⁠only

Пользователь

Отправить сообщение

Создание превью изображений на клиенте: борьба с прожорливыми браузерами

Время на прочтение8 мин
Охват и читатели34K
Всем привет! Сегодня задача у нас следующая: необходимо создать интерфейс для загрузки картинок, который бы генерировал перед загрузкой превьюшки небольшого формата. На данный момент HTML5 вовсю шествует по планете, и, казалось бы, как это реализовать должно быть предельно ясно. Есть несколько русскоязычных статей на эту тему (вот, например). Но тут есть одно но. В рассматриваемом там подходе не уделено никакого внимания расходу памяти браузером. А расход может доходить до гигантских размеров. Разумеется, если загружать одновременно не более 5-10 картинок небольшого формата, то все остается в пределах нормы; но наш интерфейс должен позволять загружать сразу много изображений формата не меньше, чем у современных фотоаппаратов-мыльниц. И вот тогда-то свободная память начинает таять на глазах.
Постараемся вернуть украденную память

Передача треков Google Analytics сторонним доменам без javascript

Время на прочтение4 мин
Охват и читатели5.6K


О чем статья?


  • О междоменном отслеживании
  • О том, что если чего-то нет в официальной документации, то это не повод печалится, а повод добавить такую возможность.

Зачем передавать?


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

Почему без javascript?


  • Если нужно выполнить редирект пользователя после обработки логики запроса на сервере.
  • Google Analytics api и так хорошо документирован, а читать копипаст документации это не уровень хабра, не так ли?

Суть метода проста. Берем все куки вида __utm и передаем их, как параметры, в урле на другой домен. Ничего не происходит. Расходимся. Добавляем последним параметром __utmk, который является особым хешем всех остальных кук гугл аналитики. Поздравляю мы сделали, то что делаем функция _link в известном файле ga.js от Google Analytics.
И так если у вас переход на другие сайты обрабатывал контроллер, то вам не надо во все ссылки добавлять конструкцию вида:

onclick="_gaq.push(['_link', 'https://www.payment-system.com?contractId=example']); return false;"


Если нужны исходники формирования хеша для ключа utmk, прошу в github.
Далее история о процессе получения данного метода.

Читать дальше →

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

Время на прочтение4 мин
Охват и читатели144K
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →

Использование Selenium WebDriver для автоматического тестирования веб-интерфейса Яндекс.Почты

Время на прочтение2 мин
Охват и читатели152K
Без качественного тестирования невозможно разрабатывать и поддерживать крупный веб-сервис. На ранних этапах его развития часто можно обходиться только ручным тестированием по заданному тест-плану, но с появлением новых фич и увеличением количества тест-кейсов довольствоваться только им становится все сложнее и сложнее. В этой статье мы расскажем о том, как автоматизируем функциональное тестирование веб-интерфейса Яндекс.Почты с помощью Selenium WebDriver и Node.js.

Selenium
Читать дальше →

Полет квадрокоптера на высоте 1км

Время на прочтение2 мин
Охват и читатели232K
Всегда было интересно как мир выглядит с высоты. Что видят птицы, чего не видно на картах googleEarth. Так пришло увлечение мультикоптерами, летать под облаками, фотографировать, снимать видео.


Подробности полета

Дюжина дизайнерских косяков

Время на прочтение6 мин
Охват и читатели139K


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

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

TDD for Responsive Design. Или как автоматизировать тестирование отображения сайта для разных устройств с помощью Galen Framework

Время на прочтение11 мин
Охват и читатели19K
Трудно одним заголовком сформулировать, чем же является Galen Framework. Все началось с того, что у меня возникла потребность тестировать сайты в различных браузерах и проверять: не поехала ли разметка, например, в том же Internet Explore или Chrome. Затем возникла мода на Responsive Web-Design, и пришлось вручную менять ширину браузера и проверять, как отображаются сайты. И, хотя все это время были WebDriver и Selenium Grid под рукой, так и не получалось нормально тестировать верстку сайта в Java коде. Одна из идей была: делать скриншоты в разных браузерах в Selenium Grid и затем собирать их все в один большой отчет, по которому один из тестировщиков обязан пробежаться глазами и, в случае обнаружения несоответствий, рапортовать о дефекте. К сожалению, вся эта затея долго не продержалась. Тестировщикам стало лень листать огромный отчет и сравнивать скриншоты, и они все равно пропускали мелкие дефекты. А затем пошли требования внедрения во всех сайтах Responsive Design. И вот тут появился Galen Framework. Решение оказалось простым: проверять размер и расположение элементов относительно друг друга. Для этого понадобился специальный язык Galen Specs, который было бы легко читать и понимать.



Если коротко, Galen Framework — это специальный язык и инструмент для тестирования отображения сайта в браузере. Он позволяет тестировать адаптивный дизайн, а также проводить кросс-браузерное тестирование сайта.
Читать дальше →

Универсальные подсказки на jQuery

Время на прочтение3 мин
Охват и читатели12K
Доброго времени суток уважаемые читатели. Хочу представить вашему взору свой маленький плагин реализованный на jQuery. Плагин призван универсализировать создание всплывающих подсказок (tooltips).
Ранее я находил множество кодов для решения проблем с подсказками и ошибками при валидации, но все они были тяжеловесными и не очень универсальными. Это привело к тому, что я занялся разработкой своего плагина в обход существующим.
Главной задачей, было сделать так, чтобы выводом подсказок можно было управлять, но при этом не лезть в сам JS код.
Второй задачей было впихнуть в код столько функционала, чтобы подсказки могли выводится как слева/справа/снизу/сверху, так и была прилеплена к курсору мыши.
Третей задачей (зачем вообще было реализовывать на JS) было центрирования подсказки, относительно наведенного объекта.
Читать дальше →

Вечный торт: интервью с Денисом Крючковым, основателем Хабрахабра

Время на прочтение9 мин
Охват и читатели84K


Есть минимум две причины, по которым гордая редакция твоей любимой «айти-мурзилки» решила пообщаться с создателем Хабрахабра об истории этого уникального проекта. С одной стороны, конечно, это не имеющая прямых аналогов площадка, сформировавшая вокруг себя огромную аудиторию IT-профессионалов. А с другой — один из немногих успешных примеров того самого «издания нового поколения», которого все ждут с тех самых пор, как придумали слово «блог». Почему же гики смогли создать для себя медиа, которое не могут сделать обычные люди?
Читать целиком

Обучение онлайн

Время на прочтение1 мин
Охват и читатели35K
Для изучающих Ruby / Rails, будет полезно ознакомиться с подборкой бесплатных онлайн курсов, туториалов и интерактивных занятий, посвященных языку программирования Ruby и фреймворку Ruby on Rails.

Читать дальше →

Мелитополь — стратосфера — Тихоновка

Время на прочтение4 мин
Охват и читатели98K
Все началось с того, что нашему боевому товарищу Юре стукнуло 26 лет. Нормальные люди в такой ситуации подарили бы какую-нибудь висюльку с бантиком, откушали тортика и на том попрощались бы. Мы же решили в честь торжественной даты запустить в небо рукотворный стратостат. А чтоб он зря в небе не болтался, прицепили к нему две камеры.

image
Читать дальше →

Базы знаний. Часть 2. Freebase: делаем запросы к Google Knowledge Graph

Время на прочтение24 мин
Охват и читатели41K
image
Больше года назад Google объявил, что отныне в их поиске используется таинственная Сеть Знаний (официальный перевод Knowledge Graph). Возможно, не все знают, что значительная часть данных Сети доступна для использования всеми желающими и доступна по прекрасно описанному API. Этой частью является база знаний Freebase, поддерживаемая Google и энтузиастами. В этой статье мы сначала немного подурачимся, а потом попробуем сделать несколько простеньких запросов на языке MQL.
Эта статья — вторая из цикла Базы знаний. Следите за обновлениями.

  • Часть 1 — Введение
  • Часть 2 — Freebase: делаем запросы к Google Knowledge Graph
  • Часть 3 — Dbpedia — ядро мира Linked Data
  • Часть 4 — Wikidata — семантическая википедия

Читать дальше →

Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 2

Время на прочтение2 мин
Охват и читатели31K
В прошлой статье я описал:
  • создание на одном Raspberry Pi домашнего VPN-сервера;
  • установку и настройку на втором Raspberry Pi OpenVPN-клиента, Node.JS и 3G-модема.

В этот раз настроим и подключим GPS-приёмник и WEB-камеру через USB-хаб.
Читать дальше →

Используя силу JS во всех аспектах веб-проекта

Время на прочтение3 мин
Охват и читатели35K
Привет хабр! Хочу представить вам мой проект над которым я работал последние несколько месяцев. Это небольшой пост о том как в одиночку и без денег имея в запасе знание JS разработать небольшой веб проект, плагины для нескольких браузеров и мобильную версию к нему.

image

Предисловие


Меня всегда удручали закладки браузера или любые другие сервисы своей не информативностью. Довольно затруднительно найти нужную ссылку имея только фавиконку и заголовок. А если нужно найти конкретное видео или картинку в разросшейся коллекции закладок?
Одно время я просто сохранял URL-ы в txt файл, вел скрытую группу Вконтакте, делал заметки в Evernote, пользовался кучей сервисов. Все это привело меня к созданию Raindrop.io.

Под катом подробности и немного закулисья.
Читать дальше →

Анализ цифровых схем на риски сбоя

Время на прочтение4 мин
Охват и читатели14K
В булевой алгебре, используемой для моделирования работы цифровых схем, не учитывается время перехода (или инертность) логических элементов (например, «И», «ИЛИ») из одного состояния в другое (например, из 0 в 1). В случаях, когда время распространения сигнала внутри элемента достаточно мало, задержку перехода можно не учитывать. Но с повышением частоты изменения входных сигналов в реальных схемах начинает сказываться влияние времени распространения сигнала внутри ее элементов. Такие задержки могут порождать неустойчивую работу устройств (т.е. в сигналах после последовательного прохождения через узлы схемы появляются не учитываемые моделью схемы переходы, называемые сбоями). Многие производители современных процессоров держат в тайне, как они борются со сбоями, порождаемыми задержками, на частотах порядка ГГц. Ведь обычный проводник с множеством близких изгибов на плате в таком режиме работы уже превращается в индуктивность.

Чтобы проанализировать простейшие схемы на риски сбоя, обычно применяют метод временных диаграмм, ставший уже классическим. Сигналы в каждом узле прочерчиваются строго друг под другом; где нужно, производится искусственная задержка перехода из одного состояния в другое, а далее по булевому представлению строятся выходные сигналы. Данный метод не хорош тем, что требует работы с графиками, что может внести погрешность в получаемые сигналы. А нам нужно знать, возникнет ли сбой, и какой он будет иметь вид.

В 2005-м году я касался этой темы и изложил свои мысли в данной заметке на английском языке. Однако мой хороший знакомый посоветовал написать в Хабрахабр для обсуждения с пользователями.

В данном топике процедура анализа схем переведена из графического представления в математическое представление. При этом вводится в булеву алгебру параметр «время» посредством замены логических операций арифметическими. Для простоты анализа рассматриваются асинхронные, т.е. неуправляемые внешним (синхронизирующим или тактирующим) сигналом, цифровые схемы.

Начнем…
Читать дальше →

Асинхронность: назад в будущее

Время на прочтение22 мин
Охват и читатели116K

Асинхронность… Услышав это слово, у программистов начинают блестеть глаза, дыхание становится поверхностным, руки начинают трястись, голос — заикаться, мозг начинает рисовать многочисленные уровни абстракции… У менеджеров округляются глаза, звуки становятся нечленораздельными, руки сжимаются в кулаки, а голос переходит на обертона… Единственное, что их объединяет — это учащенный пульс. Только причины этого различны: программисты рвутся в бой, а менеджеры пытаются заглянуть в хрустальный шар и осознать риски, начинают судорожно придумывать причины увеличения сроков в разы… И уже потом, когда большая часть кода написана, программисты начинают осознавать и познавать всю горечь асинхронности, проводя бесконечные ночи в дебаггере, отчаянно пытаясь понять, что же все-таки происходит…

Именно такую картину рисует мое воспаленное воображение при слове “асинхронность”. Конечно, все это слишком эмоционально и не всегда правда. Ведь так?.. Возможны варианты. Некоторые скажут, что “при правильном подходе все будет работать хорошо”. Однако это можно сказать всегда и везде при всяком удобном и не удобном случае. Но лучше от этого не становится, баги не исправляются, а бессонница не проходит.

Так что же такое асинхронность? Почему она так привлекательна? А главное: что с ней не так?
Назад в будущее...

Whiteboarding (пишем код на доске на собеседованиях)

Время на прочтение3 мин
Охват и читатели19K


Почти наверняка, на собеседовании Вам придётся писать код на доске. Несмотря на то, что данный подход часто критикуют, он всё еще популярен у таких технических гигантов, как Google, Facebook, Microsoft, Amazon, а так же, во многих стартапах.

В данной статье я не буду обсуждать жизнеспособность данного приёма (однако, считаю, что он полезен, т.к. позволяет посмотреть на то, как кандидат справляется с проблемами). Вместо этого, давайте рассмотрим типичные ошибки при прохождении интервью.
Читать дальше →

Почему будущее за удалённой работой (часть 1)

Время на прочтение4 мин
Охват и читатели76K
image

В последнее время тема удалённой работы стала особенно актуальной — достаточно вспомнить этот недавний пост на хабре, выход книги Remote от Джейсона Фрайда и приуроченный к запуску книги старт биржи поиска удалённых сотрудников от 37 Signals.
Сторонников у неё более чем достаточно, особенно среди работников, уставших изо дня в день добираться до офиса по сумасшедшим городским пробкам. Противников также немало и в первую очередь среди работодателей. Здесь я постараюсь объяснить, почему, несмотря на все минусы (многие из которых, к слову, либо временные, либо вымышленные), удалённая работа — это наше будущее, и будущее весьма близкое. Как человек из IT-индустрии, я конечно имею в виду в первую очередь её, но значительная часть этих наблюдений носит универсальный характер.
Сразу оговорюсь, я не хочу сказать, что работа в офисе уйдёт в небытие, она лишь превратится из единственного возможного способа в инструмент, решающий определённый спектр задач. Под катом список основных плюсов удалёнки для работника и работодателя, а в следующей части я постараюсь опровергнуть основные мифы, к которым часто апеллируют её противники.
Читать дальше →

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

Время на прочтение4 мин
Охват и читатели158K
Для начала небольшой спойлер

Да я знаю, что если написать фамилию с заглавной буквы, казуса не получится. Дальше перевод.

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

Некоторые люди считают математику скучной. Следующие примеры показывают, что она какая угодно, но не такая
Читать дальше →

Суровые реалии конкурсов в рунете. Как uCoz разводил дизайнеров

Время на прочтение10 мин
Охват и читатели81K

image



Недавно наткнулся в сети на баннер с рекламой конкурса по дизайну блога юкоза. Приз – iMac 27”. Честно хотел пройти мимо, но заманило то, что оценивать работы будет профессиональное жюри без влияния социальных лайков. Как же я был наивен.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность