Search
Write a publication
Pull to refresh
24
0
jrip @jrip

User

Send message

Многопоточные вычисления в PHP: pthreads

Reading time5 min
Views101K

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



Я рассматриваю такую задачу. Есть пул заданий, которые надо побыстрее выполнить. В PHP есть и другие инструменты для решения этой задачи, тут они не упоминаются, статья именно про pthreads.


Стоит отметить, что автор расширения, Joe Watkins, в своих статьях предупреждает, что многопоточность — это всегда не просто и надо быть к этому готовым.


Кто не испугался, идем далее.

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

Левитирующие гаджеты: что предлагает рынок гику?

Reading time5 min
Views32K


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

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

Создание PostProcess материала для эффекта лечения в Unreal Engine 4

Reading time3 min
Views8.1K
При разработке игры мы столкнулись с необходимостью отображать информацию так, чтобы пользователь её заметил. Например, подбирая аптечку, игроки не всегда замечают что в углу экрана в HUD начинает прибавляться здоровье. Так появилась задача по добавлению визуального эффекта поверх игрового процесса.

image

Первые победители Telegram BotPrize получат $200,000

Reading time2 min
Views4.1K
Весной 2016 года Телеграм объявил программу поощрения разработчиков под названием BotPrize с призовым фондом в $1,000,000.


Инициатива призвана стимулировать разработку ботов работающих на платформе Телеграм и тем самым способствовать популяризации мессенджера и увеличению лояльности и вовлечённости пользователей. Хороший маркетинговый ход который позволил получить много бесплатного пиара и донести видение «Telegram как платформа» до разработчиков.

Для многих, и меня в том числе, это стало дополнительным стимулом приступить к разработке бота. Всё таки попробовать всё равно хотелось, а надежда получить $25,000 — $50,000 USD делали процесс разработки гораздо интереснее.

И вот 11 ноября объявлены первые призеры которые в сумме получат больше $200,000 USD! Это в среднем по $40.000 на бота.

К сожалению мой бот DebtsTracker.io пока что не попал в призёры. Тем интереснее посмотреть на победителей-конкурентов.
Смотрим и оцениваем первых призёров

11.11: китайское безумие

Reading time6 min
Views25K
Мир замер в ожидании Чёрной пятницы. А зря. В прошлом году её официально переплюнул всемирный день шоппинга, он же день холостяков в Китае, он же 11.11. Оборот самой большой китайской распродажи в 9 раз превысил показатель Black Friday.

image

Размах распродаж в китайском (и не только) ритейле настолько огромен, что в Китае появилась шуточная идиома, которую можно перевести как «отрезать себе руку». Естественно ту, которая лежит на мышке или бегло управляет тачпадом — потому что страсть к интернет-покупкам в Поднебесной перешла все границы и обратилась в безумие. Которое, кстати, уже несколько лет не меньше лихорадит европейцев и россиян. А всё потому, что поводов масса. Gearbest, как гиковский китайский магазин, не остался в стороне — на этот раз к 11.11 мы подошли как никогда во всеоружии.
Читать дальше →

Инструменты хакера в торговле

Reading time7 min
Views14K
Для того, чтобы осуществить наш хакерский финансовый эксперимент (чтобы еще на нем и заработать), нам потребуется программа, которая может проводить исследования, тестирование, обучение и торговлю по алгоритму. Ни одна из существующих программ на сегодняшний день по-настоящему не покрывает все эти области. Тем не менее, можно объединить различные системы и попытаться решить задачу. К счастью, есть пара подходящих инструментов. По большому счету, я буду использовать Zorro Trader и язык R, но иногда и некоторые другие инструменты.

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

Как я писал игру на конкурс, или чудесное превращение «Линий» в «Морской бой»

Reading time8 min
Views14K


Эта история о том, как я делал очередную 3D веб-игру. История терзаний и сомнений, история недосыпаний и лени. История о том, как все сделать в самый последний момент. В общем, чего тянуть кота за рога – перейду к рассказу. Но сперва – еще кое-что, чтобы покончить со всеми формальностями. «Мадам, вам кофе в постель?» «Нет, лучше в чашку». Кофе был моим ежедневным спасением из лап Морфея, особенно когда я хотел поработать над игрой с утра, перед всеми остальными дневными заботами. Надо отдать ему должное. Я просто не могу не упомянуть о нем, так как для меня это стало воистину одной из составляющих успеха, под коим я понимаю доведение игры до релиза. (Здесь могла быть ваша реклама кофе).

Конкурс


На самом деле, я вписался не в тот конкурс, для которого мог бы что-то сделать. По его условиям требовалось создать игру под Windows, скачиваемую и запускаемую по exe-файлу. Я же люблю программировать под браузеры. Я не знаю C++ и C#, у меня даже нет Visual Studio. Но тут внезапно у меня появилась отличная идея игры, и я подумал – а какого черта! Буду просто делать игру. А получится ли соблюсти все условия конкурса или нет – не так важно. В конце концов, просто запущу ее в социальных сетях.
Читать дальше →

Двойная скорость и половина памяти: оптимизация PHP 7

Reading time13 min
Views22K
Ключ к высокой производительности приложений – оптимизация. При этом, чем ниже уровень, на котором код подстраивают под особенности аппаратного обеспечения – тем большего можно добиться. А ещё более впечатляющих результатов можно достичь тогда, когда при проектировании аппаратного обеспечения учитываются особенности кода. Сегодня мы расскажем о том, как идёт работа над ускорением PHP 7, которую совместно, практически непрерывно, ведут Intel и сообщество PHP-разработчиков.


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

«Don't get fired!» — социальная инди-притча

Reading time4 min
Views21K
image

Рано или поздно игрок задается вопросом о смысле той или иной игры, ее полезности. Конечно, чаще мы играем потому что хотим отдохнуть. Но игры могут ставить перед нами проблемные вопросы или просто дать повод поразмышлять. Так, «Half-Life» заставил нас подумать о целесообразности чрезмерно быстрого развития науки, серия «S.T.A.L.K.E.R.» показала людям возможные последствия антропогенного воздействия, любая гонка, как, например, «Need for Speed» вначале предупреждая о соблюдении правил ПДД в реальности помогает нам увидеть всю тяжесть последствии от неаккуратного вождения… Но это в большинстве своем AAA-проекты. А что же инди и игры для мобильных платформ — могут ли они заставить нас задуматься?
Читать дальше →

Полезные инструменты для разработки на Laravel

Reading time8 min
Views78K


Несколько месяцев назад наша компания решила выбрать корпоративный PHP-фреймворк, который мы бы использовали для большинства проектов. До этого у нас был целый зоопарк: Symfony, Zend Framework, Yii — кому что больше нравилось. После рассмотрения популярных фреймворков мы решили попробовать Laravel. Результатом нескольких обучающих дней стал конспект, в котором строится простенькое приложение, но так как подробный туториал уже присутствует на хабре, то я решил написать только о четырёх инструментах, которые будут полезны при разработке и о которых почему-то не упоминают в туториалах:

  1. Laravel IDE Helper Generator
  2. Laravel 4 Debugbar
  3. Faker
  4. Homestead
Читать дальше →

Разработка и тестирование chef кукбуков с помощью инструмента Sparrowdo

Reading time11 min
Views2.6K

Здравствуйте! О разработке chef кукбуков и связанной с ней инфраструктурой написано немало, да и инструментов в этой области существует уже предостаточно. Среди них можно перечислить такие решения как vagrant, test kitchen, food critic, chef spec, minitest-chef-handler, serverspec, inspec. Все они, в той или иной степени упрощают и ускоряют промышленную разработку и тестирование chef кукбуков и настраиваемой ими инфраструктуры.


Если данная область близка для вас и вы так же имеет некоторое отношение к языку Perl ( точнее к Perl6 ) — то добро пожаловать в топик.


Итак, сегодня я расскажу как я использую Sparrowdo при разработке и тестировании chef кукбуков.


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

Почему супер-мега-про машинного обучения за 15 минут всё же не стать

Reading time6 min
Views29K
Вчера я опубликовал статью про машинное обучение и NVIDIA DIGITS. Как и обещал, сегодняшняя статья — почему всё не так уж и хорошо + пример выделения объектов в кадре на DIGITS.

NVIDIA подняла волну пиара по поводу разработанной и имплиментированной в DIGITS сетки DetectNet. Сетка позиционируется как решение для поиска одинаковых/похожих объектов на изображении.


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

Реализация многопоточного сервера на PHP

Reading time3 min
Views26K
Данная публикация не претендует на полноту решения поставленного вопроса. Сервер разрабатывается исключительно в ознакомительных целях. Многие важные вопросы, такие как, например, обработка ошибок сокетов, опущены. Для реализации многопоточного сервера мы будем использовать, конечно же, потоки. Очень часто приходится видеть фразу, что, мол, в PHP потоков нет. Так вот это неправда. Потоки есть, но реализованы в отдельном расширении pthreads.
Читать дальше →

Создаем игру для WebGL с помощью Unity 5 и JavaScript

Reading time10 min
Views56K


Unity – это кроссплатформенный игровой движок, позволяющий создавать игры для ПК, консолей, мобильный устройств и веб-сайтов. Последняя версия движка (Unity 5) имеет возможность экспорта в WebGL, благодаря чему разработчики могут без труда публиковать свои игры в вебе. Как следует из названия, данный экспортер использует WebGL – JavaScript API для рендеринга интерактивной компьютерной 3D графики, а также asm.js – подмножество JavaScript, которое было разработано компанией Mozilla и преподносилось как «язык ассемблера для веба». Больше информации о Asm.js и WebGL для Unity и Unreal Engine доступно здесь.

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

Как перестать отлаживать асинхронный код и начать жить

Reading time13 min
Views27K

Андрей Саломатин ( filipovskii_off )


Андрей Саломатин

Сегодня каждый день появляются новые языки программирования — Go, Rust, CoffeeScript — все, что угодно. Я решил, что я тоже горазд придумать свой язык программирования, что миру не хватает какого-то нового языка…

Дамы и господа, я представляю вам сегодня Schlecht!Script — чумовой язык программирования. Мы все должны начать им пользоваться прямо сейчас. В нем есть все то, к чему мы привыкли — в нем есть условные операторы, есть циклы, есть функции и функции высших порядков. В общем, в нем есть все, что нужно нормальному языку программирования.

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

Как выбрать In-memory NoSQL базу данных с умом. Тестируем производительность

Reading time15 min
Views35K
image

Дмитрий Калугин-Балашов (Mail.RU)


Доклад у меня по базам данных In-Memory NoSQL. Кто знает, что такое In-Memory NoSQL база данных? Поднимите руки, пожалуйста… Как вам не стыдно? Зал по базам данных, и только половина знает, что это такое.

Если вы выбираете базу данных, ориентируясь на ее популярность, то так делать не надо. Как, вообще, выбираем базы данных?


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

Java-ресурсы, на которые есть смысл подписаться

Reading time4 min
Views24K
Когда язык программирования используют миллионы человек, кажется, что о нём должно быть предостаточно сайтов, в том числе русскоязычных. Однако, если набрать в поисковике «новости Java», результаты оказываются примерно такими:



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

Поэтому, во-первых, мы сейчас перезапустили сайт JUG.ru, чтобы исправить это. А во-вторых, раз русскоязычные регулярно обновляемые ресурсы в дефиците, вспомнили, какие есть англоязычные, и делимся результатами с Хабром. Разумеется, в текст вошло далеко не всё возможное, и будем только рады дополнениям в комментариях.
Читать дальше →

Pico8 — несуществующая игровая консоль

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

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

Теперь каждый может стать профессионалом в машинном обучении

Reading time7 min
Views26K

Марк Хэммонд в штаб-квартире Bonsai в пригороде Беркли

Вы успешно играете в футбол, снимаетесь в популярном кино, или удачливо играете на бирже? Поздравляю – вы почти так же ценны, как специалист по обработке данных или по машинному обучению с докторской степенью из Стэнфорда, MIT или Карнеги-Меллон. По крайней мере, всё выглядит именно так. Все компании в Кремниевой долине – а в принципе, уже и не только там – лихорадочно соревнуются, чтобы получить такой приз-человека. Это нечто вроде охоты на трюфели в исполнении менеджеров по персоналу. По мере того, как предприятия понимают, что их соперники полагаются на искусственный интеллект (ИИ) и машинное обучение (МО), количество вакансий для этих специалистов будет постоянно повышаться.

Но что, если вы могли бы получить преимущества ИИ без найма дорогих и талантливых специалистов? Что, если умный софт понизит планочку? Можно ли получить преимущества глубокого обучения (ГО) без особых талантов?
Читать дальше →

Несколько заметок о MySQL

Reading time4 min
Views25K
За время работы с MySQL набралось некоторое количество нюансов и приемов, из которых я составил эту статью в виде набора заметок. Все это не секрет и, разумеется, можно найти в документации.

Буду использовать дефолтные настройки MySQL. Некоторые заметки связаны с PHP, поэтому для примеров буду использовать расширение mysqli.

Для запуска sql-запросов из статьи можно инициализировать таблицы так:

CREATE TABLE IF NOT EXISTS `user_myisam` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_myisam` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

CREATE TABLE IF NOT EXISTS `user_innodb` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(8) NOT NULL,
  `money` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `user_innodb` (`id`, `login`, `money`) VALUES
(1, 'ivanov', 100),
(2, 'petrov', 200),
(3, 'sidorov', 300);

Проверить текущие автоинкременты можно так:

SHOW TABLE STATUS;

У обоих таблиц они равны 4. При этом имеется такое подключение к БД:

$mysqli = new mysqli($host, $user, $password, $database);
Читать дальше →

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity