Опубликовано admin 05.02.2010
В php есть функция serialize, которая преобразует массив, который в нее пихают в строку. Есть функия unserialize, которая делает обратно. Удобно юзать, если надо сохранить массив в cookies или в базу данных.
А в javascript такого нету. Зато можно так написать, самостоятельно…
Продолжение поста javascript: сериализация и десериализация
Кросспост с блога VITRIZET (Витризет)
Опубликовано 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 - перезаписывает файл с нуля, независимо от того, что в нем было.
На базе данной функции можно также организовать тотальное кэширование всего-всего. Нужно только названия файлов для разных страниц разные придумать и смотреть по дате создания генерировать заново или пустить текст файла
Опубликовано admin 04.02.2010
Для некоторых целей, в том числе и для нашего редактора, потребовалось загружать изображения. Тут же выяснилось, что на input type=file стили не навесить. То есть вот у нас красивый такой дизаин, а в середине аццкая кнопка стандарта os пользователя, причем он по ней ткнет, а файл нигде не появится, пока форму не отправишь.
На просторах сети было найдено несколько вариантов как сделать отправку картинки без перезагрузки страницы. На хабре есть стаья, где пытаются это делать через iframe. Еще есть плагин, который на flash-е (флешовая кнопка открывает окно загрузки). Но первый - не вглядывался, но к iframe-у стал относиться отрицательно. У второго - кнопку это дурацкую без правки flash-а не поменять, да и весит ~50кб. Но вот вчера, наконец, нашли: продолжение статьи
Кросспост с блога VITRIZET (Витризет).
Опубликовано admin 04.02.2010
Пишем уже хрен знает сколько времени редактор, перепробовали все, в том числе и tinyMCE, но под наши нужды он не подошел, а если и подошел, то гемора с одинаковым отображением наших “модернизаций” очень и очень много. Посему перешли на написание блочного, без использования ифреймов и прочей мути. Сурово и просто: textarea, div и jquery
Поэтому сегодня расскажу о про авторастягивание в textarea.
Кросспост с блога VITRIZET (Витризет). Продолжение статьи: Улучшаем textarea: авторастягивание.
Опубликовано 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.
Опубликовано admin 26.01.2010
Критерии: живучесть, оперативка, колличество доменов
Очень важно: если у вас там битриксы стояли, то сколько человек без кэша держало?
Опубликовано admin 23.01.2010
Все такое новое, мыслей много и нифига непонятно ) записываю их для себя, а как подробнее разберусь - все разжую нормальными постами 
Опубликовано admin 23.01.2010
Сейчас сижу и наблюдаю, как mindmap того, что надо сделать резко разрастается и становится не очень удобно читать, так как “старое сделанное” немножко все захламляет. По идее надо бы сделанное удалять, но тогда теряется весь смысл карты и подсчета времени: лог должен быть на все, раз есть такая возможность!
Явно в майндмапе не стоит смешивать работы над проектами и задания по другим делам конторы, так что нужно строить дерево примерно так: контора - проекты, еще что-то, еще что-то - таким образом просто закрыв ветку проекты мы сразу увидим, задания с ними не связанные (позвонить туда-то, решить то-то), это имхо удобнее, но проблему не решает
Так что думается мне так:
- нужно отдельную кнопку, при нажатии на которую будут убираться из показа выполненные задачи старше 2 дней
- задачи, которые сделаны вчера, надо показывать полупрозрачными (короче чтобы без нужды на них внимание не обращалось)
- задачи, которые выполнены сегодня надо показывать зелененьким полупрозрачным (ну чтоб гордость была, что типа вон сколько сделал)
- задачи, которые еще не сделаны надо либо на белом фоне либо на желтом (красный у нас зарезервирован для сверхсрочного и важного)
Вот как-то так. Кстати есть флешки, которые майндмап показывают. Зацените
Опубликовано 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
Свежие комментарии