Поиск

понедельник, 26 ноября 2012 г.

Не вставляются таблицы в Word 2007

Столкнулся с такой проблемой. На ноуте с Windows 7 установлен Word 2007. Запущен ворд, хром и скайп. Пытаюсь скопировать таблицу из хрома в ворд. Вставляется голый текст. Начал разбираться. Решил попробовать воспроизвести баг на стационарном компе. Там стоит та же Windows 7, но Word 2010. Запущен также хром, скайп и ворд. Скопировал таблицу и вставил без проблем. Хм... задумался. Отправил через скайп файл с таблицей на ноут. Открываю на ноуте, копирую таблицу, пытаюсь вставить в этом же документе - опять фигня, вставляется только текст.

Решение проблемы оказалось достаточно маразматичным - закрыл хром на ноуте. И ворд заработал как надо. Хэппи-енд!

суббота, 21 июля 2012 г.

Django -> sorl -> PIL выдает ошибку encoder jpeg not available

Собственно говоря получил ошибку, описанную в сабже. Джанго проект крутится в виртуальней среде (использую virtualenv). Для генерации тумб (thumbnail) используется sorl, который использует для ресайза PIL который в свою очередь для работы с JPEG изображениями использует библиотеку libjpeg и заголовочные файлы для нее.

Так вот такая ошибка возникает, когд эта либа или хидеры для нее не установлены. Установить (в Ubuntu) можно так:


sudo apt-get install libjpeg libjpeg-dev

Далее надо удалить к чертям PIL:


pip uninstall PIL

Далее необходимо скачать только исходники PIL:


pip install --no-install PIL 

Далее надо отредактировать setup.py (папка build/PIL вашего виртуального окружения) PIL (перед строкой 214 добавляем еще одну директорию для поиска либ):


add_directory(library_dirs, "/usr/lib/i386-linux-gnu")

Ну все, теперь надо установить либу и запускать проект:

в директории build/PIL выполняем команду


pip install PIL

Решать проблему помог этот топик на SO.

А вообще, ребятки, используйте Pillow, пригодный для установки через pip.

среда, 18 июля 2012 г.

Virtualbox: после установки гостевой Ubuntu Server 12.04 в консоли вместо русских символов квадратики (проблемы с кодировкой)

Собственно сабж. И решается он просто.

LANG=C sudo dpkg-reconfigure console-setup

В диалоге нужно выбрать кодировку UTF-8 и шрифт .combined - latin, slavic cyrillic (VGA).

Virtualbox: гостевая Ubuntu Server 12.04 проблемы с расшариванием папки (общая папка) из хостовой Windows 7

Первая проблема, с которой я столкнулся это вывод следующей ошибки при попытке примонтировать расшаренную в настройка VirtualBox виндовую папку:


mount: mounting failed with the error: No such device

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

The headers for the current running kernel were not found.


То есть надо установить заголовочные файлы для своего ядра, для моего ядра это было сделано так:

sudo apt-get install linux-headers-3.2.0-23-generic-pae

Далее, второй проблемой стало то, что при попытке создания виртуальной окружающей среды при помощи  virtualenv для расшаренного в вышеобозначенной общей папке django-проекта получил такую ошибку:


Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in
    load_entry_point('virtualenv==1.7.2', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 942, in main
    never_download=options.never_download)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1043, in create_environment
    site_packages=site_packages, clear=clear))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1449, in install_python
    fix_local_scheme(home_dir)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1523, in fix_local_scheme
    os.path.join(local_path, subdir_name))
OSError: [Errno 30] Read-only file system

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

sudo mount -t vboxsf -o rw,uid=1000 data /home/dizpers/data

Конечно же в эту команду надо подставить свои имена общей папки и места куда она будет примонтирована.

Может также возникнуть вопрос - как узнать uid своего пользователя. Для моего пользователя это делается так:

cat /etc/passwd | grep dizpers

Результатом этой команды явилось следующее:

dizpers@ubuntu:~$ cat /etc/passwd | grep dizpers
dizpers:x:1000:1000:dizpers,,,:/home/dizpers:/bin/bash

То, что выделено жирным и есть uid.

И последнее - чтобы каждый раз не монтировать общую папку, пропишем команду монтирования в rc.local:

sudo gedit /etc/rc.local

До строки


exit 0

sudo mount.vboxsf -o rw,uid=1000 data /home/dizpers/data

среда, 4 июля 2012 г.

Django: Error loading MySQLdb module: No module named MySQLdb

До сегодняшнего дня не работал с mysql в джанго. Начав работу, после команды

python manage.py sql project

получаю ошибку

Error loading MySQLdb module: No module named MySQLdb

Решение простое - установить модуль mysql-python

sudo easy_install mysql-python

Во время установки модуля может возникнуть ошибка EnvironmentError: mysql_config not found

решение проблемы

sudo apt-get install libmysqlclient15-dev

Обновление Ubuntu c 9.10 до 12.04

На ноуте уже запылилась старенькая убунту 9.10. Решил обновить до последней 12.04. Обновился через менеджер обновлений до 10.04 и дальше уже до 12.04 по этой инструкции (http://www.ithowto.ru/663-obnovlenie-ubuntu-10-04-do-12-04.html).

суббота, 23 июня 2012 г.

Установка модуля Image в Python (PIL - Python Image Library)

Сегодня возникла проблема после заливки обновленного бэкенда на питоне при попытке запуска вылетела ошибка


Traceback (most recent call last):
  File "server.py", line 30, in
    import Image
ImportError: No module named Image

Одним из изменений в бэкенде было добавление работы с изображениями с помощью библиотеки PIL. Так как подгружаемый модуль назывался Image, то проблему я попытался решить так

easy_install Image

потом так

easy_install image

потом вообще вот так

easy_install imaging

но ничего не сработало, НО решение супер простое

easy_install PIL :-))

среда, 20 июня 2012 г.

Что такое меритократия

Читая эту статью, опять наткнулся на невиданое ранее мною слово - меритократие. Итак, что же это такое. Приведу определение согласно вики.

Меритокра́тия (букв. «власть достойных», от лат. meritus — достойный и др.-греч. κράτος — власть, правление) — принцип управления, согласно которому руководящие посты должны занимать наиболее способные люди, независимо от их социального происхождения и финансового достатка.

вторник, 19 июня 2012 г.

Фаланстер

Читая историю магазина "Фаланстер", заинтересовало - что же это за слово такое. Термин «фаланстер» придумал французский утопист Шарль Фурье для обозначения трудовой ячейки, каждый участник которой работает ради общего блага.

суббота, 16 июня 2012 г.

CSS переменные в webkit [перевод]

Мой вольный (и первый) перевод статьи CSS variables

Ура! Наконец-то в webkit появилась поддержка переменных в CSS. Это очень круто!

К сожалению, я пока не смог увидеть воочию все перелести переменных в ночных сборках Webkit (возможно я что-то и упустил), но факт остается фактам - Webkit теперь поддерживает переменные в CSS. При этом остаются ярые противники внедрения переменных в язык. Они утверждают, что это противоречит сути каскадных таблиц стилей. Но W3C внесло предложение стандарта использования переменных и современные браузерные движки начали реализовывать этот стандарт. Так что движуха началась!

пятница, 15 июня 2012 г.

jQuery не выполняется функция-аргумент для метода submit()

Наткнулся на такую проблему. Есть форма с id="uploadForm". Нужно было привязать обработчик плагин jQuery.form к методу отправки формы и засабмитить форму. Код прост до безобразия:

               $("#uploadForm").submit(function(){
                    $(this).ajaxSubmit({});
                    return false;
                });

Но отправка формы не происходила. Долго не мог понять почему. Решение помог найти этот пост со стэка. Проблема была в том, что когда мы передаем анонимную функцию в качестве аргумента для метода submit() - то мы лишь биндим эту функцию на сабмит формы, но сам сабмит не делаем.

Таким образом правильный код будет такой:

                $("#uploadForm").submit(function(){
                    $(this).ajaxSubmit({});
                    return false;
                }).submit();

Очистка кеша в Google Chrome в один клик!

В ходе фронэнд разработки извечная проблема - кеш браузера. В моем случае хром постоянно что-то да кеширует и при каждой незначительной правке приходилось лезть в настройки, искать там очистку кеша и очищать - очень долго. Пошарился по каталогу расширений хрома и нашел решение - плагин Clear Cache. После установки плагина в настройках указал ему параметр, чтобы после сброса кеша он автоматом релоадил страничку. Супер!

PS

Еще бы забиндить хоткей на вызов плагина - было бы вообще шикарно.

воскресенье, 10 июня 2012 г.

Python: как записать в файл

f = open("out.txt", "w")
print >>f, "Hello, world!"

суббота, 2 июня 2012 г.

Зеленый экран вместо видео YouTube, Вконтакте, ...

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

1. Запускаем видео;
2. Жмем правой кнопкой по зеленому фону, который заместо видео показывается;
3. Жмем "Параметры";
4. Нажимаем в горизонтальном списке иконок на первую иконку (с изображением монитора и какойто фигуры внутри);
5. Убираем галочку "Включить аппаратное ускорение".

Закрываем окно параметров. И перезагружаем страницу. Вуаля, видео работает.

PS
Причин этой проблемы не искал, но, вероятно, все дело в драйверах видеокарты.

суббота, 3 декабря 2011 г.

В чем разница между куками и сессиями (cookie vs sessions)

Все вы наверняка слышали такие понятия, как сессии и куки. Этим постом я хочу пояснить в чем же состоит различие между столь близкими понятиями.

четверг, 20 октября 2011 г.

Использование grep для поиска строки в файлах

Ссылка на полезную статью под катом

пятница, 14 октября 2011 г.

PHP ошибка Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

Вчера был озадачен, тем что в логах веб-сервера была такая ошибка php

среда, 28 сентября 2011 г.

Не пиши идеальный код - делай идеальные проекты!:)

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

воскресенье, 18 сентября 2011 г.

MySQL: вставить данные в таблицу на основе данных из другой (INSERT..SELECT)

Для того, чтобы вставить данные в некоторую таблицу, используя данные из другой (или других) таблиц, делаем так: