Как стать автором
Обновить
1
0
Dmytro Ilnicki @DaleMartinWatson

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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



Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии8

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

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

1. Intro




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

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

Далее
Всего голосов 60: ↑58 и ↓2+56
Комментарии119

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

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

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

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


Читать дальше →
Всего голосов 80: ↑69 и ↓11+58
Комментарии41

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

Время на прочтение6 мин
Количество просмотров231K
image
КДПВ. По мотивам.

О чем пост


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

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

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

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

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

image
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии90

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

Время на прочтение12 мин
Количество просмотров9.5K
Недавно я вспомнил об замечательной интеллектуальной игре «Балда», с которой я познакомился еще в школьные годы.

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

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

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

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

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии4

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

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

Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии57

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

Время на прочтение20 мин
Количество просмотров439K
image
Кадр из заставки сериала «Грань»

Предисловие

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

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

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

Время на прочтение3 мин
Количество просмотров40K
Я хотел бы рассказать вам об утилите, с которой вы сможете забыть о боли создания документации для Web API. О том как это сделать прошу всех под кат.


Все вкусняшки тут
Всего голосов 45: ↑39 и ↓6+33
Комментарии25

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

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

Содержание


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

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

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


Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии63

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

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


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

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

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

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

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

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

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


За синие горы, за белый туман...
Всего голосов 28: ↑27 и ↓1+26
Комментарии27

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

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

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

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

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

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

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

N900: жизнь без Nokia

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

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

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Дата рождения
Зарегистрирован
Активность