Pull to refresh
9
0
Иванцов Михаил@darkrain

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

Send message

Дайджест интересных новостей и материалов из мира PHP № 45 (20 июля – 3 августа 2014)

Reading time4 min
Reach and readers20K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

Приводим в порядок css-код. Опыт Яндекса

Reading time6 min
Reach and readers91K
Всем привет!

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

Когда много людей, используя разные инструменты, пишут и редактируют css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то — в другом, кто-то ставит кавычки вокруг url, кто-то — нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.



Но несмотря на то, что все пишут код по-разному, у нас в репозитории идеальный порядок: css-код полностью консистентен, и прекрасно выглядит. Весь.

Как мы этого добились, можно прочитать под катом.
Читать дальше →

Автоматическое определение подключения\отключения второго монитора

Reading time2 min
Reach and readers34K

Всем, доброго времени суток.


По сути, к реализации этой маленькой автоматизации меня сподвигла лень.

Собственно, с чего все началось.


У меня есть ноутбук с установленной gentoo, и i3wm оконным менеджером. Так же есть несколько мониторов(дома, на работе и т д). Разрешения на всех мониторах разные, способы подключения тоже (VGA, HDMI, DVI) разные. Активно, использую первые два.

Раньше, при подключении второго монитора, приходилось вызывать команды, которые инициализировали этот самый монитор. Запуск команды с автоматическим ключом, не всегда давал, желаемого результата(не угадывал разрешение).

xrandr --auto


Потому, приходилось запускать эту же команду, но с набором других ключей, разрешение например.

--mode

И хотя, в xrandr для каждого монитора у меня есть несколько вариантов разрешений, есть одно (максимальное для данного монитора, которое удовлетворяет), но на каждом мониторе оно разное(так как сами мониторы разные).

Потому пришлось искать решение…

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

Пульс Хабра

Reading time5 min
Reach and readers25K
callidus77: Помница в нашей сетке монтажники подключали абонента. Пришли, воткнули сетевуху, а у него Фря и дров нету. Почесали головы и ушли. Чел через три недели наконец-то коннектится.
Грят: «Долго ж ты искал дрова.»
Он: «Я не искал. Я их сам написал.» Баш

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


Под катом мы разберемся с основными инструментами ресурса и потенциальной возможностью применения. Весь инструментарий доступен по адресу http://www.habr-analytics.com, исходный код (основные функции) на github. За примерами и деталями — добро пожаловать под кат!

Структура статьи
  1. Пульс Хабра
  2. Монитор статей
  3. Анализ пользователей
  4. Пересечение хабов — диаграммы Венна
  5. Аудитория хабов
  6. Исходный код и структура проекта
  7. Заключение


*Осторожно трафик*

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

Phalcon Framework на продакшене

Reading time5 min
Reach and readers26K
Последним временем известность набирает необычный в среде php фреймворк Phalcon, который является расширением языка. Думаю, что многим интересно узнать, каков фреймворк в бою, однако по тем или иным причинам не могут позволить себе использовать его в разработке. В моей компании решились на такую авантюру и я спешу поделиться увиденным и нащупанным. Добро пожаловать под кат.
Читать дальше →

Управление проектами: операционный vs. проектный подход

Reading time4 min
Reach and readers103K
В одном из комментариев к посту автора, многоуважаемого пользователями Habr, я ответил, что основной причиной неудач проекта является не использование методологий «через %опу» или «как получится», а наличие только операционного управления в рамках проекта. Проектный подход у таких менеджеров заканчивается уже после составления сметы проекта.
В этом посте проведу более детальное сравнение операционного подхода с проектным.

Уровни управления проектом



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

12 уроков из управления проектами и запуска стартапов

Reading time9 min
Reach and readers126K
Я разработал около сотни проектов, в том числе — стартапов. Многие из них достигали пика и умирали, некоторые работают до сих пор. Делал как B2C, так и B2B.

В последнее время наблюдается поток вопросов от знакомых и друзей, которые делают одни и те же ошибки. Я хотел бы рассказать о своем опыте в посте тезисов. И если он будет успешен — продолжить серию.

Если лень читать — ролик, выражающий основной дух и главный смысл, находится внизу. Ролик вызовет восхищение — отлично, идите делать очередной релиз. Ролик вызовет отторжение — читайте пост до другой реакции сколько угодно :)



1. Важнее всего — желание

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

Ускоряем PHP (с ReactPHP)

Reading time11 min
Reach and readers82K
В этом посте я хотел бы поделиться не совсем обычным, для мира PHP, способе построения приложения, если угодно — архитектурой. Данный подход позволяет средствами PHP увеличить количество обрабатываемых запросов в разы. Так же я поделюсь своими наработками в этом направлении. Конечно данный подход не бесплатен, в плане требований к коду, но давайте всё по порядку.
Читать дальше →

Логика мышления. Часть 9. Паттерны нейронов-детекторов. Обратная проекция

Reading time8 min
Reach and readers23K


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

Продолжим разговор о нейронах-детекторах. Предположим, на зону коры посредством волновых туннелей проецируется некая информация. Каждый из проекционных пучков – это аксоны нейронов, расположенных на той зоне, которая эту информацию посылает. Проекция снимается с малого по площади участка коры. Волокна проекционного пучка, по сути, транслируют проходящие по этому участку волновые картины. То место принимающей коры, куда приходится проекция, само становится источником волн. Эти волны несут на принимающей зоне коры ту же информацию, что и волны на исходной зоне.

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

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

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

Логика мышления. Часть 10. Пространственная самоорганизация

Reading time13 min
Reach and readers25K


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

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

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

Логика мышления. Часть 2. Факторы

Reading time11 min
Reach and readers82K


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

Логика мышления. Часть 1. Нейрон

Reading time10 min
Reach and readers327K


Года полтора назад я выкладывал на Хабр цикл видеолекций с моим видением того как работает мозг и каковы возможные пути создания искусственного интеллекта. За прошедшее с тех пор время удалось существенно продвинуться вперед. Что-то получилось глубже понять, что-то удалось смоделировать на компьютере. Что приятно, появились единомышленники, активно участвующие в работе над проектом.

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

Видео-курс «Введение в логику» на русском языке

Reading time1 min
Reach and readers63K
Здравствуй, Хабр!

Представляю вам курс «Введение в логику», недавно прошедший на Хекслете. Он основан на учебнике по математике Романа Добровенского. Курс состоит из шести лекций общей продолжительностью 2 часа 20 минут.



Первая лекция. Базовые понятия логики, логические операции, наша первая теорема и закон Де Моргана.


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

Проблемы мотивации: работа с «выгоревшими» сотрудниками

Reading time7 min
Reach and readers240K
Последние шесть лет я делаю проекты в банковском IT, и за это время часто встречался с тем, что основным риском проекта становились «выгоревшие» сотрудники. Проектный ритм и большой поток задач вызывают у таких людей раздражение, поэтому их «распинывание» часто становится одной из главных задач менеджера проекта.

Для понимая того, почему такие люди появляются в организации, рассмотрим модель развития специалиста, построенную на параметрах «навык / мотивация». Основу для неё я взял из модели ситуационного лидерства и немного развил, исходя из практических наблюдений. Эта модель нужна, чтобы понять, на каком этапе «жизненного цикла» могут находиться на нашем проекте, и как это влияет на их мотивацию.

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

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

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

Быстрый выбор случайных значений из больших таблиц MySQL по условию

Reading time2 min
Reach and readers46K
Задача выбора случайных строчек из таблицы довольно часто возникает перед разработчиками.
В случае, если используется СУБД MySQL, обычно она решается примерно следующим способом:

SELECT *
FROM users
WHERE role_id=5
ORDER BY rand()
LIMIT 10


Такой код работает крайне медленно для больших таблиц.
Если в запросе не нужно использовать WHERE или таблица небольшая, есть эффективные решения, например habrahabr.ru/post/54176 или habrahabr.ru/post/55864.
Но готовых решений для большой таблицы и необходимости фильтровать по условию, получая при каждом запросе новые значения, я не нашел, поэтому описание моего способа под катом.
Читать дальше →

Эффективный счёт в уме или разминка для мозга

Reading time3 min
Reach and readers311K
Эта статья навеяна топиком «Как и насколько быстро вы считаете в уме на элементарном уровне?» и призвана распространить приёмы С.А. Рачинского для устного счёта.
Рачинский был замечательным педагогом, преподававшим в сельских школах в XIX веке и показавшим на собственном опыте, что развить навык быстрого устного счёта можно. Для его учеников не было особой проблемой посчитать подобный пример в уме:

image

Далее рассмотрим несколько трюков для ускорения умственного счёта...

3 предельно простые вещи, которые мы узнали про свою команду

Reading time8 min
Reach and readers79K
image

В нескольких топиках меня просили рассказать про нашу команду. А именно – как так получилось, что мы сразу знали, как и что делать в бизнесе, и, казалось, не ошибались. Так вот, мы ни разу не суперлюди. Мы часто ошибаемся, часто ходим по граблям и часто спорим внутри команды.

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

Недавно нашей сети исполнилось 5 лет. Первые два года были просто взрывом: мы стартовали без кредитных средств с одного маленького магазина и как-то вдруг стали российской розничной сетью.
Читать дальше →

VIM + screen. Организация удаленной среды web-разработки

Reading time6 min
Reach and readers22K
Миллион статей написано об организации рабочего процесса, редакторах кода, удобстве и стабильности работы. Я, не претендуя на «самый расчудесный способ», хочу рассказать, как организована среда web-разработки у нескольких человек из нашей команды. Сразу оговорюсь, если вы используете только локальные GUI-шные редакторы кода, Notepad++, Eclipse и т.п., то эта статья не для вас. Мы очень много работаем в консоли, и поэтому, в результате многолетнего естественного отбора, многие пришли к VIM, а консоль является практически отдельным табом в среде разработки, т.к. в процессе работы надо смотреть логи, писать запросы к базе, перезапускать сервисы и т.п. Поэтому, я хочу поделиться конкретным практическим рецептом организации среды web-разработки для программиста или админа, который много времени работает в стандартной удаленной консоли.
Читать дальше →

.vimrc для фронтендера

Reading time4 min
Reach and readers23K
Привет, я занимаюсь фронтенд разработкой, и как-то так сложилось, что в своей повседневной работе активно использую vim.

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

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

Как ни странно — в статье много картинок ;)
Читать дальше →

«Идеальный» кластер. Часть 2.1: Виртуальный кластер на hetzner

Reading time7 min
Reach and readers40K


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


Арендуя очередной сервер в дата-центре, каждый задумывается о рациональности его использования.
Ведь ни для кого не секрет, что хорошо настроенный сервер не должен быть слишком нагружен и в нем должно быть достаточно ресурсов для выполнения другой работы. Кроме вышесказанного, важна отказоустойчивость и поэтому держать несколько копий одного и того же сервера в качестве hot swap, кажется отличной идеей.
Для решения этих задач и нужна виртуализация.

Сейчас я расскажу, как можно быстро сделать из одного сервера целый кластер серверов на базе linux и windows.
В дальнейших статьях я попытаюсь объяснить, как поднять безопасный web-кластер и использовать все прелести современных технологий виртуализации.
В этой инструкции речь пойдет о бесплатной системе виртуализации Proxmox, она находится в свободном доступе, но за поддержку требует плату. Мы попробуем обойтись без поддержки и коммерческого репозитория Proxmox. Вот что говорит о об этом продукте википедия

Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Разрабатывается австрийской фирмой Proxmox Server Solutions GmbH, спонсируемой Internet Foundation Austria.
В качестве гипервизоров использует KVM и OpenVZ. Соответственно, способна выполнять любые поддерживаемые KVM ОС (Linux, *BSD, Windows и другие) с минимальными потерями производительности и Linux без потерь.
Управление виртуальными машинами и администрирование самого сервера производятся через веб-интерфейс либо через стандартный интерфейс командной строки Linux.
Для создаваемых виртуальных машин доступно множество опций: используемый гипервизор, тип хранилища (файл образа или LVM), тип эмулируемой дисковой подсистемы (IDE, SCSI или VirtIO), тип эмулируемой сетевой карты, количество доступных процессоров и другие.

Ключевые возможности

  • Простое управление через веб-интерфейс;
  • Мониторинг нагрузки в реальном времени;
  • Библиотека установочных образов (в локальном или удаленном хранилище);
  • Подключение к «физической» консоли гостевых систем непосредственно из браузера (по VNC);
  • Объединение серверов в кластер с возможностью живой миграции виртуальных машин (без остановки гостевой системы);
  • Быстрое развертывание гостевых систем из шаблонов (доступно только для OpenVZ);
  • Автоматическое резервное копирование виртуальных машин.


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

Information

Rating
Does not participate
Location
Кустанай, Кустанайская обл., Казахстан
Date of birth
Registered
Activity