Pull to refresh
1
0
Dmytro Ilnicki @DaleMartinWatson

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

Send message

Пишем расширения для PHP 7 на C++

Reading time14 min
Views23K
Мне приходилось писать расширения для того, чтобы воспользоваться функциями C++ библиотек в коде PHP. Ещё, одно тяжёлое расширение портировал с 5й версии на 7ю.

Если загуглить документацию на тему написания расширений для PHP, то, в основном, это будут тексты до 2014 года, актуальные для версии 5. Сам сайт php.net предоставляет обрывчатые и устаревшие сведения, а то, что удаётся найти в их wiki, опять про 5ю версию. Максимум, что удалось найти на офф сайте, это скудный ман по миграции уже написанных расширений.

В итоге, единственным более или менее понятным маном по написанию расширений для меня оказался исходный код PHP, которым я и руководствовался при написании и миграции расширений.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments7

PHP: неправильный путь

Reading time18 min
Views71K
image

В мире PHP-программирования существует набор трендов. Некоторые люди активно продвигают их (в книгах и на сайтах) как «современный PHP», а другие подходы выставляют как устаревшие, глупые или просто неверные.

Похоже, все эти люди без устали стараются заставить каждого программировать так, как они считают нужным. Эта статья написана, чтобы поделиться прагматичным взглядом на PHP-программирование. Взглядом, продиктованным опытом и практическими последствиями, а не популярными тенденциями, теориями или академическими догмами. Материалы, представленные на сайте PHP — The Wrong Way, будут обновляться по мере появления новой информации. Приглашаем всех поучаствовать в этом.
Читать дальше →
Total votes 104: ↑83 and ↓21+62
Comments368

Чем полезен мономорфизм?

Reading time14 min
Views32K


Выступления и посты в блогах о производительности JavaScript часто обращают внимание на важность мономорфного кода, однако обычно не дается внятного никакого объяснения, что такое мономорфизм/полиморфизм и почему это имеет значение. Даже мои собственные выступления зачастую сводятся к дихотомии в стиле Невероятного Халка: «ОДИН ТИП ХОРОШО! ДВА ТИП ПЛОХО!». Неудивительно, что когда люди обращаются ко мне за советом по производительности, чаще всего они просят объяснить, что на самом деле такое мономорфизм, откуда берется полиморфизм и что в нем плохого.

Ситуацию осложняет еще и то, что само слово «полиморфизм» имеет множество значений. В классическом объектно-ориентированном программировании полиморфизм связан с созданием дочерних классов, в которых можно переопределить поведение базового класса. Программисты, работающие с Haskell, вместо этого подумают о параметрическом полиморфизме. Однако полиморфизм, о котором предупреждают в докладах о производительности JavaScript – это полиморфизм вызовов функции.

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

Я также попробовал новый способ объяснять вещи – изображая взаимодействие составных частей виртуальной машины в виде коротких комиксов. Кроме того, данная статья не покрывает некоторые детали, которые я посчитал незначительными, излишними или не связанными напрямую.
Читать дальше →
Total votes 50: ↑49 and ↓1+48
Comments11

Сенсорный радио выключатель на батарейках. Livolo + Z-Uno

Reading time3 min
Views24K

Я полюбил сенсорные выключатели! Мне нравится их внешний вид, блестящее стекло, подсвечивающиеся кнопочки, смотрятся элегантно!
Т.к. моя квартира автоматизирована технологией Z-Wave, то и сенсорные выключатели должны поддерживать эту технологию. С переделкой кнопочного радио выключателя в сенсорный я справился в прошлый раз. Теперь мне нужен пульт на батарейках в виде сенсорного выключателя, который я смогу приклеить на двухсторонний скотч на кухне, чтобы дети доставали.
Сенсорные Z-Wave выключатели Vitrum
Если вы можете себе позволить выключатель за 20К ₽, обратите свое внимание на Z-Wave продукцию Vitrum

Если вы хотите свой уникальный сенсорный выключатель, да еще и не дороже 4К ₽, добро пожаловать под кат.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments73

Цветовая палитра от мастеров живописи: Color Lisa

Reading time2 min
Views14K
Выбрать удачную и подходящую цветовую гамму для проекта — одна из первостепенных задач дизайнера. Даже профессионалы порой теряются во всех потенциальных вариантах и комбинациях.

Приложения наподобие Color CC (еще его называют Kuler) и сайты типа ColourLovers дали нам возможность сохранять для себя и попутно делиться с остальными любимыми палитрами. К счастью, достаточно много подобных ресурсов, которые помогают в работе. И мне хочется добавить еще один — Color Lisa.



Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments8

Улучшаем свой английский: изобретаем субтитры заново

Reading time5 min
Views50K

1. Intro




— Татьяна Леонидовна, а можно, мы посмотрим это кино с субтитрами?
— Нет, малолетние дятлы, мы тренируем ваше слуховое восприятие, поэтому кино вы будете смотреть без них! С субтитрами вы будете только читать текст и не слушать.
— Татьяна Леонидовна, но без субтитров мы больше половины не понимаем!
— А вот это уже ваши проблемы.

Начало 2000-х, диалог с учителем во французской спецшколе, Санкт-Петербург.

Далее
Total votes 60: ↑58 and ↓2+56
Comments119

Как правильно внести свою лепту в Open Source проект: простые подсказки

Reading time6 min
Views69K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


Читать дальше →
Total votes 80: ↑69 and ↓11+58
Comments41

Простой Blender. Часть 1

Reading time6 min
Views231K
image
КДПВ. По мотивам.

О чем пост


Пост написан по мотивам этого комментария . Особенно вдохновила картинка в ответах к этому комментарию. Изначально хотел здесь написать про UI и основы моделлинга в Blender, но выходит многовато (я словообилен). Поэтому, про моделлинг — позже (если публика захочет). А здесь — про UI Blender с точки зрения непрофессионала.
Тоже хочу танк нарисовать!
Total votes 55: ↑53 and ↓2+51
Comments38

Слепая 37-летняя женщина с расщеплением личности начинала видеть, когда становилась подростком

Reading time4 min
Views60K
С момента, когда героиня этой истории (назовём её инициалы — Б.Т.) в последний раз что-то видела, прошло более десяти лет. После травмы врачи диагностировали у молодой женщины кортикальную слепоту — она возникает из-за поражения затылочной доли мозга, которое мешает мозгу правильно принимать или интерпретировать сигналы, поступившие по зрительному нерву. Поэтому Б.Т. начала ходить везде с собакой-поводырём.

Слепота была не единственной проблемой Б.Т. Внутри женщины жили больше десяти разных личностей, боровшихся за контроль над её телом. Во время попыток врачей избавить её от этого расстройства к женщине вернулось зрение. Но видела не 37-летняя немка, а подросток, которым она иногда становилась. Переключение между личностями происходило мгновенно, и в момент перехода женщина либо начинала видеть, либо погружалась в темноту.

По мнению её врачей, описавших случай в журнале PsyCh, слепота не могла быть вызвана травмой — то есть изначальный диагноз не может быть верным. Проблема была психологического характера, а не физиологического. Случай с Б.Т. показывает экстраординарную способность нашего мозга контролировать, что мы видим и кем мы являемся.

image
Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments90

Используем TSQL для игры в «Балду»

Reading time12 min
Views9.5K
Недавно я вспомнил об замечательной интеллектуальной игре «Балда», с которой я познакомился еще в школьные годы.

На днях я задался вопросом – насколько сложно будет реализовать алгоритм этой игры для компьютерного соперника?

Так как мне больше всего нравится работать с реляционными данными и моим любимым языком является SQL, то я решил совместить приятное с полезным и попробовать написать этот алгоритм используя только TSQL. Это моя первая попытка написать ИИ используя только возможности SQL.

Архив с файлами можно скачать по следующей ссылке – скрипты.
Все слова в словаре в верхнем регистре, а также в нем буквы «Е» и «Ё» считаются за одну (как «Е»).

В результате была создана следующая схема:

Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments4

RESTful API для сервера – делаем правильно (Часть 1)

Reading time13 min
Views333K
В 2007-м Стив Джобс представил iPhone, который произвел революцию в высокотехнологичной индустрии и изменил наш подход к работе и ведению бизнеса. Сейчас 2012-й и все больше и больше сайтов предлагают нативные iOS и Android клиенты для своих сервисов. Между тем не все стартапы обладают финансами для разработки приложений в дополнение к основному продукту. Для увеличения популярности своего продукта эти компании предлагают открытые API, которыми могут воспользоваться сторонние разработчики. Пожалуй Twitter был первым в этой сфере и теперь число компаний, последовавших этой стратегии, растет стремительно. Это действительно отличный способ создать привлекательную экосистему вокруг своего продукта.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments57

Большой список научно-фантастических сериалов

Reading time20 min
Views439K
image
Кадр из заставки сериала «Грань»

Предисловие

На Geektimes и Habrahabr уже были статьи со списком Sci-Fi сериалов (Фантастические сериалы — обзор от фаната, Фантастические сериалы и др.). Но все они либо содержали достаточно мало сериалов и/или поверхностную информацию о них самих, либо были предвзяты в отношении тех или иных сериалов.

В данной публикации я постараюсь предоставить большой список научно-фантастических сериалов. А благодаря голосованию — узнать какие сериалы на самом деле нравятся пользователям Geektimes.
Читать дальше →
Total votes 58: ↑47 and ↓11+36
Comments189

Как сделать красивую документацию для Web API, за которую будет не стыдно

Reading time3 min
Views40K
Я хотел бы рассказать вам об утилите, с которой вы сможете забыть о боли создания документации для Web API. О том как это сделать прошу всех под кат.


Все вкусняшки тут
Total votes 45: ↑39 and ↓6+33
Comments25

Датчики и микроконтроллеры. Часть 2. Климат-контроль

Reading time22 min
Views115K
Продолжим рассказ о датчиках и в этой части рассмотрим разнообразные датчики самых востребованных DIY-сообществом типов — это многочисленные датчики температуры и датчики влажности. Кроме того, затронем датчики давления воздуха и присутствия газов. Приведем описание номенклатуры датчиков и сошлемся на полезную литературу.

Содержание


Часть 1. Мат. часть. В ней рассматривается датчик, не привязанный к какому-то конкретному измеряемому параметру. Рассматриваются статические и динамические характеристики датчика.
Часть 2. Датчики климат-контроля. В ней рассматриваются особенности работы с датчиками температуры, влажности, давления и газового состава
Часть 3. Датчики электрических величин. В ней я коснусь измерения тока и напряжения
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments22

О передаче данных через аудиоразъём

Reading time4 min
Views68K
Одним из важных интерфейсов на мобильных устройствах и планшетных компьютерах является разъём для наушников/микрофона. Однако не стоит думать, что он предназначен только для колонок-наушников-микрофона – его можно использовать в том числе для передачи данных. Об этом сегодня и поговорим.


Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments63

Вы неправильно пишете животных

Reading time5 min
Views382K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments352

Gson или «Туда и Обратно»

Reading time25 min
Views181K
Недавно мне пришлось поработать с библиотекой Google Gson, предназначенной для преобразования Java-объектов в текстовый формат JSON (сериализация) и обратного преобразования (десереализация). Часто при работе с Gson хватает стандартных настроек библиотеки, но бывают случаи (в том числе мой), когда необходимо кастомизировать процессы преобразований.

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

Для начала нужно выбрать какую-нибудь предметную область. Скажем, не знаю, почему-то приходят в голову мысль про отряд гномов. Собственно, почему бы и нет?


За синие горы, за белый туман...
Total votes 28: ↑27 and ↓1+26
Comments27

Уроки космических аварий: поражение и триумф «Аполлона-13»

Reading time14 min
Views196K

В такие же апрельские дни 1970 года разыгралась, наверное, самая драматическая история из всего, что происходило в космосе. Три астронавта, отправившиеся на Луну, оказались в смертельной опасности и были вынуждены трое суток возвращаться домой, преодолевая различные возникающие трудности. Это очень красивая история о том, как небольшие изменения в спецификации могут привести к большим проблемам, о слаженной работе сотен людей в ЦУПе в режиме аврала, о смелости и профессионализме.
Читать дальше →
Total votes 206: ↑204 and ↓2+202
Comments64

Lumia можно взять у Nokia попробовать — на две недели

Reading time2 min
Views58K
Финский вендор предпринял любопытную инициативу в деле популяризации своих смартфонов — теперь ряд моделей Lumia (модели 920 пока нет) и пару других устройств вроде колонок можно взять у Nokia в аренду на 14 дней. Цель довольно очевидна — попробовать, что это за устройство, оценить достоинства, попробовать найти недостатки и тому подобное.

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

После того, как она будет проанализирована и, в случае удачной и оригинальной предложенной идеи, вы «почти гарантированно» получите Lumia на две недели — при этом стоимость доставки устройства к вам и обратно будет оплачена самой Nokia. При этом обращается особое внимание, что участник акции должен прочитать Trial Terms and Conditions и согласиться с ним. Интересно, что оно довольно короткое и ясное и никаких ограничений по странам нет — проблемы только у Турции и Сербии в связи с какими-то местными законами, по которым доставка невозможна, и участнику должно быть более 16 лет.
Узнать подробности
Total votes 59: ↑53 and ↓6+47
Comments59

N900: жизнь без Nokia

Reading time5 min
Views12K
Ещё когда Nokia и Intel объявили о создании MeeGo стало ясно, что перспективы Nokia N900 и её Maemo 5 операционной системы не очень хороши. В скоре стало известно, что MeeGo официально не поддерживает N900, то есть сборку этой ОС для девайса делают добровольцы, не имея доступа к закрытым драйверам Nokia (что ведет к ряду проблем, как видно и из работы NITDroid).

Однако прошивка PR1.3 в итоге не стала последней, прошивки выходят каждую неделю! Также и нехватка игр перестала быть проблемой. Всё это произошло буквально за последние 2-3 месяца, и за хабракатом я расскажу, какие же возможности дало устройству сообщество.
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments85
1
23 ...

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity