Kohana & firePHP: nginx выдаёт 502 при включённом debugToolbar

Те, кто следит за количеством запросов, потребляемой памяти, временем выполнения и другими важными показателями при использовании debugToolbar также наверняка используют firePHP - плагин к плагину fireBug для Firefox позволяющий дебажить работу своего веб-приложения.

По понятным причинам, на сайте после apache поставлен nginx. Наверное кто нибудь пытался сделать дамп большого объекта или массива и запихать его в firePHP. PHP скрипт отрабатывает удачно, в логах также всё нормально(код 200):

123.123.123.123 - - [31/Jan/2010:15:08:44 +0300] "GET /somepage/o.O HTTP/1.0" 200 66939 "-" "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.6) Gecko/20091216 Iceweasel/3.5.6 (like Firefox/3.5.6; Debian-3.5.6-1) FirePHP/0.4"

А вот nginx в браузер выдаёт

502 Bad Gateway

nginx

Так и в моём случае: всё работало нормально, казалось бы изменил совсем чуть-чуть: добавил ещё один вызов метода у модели. И на тебе - 502 Bad Gateway.

Read more

avrdude: прошивка в низкоскоростном режиме USB CDC

Мне дали попользоваться в кампусе программатором avr910 с USB интерфейсом. Он мне был просто необходим для сборки своего программатора(USBAsp).

Проблемма

Простая комманда для чтения флеш памяти:
avrdude -P /dev/ttyACM0 -p m8 -c avr910 -U flash:r:flash.hex:i
Неожиданно выдала:

avrdude: ser_send(): write error: Invalid argument

Cудя по lsusb программатор определился: Bus 004 Device 002: ID 16c0:05e1 VOTI.
Появился соответствующий файл устройства /dev/ttyACM0. Права rw также есть.
Всё казалось бы хорошо..

Read more

Перебор многомерного массива в поисках ключа

Простой способ перебрать многомерный ассоциативный массив и получить из него трубуемые элементы, например по ключу:

function recarray($ar, $searchfor) {
    static $result = array();

    foreach($ar as $k => $v) {
    if ($k == $searchfor) $result[] = $v;
        if (is_array($ar[$k]))  recarray($v, $searchfor);
    }
    return $result``;
}

$tst = array (
  'bob' => 'Bob MEN',
  'google' => array (
      'somekey' => 'somevalue',
      'bob'     => 'big man'
  ),
  'martin' => array(
      'bob'     => array(
      'friend' => true,
      'age'    => 100500),
      'cat'     => 'animal'
  )
);

$result = recarray($tst, 'bob');

print_r($result);

<!--more-->
<p>
Результатом работы скриптика будет:
</p>

Array
(
    [0] => Bob MEN
    [1] => big man
    [2] => Array
        (
            [friend] => 1
            [age] => 100500
        )

)


Это просто ответ на
вопрос на
винграде

PHP: Генератор картинок шрифтов

Символ из шрифта на картинке
Понадобилось написать генератор картинок символов из различных шрифтов(всех что есть в системе). Всё просто - символ чёрного цвета в центре изображения на белом фоне, расфасованные по папочкам по названию шрифта и размеру - путь получится в виде symbols/FONT/SIZE/SYMBOL.jpg

Read more

Разгон монитора 14″ => 17″

Так случается, что ноутбуки ломаются, как у меня. На встроенном мониторе перестала работать подсветка. Пришлось подключать внешний монитор.

Кто подключал - тот знает что в этом случае изображение клонируется, а разрешения внешнего и внутреннего не совпадают.

Read more

Быстрый перевод двоичного в десятичное число устно

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

Например 101100.

Read more

Мысли: 2010 закончился

Так получилось, что очень давно не писал в блог. Количество задач которые нужно решить требуют значительно больше времени чем есть в сутках.

Если очень коротко - год прошёл под символом startup.

Год для меня выдался решающим во многих вещах. Поменялось мировозрение, понятия. В целом он прошёл под знаком стартапа. Кажется теперь я вижу на много больше чем раньше - стоило всего лишь убрать рамки, но это не самая простая задача. Требуется пересмотреть машинальное поведение, долгое время навязываемое окружением - оно еще долго будет приследовать меня, ровно как и кривые взгляды людей, которые не привыкли видеть не машинальную реакцию. Иначе: стараюсь перейти из группы имитаторов, коих 95% в группу инициаторов, которых всего 5%. Эти простые истины открыла для меня книга "Психология влияния".

Несомненно, очень большой отпечаток оставили семинары бизнес-инкубатора "Ингрия", поездка на форум Селигер, а так же анализ поведения одногрупников(сложно поверить, но мотивирует).

Кстати о мотивации - со временем получается превращать негативные факторы в мотивирующие. Я осознаю, что это само-программирование(ы, я ж программист:)), но так проще выполнять задачи. Это неизбежно - если есть какая-то цель и желание её реализовать, то это желание как правило, сконцентрированно на какой то ее части, остальное же приходится делать "через силу".

Научился надеюсь понимать, когда я не могу сделать из-за причин, мало от меня зависящих или от нежелания покинуть зону комфорта. Весь год бьюсь чтоб не попадать туда, одногрупники показали как это опасно и туда засасывает :)

В этом году количество новых контактов, интересных знакомств просто зашкаливает! Я чувствую, что мне это действительно нравится. Наконец-то я увидел, что есть другие люди, которые хотят и развиваются. У которых есть Цели в жизни(в том числе и не материальные). Их очень очень мало, и они концентрируются вместе. На примере ивентов - практически одни и те же лица посещают мероприятия. Так мы и познакомились с Виктором(проект HappyPartner).
Что касается селигера...............
Ах да, еще есть университет. Там я даже учился - за весенний семестр все 5, но додумался не сдать зачет по матведу, а еще и практику(!), которую я действительно проходил на электронстандарте, в отличии от того как и где проходили мои мотивирующие отдногрупники.

------------
UPD@27 Oct 2018

Интересный факт, этот пост был написал в 2010 году, в самом начале стартап пути, а опубликован только в 2018. За это время поменялось неверотяно много, проваленно и закрыто много проектов и понимание бизнеса всё ещё кристализируется

Linux: аккуратность использования rm -rf

На случай кто не знает - это РЕКУРСИВНОЕ УДАЛЕНИЕ ВСЕГО БЕЗ ПОДТВЕРЖДЕНИЯ!

Если вам приходиться часто работать с коммандной строкой и удалять папки будьте внимательны. Наверняка каждый использует прокрутку истории комманд(стрелками вверх-вниз) для более быстрой работы в консоле, если ненароком выберите нечто вроде rm -rf ./ ожидая например что будет ifconfig eth0 и по инерции нажмёте <enter> - останется только надеятся что текущая папка не корень и не домашняя. Особенно, если вы работаете под root.

Для себя взял на заметку простое правило: никогда не писать одиночные ./, ../ и тому подобные в аргументе rm -rf , как бы не хотелось, по возможности записывать относительный путь, например apache/www/site - чем больше букв в пути[=сложнее путь], тем меньше вероятности того, что в случае не внимательного ввода вы удалите нужную информацию.

Электроника: NONAME HL022 – сверхяркий светодиод

Мне с другом понадобились сверхяркие RGB светодиоды - достали мы их почти без проблемм - на юноне по 200р. Речи о поиске даташита по названию не может быть - производитель NONAME, о чём признались сами продавцы, всё чем они смогли помочь - дать сфотографировать кусок их цветастого каталога.

Read more