27 ноября 2011 г.

25 ноября 2011 г.

Getting Autocomplete For CodeIgniter 2.0 with PHPStorm


Getting Autocomplete For CodeIgniter 2.0 with PHPStorm | Grafik Kaos
Статья о том, чтобы заставить PHPStorm использовать автодополнение кода для средств фреймворка CodeIgniter 2.x




16 ноября 2011 г.

HTML формы и опера

Обнаружил в Опере интересную особенность, при которой jquery serialize() не получала данных из формы:

- Между тегами<form> и </form>
не должно быть неполных или пересекающихся таблиц
- Между тегами <form> и </form>
не должно быть другой формы (что очень логично).


Для следующего, не очень валидного кода:
<form id="firstform">
    <input type="text" name="firstname" value="MyName" />
    <input type="text" name="lastname" value="LastName" />

    <form id="secondform">
        <input type="text" name="age" value="21">
    </form>

    <input type="text" name="gender" value="male">
</form>

результатом операции $('#firstform').serialize() будет:
firstname=MyName&lastname=LastName&age=21

Закрывающая форма #secondform будет являться завершающим тегом для #firstform и поле gender будет опущено.

Впрочем это особенность не только Оперы, а самого jquery и его механизма выполнения операции serialize()

15 ноября 2011 г.

Firebug - тонкая настройка

Долгое время я не мог понять, почему Firebug раскрывает обычные css свойства, например
"border: 1px solid black"
превращается в 29 вот таких строчек:

firebug


element.style {
    -moz-border-bottom-colors: none;
    -moz-border-image: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    border-bottom-color: black;
    border-bottom-style: solid;
    border-bottom-width: 1px;

12 ноября 2011 г.

Изменение размеров jqGrid'ов при изменении размеров окна браузера

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

Чтобы сделать так, чтобы ширина таблицы динамически изменялась при ресайзе браузера, необходимо добавить следующее событие:

$(window).bind('resize', function() {
    if (grid = $('.ui-jqgrid-btable:visible')) {
        grid.each(function(index) {
            gridId = $(this).attr('id');
            gridParentWidth = $('#gbox_' + gridId).parent().width();
            $('#' + gridId).setGridWidth(gridParentWidth - 20);
        });
    }
}).trigger('resize');

В результате чего при событии resize, вызванным изменением размеров окна браузера, ширина таблицы будет зависеть от новой ширины родительского контейнера (и минус 20 пикселей :) ).

11 ноября 2011 г.

Code Igniter сжатие прозрачных png средствами фреймворка.

При использовании php библиотеки GD для сжатия изображений, библиотека работы с изображениями Image_lib, входящая в состав фреймворка Code-igniter при сжатии прозрачных PNG по-умолчанию делает прозрачный фон черным для GIF и PNG файлов, что не очень красиво.

Данное решение позволяет сохранять прозрачность при сжатии изображений:

В system/libraries/Image_lib.php, после строчки
$dst_img = $create($this->width, $this->height);

добавить следующий текст:
// keeping transparency
$transparent_index = imagecolortransparent($src_img);
if ($transparent_index >= 0) {
      imagepalettecopy($src_img, $dst_img);
      imagefill($dst_img, 0, 0, $transparent_index);
      imagecolortransparent($dst_img, $transparent_index);
      imagetruecolortopalette($dst_img, true, 256);
}
elseif ($this->image_type == 3) {
      imagealphablending($dst_img, false);
      $transparent_index = imagecolorallocatealpha($src_img, 0, 0, 0, 127);
      imagefill($dst_img, 0, 0, $transparent_index);
      imagesavealpha($dst_img, true);
}
Недостатком такого решения является то, что изменяется системная библиотека в system/ , а при "обновлении" проекта, изменения могут затеряться.

21 сентября 2011 г.

Пока что рабочая демонстрационная версия шашек будет находится здесь:
http://nerevar.github.com/iPadCheckers/
Если вкратце - то это шашки, которые я разрабатываю для touch-девайсов, а именно планшеты на iOS и Android

10 июля 2011 г.

Чем занимаются герои Мортал Комбат в свободное время?

Originally posted by Чем занимаются герои Мортал Комбат в свободное время?

Немного фантазии на тему:
"Чем занимаются герои Мортал Комбат в свободное от турниров время?" :)





21 июня 2011 г.

Ubuntu выделять слова по ctrl+shift МОЖНО!


Столкнулись с проблемой, что в ubuntu 10.04 если установить переключение раскладки на ctrl+shift, то нельзя выделять слова с помощью стрелочек ctrl+shift+← или ctrl+shift+→ ?

Оказывается, решение есть. Для этого нужно
1) Установить программу xneur (это аналог punto switcher под windows, must have)
2) В настройках клавиатуры в системе совсем убрать переключение раскладки с помощью горячих клавиш
3) В настройках xneur > Комбинации клавиш > установить "Перключение раскладки" на "Control + Shift_L"

После этого слова можно будет выделять с помощью ctrl+shift+стрелочек.
Единственная ложка дёгтя, с которой я еще не разобрался - переключение раскладки происходит именно по Ctrl+Shift а не Shift+Ctrl и не одновременно.. - Но к этому можно быстро привыкнуть :)

UPD: кстати всё-таки рекомендую не полностью отключать переключение клавиш в настройках, а оставить Alt+Shift на всякий случай, некоторые программы некорректно работают с переключением клавиатуры, или xneur  может быть и вовсе не запущен.