Нехитрая команда: ruby -v
проверяет во-первых сам факт наличия ruby на рабочей станции, во-вторых выводит номер версии.
пятница, 4 октября 2013 г.
Проверка версии ruby
воскресенье, 8 сентября 2013 г.
Перевод в Mac OS X
Для перевода слова, на котором находится курсор в Mac OS X необходимо нажать комбинацию клавиш ctrl + cmd + d
, после чего появится всплывающее окошко словаря Dictionary с переводом.
вторник, 3 сентября 2013 г.
Растяжение колонок на всю ширину QTableView
Для того, чтобы колонки занимали всё пространство QTableView
необходимо написать следующий код:
QHeaderView *header = ui->view->horizontalHeader();
header->setStretchLastSection(true);
где view
— экземпляр класса QTableView
.
пятница, 30 августа 2013 г.
Как запретить редактирование в QTableView?
Для запрета прямого редактирования в QTableView необходимо выполнить команду:
ui->view->setEditTriggers(QAbstractItemView::NoEditTriggers);
где view
— экземпляр класса QTableView.
Как скрыть заголовки строк в QTableView?
Следующая команда скрывает заголовки у строк:
ui->view->verticalHeader()->setVisible(false);
где view
— экземпляр класса QTableView.
Error: «invalid use of incomplete type...», «forward declaration of...»
Иногда появляются совершенно непонятные ошибки типа:
error: invalid use of incomplete type 'class QLabel'
error: forward declaration of 'class QLabel'
где вместо QLabel
может быть и любой другой виджет.
Лечится ошибка простым добавлением #include <QtWidgets>
Ошибка «Driver not loaded» при использовании SQLite в QT
Если при запуске программы появляется данная ошибка, то необходимо в каталоге с программой создать папку sqldrivers
, в которую поместить файл qsqlite.dll
.
Файл можно найти ориентировочно тут: C:\Qt\Qt5.1.0\5.1.0\mingw48_32\plugins\sqldrivers
.
вторник, 27 августа 2013 г.
Как начать добывать Primecoin?
Для начала необходимо скачать последнюю версию официального клиента: http://sourceforge.net/projects/primecoin/files/.
Затем нужно запустить программу, начнется синхронизация блоков. Перейти в Help — Debug window — Console
, где выполнить команду: setgenerate true -1
для задействования всех своих ядер.
Если набрать команду getmininginfo
, то можно увидеть свою скорость добычи (параметр primespersec
).
Открытие БД SQLite в QT
Сначала необходимо добавить в файл pro: QT+=sql
Подключаем в нужном месте: #include <QtSql>
Затем пишем следующий код:
QSqlDatabase cn = QSqlDatabase::addDatabase("QSQLITE");
cn.setDatabaseName(fileName);
if(cn.open()==false)
{
QMessageBox::critical(0,QObject::trUtf8("Ошибка"),cn.lastError().text(),0,0);
}
где fileName
— путь к файлу с базой данных SQLite.
среда, 21 августа 2013 г.
Failed to load platform plugin "windows"
На тестовом стенде: чистая Windows7 x64 + vcredist_x64.exe, версия QT — 5.1.0 MSVC2012 64bit. Сборка программы — релизная. При появлении данной ошибки, необходимо проверить наличие в папке с exe-шником следующих файлов и папки:
platforms\qwindows.dll
icudt51.dll
icuin51.dll
icuuc51.dll
libEGL.dll
libGLESv2.dll
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
Как убрать знак вопроса из QDialog?
Почему-то при первом же взгляде на виджет QDialog хочется избавиться от знака вопроса, который находится рядом с крестиком закрытия окна. Поиск по свойствам виджета в IDE ничего не дал.
И только старина гугл знал ответ:
MyForm *frm = new MyForm(this);
frm->setWindowFlags(frm->windowFlags() & ~Qt::WindowContextHelpButtonHint);
frm->exec();
Oracle и пробел в имени папки с дистрибутивом
Сегодня на работе обнаружили интересный баг инсталлятора клиента Oracle — если в имени папки с дистрибутивом есть пробел, то установка не запустится. Отчего у Oracle такая нелюбовь к пробелу остается только догадываться...
Кроме того, вспоминаю давнишний случай, когда программа, которая использовала клиент Oracle, находясь в папке Program Files
наотрез отказывалась запускаться. Но прекрасно запускалась, если её переместить в другую папку (без пробела в имени).
воскресенье, 28 июля 2013 г.
Как увеличить размер шрифта в Aptana Studio?
General -> Appearance -> Colors and Fonts -> Basic -> Text Font
пятница, 26 июля 2013 г.
Автомонтирование дисков в Debian 7
Итак, у нас есть жесткий диск и требуется его автоматически монтировать при старте системы.
Для начала необходимо создать точку монтирования: каталог в папке /media
под рутом. Не помешает стать его владельцем:
chown user_name /media/folder_name
А затем дать необходимые права на него:
chmod -R 777 /media/folder_name
Осталось дело за малым: добиться автоматического монтирования. Для этого открываем файл /etc/fstab
и добавляем в него информацию о новом диске. Пример:
/dev/sda1 /media/folder_name ext4 rw,user,auto 0 0
Здесь /dev/sda1
собственно сам диск. /media/folder_name
— созданная нами точка монтирования, ext4
— тип файловой системы.
воскресенье, 21 июля 2013 г.
Настройка Samba в Debian 7
Для начала устанавливаем необходимые пакеты:
aptitude install samba smbclient smbfs
Сохраняем оригинальную конфигурацию:
cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
Правим файл с конфигурацией: mcedit /etc/samba/smb.conf
У меня параметры такие:
[global] # Настраиваем принадлежность к раб. группе workgroup = HOME netbios name = fileserver server string = File Server # Уровень журналирования log level = 1 # Параметры безопасности encrypt passwords = yes passdb backend = smbpasswd security = share # Параметры кодировки unix charset = UTF-8 dos charset = cp1251 store dos attributes = yes # Размер файла журнала max log size = 10 [SHARE_NAME] path = /home/path_to_share writeable = yes available = yes public = yes guest ok = yes force user = root force group = user_name
Далее делаем рестарт: /etc/init.d/samba restart
Автозапуск bfgminer при старте Debian
Чтобы bfgminer стартовал после загрузки системы (Debian в моем случае), необходимо отредактировать файл /etc/rc.local
. Добавляем 1 строчку:
su -l root -c '/home/path_to_bfgminer/bfgminer -- config /home/path_to_bfgminer/config.conf'
где config.conf
— файл с конфигурацией майнинга.
Сохраняемся и перезагружаемся. После перезагрузки окно с майнингом не отобразится (это нормально). Можно перейти на сайт-пул, на котором и убедиться, что майнер работает.
суббота, 20 июля 2013 г.
Как синхронизировать время в Debian?
Если часы идут неправильно, надо что-то делать... Для начала ставим необходимые пакеты:
#apt-get install ntp ntpdate
После чего производим синхронизацию времени:
ntpdate -bs ntp.remco.org
Автоматический вход в систему в Debian 7
Для автоматического входа в систему необходимо отредактировать файл под рутом: mcedit /etc/gdm3/daemon.conf
[daemon]
# Enabling automatic login
AutomaticLoginEnable = true
AutomaticLogin = username
где username
— логин пользователя, под которым будет осуществлен автоматический вход.
Включение компьютера после подачи электричества
Когда компьютер занят чем-то серьезным (типа добычи биткоинов) и происходит выключение питания из-за сбоя электричества, при отсутствии бесперебойника — всё становится очень грустно. Как только электричество снова появится — компьютер сам уже не включится.
Но можно сделать соответствующую настройку в BIOS, чтобы компьютер включался автоматом после подачи питания. У меня в BIOS'е настройки такие:
Power -> APM Configuration -> Restore on AC Power Loss -> Power on
пятница, 19 июля 2013 г.
Как отучить iTunes копировать музыку к себе в папку
Все просто:
iTunes -> Настройки -> Дополнения -> Снять галочки:
- Сохранять информацию о песнях в папке iTunes Media
- Копировать в папку iTunes Media при добавлении в библиотеку
четверг, 18 июля 2013 г.
Установка драйвера Radeon 6970 в Debian 7
Для установки проприетарного драйвера к видеокарточке Radeon 6970 сначала необходимо его скачать. Сделать это можно отсюда: http://support.amd.com/us/gpudownload/Pages/index.aspx.
Далее необходимо добавать в файл /etc/apt/sources.list
следующие строки. Файл надо открывать с помощью редактора nano
.
deb-src ftp://ftp.debian.org/debian wheezy main contrib non-free
deb ftp://ftp.debian.org/debian wheezy main contrib non-free
Сочетание non-free
говорит о том, что репозиторий не свободный.
Далее, ставим дополнительные пакеты:
#apt-get install module-assistant build-essential fakeroot dh-make debconf bzip2 libstdc++5 linux-headers-$(uname -r)
Затем, переходим в консоль Ctrl+Alt+F1, заходим в директорию с драйвером и запускаем установку:
sh ./amd-driver-installer-catalyst-version.run
Ну и reboot
в конце.
воскресенье, 14 июля 2013 г.
Как отобразить в админке Django поля, помеченные в модели как editable='False'?
В файле admin.py добавляем строчку в соответствующем классе:
readonly_fields=('field_name',)
где field_name
— имя поля, которое помечено, как editable='False' в модели.
Как создать foreign key на таблицу User в Django?
Для начала необходимо импортировать соответствующую модель:
from django.contrib.auth.models import User
Ну и собственно в самом классе добавляем поле со ссылкой на пользователя:
user = models.ForeignKey(User,)
среда, 3 июля 2013 г.
Aptana Studio
Скачал сегодня IDE Aptana Studio. Похожа на Eclipse, но получше. Импортировал проекты (те, что были сделаны в Eclipse). Поставил Mercurial (так же, как и в Eclipse). PeDev и WebPage редакторы в ней уже стоят по умолчанию. В репозиториях Debian ее по каким-то причинам нет, но она легко скачивается с сайта http://www.aptana.com. Первое впечатление положительное. Понравились темы. Вообщем, буду изучать.
воскресенье, 30 июня 2013 г.
Ошибка «Undefined variable from import»
Просматривая файлы компонента django-registration в файле registration/backends/default/views.py
обнаружил ошибку в строке:
if Site._meta.installed:
типа переменная _meta
не определена, хотя компонент django-registration в процессе работы ошибок не выдавал.
Лечение следующее: в Eclipse на строке нажать Ctrl+1
, и выбрать UndefinedVariable
.
Основы работы с архивами в Linux
В Linux в основном используется архиватор tar. Существует большое разнообразие команд для работы с архивами, но 2 команды используются наиболее часто. Ниже они представлены.
-
Упаковка содержимого текущего каталога в архив, с последующим удалением файлов:
$ tar -cvzf archive_name.tar.gz * --remove-files
где
c
— ключ для создания архива,v
— ключ для вывода списка файлов, которые упаковываются (что-то вроде прогресса выполнения),z
— указание использовать архиватор gzip,f
— ключ нужен для упаковки содержимого в файл,archive_name
— название архива,*
— означает, что нужно упаковать все содержимое текущего каталога,--remove-files
— ключ для удаления файлов после упаковки. -
Распаковка архива в каталог.
$ tar -xvf archive_name.tar.gz
Где ключ
x
означает команду распаковки архива.
суббота, 22 июня 2013 г.
Местоположение исходников Django в системе
Следующая нехитрая команда выводит полный путь к исходникам Django:
python -c " import sys sys.path = sys.path[1:] import django print(django.__path__)"
четверг, 20 июня 2013 г.
Как узнать, какой sql-скрипт сгенерирует Django?
Посмотреть, как в реальности создадутся таблички на основе модели приложения, можно с помощью следующей команды:
$ python manage.py sql app_name
, где app_name
— имя приложения.
Данная команда только покажет скрипт, но ничего не создаст.
Вывод полного пути к каталогу в Linux
Для вывода полного пути к текущему каталогу, служит команда pwd.
Запуск shell с окружением Django в Eclipse
Правой кнопкой мыши по проекту: Django -> Shell whith django environment
Фича полезная, должна пригодиться.
Настройка отправки писем в Django
Если письма не отправляются, надо залезть в settings.py
и проверить настройки. Вот работающий конфиг:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' DEFAULT_FROM_EMAIL = 'user@domain.com' EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.domain.com' EMAIL_HOST_USER = 'user@domain.com' EMAIL_HOST_PASSWORD = 'password' EMAIL_PORT = 587
где user@domain.com
— полное название вашего почтового ящика, а smtp.domain.com
— адрес smtp-сервера вашего хостера. К примеру у хостинга jino этот адрес выглядит так: smtp.jino.ru
.
среда, 19 июня 2013 г.
Отображение логина, имени и фамилии пользователя в шаблоне Django
Следующий простой код можно поместить в шапку базового шаблона:
{% if user.is_authenticated %}
<p>Вы вошли как {{ user.username }} [{{ user.first_name }} {{ user.last_name }}]. <a href="{% url "auth_logout" %}">Выход</a></p>
{% else %}<p>Вы не вошли в систему. <a href="{% url "auth_login" %}">Войти</a></p>
{% endif %}
Соответственно, user.username
— логин, user.first_name
— имя, user.last_name
— фамилия пользователя.
Подтверждение перехода по ссылке
Если нужно вызвать всплывающее окно с подтверждением перехода по ссылке, то необходимо написать код, подобный следующему:
<a href='http://it-tasks.blogspot.ru/' onclick='return confirm("Вы уверены, что хотите перейти по ссылке?")'>Текст ссылки.</a>
Собственно столкнулся с необходимостью подтверждения, когда сделал гиперссылку, которая вызывала представление в Django, которое в свою очередь удаляло запись в базе данных.
среда, 12 июня 2013 г.
Механизм сравнения файлов в Debian
Иногда бывает очень полезно сравнить 2 файла и увидеть, чем они отличаются. Для этого нужно установить механизм сравнения. Их много, я выбрал kompare. Установка простая:
# aptitude install kompare
Затем в файловом менеджере (к примеру, в Krusader) необходимо выделить 2 файла и выбрать пункт меню: Файл -> Сравнить файлы.
Ошибка NoReverseMatch в Django 1.5
При переходе с Django 1.4 на Django 1.5 обнаружил появление следующих ошибок:
'url' requires a non-empty first argument. The syntax changed in Django 1.5, see the docs.
Лечится ошибка заменой конструкции вида:
{% url url_name %}
на:
{% url "url_name" %}
Т. е. просто название url надо окружить кавычками.
вторник, 11 июня 2013 г.
Django South и ошибка "Table already exists"
Если при выполнении операции:
python manage.py migrate app_name
появляется следующая ошибка:
DatabaseError: (1050, "Table 'table_name' already exists")
, то необходимо произвести фейковую миграцию:
python ./manage.py migrate app_name --fake
понедельник, 10 июня 2013 г.
Ошибка при открытии файла под рутом в редакторе под иксами
Установил базовый дистрибутив Debian 7, установил mysql-server, после чего решил отредактировать файл my.cnf, чтобы не было проблем с кодировками. Но при вводе команды:
# gedit /etc/mysql/my.cnf
появляются следующие ворнинги:
(gedit:3684): EggSMClient-WARNING **: Failed to connect to the session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
** (gedit:3684): WARNING **: Could not connect to session bus
Поискав в гугле, так ничего и не нашел. Спросил в IRC-канале #debian-russian. Там ребята посоветовали использовать вместо gedit какой нибудь консольный редактор типа vim, mcedit либо nano.
Объяснили, что это происходит из-за того, что работая под иксами, приложение должно авторизоваться в иксах. Хотя в Debian 6 подобного не было.
пятница, 7 июня 2013 г.
Как выключить компьютер в Linux из терминала?
Команда для выключения вполне логичная:
shutdown -h now
Установка LibreOffice в Debian 7
Вообще сначала поставил OpenOffice, потом про него почитал, и стало понятно, что идеалогически более правильно поставить LibreOffice.
Установка следующая:
# aptitude install libreoffice
Также можно поставить русскую справку (вместе с которой поставится и русский язык интерфейса):
# aptitude install libreoffice-help-ru
четверг, 6 июня 2013 г.
Установка Dropbox в Debian 7
Для установки Dropbox в Debian x64 необходимо выполнить команду:
$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
Затем надо запустить демон Dropbox:
~/.dropbox-dist/dropboxd
Чтобы Dropbox автоматически запускался при старте системы необходимо запустить планировщик задач Cron
:
crontab -e
и добавить строку:
@reboot ~/.dropbox-dist/dropboxdВажно! Операции выше делаем от обычного пользователя, под которым вы работаете.
четверг, 23 мая 2013 г.
Запуск установки и удаления программ из командной строки
Когда необходимо удалить программу из-под учётной записи пользователя, необходимо вызвать утилиту «Установка и удаление программ», выполнив команду:
appwiz.cpl
от имени Администратора.
вторник, 21 мая 2013 г.
Вывод календаря в терминале Linux
В полку известных мне команд линукса прибыло! Команда cal
выводит в терминале красивый календарь. По умолчанию на текущий месяц.
Можно вывести любой месяц любого года, указав их в параметрах. К примеру команда:
$ cal 04 1982
показывает календарь апреля 1982 года. Также можно вывести календарь за целый год (указав год в качестве параметра).
Удаляем файл hiberfil.sys в Windows 7
Бывает, что место на диске C:\ закончилось внезапно, и где его взять не понятно. Вроде бы и темп почищен, да всё равно не хватает... Есть ещё один способ увеличить свободное место — отключить спящий режим и удалить файл hiberfil.sys. Для этого необходимо выполнить следующее:
Панель управления -> Электропитание -> Настройка перехода в спящий режим -> Переводить компьютер в спящий режим -> Никогда -> OK. Потом нужно создать батник с кодом: powercfg -h off
и запустить его от имени Администратора.
Чистка HTML от всякой гадости
Часто бывает необходимо получить «чистый» HTML-код из документа Word или Excel. Проблема в том, что сохраняя документ как web-страницу в коде мы находим много мусора: ненужные стили и прочую хрень. До недавнего времени я чистил такие файлы с помощью старенькой программы HomeSite, потом перешел на использование регулярных выражений в программе Notepad++. Давно думал написать какую-нибудь свою программу по чистке, да всё руки не доходили.
Но вот сегодня наткнулся на сайт: http://www.weare.ru/cgi-bin/clearhtml.cgi
Проверил, и приятно удивился — из загаженного документа на выходе появился чистенький HTML-код.
воскресенье, 19 мая 2013 г.
Выбираем бесплатную программу для составления карт памяти
Просмотрев большинство программ для составления карт памяти (mind map) обнаружил, что программы с хорошим функционалом являются платными. И стоят они не дешево. В бесплатных же версиях нельзя добавлять изображения к узлам. Что конечно же сразу уменьшает полезность программы. Но вот я наткнулся на программу Freemind. Свободная программа, в которой есть все, что мне нужно. Установка в debian предельно проста:
# aptitude install freemind
среда, 15 мая 2013 г.
Блокируем рекламу в Debian
Бывает реклама на сайтах ну очень раздражает... Но есть простой выход: можно установить дополнение для web-браузера xul-ext-adblock-plus. Простейшая установка:
# aptitude install xul-ext-adblock-plus
После установки необходимо перезапустить браузер. При первом запуске нужно подписаться на список фильтров. Во время просмотра web-страниц можно добавлять рекламные фреймы в фильтр, щелкнув по ним правой кнопкой мыши и выбрав соответствующий пункт.
вторник, 9 апреля 2013 г.
Как программно создать БД Access?
Это очень просто! Всего 2 шага:
- Добавить в проект ссылку на Microsoft.Office.Interop.Access
-
Microsoft.Office.Interop.Access.Application app = new Microsoft.Office.Interop.Access.Application ( ); app.NewCurrentDatabase ( path_to_db );
где
path_to_db
— путь к создаваемой базе данных Microsoft Access.
Обзор редактора «SQLite Database Browser»
Для многих знакомство с СУБД SQLite начинается с выбора редактора баз данных. Можно конечно писать запросы на создание таблиц «ручками» в консоли, но намного быстрее сделать это с помощью специализированного редактора.
«SQLite Database Browser» — простенький и бесплатный редактор СУБД SQLite. Ничего лишнего. Можно создать базу данных, наполнить её таблицами, выполнить запросы и посмотреть результат их выполнения. Из минусов, которые ощутил лично я: невозможно создать Foreign Key для таблицы. Минус достаточно ощутимый.
Установка в Debian довольно проста:
# aptitude install sqlitebrowser
Пользователям винды скачать его можно отсюда: http://sourceforge.net/projects/sqlitebrowser/.
суббота, 6 апреля 2013 г.
Настройки проекта в Qt
Чтобы в папке с проектом не было «каши» из кучи разных файлов, необходимо в файл project_name.pro
добавить следующие строки:
OBJECTS_DIR += obj UI_DIR += ui MOC_DIR += moc RCC_DIR += rcc UI_DIR += ui DESTDIR = bin
После чего каждый тип файла попадёт в свою папку. Что конечно же удобно.
суббота, 30 марта 2013 г.
Построение программы на Qt из консоли
Для того, чтобы лучше «прочувствовать» процесс создания приложения на Qt необходимо создать приложение из консоли, не используя никакую среду разработки. Также желательно использовать ОС семейства Linux.
Запускаем терминал, переходим в папку с проектом на Qt и создаём на основе файла проекта, зависимый от платформы файл makefile
:
qmake project_name.pro
Далее выполняем команду make
для построения программы:
make
Ну а теперь можно выполнить программу:
$ ./project_name
make: предупреждение: «Неправильный ход часов. Сборка может быть неполной»
При построении программы на Qt, могут появляться предупреждения вида:
make: Warning: File `Makefile' has modification time 62 s in the future
либо:
make: предупреждение: «Неправильный ход часов. Сборка может быть неполной»
Появление таких предупреждений при выполнении команды make
говорит о том, что время у вас на компьютере идёт неправильно. Неообходимо произвести синхронизацию с сервером времени.
Расстояние между абзацами в LaTeX
Чтобы задать необходимое расстояние между абзацами, необходимо использовать команду \parskip
. Пример использования показан ниже.
\setlength{\parskip}{0.5cm}
Как подключить стилевой файл в LaTeX?
Для подключения файла со стилями с именем file_name.sty
, который находится в одной папке с основным файлом tex
, необходимо в шапке написать:
\usepackage{file_name}
понедельник, 25 марта 2013 г.
Как контролу ToolStrip уменьшить ширину?
Чтобы элементу управления ToolStrip задать произвольную ширину, необходимо установить свойству Dock
значение None
. А затем уже как обычно задать ширину.
воскресенье, 24 марта 2013 г.
Надписи на русском языке в Qt
Первый проект на Qt, как водится «Hello, World». Всё по книге, запускается и работает. Но стоит написать фразу русскими буквами, как появляются крякозябры. Ну вот какого хрена... И кодировка стоит UTF-8, но всё равно. Для решения проблемы нужно сделать следующее:
Подключить QTextCodec
:
#include <QTextCodec>
и добавить 3 волшебных строчки в начало функции main
:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
Установка в Qt Creator кодировки по умолчанию
Не знаю почему, но в 21-м веке проблема с кодировками ещё не решена...
После создания проекта Qt необходимо настроить кодировку файлов проекта. Непонятно по какой причине, по умолчанию установлена кодировка System. Меняем её на UTF-8. Для этого в левом верхнем меню выбираем:
Проекты — Настройки редактора — Кодировка файла по умолчанию — UTF-8
После этого лучше сохраниться и перезагрузить проект.
Чем просматривать DjVu документы в Debian?
djview4 — отличный просмотровщик документов в формате DjVu. Для установки выполняем:
# aptitude install djview4
Как обновить Debian до новой версии?
Для обновления дистрибутива Debian до последней стабильной версии, необходимо последовательно выполнить команды:
# aptitude update # aptitude dist-upgrade
Как узнать версию дистрибутива Debian?
Команда:
$ lsb_release -a
Выводит на экран информацию, содержащую номер релиза и его кодовое имя. Пример:
No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 6.0.6 (squeeze) Release: 6.0.6 Codename: squeeze
Как узнать размер свободного места на дисках в Линуксе?
Команда df -h
выводит на экран отчёт об использовании дискового пространства. Ключ -h
нужен для представления размера в более понятной, человеческой форме.
суббота, 23 марта 2013 г.
Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере
Есть компьютер с 64-битной виндой. В свойствах проекта Visual Studio установлена конечная платформа x64. Необходимо подключиться к базе данных Access. Открытие подключения показано ниже:
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path_to_db); cn.Open();
где path_to_db
— путь к файлу с базой данных Access.
При попытке открытия подключения возникает ошибка:
Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере
Поискав в Интернете, нашел только следующее решение проблемы — в свойствах проекта установить конечную платформу x86:
Проект -> Свойства -> Построение -> Конечная платформа -> x86
Вообще, Access не лучший выбор для используемой СУБД. Лучше перейти на использование бесплатной SQLite.
четверг, 21 марта 2013 г.
Как склеить два столбца в селекте
Бывает необходимо в запросе объединить значения нескольких колонок таблицы. Как это сделать, подробно показано ниже:
select FIELD_NAME1 || ' -- ' || FIELD_NAME2 AS NAME FROM TABLE_NAME;
где FIELD_NAME1
— имя первого столбца, FIELD_NAME2
— имя второго столбца, NAME
— имя объединенного столбца, TABLE_NAME
— имя таблицы, ||
— операция склейки, ' --
' — значение-разделитель между значениями столбцов, может быть произвольным.
суббота, 16 марта 2013 г.
Как получить список полей заданной таблицы в Oracle?
Для получения списка полей таблицы, необходимо выполнить запрос:
select column_name from user_tab_columns where table_name = 'TABLE_NAME';
где TABLE_NAME
— имя заданной таблицы.
воскресенье, 10 марта 2013 г.
Определение словарного запаса
Для определения своего словарного запаса, можно абсолютно бесплатно воспользоваться сайтом: http://my.vocabularysize.com. Вначале регистрируемся и выбираем в настройках русский язык. Это не займет много времени.
Далее необходимо пройти тест, который состоит из 140 вопросов. В вопросе дается английское слово, фраза, которая его содержит и 4 варианта ответа на русском языке, а также вариант «не знаю». Если вы не знаете ответа, то лучше не гадать варианты, а выбрать вариант «не знаю» для более точного подсчёта словарного запаса.
После прохождения теста вам зададут несколько вопросов, после чего вам будет выдано общее количество слов, которое вы знаете. Мой словарный запас оказался равным 5500, что конечно же не так много, для нормального чтения книг на английском нужно знать примерно 9000 слов.
Также отмечу сайт http://www.wordfrequency.info/. Там можно добыть 5000 наиболее часто встречающихся английских слов.
четверг, 7 марта 2013 г.
AutoSizeRowsMode и адские тормоза
Время отрисовки грида зависит кроме всего прочего, еще и от того, как определяется высота строк.
В варианте ниже жуткие тормоза из-за того, что идёт расчёт высоты всех строк. Если строк много, то этот расчёт может оказаться долгим.
grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
Более быстрый и правильный вариант — определять высоту только тех ячеек, которые в данный момент отображаются на гриде. Совсем всё будет быстро, если использовать виртуальный грид, но об этом я напишу как-нибудь попозже.
grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;
Грамотная структура каталогов проекта
При создании нового проекта важно следить за порядком в папке с проектом и не допускать «свалки» в ней.
Рекомендуется создавать следующие папки:
- bin — хранение исполняемых файлов, dll;
- data — всё, что относится к созданию и модификации базы данных;
- docs — сюда помещаем технические задания, акты, и прочие документы;
- res — иконки, логотипы;
- src — хранение исходников.
среда, 6 марта 2013 г.
Запуск программы от другого пользователя в домене
Если злобный администратор домена отключил строку «Запуск от имени», при щелчке по ярлыку при нажатом Shift'е, можно воспользоваться командой runas
. Пример запуска программы Total Commander от другого пользователя:
>runas /user:user_name@domen_name "C:\Program Files\totalcmd\TOTALCMD.EXE"
где user_name
— имя пользователя в домене, domen_name
— имя домена.
Обновление политик в домене
Бывает, что политики на рабочей станции, подключенной к домену не обновляются, или обновляются через большой промежуток времени. Для принудительного обновления групповых политик, необходимо выполнить команду:
gpupdate /force
после чего необходимо перезагрузиться.
воскресенье, 3 марта 2013 г.
Смена пароля пользователю mysql
Иногда бывает необходимо изменить пароль пользователю mysql. Для этого необходимо выполнить от root:
SET PASSWORD FOR 'user_name'@'localhost' = PASSWORD('new_password');
где user_name
— пользователь mysql, new_password
— новый пароль.
пятница, 25 января 2013 г.
Программное объединение ячеек в Excel на C#
В задачах выгрузки данных в Excel часто бывает необходимо объединять диапазоны ячеек. Как это сделать показано ниже:
// Выделяем диапазон ячеек от A1 до A10 Excel.Range _excelCells = (Excel.Range)_excelWorkSheet.get_Range("A1", "A10").Cells; // Производим объединение _excelCells.Merge(Type.Missing);
где _excelWorkSheet
— лист Excel, типа Excel.Worksheet.
вторник, 22 января 2013 г.
HttpResponseRedirect и именованный url в представлениях django
Чтобы в представлении использовать url по имени, которое задано в файле urls.py необходимо использовать функцию reverse
, как показано ниже:
from django.core.urlresolvers import reverse def view_name(request): ... return HttpResponseRedirect(reverse('url_name', args=[arg_name]))
Выполнение sql-скрипта из файла
Если необходимо выполнить много команд, то лучший способ — сохранить команды в файле, а затем выполнить:
mysql -u user_name -p db_name < file.sql
где user_name
— пользователь СУБД mysql, db_name
— база данных, к которой необходимо применить операции из файла file.sql
.
понедельник, 21 января 2013 г.
Подготовка рабочей станции в Debian 6 к web-разработке на Django
Как подготовить базовую рабочую станцию на Debian, я рассказывал в статье. Ниже я описываю подготовку рабочей станции к началу web-разработке.
Устанавливаю и настраиваю СУБД:
-
В начале устанавливаю сервер mysql:
# aptitude install mysql-server
В ходе установки будет необходимо ввести пароль root'a.
-
После установки сервера mysql необходимо отредактировать файл my.cnf, для того, чтобы не было проблем с кодировками:
# gedit /etc/mysql/my.cnf
В секцию [mysql] добавляю:
default-character-set=utf8
В секцию [mysqld] добавляю:
character_set_server = utf8 collation_server = utf8_general_ci
-
Необходимо перезагрузить компьютер:
# reboot
-
Подключаюсь к mysql под root'ом:
mysql -u root -p
Проверяю, что кодировка MySql правильная:
mysql> show variables like 'char%';
Должны получить следующий результат:
+--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.01 sec)
Ставим пакеты, необходимые для работы:
-
Система контроля версий Mercurial:
# aptitude install mercurial
-
Среда для разработки Eclipse:
# aptitude install eclipse
Установка основных необходимых пакетов завершена. Можно перезагрузиться, а затем установить различные «примочки» для Eclipse:
PyDev for Eclipse:
Help — Install New Software — Add — Location
: http://pydev.org/updates. Примочка позволит использовать Python в Eclipse.-
Mercurial for Eclipse:
Help — Install New Software — Add — Location
: http://cbes.javaforge.com/update. Примочка позволит использовать систему контроля версий Mercurial в Eclipse. Внимание! Необходимо ставить не последнюю версию, а ту, которая будет совместима с текущей версией Mercurial. -
Web Page Editor:
Help — Install New Software — Add — Location
: http://download.eclipse.org/releases/galileo/. Гдеgalileo
— название версии Eclipse. Примочка позволит создавать и редактировать web-документы в Eclipse.
Различные настройки Eclipse. Почему они по умолчанию не установлены — совершенно не понятно.
-
Убираю раздражающие подчёркивания:
Window — Preferences — General — Editors — Text Editors — Spelling — Enable spell checking
— убираю галочку. Показываю Project Explorer, по умолчанию он почему-то скрыт:
Windows — Show View — Other — General — Project Explorer
.
Необходимо поставить песочницу virtualenv, и уже в ней ставить Django и необходимые примочки.
-
Для полноценной работы virtualenv необходимо поставить пакеты:
# apt-get install python-setuptools python-dev build-essential
-
Виртуальное окружение ставлю именно через easy_install:
# easy_install -U virtualenv
-
Создаю папку с проектом (
/home/user_name/workspace/project_name/
), а в ней — рабочее окружение:$ virtualenv --distribute env
-
Активирую виртуальное окружение:
~/workspace/project_name/env/bin$ . activate
-
Ставлю ещё одну библиотеку:
# apt-get install libmysqlclient-dev
-
Внутри песочницы ставлю последнюю версию фреймворка Django:
$ pip install Django
-
Библиотека для работы с MySQL:
$ pip install MySQL-python
-
Приложение South, облегчающее работу с базой данных. Подробности использования.
$ pip install south
-
Приложение для регистрации пользователей:
$ pip install django-registration
четверг, 10 января 2013 г.
Формат даты в шаблоне Django
По умолчанию дата в шаблоне django отображается в формате: 3 января 2013 г.
Для вывода значения даты в формате DD.MM.YYYY необходимо набрать:
{{ value|date:"d.m.Y" }}
где: value
— выводимое значение даты, а "d.m.Y"
— формат даты.
Фильтрация объектов в модели Django по годам
У нас есть модель, которая содержит поле типа «дата». Для выбора всех записей, относящихся к определенному году, необходимо выполнить следующую команду:
list_value = model_name.objects.filter(field_date__year = year)
где: list_value
— список для хранения результатов выборки, model_name
— модель, данные которой нам необходимы, field_date
— поле модели, типа «дата», year
— переменная, хранящая год, к примеру 2013.