Как стать автором
Обновить
9
Александр Яковлев @xescoderread⁠-⁠only

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

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

Теория потока: как создать игру, которую полюбят все

Время на прочтение7 мин
Количество просмотров81K
Всем привет.

Я – игроголик. Могу две недели потратить на прохождение одного босса. По дороге на работу могу просчитывать стратегию битвы с вражеской армией. Могу упасть со стула из-за того, что не заметила, как отсидела ногу во время трехчасового рейда. Могу и практикую.

Если вы сталкивались с подобными проблемами – добро пожаловать в клуб. Здесь мы, как взрослые и очень серьезные люди, попробуем проанализировать состояние иммерсии, которое и заставляет нас восхищаться игрой и забывать о необходимости есть, спать и жить вне игрового мира. Проще говоря, речь пойдет о потоковом состоянии в видеоиграх.


Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии23

AngularJS 1.x – перевод курса от CodeSchool

Время на прочтение12 мин
Количество просмотров75K
Данная публикация является переводом оригинального курса CoodSchool с небольшими дополнениями, которые показались мне уместными в данном контексте. Публикация рассчитана на тех, кто только начинает знакомится с Angular.

Введение


AngularJS — популярная JavaScript библиотека, предназначенная, главным образом, для создания одностраничных веб-приложений с динамически обновляемым содержимым. Библиотека была написана словацким программистом Мишкой Хевери, который, работая в Google, получил от своего шефа задание выучить JavaScript. Он решил, что лучший способ изучить язык — это создать на его основе собственный фреймворк. Angular (звучит как «Ангула» и дословно переводится как «Угловатый») использует концепцию разделения данных и их представления, известную как MVC (M — model (данные), V — view (представление), С — controller (контролер, управляющая прослойка между ними обеспечивающая логику работы приложения).
Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии20

Оптимизируем производительность веб-страницы: CSS

Время на прочтение5 мин
Количество просмотров51K
В наше время скорость интернета довольно высока. Казалось бы, можно забыть о тех временах, когда нам приходилось ждать по 20-30 (а то и больше) секунд, чтобы веб-страница загрузилась и отобразилась на экране — теперь мы ждём отрисовки страницы в среднем около одной-двух секунд. Однако не стоит забывать, что значительная часть юзеров заходит на ваш сайт с мобильных устройств, на которых связь не всегда стабильна. В связи с этим будет совсем не лишним уделить немного внимания оптимизации вашего кода.

В этой статье речь пойдёт о различных методах оптимизации таблиц стилей. Я расскажу о том, что влияет на скорость отрисовки страницы, как заставить браузер отрисовывать страницу быстрее и какие инструменты использовать для оптимизации.
Читать дальше →
Всего голосов 42: ↑32 и ↓10+22
Комментарии22

Код, которого нет

Время на прочтение7 мин
Количество просмотров89K
Привет, хабравчане!

Около года назад Хабр захлестнула волна постов на тему "%string% в N строчек на JavaScript". Уже и не вспомню, чем все закончилось, но началось все с «Excel в 30 строк». Следом появилось много и других интересных вариаций на эту тему, даже игра в ноль строк на JS, но это уже совсем другая история…

Как я ни старался придумать что-то еще более компактное — ничего не выходило. Тогда было принято решение посмотреть на проблему под другим углом. Примерно в этот момент в голове промелькнул вопрос: а можно ли «сколлапсировать» код так, чтобы его не было вообще? И тут мне позвонил Дэвид Блейн.

Я попробовал добавить немного магии и вот что у меня получилось.

image
Сим салабим!
Всего голосов 125: ↑111 и ↓14+97
Комментарии57

Yii2 тестируем на HHVM

Время на прочтение4 мин
Количество просмотров22K
Всем привет! Недавно зарелизился Yii2 с кучей новых фич и поддержкой HHVM, разработчики говорят о совместимости в 99%. Попробуем завести все это дело и опробовать в действии на живых примерах, где будут выборки из БД, сериализация (десирализация) данных, json — encode, decode, работа с ActiveRecord. Но прежде немного о самой машине. HHVM — экспериментальная виртуальная машина от Facebook для исполнения и JIT компиляции PHP кода. За счет неё можно увеличить производительность в несколько, а то и пять — девять раз на ресурсозатратных задачах. Проект живет и активно развивается. По поводу выхода новых версий хорошо написано в статье на хабре.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии27

Как использовать API сайта, у которого нет API?

Время на прочтение4 мин
Количество просмотров80K
У меня достаточно часто появляется задача получить данные от стороннего сайта, при этом далеко не всегда этот сайт предоставляет возможность удобно получить эти данные через API. Единственное решение в таком случае — парсить html содержимое страниц. Когда-то я писал регэкспы, потом появились библиотеки, позволяющие получить нужное содержимое по css-селектору, а сейчас и это кажется сложной задачей, которую хотелось бы упростить.

Сегодня я хочу рассказать вам о моей небольшой библиотеке, позволяющей описать в API-стиле http-запросы и парсить ответ сервера в нужный вам формат.
Читать дальше →
Всего голосов 115: ↑105 и ↓10+95
Комментарии40

Размеры экранов

Время на прочтение2 мин
Количество просмотров548K
Планшеты и смартфоны оснащаются экранами с разными соотношениями сторон и разной плотностью пикселей, однако эти параметры редко указываются в технических характеристиках.

Попробуем разобраться со всеми хитростями, связанными с этими параметрами. Начнём с планшетов.
Вот соотношение размеров экранов, использующихся в большинстве современных планшетов.



Обратите внимание, насколько экран 8" с соотношением сторон 4:3 визуально больше широкого экрана 7". А широкий экран 10.1" на сантиметр меньше экрана 9.7" по высоте.

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



Текст на экранах с низким PPI (количеством точек на дюйм) читается не комфортно. Я бы не стал покупать планшет с экраном, имеющим PPI ниже 150. Даже 164 PPI экрана iPad mini многим кажутся недостаточными. Отлично воспринимаются экраны с PPI больше 200.

Для меня было большим открытием, что экран 9.7" 1024x768 имеет даже меньшее PPI, чем экран 7" 800x480.

Читать дальше →
Всего голосов 157: ↑147 и ↓10+137
Комментарии69

Статистика Хабрахабра

Время на прочтение4 мин
Количество просмотров184K
Почти неделя прошла с исполнения хабрахабру 6 лет. Было бы очень интересно посмотреть на графики роста показателей сайта. Т.к. стандартная статистика малоинформативная, решено было собрать всю информацию своими руками и проанализировать. И так, почти неделя парсинга и сбора информации и получены следующие интересные данные(скрытые/удаленные посты/пользователи и их комментарии не учтены):
  • Больше всего постов написал alizar — 4298, рекорд 12 постов в день поставлен 18 октября 2006
  • Больше всего комментариев написал VolCh — 19323, установив личный рекорд 27 июля 2011 года в количестве 140 комментариев.
  • Больше всех опубликовал постов в день freetonik —21 топик 26 августа 2007
  • Максимальная активность хабры в день — опубликовано 105 топиков: 18 февраля 2010 и 22 июня 2008 года.
  • Максимальная активность хабры в месяц — опубликовано 2055 топиков в марте 2010
  • Среднее значение кармы: +7,83
  • Средний рейтинг топика: +24,75
  • Всего комментариев: 3 703 022.
  • Средний рейтинг комментария: +0,98
  • Максимальное количество оставленных комментариев — 1 июля 2011 в количестве 4936 штук.
  • 25% из всех опубликованных топиков были перенесены в черновики
  • Самый комментируемый топик habrahabr.ru/post/123157 собрал 2252 комментария

Красивые графики, методы измерения, база с полученными данными, «хаброаномалии» — все это под катом.
Читать дальше →
Всего голосов 230: ↑224 и ↓6+218
Комментарии134

Сервисы автопостинга для ВКонтакте

Время на прочтение2 мин
Количество просмотров395K
Хабрапривет всем! С недавнего времени я веду свое сообщество ВКонтакте — Music Zone. Долгое время всё было гладко, я постил ~2 записей в день, однако однажды отправившись в другой город по делам (интернета там конечно же нету), я задумался об автопостинге. Немного погуглив, я нашёл несколько сервисов, позволяющих это реализовать.
Читать дальше →
Всего голосов 30: ↑17 и ↓13+4
Комментарии29

О Хабрахабре, статистике и тортах

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

Лирическое отступление


Здравствуйте!
Однажды темным зимним вечером мне было нечего делать и я убивал время чтением любимого Хабрахабра. В коментах в очередной раз проскочила фраза о том, что Хабр, дескать, уже не торт.

Статистика, статистика и еще раз статистика


Мне стало интересно, можно ли как-нибуть оценить качество статей на Хабре численно и будет ли видно по полученной оценке, как оно менялось со временем, или же, на самом деле, все эти комментарии не более чем брюзжание о том, что раньше и трава была зеленее? Дело было вечером и делать было нечего, поэтому я взял волю в кулак и написал простенького бота, который неспеша перекопал почти 2800 страниц главной Хабра и собрал статистику по захабренным статьям с момента открытия Хабра и по 31 декабря 2009 года.
Традиционная картинка для привлечения внимания, график количества статей по месяцам:

под катом еще много интересного
Всего голосов 194: ↑178 и ↓16+162
Комментарии111

MIT сделал инструмент для анализа метаданных из Gmail

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

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

Они создали веб-приложение Immersion, которое — как только вы дадите ему разрешение — проанализирует всю историю вашей переписки в Gmail, чтобы собрать воедино сеть ваших контактов, пишет The Verge.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии11

Тройной удар для Рунета: идентификация пользователей, контроль сайтов и электронные платежи

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

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

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

Настроенные весьма недружелюбно к российским гражданам народные избранники вчера направили в Госдуму целых три законопроекта, так или иначе усиливающих антитеррористический инструментарий правоохранительных органов и спецслужб.
Читать дальше →
Всего голосов 262: ↑240 и ↓22+218
Комментарии583

Прохождение интервью — взгляд изнутри

Время на прочтение9 мин
Количество просмотров36K
Читая посты на хабре, я заметил, что многие не особо осведомлены как собственно устроен процесс интервью, особенно со стороны работодателя. Также должен отметить, что многие статьи про прохождение интервью имеют немного «пиаристый» характер, и не описывают детали. Хочу восполнить этот пробел, и без воды рассказать, как это работает изнутри.

Все нижеописанное характерно для моей компании, но сам HR достаточно стандартен по калифорнийским стандартам (что сейчас уже практически стало международными стандартами). Никакого пиара, так что просто в двух словах: моя компания — это маленькая транснациональная компания со штатом где-то в 4000 человек, HQ — в Palo Alto, R&D (где я работаю) — Vancouver, BC. Я интервьюирую на позицию в моей команде, которая занимается разработкой web-frontend для встраиваемых устройств (используется Python, C и стандартный HTML-набор).
Читать дальше →
Всего голосов 83: ↑73 и ↓10+63
Комментарии95

Жизнь разработчика (в картинках)

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

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Всего голосов 884: ↑700 и ↓184+516
Комментарии132

Выразительный JavaScript: Функции

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

Содержание




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

Дональд Кнут


Вы уже видели вызовы функций, таких как alert. Функции – это хлеб с маслом программирования на JavaScript. Идея оборачивания куска программы и вызова её как переменной очень востребована. Это инструмент для структурирования больших программ, уменьшения повторений, назначения имён подпрограммам, и изолирование подпрограмм друг от друга.

Самое очевидное использование функций – создание нового словаря. Придумывать слова для обычной человеческой прозы – дурной тон. В языке программирования это необходимо.

Средний взрослый русскоговорящий человек знает примерно 10000 слов. Редкий язык программирования содержит 10000 встроенных команд. И словарь языка программирования определён чётче, поэтому он менее гибок, чем человеческий. Поэтому нам обычно приходится добавлять в него свои слова, чтобы избежать излишних повторений.
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии7

Что нового в Laravel 5?

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


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

Я не считаю себя гуру в php и фреймворках. До этого пару раз работал с первым и вторым зендом, бессмертным битриксом, сталкивался с Yii и Symfony, изобретал велосипеды сам, но каждый раз у меня оставалось смутное чувство неудовлетворенности.

Например, Zend Framework всегда вызывал у меня желание побыстрее выполнить задачу и забыть о нем как о страшном сне. Сторонники этого фреймворка конечно не согласятся со мной, и я ни в коем случае не хочу критиковать их выбор. Каждому свое. У меня Zend Framework всегда вызывал ощущение, что код писался не людьми и не для людей.

Мне всегда казалось, что те же самые задачи можно решать более просто и элегантно. Хотелось найти фреймворк, на котором мне бы нравилось писать. Который я смог бы выучить как свои пять пальцев и заниматься тем, чем мне и нравится заниматься – программированием, созданием чего-то нового. Я думаю, у каждого плотника есть любимый молоток, и такое желание для программиста вполне естественно. Кто из нас, тех кто пишет на php, не поглядывал с завистью на Rails в Ruby или Django в Python?

Последней каплей стал пост от JetBrains о расширенной поддержке в новой версии PhpStorm 8 шаблонов Blade и Source & Test directories. В этой IDE мы и создали первый проект на Laravel.
Читать дальше →
Всего голосов 54: ↑43 и ↓11+32
Комментарии90

30 полезных сервисов для веб-разработчиков и дизайнеров v2

Время на прочтение3 мин
Количество просмотров86K
Предыстория: я веду свой паблик ВК о веб-разработке, в связи с чем я каждый день имею дело с большим количеством материалов о веб-разработке. Однажды (3 месяца назад) мне пришла в голову идея опубликовать на хабре подборку «30 полезных сервисов для веб-разработчика». Тот пост набрал почти 100 000 просмотров, и мне приятно, что он оказался полезен сообществу. С тех пор у меня поднакопилось больше 30 новых сервисов, которые будут полезны как разработчикам, так и дизайнерам. Лучшие из них я собрал в этом посте. Осторожно, под катом много картинок!
Читать дальше →
Всего голосов 67: ↑63 и ↓4+59
Комментарии19

mysqlnd — проводник между PHP и MySQL

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


Расширение mysqlnd появилось ещё в PHP 5.3, но до сих пор малоизвестно среди разработчиков. Однако оно незаменимо, если ваша система основана на MySQL. Если вы хотите узнать, почему это расширение так важно, что оно собой представляет, как его использовать и какие оно даёт преимущества — читайте статью.
Читать дальше →
Всего голосов 129: ↑116 и ↓13+103
Комментарии35

Github — без командной строки

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

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

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

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

Читать дальше →
Всего голосов 67: ↑45 и ↓22+23
Комментарии33

URL.js или дружим JavaScript с обработкой ссылок

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

Доброго времени суток, уважаемые хабравчане!

Возникла передо мной сегодня задача генерации GET-параметров и всего URL в целом, на стороне клиента, прям вот щас, без возможности «поговорить» с сервером. Сразу оговорюсь, про этот пост я узнал вот прям перед написанием данной статьи ибо сначала закончил писать, а потом уже прибег к поиску, да и пост тот — не со всем про то же самое, что у меня.

Итак, к делу.

Задача и проблемы


Проблемы — те же что и в посте, который я привел выше:
  • Невозможность использовать window.location для «приготовления» URL;
  • Нельзя работать сразу с несколькими window.location в силу политики безопасности браузеров;
  • Отсутствие известных готовых решений ( да и сейчас, уже апосля, я не нашел подобного кода )

Задачи которые я поставил перед собой:
  • Удобный синтаксис
  • Возможность как читать части URL так и изменять их
  • Работа с GET-параметрами
  • Кроссбраузерность и универсальность


Писал я на чистейшем JavaScript, причем без использования prototype.__defineGetter__ или prototype.__defineSetter__ в угоду кроссбраузерности ибо IE < 9 такого не умеет. Более подробно про getters/setters написано в этом посте.

Для тех кому интересно — сядем разберем, а кому надо готовое решение — милости прошу в конец поста, ссылки на скачивание — там.

Приступим! Раньше сядем — раньше выйдем.
Читать дальше →
Всего голосов 60: ↑47 и ↓13+34
Комментарии60
1
23 ...

Информация

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