Как стать автором
Обновить
4
0
Евгений Попов @GuestOne

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

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

JPHP — Новый движок php для Java VM + JIT

Время на прочтение6 мин
Количество просмотров49K
Представляю вам свой open-source проект — JPHP. Это альтернативная реализация PHP для JavaVM с поддержкой JIT. Я начал проект в одиночку в октябре 2013 года и за 4 месяца реализовал компилятор php в байткод JVM. Язык поддерживается на уровне PHP 5.3, частично поддерживаются возможности PHP 5.4 и 5.5. По своей идеологии проект напоминает JRuby и Jython.

Я подготовил небольшую презентацию, которая расскажет о проекте и не отнимет у вас много времени:


Читать дальше →
Всего голосов 190: ↑185 и ↓5+180
Комментарии108

Предметно-ориентированное проектирование в PHP

Время на прочтение4 мин
Количество просмотров8.6K
Статья, можно сказать, о наболевшем.
Из-за низкого порога вхождения, привычке к связке с MySQL, отсутствия необходимости сборки, отсутствия строгой типизации и других факторов, проекты, написанные на PHP, зачастую не блещут качеством и содержат много нагромождённых запросов в базу, вместо красивого чистого кода.

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

На PHP можно и нужно писать качественный код, в прочем это вообще не зависит от языка!
В первую очередь статья будет полезна для новичков, но думаю не помешает и бывалым разработчикам. Возможно, и в вашем проекте всё не так, как хотелось бы?
Подробности
Всего голосов 34: ↑13 и ↓21-8
Комментарии37

Философия программирования — трёхнаправленное программирование

Время на прочтение11 мин
Количество просмотров104K
Программирование рассматривается как процесс создания компьютерных программ. Слово процесс в этом определении не лишнее. Обычно рассуждают в духе «посмотрите, какую замечательную структуру данных можно описать на данном языке программирования». Философия программирования подразумевает оглянуться по сторонам, да и в глубь копнуть.

Собственно разделение на кодирование, и создание алгоритмов это уже специфика, сначала идёт жизнь, то есть человек опирается на некую мысль вроде «напишу-ка я фреймворк с такими-то свойствами». И вот это начальное направление это вопрос философии. Проблема в том, что часто жена программиста лучше его самого знает, на философском уровне, что он делает и почему. Элементарные философские категории: мышление, сознание, обусловленность программисту неведомы. И это странно, если сравнить способность программиста мыслить, например, читая статьи по функциональному программированию или алгоритмам поиска, вперемешку со статьями видных русских или европейских философов, окажется, что собственно навык мышления у программистов развит не меньше, а то и больше. Вот только язык программиста очень богат пока он рассуждает о паттерн-матчинге и жалок и органичен когда ему надо выйти из своей песочницы, оторваться от IDE и файлового менеджера.
Читать дальше →
Всего голосов 76: ↑57 и ↓19+38
Комментарии87

cool-old-term — старый добрый терминал

Время на прочтение1 мин
Количество просмотров49K
Некто с никнеймом Swordfish90 разрабатывает эмулятор терминала cool-old-term с интерфейсом, напоминающим старые CRT мониторы. Автор признаётся, что мечтал реализовать подобное приложение со времени, когда он впервые сыграл в Fallout III. Swordfish90 пытается сделать олдскульный, но вместе с тем настраиваемый и легковесный эмулятор терминала. Проект разрабатывается с использованием Qt5 и QtQuick, разработка ведётся на Github.


Скрытый текст

Всего голосов 128: ↑122 и ↓6+116
Комментарии42

Web-разработка на Python глазами PHP-программиста

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

Введение



В статье хотелось бы поднять вопросы отличия использования Python для web-разработки по сравнению с оной на PHP. Надеюсь, статья не приведет к холиварам, так как она вовсе не о том, какой язык лучше или хуже, а исключительно о технических особенностях Python.
Читать дальше →
Всего голосов 77: ↑62 и ↓15+47
Комментарии95

Just backup btrfs

Время на прочтение2 мин
Количество просмотров18K
К btrfs приглядывался давно, даже на дисках с различными медиа-данными использовал около года, но расширенной функциональностью этой замечательной файловой системы не пользовался.

А вот появилось обновление — два новеньких SSD, было решено во время переноса системы заодно перейти на btrfs.
Всё отлично — RAID0 для данных RAID1 для метаданных средствами файловой системы, сжатие на лету, корень в одном суб-томе (subvolume), домашняя папка в другом, веб-сайты в третьем. Всё это грузится прямо с UEFI в Linux EFI stub без GRUB и других загрузчиков, работает быстро и удобно.
И вот дошло дело до снимков (snapshot), их я хотел использовать для резервных копий суб-томов средствами всё того же драйвера btrfs.

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

Решение принято — новому инструменту быть!
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии25

За один проход

Время на прочтение7 мин
Количество просмотров154K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1+71
Комментарии56

Gearman и PHP 5.4 (5.6): проблемы и решения

Время на прочтение2 мин
Количество просмотров9.4K
В своей предыдущей публикации автор попытался донести до аудитории интересные возможности, который открывает перед PHP-разработчиком сервер очередей Gearman.
В публикации был указан алгоритм установки Gearman и расширения для PHP. Речь шла о PHP 5.3. На Debian7 и PHP 5.4 этот алгоритм не работает, не выдавая при этом никаких ошибок ни при установке, ни при работе PHP-скриптов, однако веб-приложения, использующие Gearman, не работают.
Как выглядит проблема и ее решение
Всего голосов 17: ↑9 и ↓8+1
Комментарии13

Как мы делаем командные и ситуационные центры для крупных компаний

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

Индивидуальный командный центр капсульного типа: анатомическое кресло, панорамный монитор, панель управления, видео- и аудиосвязь, специальное ПО.


Центр принятия решений ОАО «Мосводоканал»

Комцентры или, как их правильно называют, ситуационные центры — это хорошо знакомая вам по фантастическим фильмам комната. Там обычно большая красивая видеостена, на которой можно наблюдать как коммунисты захватывают мир — или как поезда стремятся столкнуться друг с другом. На практике, конечно, использование СЦ намного прозаичнее, но случаются и кадры как в фильмах.
Читать дальше →
Всего голосов 47: ↑40 и ↓7+33
Комментарии35

В поисках ответа на вопрос, как сделать людей более ответственными…

Время на прочтение5 мин
Количество просмотров54K
Довольно частый запрос от коллег-менеджеров, который приходится слышать: как повысить ответственность человека?

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

Однако, в жизни все сложнее… Приходится заниматься занудными уточнениями: а сейчас люди как работают? — Ну… безответственно.

Хм, яснее не становится. Хочется ехидно уточнить: “в смысле, бросают жен и детей?”, но в реальности, начинаешь разбираться.
Что выясняется в итоге?
Всего голосов 48: ↑36 и ↓12+24
Комментарии68

Преимущества нового метода резервного копирования виртуальных машин перед классическими схемами

Время на прочтение5 мин
Количество просмотров39K
image
  • Как выбрать оптимальную схему резервного копирования для виртуальных серверов?
  • Всегда ли стоит использовать вариант, установленный в программах по умолчанию?
  • В чем отличия по эффективности и надежности между основными алгоритмами резервного копирования виртуальных машин?
  • Какой метод резервного копирования позволяет обойти минусы классических алгоритмов резервного копирования?

Разбираемся под катом.

Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии11

Теоретический минимум *nix-based-систем для WebDev-падавана

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


Помни: сила рыцаря-джедая — это сила Вселенной.
Но помни: гнев, страх — это всё ведет на темную сторону Силы.
Как только ты сделаешь первый шаг по темному пути,
ты уже не сможешь с него свернуть…


Добрый день, уважаемый галактический сенат! На связи снова Денис Мельский, и сегодня на повестке дня — определение теоретического минимума познания *nix систем для юного падавана web-мастерства.

Хотелось бы начать с того, что все мы прекрасно знаем: на 67.4 % наши любимые интернеты крутятся на *nix-based-серверах, а в жизни среднестатистического web-разработчика в вакууме — так и на все 90 %.



Для любителей пруфов — welcome.

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

Предлагаю рассмотреть три юниорских степени познания дзена управлением шайтан-машиной ака *nix-сервак на примере всеми любимой ubuntu.
Читать дальше →
Всего голосов 92: ↑59 и ↓33+26
Комментарии37

Зимняя городская астрономия

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


Заканчивается осень. Дождь, грязь и слякоть уходят в прошлое, а сплошная облачность получает шанс быть разорванной холодным атмосферным фронтом или антициклоном. Дни короткие, и утром и вечером можно увидеть звезды. Надо просто посмотреть наверх. Что интересного будет в небе этой зимой?
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии29

Ремонт через задницу или зачем нужно debug-мышление

Время на прочтение4 мин
Количество просмотров148K
Это Денис с эндоскопом в автосервисе
Это Денис с эндоскопом в автосервисе

Буквально на днях я получил, наверное, лучший урок по управлению проектами в жизни. Есть обычный русский мужик, который раньше сидел в офисе и работал в рекламном бизнесе, мой бывший коллега (я сам IT-спец в агентстве).
Читать дальше →
Всего голосов 144: ↑114 и ↓30+84
Комментарии71

Сравниваем размеры кометы Чурюмова-Герасименко со звездолетами из фантастических произведений и реальными городами

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

Звезда смерти. Как же без нее?

Комета Чурюмова-Герасименко — довольно большой объект, длина кометы составляет около 4 километров. Это на фотографиях станции Розетта она выглядит не очень большой, в реальности все по-другому.

Для того, чтобы получить реальное понимание размеров кометы, художник Кристофер Бек (Christopher Becke) составил несколько сравнительных иллюстраций. На иллюстрациях — комета рядом с наиболее известными звездолетами из НФ произведений. Также показаны и реальные города, снова-таки, в сравнении с кометой.

Читать дальше →
Всего голосов 30: ↑24 и ↓6+18
Комментарии19

10 уроков, которые я извлек после того, как стал использовать смартфон 60 минут в день

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

Сколько часов в день Вы уделяете использованию смартфона? Два? Три? Больше? Вряд ли это положительно влияет на Вашу продуктивность.

Сегодня мы хотим познакомить Вас с переводом статьи автора Chris Bailey, который решил провести эксперимент: использовать свой телефон всего час в день и исключительно по делу. Давайте посмотрим, какие уроки автор извлек из этого непростого эксперимента. Независимо от того, разделяем мы их или нет, они, по крайней мере, нам показались интересными.
Читать дальше →
Всего голосов 38: ↑25 и ↓13+12
Комментарии54

10 ошибок, которые я совершил при запуске двух интернет-магазинов (и как не допускать этих ошибок)

Время на прочтение8 мин
Количество просмотров209K
Каждый день открываются и закрываются интернет-магазины. Причины выхода из бизнеса могут быть разные: проблемы с конкуренцией, логистикой, маркетингом. В статье мы рассмотрим 10 ошибок, которые совершил Шаббир Нураддин при запуске двух интернет-магазинов.

image

Работа в e-commerce дала мне лучший практический опыт в жизни. Те вещи, которые я узнал, запуская онлайн-бизнес не рассказывают на лекциях MBA или других обучающих курсах.

Все ошибки, которые я совершил позволили мне понимать бизнес-задачи лучше, и я поделюсь своим опытом, чтобы вы не наступали на те же “грабли” и смогли прийти к успеху быстрее.
Читать дальше →
Всего голосов 38: ↑32 и ↓6+26
Комментарии24

Новая красивая большая «Ангара»

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


Появились фото- и видеоматериалы работ по подготовке к первому пуску тяжелой версии ракеты-носителя «Ангара». Интересно и непривычно смотрится наша новая тяжелая ракета — до этого из универсальных модулей собирали «летающие заборы» Delta IV Heavy из трёх блоков, а тут их пять.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии25

Китайская ошибка роутинга трафика России

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


В сентябре прошлого года третий по размеру российский мобильный оператор «Вымпелком» и China Telecom подписали соглашение о прямом присоединении сетей международной и междугородной связи и установлении межсетевого взаимодействия, сумма этого контракта составила 2,2 млн. долларов. Целью этой сделки для российской стороны было достижение Дальнего Востока.

За последний год китайский телеком-оператор несколько раз пробовал поиграть в Ивана Сусанина. Об этом подробно пишет Дуг Мэдори в в блоге компании DynResearch.

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

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

В любом случае, информация о маршрутизации, полученная одним из провайдеров от другого по договору о пиринге, обычно остаётся внутри сети этого оператора. В примере ниже провайдер A шлёт информацию о маршрутизации данных его клиентов провайдеру B, в результате чего трафик от клиентов провайдера B идёт через пиринговое соединение клиентам провайдера A. Это нормальный режим работы.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии11

Когда нельзя но очень хочется: два разных монитора от одного DVI порта

Время на прочтение2 мин
Количество просмотров112K
Привет Хабр!

Началось всё с того, что я захотел подключить к своему компьютеру второй монитор, для увеличения продуктивности, так сказать. Им оказался собранный из двух нерабочих Acer AL1716 с аналоговым d-sub входом. Первый монитор — Dell 2007WFP, подключен по DVI-D(Single Link). Как оказалось, существует возможность запустить оба монитора в режиме расширения рабочего стола от одного DVI порта на матплате.
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии39
1

Информация

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