Pull to refresh
4
0
Евгений Попов @GuestOne

User

Send message

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

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

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


Читать дальше →
Total votes 190: ↑185 and ↓5 +180
Comments 108

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

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

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

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

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

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

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

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

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


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

Total votes 128: ↑122 and ↓6 +116
Comments 42

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

Reading time 7 min
Views 176K

Введение



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

Just backup btrfs

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

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

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

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

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

Reading time 7 min
Views 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 всех чисел.
Другие задачи
Total votes 73: ↑72 and ↓1 +71
Comments 56

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

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

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

Reading time 6 min
Views 41K

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


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

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

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

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

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

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

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

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

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

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

Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 11

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

Reading time 12 min
Views 109K


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


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

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



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

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

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

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

Reading time 3 min
Views 18K


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

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

Reading time 4 min
Views 148K
Это Денис с эндоскопом в автосервисе
Это Денис с эндоскопом в автосервисе

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

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

Reading time 1 min
Views 19K

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

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

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

Читать дальше →
Total votes 30: ↑24 and ↓6 +18
Comments 19

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

Reading time 5 min
Views 19K
image

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

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

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

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

image

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

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

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

Reading time 1 min
Views 18K


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

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

Reading time 5 min
Views 12K


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

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

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

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

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

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

Reading time 2 min
Views 111K
Привет Хабр!

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

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Registered
Activity