javascript: сериализация и десериализация

Опубликовано admin 05.02.2010

В php есть функция serialize, которая преобразует массив, который в нее пихают в строку. Есть функия unserialize, которая делает обратно. Удобно юзать, если надо сохранить массив в cookies или в базу данных.

А в javascript такого нету. Зато можно так написать, самостоятельно…

Продолжение поста javascript: сериализация и десериализация

Кросспост с блога VITRIZET (Витризет)

Бытрая правка php файлов без вывода на экран информации

Опубликовано admin 04.02.2010

Есть моменты, когда требуется отладка файла, который на экран не выводится или выводится, но сразу после выполнения происходит редирект и возможности его убрать нету. Делаю так:

ob_start();
/*здесь все, что выводит инфу на экран*/
vcache(ob_get_contents());
ob_end_clean();

function vcache($text)
{
$fp = fopen($_SERVER['DOCUMENT_ROOT'].’/lg.txt’, ‘w’);
fwrite($fp, $text);
fclose($fp);
}

Первая команда перехватывает поток вывода на экран в буфер. ob_get_contents - получение всей инфы из буфера. ob_end_clean - уничтожение буфера и перехвата.

Функции сохранения в файл требуется 777 на доступ к файлу, параметр w - перезаписывает файл с нуля, независимо от того, что в нем было.

На базе данной функции можно также организовать тотальное кэширование всего-всего. Нужно только названия файлов для разных страниц разные придумать и смотреть по дате создания генерировать заново или пустить текст файла

jQuery: загрузка изображений без клика на кнопке

Опубликовано admin 04.02.2010

Для некоторых целей, в том числе и для нашего редактора, потребовалось загружать изображения. Тут же выяснилось, что на input type=file стили не навесить. То есть вот у нас красивый такой дизаин, а в середине аццкая кнопка стандарта os пользователя, причем он по ней ткнет, а файл нигде не появится, пока форму не отправишь.

На просторах сети было найдено несколько вариантов как сделать отправку картинки без перезагрузки страницы. На хабре есть стаья, где пытаются это делать через iframe. Еще есть плагин, который на flash-е (флешовая кнопка открывает окно загрузки). Но первый - не вглядывался, но к iframe-у стал относиться отрицательно. У второго - кнопку это дурацкую без правки flash-а не поменять, да и весит ~50кб. Но вот вчера, наконец, нашли: продолжение статьи

Кросспост с блога VITRIZET (Витризет).

Улучшаем textarea: авторастягивание

Опубликовано admin 04.02.2010

Пишем уже хрен знает сколько времени редактор, перепробовали все, в том числе и tinyMCE, но под наши нужды он не подошел, а если и подошел, то гемора с одинаковым отображением наших “модернизаций” очень и очень много. Посему перешли на написание блочного, без использования ифреймов и прочей мути. Сурово и просто: textarea, div и jquery :)

Поэтому сегодня расскажу о про авторастягивание в textarea.

Кросспост с блога VITRIZET (Витризет). Продолжение статьи: Улучшаем textarea: авторастягивание.

Итак настроил кросспостинг из wordpress в wordpress

Опубликовано admin 03.02.2010

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

Все оказалось не так сложно, как я думал. Есть замечательный плагин wp2wp, который раздают вот тут: http://pda.in.ua/2009/08/13/wp2wp-crosspost/

Установка - залить один файл в нужную папку. Настройка: адрес, логин, пароль и в блоге-приемнике в настройках-написании разрешить XML-RPC. Собственно все. Мило и приятно :)

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

Яндекс-карты: я всегда их не любил

Опубликовано admin 03.02.2010

Во-первых в них встроен jquery, то есть пользователи скажут спасибо, если у вас на сайте юзается свой jquery, а на странице с картами подгрузится еще один. Он там устаревший (судя по мануалам 1.3.2, а на данный момент на всех проектах мы уже поставили 1.4.1). Спасибо, что хотя бы отрубили ему пространство имен $ и сделали YMaps.jQuery - войны между версиями не начинается. Хотя с другой стороны, зачем это надо было? Уж если пользоваться, то сдергивать бы на весь сайт этот jquery от яндекса и пользовать на здоровье… В общем обратите внимание, а то пользователи замучаются.

Во-вторых сами функции работы с картой. Есть addOverlay, есть removeOverlay, есть removeAllOverlay, но где же getOverlay, который если не объект, то ссылку на объект возвращал? Ведь например, если я показ оверлеев привязываю к каким-нить чекбоксам через яндексовский jquery, то было бы вполне разумно иметь возможность получить нужный оверлей и делать с ним, что захочется.

Не понимаю

UPD: да что с них взять - даже оффициальные примеры яндекс-карт не работают ни в одном ie: http://api.yandex.ru/maps/jsapi/examples/mapcontrolscustomizing.html

Кросспост с блога VITRIZET (Витризет). WP2WP.

Посоветуйте VDS-ки

Опубликовано admin 26.01.2010

Критерии: живучесть, оперативка, колличество доменов

Очень важно: если у вас там битриксы стояли, то сколько человек без кэша держало?

Ребят, на сумбур не обижайтес )

Опубликовано admin 23.01.2010

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

Дополнительные мысли к тз по п.р.о.е.к.т.у. и вообще как строить майндмап

Опубликовано admin 23.01.2010

Сейчас сижу и наблюдаю, как mindmap того, что надо сделать резко разрастается и становится не очень удобно читать, так как “старое сделанное” немножко все захламляет. По идее надо бы сделанное удалять, но тогда теряется весь смысл карты и подсчета времени: лог должен быть на все, раз есть такая возможность!

Явно в майндмапе не стоит смешивать работы над проектами и задания по другим делам конторы, так что нужно строить дерево примерно так: контора - проекты, еще что-то, еще что-то - таким образом просто закрыв ветку проекты мы сразу увидим, задания с ними не связанные (позвонить туда-то, решить то-то), это имхо удобнее, но проблему не решает

Так что думается мне так:

  • нужно отдельную кнопку, при нажатии на которую будут убираться из показа выполненные задачи старше 2 дней
  • задачи, которые сделаны вчера, надо показывать полупрозрачными (короче чтобы без нужды на них внимание не обращалось)
  • задачи, которые выполнены сегодня надо показывать зелененьким полупрозрачным (ну чтоб гордость была, что типа вон сколько сделал)
  • задачи, которые еще не сделаны надо либо на белом фоне либо на желтом (красный у нас зарезервирован для сверхсрочного и важного)

Вот как-то так. Кстати есть флешки, которые майндмап показывают. Зацените

Python: многопоточность. Простейший таймер

Опубликовано admin 21.01.2010

Была в visual basic 6.0, на котором я когда-то программировал такая тема: если запустить долгий или бесконечный цикл, то прога как бы повисала, то есть на кнопки я жать уже не мог, пока цикл не кончится. Чтобы так не происходило надо было в теле цикла подписывать “doevents” или как-то так, чтобы оно при каждой итерации шло и исполняло накопленные события.

В Python естесственно тоже самое, однако реализован другой механизм: потоки. То есть по сути я могу создать многопоточное приложение, что собственно тут в двух словах и опишу.

Уже упоминал, что в моем секретном проекте таскменеджера нужен таймер. Вот вам общая концепция:

import thread, time

def timer_print():
while 1: # бесконечный цикл
time.sleep(1)
thread.start_new_thread(timer_print,())

Только есть одна проблема =) таймер пока что не остановить и приходится перезапускать. Однако решение скорее всего будет такое: при запуске проги, запускается поток таймера, который в переменной хранит время, прошедшее с начала запуска проги. Далее в нужный момент выхватываем время начала и время конца. Еще вариант - наверняка Python как и php имеет переменную “секунды с момента запуска линукса в 1970 году” - это по идее аналог того, что предложено выше и поток не нужен.
Зато нашел по поводу потоков пост в одном интересном блоге:

http://python4seo.ru/?p=67


Copyright © 2007 Doorway blog. All rights reserved.