Как стать автором
Обновить
0
0
Антон @widestream

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

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

NinjaMock — бесплатное приложение для прототипирования интерфейсов

Время на прочтение6 мин
Количество просмотров179K
Привет %username%! У нас отличные новости: вышла официальная версия NinjaMock — онлайн-сервиса для создания прототипов. Теперь ты можешь рисовать отличные прототипы веб- и мобильных приложений совершенно бесплатно!

Узнай, как это возможно и почему NinjaMock лучше всех!
Всего голосов 155: ↑151 и ↓4+147
Комментарии123

Несколько полезных шорткатов для Sublime Text ниндзи

Время на прочтение2 мин
Количество просмотров217K
Доброго времени суток, уважаемые хабравчане. Многие пользуются замечательным редактором Sublime Text, который стал популярен благодаря своей простоте, гибкости/кастомизации и огромному количеству плагинов. Хочу поделиться с вами, на мой взгляд, самыми полезными шорткатами при работе с Sublime.

image

Переход по фрагментам

Win/Linux: CTRL+R
Mac: CMD+R
Вероятно, самое полезное сочетание клавиш для экономии вашего времени. Содержимое документа разбивается на определенные фрагменты (функции, HTML теги или CSS стили). Переход происходит при выборе соответствующего фрагмента во всплывающем окне.

Читать дальше →
Всего голосов 85: ↑60 и ↓25+35
Комментарии52

Анимация SVG-элемента path

Время на прочтение5 мин
Количество просмотров123K
Думаю многие видели обзоры игровых консолей нового поколения от Polygon (Vox Media). Это те, где консоли отрисовывались в стиле blueprint'ов:

PlayStation 4

Обзоры выглядели круто, довольно необычно и ново. О том как реализована основная фишка обзоров — SVG анимация, как сделать нечто подобное самому, и какие ещё «секретные» возможности скрывает старый добрый SVG в плане анимации элемента path — можно узнать под катом.
Читать дальше →
Всего голосов 64: ↑62 и ↓2+60
Комментарии15

Видео-курс по JavaScript на русском языке

Время на прочтение1 мин
Количество просмотров218K
Здравствуй, Хабр!

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



Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



Остальное – под катом.
Читать дальше →
Всего голосов 135: ↑127 и ↓8+119
Комментарии23

pdb – Интерактивный отладчик

Время на прочтение23 мин
Количество просмотров94K

pdb – Интерактивный отладчик


Версии Python: 1.4 и выше

pdb является интерактивной средой отладки для программ на Python. Он включает возможности приостановки выполнения программы, просмотра значений переменных, построчного выполнения кода так, что вы можете понять, чем ваша программа на самом деле занимается, и найти логические ошибки.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Комментарии21

Путь JavaScript модуля

Время на прочтение28 мин
Количество просмотров121K


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

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

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

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Всего голосов 188: ↑185 и ↓3+182
Комментарии71

Рейтинг постов хаба

Время на прочтение35 мин
Количество просмотров55K

Привет, Хабр!

Решил посмотреть лучшие посты своего любимого хаба и с ужасом обнаружил, что такой фичи нет.

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

Читать дальше →
Всего голосов 132: ↑131 и ↓1+130
Комментарии35

Несколько полезных сервисов

Время на прочтение2 мин
Количество просмотров126K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →
Всего голосов 382: ↑356 и ↓26+330
Комментарии108

Unchecky – долой потенциально нежелательные программы

Время на прочтение2 мин
Количество просмотров52K
Уже давно стал нормой тот факт, что при установке программного обеспечения (а иногда и при других обстоятельствах) предлагаются дополнительные потенциально нежелательные программы, такие как тулбар или «защитник интернета». Также часто попадаются предложения поменять стартовую страницу или поисковик. Эти предложения предоставляются как часть процесса установки и, как следствие, неопытный пользователь устанавливает весь набор по умолчанию, ни о чем не подозревая. Результат, я думаю, всем известен.

Я давно думал над этой проблемой, а сегодня хочу предоставить вам решение — программа под названием Unchecky (от англ. uncheck – снять галочку). Подробности под катом.
Читать дальше →
Всего голосов 84: ↑72 и ↓12+60
Комментарии81

Сделай свой AngularJS: Часть 1 — Scope и Digest

Время на прочтение34 мин
Количество просмотров89K
Angular — зрелый и мощный JavaScript-фреймворк. Он довольно большой и основан на множестве новых концепций, которые необходимо освоить, чтобы работать с ним эффективно. Большинство разработчиков, знакомясь с Angular, сталкиваются с одними и теми же трудностями. Что конкретно делает функция digest? Какие существуют способы создания директив? Чем отличается сервис от провайдера?

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

В этой серии статей я собираюсь воссоздать AngularJS с нуля. Мы сделаем это вместе шаг за шагом, в процессе чего, вы намного глубже поймете внутреннее устройство Angular.
Сделаем Angular вместе
Всего голосов 73: ↑72 и ↓1+71
Комментарии18

Создание своей облачной системы за час

Время на прочтение4 мин
Количество просмотров46K
В последнее время появилась возможность создать свой облачный сервис (IaaS) без усилий и программирования. В простейшем случае можно создать Cloud-In-A-Box используя всего один компьютер с процессором который поддерживает виртуализацию. Данное облако имеет свои ограничения и, по-моему, подходит только для тренировки. Если у вас есть две машины с процессорами которые поддерживают виртуализацию, то можно создать полноценное облако пригодное для тестирования и разработки облачных решений. Недавно компания Eucalyptus представила новую версию своего продукта Eucalyptus 3.4. С помощью программы FastStart можно создать полноценную AWS и S3 совместимую IaaS систему без усилий и глубоких знаний продукта.
Читать дальше →
Всего голосов 25: ↑21 и ↓4+17
Комментарии2

«WebGL Beginner's Guide» Глава 1: Начиная работать с WebGL

Время на прочтение13 мин
Количество просмотров49K
Всем привет!

Хочу начать вольный перевод отличной книги «WebGL Beginner's Guide», которая, на мой взгляд, будет интересна не только новичкам, но и более продвинутым разработчикам.

Содержание:
  • Глава 1: Начиная работать с WebGL
  • Глава 2: Рендеринг геометрии
  • Глава 3: Освещение
  • Глава 4: Камера
  • Глава 5: Движение
  • Глава 6: Цвет, глубина и альфа-смешение
  • Глава 7: Текстуры
  • Глава 8: Выбор
  • Глава 9: Собираем все вместе
  • Глава 10: Дополнительные методы


WebGL первоначально была основана на OpenGL ES 2.0 (ES означает Embedded Systems), версии спецификации OpenGL для таких устройств как iPhone от Apple и iPad. Но спецификация развивалась, стала независимой, ее основная цель это обеспечение переносимости между различными операционными системами и устройствами. Идея веб-интерфейса, рендеринг в реальном времени открыли новую вселенную возможностей для веб-3D сред, таких как видеоигры, научная и медицинская визуализация. Кроме того, из-за широкого распространения веб-браузеров, эти и другие виды 3D-приложений могут быть запущены на мобильных устройствах, таких как смартфоны и планшеты. Если вы хотите создать свою первую веб-видеоигру, 3D арт-проект для виртуальной галереи, визуализацию данных ваших экспериментов или любое другое 3D-приложение, вы должны иметь ввиду, что первым шагом должно быть то, что вы должны убедиться, что у вас есть подходящая среда.
В этой главе вы сможете:
  • Понять структуру WebGL-приложения
  • Создавать свои области рисования (canvas)
  • Проверить WebGL-возможности вашего браузера
  • Понять, как устроена машина состояний WebGL
  • Изменять переменные WebGL, которые влияют на вашу сцену
  • Загружать и исследовать полнофункциональные сцены


Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии7

С камерой в облака. Часть 2

Время на прочтение26 мин
Количество просмотров252K
Тренировки

Спасибо каждому, кто читал и комментировал первую часть. Благодаря вам, продолжение будет еще интереснее. Если еще не читали — рекомендую это сделать. Там мало текста, и есть классные видео.

Изначально планировалось, что эта часть будет завершающей. Но, для удобства попадания в скролл, сейчас остановимся лишь на этих вопросах:

  • Тренировки. Вырабатывание летных навыков.
  • Выбор модели: самолет, вертолет или мультикоптер?
  • Выбор конкретной конструкции и размера
  • Моторы и ESC
  • Полетный контроллер


Как обычно, сразу к делу.
Читать дальше →
Всего голосов 175: ↑173 и ↓2+171
Комментарии170

С камерой в облака. Часть 1

Время на прочтение6 мин
Количество просмотров241K


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

Пост состоит из 2 частей. В первой — ответы на основные вопросы. Их легко найти в интернете по-отдельности, но сложно вместе: дальность полета (чем ограничивается и какая максимальная), качество картинки, грузоподъемность, стоимость и сроки (от выделения бюджета до первого полета).

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

Ну что же, перейдем сразу к делу.
Читать дальше →
Всего голосов 161: ↑156 и ↓5+151
Комментарии103

SLI — быстрое создание мультиязычности на сайте

Время на прочтение3 мин
Количество просмотров17K
Доброго времени суток Хабрачеловек! Публикую пост по просьбе программиста ganjar. Он помог нашему интернет магазину быстро сделать мультиязычность этим самым SLI, о котором пойдет речь. В комментах он ответит на все все вопросы.

SLI (Site Language Injection) — PHP скрипт для быстрого создания мультиязычности на сайте.

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

Перед тем как начать создавать свое решение перечитал множество статьей о том, как разные программисты решали проблему мультиязычности, и ни в одной из них не нашел универсального способа ее решения. Под каждый новый проект нужно было заново использовать функции “обертки” для текста и ссылок, создавать таблицы с переводами, модернизировать админку для локализации контента. Ни один из описанных вариантов мне не нравился, потому что даже на создание небольших сайтов уходило много времени. Вначале требовалось реализовать функционал для работы сохранения/выбора переведенных текстов, доработать админку для локализации, а потом весь текст и ссылки обернуть в функции для локализации контента.
Узнай что получилось
Всего голосов 23: ↑16 и ↓7+9
Комментарии8

Простой парсер JSON на PL/SQL

Время на прочтение5 мин
Количество просмотров50K
Буквально вчера внезапно возникла задача — понадобилось разобрать данные в формате JSON непосредственно в хранимой процедуре Oracle. Разумеется, именно для таких вещей в Oracle и была добавлена Java, но хотелось чего-то более своего и написанного непосредственно на PL/SQL. Результаты своего порыва я и выкладываю на суд общественности. Вдруг кому пригодится.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии15

Как находить и устранять утечки памяти на примере Яндекс.Почты

Время на прочтение8 мин
Количество просмотров66K
На первый поверхностный взгляд, слова JavaScript и «утечка памяти» рядом стоять не могут. Настоящих утечек памяти в JS, конечно, не может быть, потому что процесс сборки мусора происходит автоматически и не может контролироваться из нашего кода. Выделить память под объект и забыть освободить невозможно. Но могут быть ситуации, связанные с ошибками в логике работы приложения, которые приводят к утечкам памяти другого рода. Например, забиндили обработчик, в котором что-то делаем с методами общего объекта и забыли его анбиндить. Или же посылаем письмо с большим телом и не очищаем тело даже после отправки.

image

Мы в Яндекс.Почте, сложном и массовом проекте, накопили заметный опыт в поиске и устранении таких утечек, и хотим им поделиться.
Итак, больше подробностей
Всего голосов 147: ↑143 и ↓4+139
Комментарии13

SVG.js — достойный конкурент Raphaël

Время на прочтение2 мин
Количество просмотров52K
image

Доброго времени суток, уважаемые хабражители. Хочу поделиться с вами одной замечательной находкой на GitHub — SVG.js — удобная манипуляция и анимация SVG. Хочется сказать о трех вещах, которые сосредоточили мое внимание на этой библиотеке. Самое простое и важное это то, что с появлением retina дисплеев SVG становится популярнее, более нужным, чем раньше. SVG.min.js весит 34кб и 9кб в Gzip, что в разы меньше Raphaël и что можно пожертвовать для дизайна и эффектов. Минифицированный SVG.filter.js размером в 3кб является прекрасным кроссбраузерным аналогом для свойства webkit-filter.

Другие плюсы SVG.js
Всего голосов 49: ↑46 и ↓3+43
Комментарии74

Linux pipes tips & tricks

Время на прочтение8 мин
Количество просмотров184K

Pipe — что это?


Pipe (конвеер) – это однонаправленный канал межпроцессного взаимодействия. Термин был придуман Дугласом Макилроем для командной оболочки Unix и назван по аналогии с трубопроводом. Конвейеры чаще всего используются в shell-скриптах для связи нескольких команд путем перенаправления вывода одной команды (stdout) на вход (stdin) последующей, используя символ конвеера ‘|’:
cmd1 | cmd2 | .... | cmdN

Например:
$ grep -i “error” ./log | wc -l
43

grep выполняет регистронезависимый поиск строки “error” в файле log, но результат поиска не выводится на экран, а перенаправляется на вход (stdin) команды wc, которая в свою очередь выполняет подсчет количества строк.

Логика


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

Размер буфера начиная с ядра версии 2.6.11 составляет 65536 байт (64Кб) и равен странице памяти в более старых ядрах. При попытке чтения из пустого буфера процесс чтения блокируется до появления данных. Аналогично при попытке записи в заполненный буфер процесс записи будет заблокирован до освобождения необходимого места.
Важно, что несмотря на то, что конвейер оперирует файловыми дескрипторами потоков ввода/вывода, все операции выполняются в памяти, без нагрузки на диск.
Вся информация, приведенная ниже, касается оболочки bash-4.2 и ядра 3.10.10.

Простой дебаг


Утилита strace позволяет отследить системные вызовы в процессе выполнения программы:
$ strace -f bash -c ‘/bin/echo foo | grep bar’
....
getpid() = 13726                   <– PID основного процесса
...
pipe([3,  4])                       <– системный вызов для создания конвеера
....
clone(....) = 13727                <– подпроцесс для первой команды конвеера (echo)
...
[pid 13727] execve("/bin/echo",  ["/bin/echo",  "foo"],  [/* 61 vars */] 
.....
[pid 13726] clone(....) = 13728    <– подпроцесс для второй команды (grep) создается так же основным процессом
...
[pid 13728] stat("/home/aikikode/bin/grep",   
...
Видно, что для создания конвеера используется системный вызов pipe(), а также, что оба процесса выполняются параллельно в разных потоках.
Читать дальше →
Всего голосов 105: ↑97 и ↓8+89
Комментарии36

Подкаст на миллион. История успеха и пошаговое руководство

Время на прочтение15 мин
Количество просмотров37K

Вступление.


Речь пойдет о подкасте, рассказывающем об андеграундной музыкальной субкультуре drum&bass.
Передача называется Neuropunk и, в свое время, она стала феноменальным явлением на электронной сцене России. До сих пор его рейтинги не могут побить даже попсовые подкасты, передачи и миксы от раскрученных медийных диджеев. На главном российском ресурсе, посвященном электронной музыке promodj.com выпуски Neuropunk всегда занимают первые позиции в топ100, несмотря на то, что drum&bass аудитория в сотни раз меньше, чем аудитория коммерчески раскрученных стилей. Примерный охват аудитории подкаста – около миллиона человек. И это без финансовых вложений, без рекламы, без поддержки СМИ.

image

Как это возможно и как это повторить, спросите вы? Чтоб поведать об этом я и сел писать данный текст.
Я хотел бы дать любому диджею, промоутеру, музыканту дополнительное пошаговое руководство, как сделать уберкачественный продукт, завоевать безграничное доверие аудитории, поднять свой авторитет и получить возможность развивать определенную сцену семимильными шагами.
Читать дальше →
Всего голосов 94: ↑86 и ↓8+78
Комментарии66

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность