Search
Write a publication
Pull to refresh
56
0
Илья @WST

Инженер-программист

Send message

Батареи, ветряк и геозонд: эксперимент по получению «зеленой» энергии в разных точках РФ

Reading time5 min
Views52K
Несколько месяцев назад мы стартовали масштабный эксперимент и смонтировали два объекта, работающих на альтернативной энергии. Задача – понять, могут ли автономные комплексы небольшой мощности работать более-менее стабильно и иметь коммерческую перспективу в РФ.


Cолевая батарея нового поколения

До финальных результатов еще полгода, но уже есть необычные вещи: например, был запущен геозонд для охлаждения (уникален, скорее всего, пойдет в серию), проведены тесты солевой батареи нового поколения (но ее придется менять на обычную из-за бюджета), плюс на удивление хорошо показали себя в сложных условиях отечественные солнечные батареи производства Зеленограда.
Читать дальше →

Что делать, если надоела смс-реклама?

Reading time5 min
Views64K
Наверное, многим знакома ситуация, когда раздается звук оповещения, что на мобильный телефон пришло смс-сообщение. И вот, открывая смс-сообщение, мы видим, что какая-то организация прислала нам рекламу. Хорошо, если вы действительно подписывались на данную рассылку.

Но что же делать, если вы не подписывались, и вам регулярно присылают рекламу посредством смс-сообщений?



Первое, что надлежит знать, это то, что любая рекламная рассылка посредством смс-сообщений без вашего предварительного согласия является нарушением ч. 1. ст. 18 Федерального закона от 13.03.2006 N 38-ФЗ «О рекламе»:
Читать дальше →

AzaThread — многопоточность для PHP с блэкджеком

Reading time6 min
Views18K
В сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.

Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
  • Использование форков;
  • Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
  • Многократное использование дочерних процессов;
  • Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
  • Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
  • Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
  • Обработка ошибок выполнения;
  • Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
  • Максимум производительности;

В результате получилась библиотека AzaThread (старое название — CThread).
Подробности

Памятка пользователям ssh

Reading time13 min
Views1.6M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →

Принцип цикады и почему он важен для веб-дизайнеров

Reading time6 min
Views236K
Пару лет назад я прочитал интересные факты о жизненном цикле периодических цикад. Обычно мы не видим вокруг себя много этих насекомых, потому что бóльшую часть своей жизни они проводят под землёй и тихо сосут корни растений.

Однако, в зависимости от вида, каждые 7, 11, 13 или 17 лет периодические цикады одновременно массово вылезают на свет и превращаются в шумных летающих тварей, спариваются и вскоре умирают.

Хотя наши странные цикады весело уходят в иной мир, возникает очевидный вопрос: это просто случайность, или числа 7, 11, 13 и 17 какие-то особенные?
Читать дальше →

7 типичных русских проблем в английской речи

Reading time10 min
Views254K
South Park
Предметом данной статьи является попытка систематизировать культурные различия, и типичные ошибки которые мы допускаем с нашими иностранными коллегами. Большинство примеров взято из книги Русские проблемы в английской речи. Я взял на себя смелость в небольшой популяризации данной темы, снабжению комментариями и собственными примерами.

1. Я прав, а ты нет
Читать дальше →

Ограничение проектирования систем на уровне сознания

Reading time11 min
Views20K
Я рад приветствовать вас, дорогие читатели.

Я думаю, что многие из вас, будучи разработчиками информационных систем различного назначения так или иначе сталкивались с понятием оптимизации рабочих процессов, составляющих основную часть той рутины, которую приходится выполнять для достижения поставленных целей.

Скажу сразу — я не задаюсь целью мотивировать или призывать к каким-либо правилам эффективной работы, т.к. все слишком индивидуально, чтобы давать подобные советы, но я постараюсь обратить ваше внимание на некоторые, на мой взгляд, интересные детали, лежащие в основе принципов проектирования, которые заметил и осмыслил на собственном опыте. Отмечу также, что статья будет актуальна не только IT-шникам, но и абсолютно всем категориям читателей.
Читать дальше →

Написание программ на PHP с использованием fork()

Reading time5 min
Views38K

Параллельные программы на PHP


Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR).
Читать дальше →

Что я постиг в программировании

Reading time5 min
Views11K
Я программирую уже более 30 лет. И мой путь в программировании тянется от микропроцессоров Z80 и 6502 до современных машин, от таких языков программирования как BASIC, assembly, C, C++ до Tcl, Perl, Lisp, ML, occam или arc, Ruby, Go и проч.

Вот список того, что я постиг в программировании:

0. Программирование удел ремесленника, а не ученого или инженера

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

По мне так это ремесло. Я считаю, что лучшие программисты ближе скорее к часовщикам нежели к строителям мостов или физикам. Конечно, с виду это занятие напоминает науку или инженерное дело всилу использования логики и математики, но в большинстве случаев ты просто берешь инструменты в руки и что-то создаешь.
Читать дальше →

Боремся с race condition в PHP

Reading time4 min
Views9K
Ошибки типа «Состояние гонки» (race condition) редко встречаются на малонагруженных проектах, а с ростом нагрузки ситуация медленно, но верно меняется. И однажды обычное кеширование данных в файле, например, вот такое:

function getFlagFromFile($filename) {
    if (file_exists($filename)) {
        if (!$this->validate()) { // а не устарел ли файл?
            unlink($filename);
            return false;
        }
        else {
            return file_get_contents($filename);
        }
    }
    return false;
}

выдаёт ошибку в строке unlink(): файл $filename не существует!
Читать дальше →

«Паскалевская графика на HTML5» или «Что Opera сделала с Rainbow Dash»

Reading time1 min
Views10K
Увидел на тематическом сайте, посвящённом сериалу My Little Pony код на Turbo Pascal, использующий старинный модуль Graph и рисующий нескольких персонажей.

Код содержал только вызовы функций и комментарии, javascript отлично его парсил. Осталось только дописать свои графические функции.

Финальная версия
Читать дальше →

Веб-студии, не залезайте в черную дыру. Там денег нет

Reading time3 min
Views14K
Черная дыра в диапазоне стоимости сайтовДавно никто не писал в этот блог. Все работают, работают, работают… А стоит ли? )
Наверняка, многие руководители веб-студий согласятся со мной, что бизнес под названием «разработка сайтов» — не такой уж и сложный. Он не предполагает высокого порога вхождения на рынок, все делается под одной крышей, специалистов на рынке достаточно, спрос на услуги тоже есть. Но еще больше руководителей студий поддержат меня в том, что за этим простым бизнесом кроются очень высокие риски. Человеческий фактор сводит на нет все ожидаемые и, казалось бы, легкие доходы. Если не выбрать правильную модель работы, вы достаточно быстро разочаруетесь в этом бизнесе. Давайте копнем сразу в глубь любой обычной веб-студии.
Читать дальше →

20 вещей, которые я должен был знать в 20 лет

Reading time3 min
Views718K
1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
Читать дальше →

Применение замыканий в PHP

Reading time8 min
Views170K
Введение в PHP 5.3 замыканий — одно из главных его новшеств и хотя после релиза прошло уже несколько лет, до сих пор не сложилось стандартной практики использования этой возможности языка. В этой статье я попробовал собрать все наиболее интересные возможности по применению замыканий в PHP.
Читать дальше →

Человек вывел виртуальную девушку в реальный мир

Reading time1 min
Views7.5K
Ладно. Итак. Об этом у меня буквально нет слов, но раз уж я блоггер и здесь информационный сайт, то постараюсь.

Используя кинектоподобное устройство Xtion PRO от ASUS и некие видеоочки, парню удалось пойти на свидание с Мику Хацунэ полностью виртуальною японскою поп-звездою.

Она идёт с ним на игровую площадку и отзывается на поглаживания по голове, А ТАКЖЕ И КОГДА ОН СТУЧИТ ЕЙ по голове.

Я не шучу. Смотрите сами. К концу видеозаписи (около 3:08) всё становится ещё неделикатнее.



Есть уже множество предположений о том, как эта технология «дополненной реальности» может использоваться — в том числе и для порнографии. Что ничуть не удивляет.

[с сайта io9]

Основы реляционной алгебры

Reading time6 min
Views337K
Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных.
Когда я только изучал устройство баз данных и SQL, предварительное ознакомление с реляционной алгеброй очень помогло дальнейшим знаниям правильно уложиться в голове, и я постараюсь что бы эта статья произвела подобный эффект.

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

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

Мы будем когда-либо… проходить тест Тьюринга для компьютеров?

Reading time5 min
Views12K
Приветствуем Вас уважаемые!

Чем больше мы размышляем над будущим наших услуг, тем больше хочется мечтать о колонизации космоса и искусственном интеллекте. Всё бОльшие шаги делаются в сторону Марса и небольшие шаги, типа интерфейса Siri от Apple делаются в сторону ИИ.

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

Одним словом, будем стараться разбавлять «конкретные» статьи, статьями наполненными капелькой «мечты».

Перевод статьи

Рандомизированные деревья поиска

Reading time8 min
Views58K

Не знаю, как вы, уважаемый читатель, а я всегда поражался контрасту между изяществом базовой идеи, заложенной в концепцию двоичных деревьев поиска, и сложностью реализации сбалансированных двоичных деревьев поиска (красно-черные деревья, АВЛ-деревья, декартовы деревья). Недавно, перелистывая в очередной раз Седжвика [1], нашел описание рандомизированных деревьев поиска (нашлась и оригинальная работа [2]) — настолько простое, что занимает оно всего треть страницы (вставка узлов, еще страница — удаление узлов). Кроме того, при ближайшем рассмотрении обнаружился дополнительный бонус в виде очень красивой реализации операции удаления узлов из дерева поиска. Далее вы найдете описание (с цветными картинками) рандомизированных деревьев поиска, реализация на С++, а также результаты небольшого авторского исследования сбалансированности описываемых деревьев.
Читать дальше →
12 ...
67

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity