Search
Write a publication
Pull to refresh
18
0
Иван @sompylasar

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

Send message

JSCS: JavaScript Code Style

Reading time3 min
Views59K
Когда девять месяцев назад я написал для себя маленькую консольную утилиту, я и не подозревал, что вскоре она превратится в серьёзный и единственный в своём роде инструмент, которым будут пользоваться даже такие известные всем команды, как jQuery, Bootstrap, Angular. Сейчас, когда я пишу эту статью, у моего проекта на гитхабе 1010 звёздочек, и мне очень радостно думать о том, что так много людей смогли с помощью моей придумки сделать свою работу удобнее.

История этого проекта началась с моей личной боли.

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

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

10 самых распространённых ошибок при программировании на JavaScript

Reading time10 min
Views156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

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

Безопасность покупателя в рознице: что надо знать лично вам

Reading time6 min
Views253K


Ценник должен быть с печатью или подписью. Он является документом и обязательно должен быть на товаре. Если вы видите что-то с ценником (неважно, где и как оно стоит), вы имеете право купить его по цене на нём.

Пример: вам говорят, что товар по акции кончился. Вы видите один в витрине в герметичном ящике под потолком, но с ценником. Вам не имеют права отказать в его продаже.

Второй пример: когда обновляются цены, в торговом зале может остаться ценник со старой ценой ниже. Цена в базе другая? Ну и что, вот ваш же документ. Если же вдруг ценник без печати-подписи, и на таком товаре нет правильного ценника — регистрируйте нарушение. Ценники обязательно должны быть хотя бы на одном товаре из пачки.
Читать дальше →

Биохакинг сна: подтверждённые наукой советы

Reading time11 min
Views291K


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

SVG, Iconfonts vs PNG

Reading time7 min
Views50K
image

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

Признаться, я был немного удивлен реакцией на такие мысли в 2014-м то году. По этому случаю рассмотрим более детально существующие техники работы с иконками.

На текущий момент все более-менее просто. Мы можем верстать иконки с помощью SVG, создавать иконочные шрифты, ну и никуда не делась старая добрая техника с применением растра, в частности PNG. Правда добавились некоторые нюансы с появлением кучи HDPI устройств с совершенно разной плотностью пикселей.
Читать дальше →

Создавая Ivideon: от идеи к успешной реализации 2.0

Reading time14 min
Views22K


С тех пор как создание успешной глобальной компании стало делом моей жизни, я прочёл много книг и статей, посвящённых чужому опыту в этом вопросе.
Одним из советов, который тонкой нитью проходил через все истории успеха или провала, является простая мысль — не делайте ставку на гиков при создании массового продукта. Гики это отличные ребята, но самая капризная аудитория. Их легко получить в пользователи вашего нового продукта, так как их интересует всё самое новое, но их сложно удержать. Потребности гика почти всегда не совпадают с запросами массового пользователя. Поэтому очень скоро они начнут выказывать недовольство продуктом, требуя всё более изощрённых функций, которые обычному пользователю вообще ни к чему. В итоге попытки доработать продукт приводят к тому, что он становится слишком сложным для простого пользователя. Это одна из ловушек, куда часто попадают неудавшиеся стартапы.
Мы знали об этой ловушке. Поэтому когда два года назад завели блог на Хабре, ресурсе, посвящённому по большей части гикам (в хорошем смысле этого слова, в конце концов, я и сам гик), мы рассчитывали, что он позволит нам привлекать увлеченных программистов в нашу команду, но никак не пользователей…
А оказалось, что Хабр помог нам существенно увеличить нашу клиентскую базу.
Читать дальше →

OnePlus One — первый среди лучших

Reading time12 min
Views289K
Примерно 3 месяца китайская компания OnePlus, корни которой растут из Oppo, 23 апреля в Пекине анонсировала Android-коммуникатор One, сделавший ставку на сочетание первосортного оборудования, высококлассного программного обеспечения и более чем доступной цены. Наверное, почти каждый, кто интересуется новинками в мобильной индустрии знают о новом девайсе. Бешеный ажиотаж, огромное количество мыслей и впечатлений сразу появилось в Сети после выхода гаджета. Многие даже были готовы разломать свой смартфон за крутую новинку!



Но чем же так интересен OnePlus One? Почему его называют убийцей флагманов? И где вообще это чудо приобрести? Давайте же вместе разберемся!
А давайте-ка!

Собеседование на должность JavaScript разработчика

Reading time4 min
Views288K


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

Node.js — руководство по убеждению начальства

Reading time5 min
Views24K
От переводчика: Я только начинаю присматриваться к Node.js, и, обнаружив это руководство, сильно пожалел, что оно не попалось мне на глаза раньше. Надеюсь, что этот перевод поможет многим разобраться, что же такое Node, и с чем его едят.

У вас уже чешутся руки попробовать Node.js и пора начинать обрабатывать начальство? Не торопитесь! Для некоторых компаний, которые я консультировал на предмет того, подходит ли им Node.js, правильный ответ был — «Нет!»

Это руководство — набор основанных на моём личном опыте советов для тех, кто хочет узнать, имеет ли смысл применять Node у себя в компании, и, если да, то как убедить в этом начальство.
Читать дальше →

Astrobench: тестирование производительности JavaScript кода

Reading time3 min
Views11K
Bower version

Astrobench

Речь пойдёт о Astrobench, библиотеке, которая поможет сделать ваш код лучше.

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

Ribs.js — вложенные атрибуты, вычисляемые поля и биндинги для Backbone.js

Reading time6 min
Views12K


Привет! Меня зовут Валерий Зайцев, я клиентсайд-разработчик проекта Таргет Mail.ru. В нашем проекте мы используем небезызвестную библиотеку Backbone.js, и, конечно же, нам стало чего-то не хватать. Поразмыслив над возможными решениями наших проблем, я решил написать свое дополнение к Backbone.js, как говорится с блэкджеком и… О нем я и хочу рассказать в этой статье.

Ribs.js — библиотека, расширяющая возможности Backbone. И прелесть в том, что именно расширяет, а не изменяет. Вы можете использовать ваш любимый Backbone, как и прежде, но по необходимости задействовать новые возможности:
  • вложенные атрибуты: работа с атрибутами модели любой вложенности;
  • вычисляемые атрибуты: добавление в модель атрибутов, которые автоматически пересчитываются при изменении зависимостей (других атрибутов модели);
  • биндинги: динамическая связь между атрибутами модели и DOM-элементами.

Рассмотрим эти возможности подробнее.
Читать дальше →

Определитель типа блокировки сайтов у провайдера

Reading time1 min
Views142K
image

Написал тут маленькую программку, которая позволяет определить тип блокировки сайтов из реестра, применяемый провайдером. Она умеет определять подмену DNS, перенаправление DNS, IP/Port restricted DPI, Full DPI, ну и блокировку по IP, конечно же.
Программа отправляет применяемый тип блокировки на сервер, в дальнейшем можно будет составить таблицу по провайдерам.

Написано на Python 3.
Репозиторий на Github
Бинарники для Windows

Как распознать кракозябры?

Reading time1 min
Views433K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.

Правильный подход к использованию API Вконтакте

Reading time5 min
Views99K
Привет, Хабр!

В своё время, бороздя просторы интернета на предмет рационального использования API Вконтакте, я не смог найти чего-то вразумительного, единственные библиотеки, которые были найдены мной были реализованы без использования каких-либо общепринятых практик и без красивого кода. Я решил исправить, сложившееся недоразумение и написал свою библиотеку для работы с API Вконтакте.
Животрепещущие подробности и подходы под хабракатом.
Читать дальше →

Как правильно лгать с помощью статистики

Reading time7 min
Views242K

Существуют три вида лжи: ложь, наглая ложь и статистика (источник)

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

Статистика, инфографика, big data, анализ данных и data science — этим сейчас кто только не занят. Все знают как правильно всем этим заниматься, осталось только кому-то написать как НЕ нужно этого делать. В данной статье мы именно этим и займемся.


Hazen Robert "Curve fitting". 1978, Science.

Структура статьи:
  1. Введение
  2. Предвзятая выборка (Sampling bias)
  3. Правильно выбираем среднее (Well-chosen average)
  4. И еще 10 неудачных экспериментов, про которые мы не написали
  5. Играем со шкалой
  6. Выбираем 100%
  7. Скрываем нужные числа
  8. Визуальная метафора
  9. Пример качественной визуализации
  10. Заключение и дальнейшее чтение

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

Лёгкие контроллеры с Angular Classy

Reading time2 min
Views14K
Нашёл любопытный инструмент для облегчения структуры контроллеров — Angular Classy. Он представляет из себя модуль, размером в 1 килобайт (gzipped and minified), и помимо представления контроллера в виде объекта даёт ряд полезных плюшек, рассказ о которых под катом.

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

Быстрое веб-приложение — трепанация сети

Reading time10 min
Views33K
Психология — интересная и иногда полезная наука. Многочисленные исследования показывают, что задержка в отображении веб-страницы дольше 300 мс заставляет пользователя отвлечься от веб-ресурса и задуматься: «что за хрень?». Поэтому УСКОРИВ веб-проект до психологически невоспринимаемых значений, можно ПРОСТО удерживать пользователей дольше. И именно поэтому бизнес готов тратиться на скорость: $80М — чтобы уменьшить latenсy всего на 1 мс.



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

Представляем Intel XDK – инструмент кросс-платформенной разработки для мобильных устройств

Reading time4 min
Views55K

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

Программирование — карьерный тупик?

Reading time3 min
Views90K
Любите программировать? Тогда и не мечтайте о должности CEO, если только не начнете свой бизнес, и даже в этом случае, менеджмент, скорее всего, вытеснит кодинг из вашей жизни.

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

Если же вы решите переметнуться в менеджеры, то все дороги для вас открыты. Бывший CEO компании в которой я работаю, начинал как программист 25 лет назад, через 10 лет переключился в менеджмент, и прошел весь путь, до CEO четырех-миллиардной компании. Не так давно, он ушел на пенсию, имея особняк, машины и не имея никаких беспокойств. Тем временем, я работаю с людьми, которые начинали с ним, и которые до сих пор просто ведущие инженеры по разработке программного обеспечения.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity