require 'raspell'
require 'kconv'
require 'jcode'
$KCODE = 'u'
speller = Aspell.new("en_EN")
speller.suggestion_mode = Aspell::NORMAL
speller.set_option("encoding", "utf-8")
word = "tezt"
p word # => "tezt"
p speller.check(word) # => true
p speller.suggest(word) # => ["test", "text"]
Основная задача блога - стать стартовой платформой для начинающих разработчиков, здесь не только буду писать свои статьи, но также буду выкладывать полезные ссылки которые помогут разобраться в разных вопросах. Будут затронуты темы: Ruby on Rails, PHP, MySQl, CodeIgniter, JQuery.
вторник, 31 августа 2010 г.
Ruby. Raspell example
пятница, 27 августа 2010 г.
Postgres. Создание новой БД, если ее кодировка не совместима с кодировкой базы-шаблона
Если вы начинающий пользователь в Postgres, то при создании новой БД (например в кодировке UTF8), часто вылазит ошибка:
Которая означает, что кодировка базы - несовпадает с кодировкой шаблона (например UTF8 и WIN1251).
Для решения проблемы (для UTF8), используйте SQL:
ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (WIN1251)
HINT: Use the same encoding as in the template database, or use template0 as template.
Которая означает, что кодировка базы - несовпадает с кодировкой шаблона (например UTF8 и WIN1251).
Для решения проблемы (для UTF8), используйте SQL:
CREATE DATABASE db_name WITH template=template0 encoding=6
среда, 25 августа 2010 г.
JavaScript ошибка в IE при использовании переменной с именем item
Сегодня обнаружил прикольный баг IE - непонятно почему выпадал эксепшин на странице (строго под IE).
В ходе дебага выяснилось, что причиной недовольства господина IE была переменная с именем item. Хотя она и не состоит в списке зарезервированных имен javascript.
Предельно внимательно относитесь к именам переменных в javascript. Проверяйте скрипты на кросс-броузерность.
В ходе дебага выяснилось, что причиной недовольства господина IE была переменная с именем item. Хотя она и не состоит в списке зарезервированных имен javascript.
Предельно внимательно относитесь к именам переменных в javascript. Проверяйте скрипты на кросс-броузерность.
пятница, 13 августа 2010 г.
Thinking Spinx. Разрешить использовать спец. символы в строке поиска
Если в ключевике понадобится использовать спец. символы (например найти товары по тегу Б\У) то поиск будет работать неправильно.
В случае когда ключевое поле содержит такие символы - их надо прописать как разрешенные в конфиг-файле /config/sphinx.yml (добавить для каждого блока и потом перезапустить сам sphinx):
Для того чтобы экранировать символы в строке поиска используйте класс который устанавливается вместе с плагином:
Который экранирует те символы которые не поддерживаются
В случае когда ключевое поле содержит такие символы - их надо прописать как разрешенные в конфиг-файле /config/sphinx.yml (добавить для каждого блока и потом перезапустить сам sphinx):
development:
...
charset_table: "0..9, A..Z->a..z,a..z, _, -, /, @, !, $, %, ^, &, (, ), +, `, ~, #"
production:
...
charset_table: "0..9, A..Z->a..z,a..z, _, -, /, @, !, $, %, ^, &, (, ), +, `, ~, #"
Для того чтобы экранировать символы в строке поиска используйте класс который устанавливается вместе с плагином:
Riddle.escape(str)
Который экранирует те символы которые не поддерживаются
четверг, 12 августа 2010 г.
Rails. Проблема установки Curb gem под Ubuntu
Если возникает ошибка при установки гема curb:
Необходимо установить следующий пакет и попробовать заново:
gem install curb
Необходимо установить следующий пакет и попробовать заново:
sudo apt-get install libcurl4-openssl-dev
вторник, 10 августа 2010 г.
JavaScript replace
Пример демонстрирует как заменить подстроку в строке:
в результате получим строку: "test,lemon,cherry,apple,etc"
Получим:"test,lemon,cherry,test,etc"
Получим:"test,lemon,cherry,test,etc"
str="apple,lemon,cherry,apple,etc"
str = str.replace(/apple/, "test")
в результате получим строку: "test,lemon,cherry,apple,etc"
Заменило только первое вхождение. Для глобальной замены по всей строке, используется ключик глобал для регулярного выражения - "g":
str="apple,lemon,cherry,apple,etc"
str = str.replace(/apple/g, "test")
Получим:"test,lemon,cherry,test,etc"
Если необходимо чтобы регулярное выражение было нечувствительное к регистру символов:
str="Apple,lemon,cherry,apple,etc"
str = str.replace(/apple/gi, "test")
Получим:"test,lemon,cherry,test,etc"
понедельник, 9 августа 2010 г.
Linux. Узнать конфигурацию компьютера
Процессоры:
# cat /proc/cpuinfo
Объём оперативной памяти:
# free
Список PCI устройств и мостов:
# lspci
Список USB устройств
# lsusb
Вывести размер, а так же свободное и занятое место на всех смонтированных файловых системах.
# df -h
Размер папок в текущей директории (выберите через cd нужную директорию которую надо просканировать)
#du --si --max-depth=1
Размер папок и файлов в текуще директории
#ls -lh
*(ключик -h означает humanise - вывести инфо в "читабельном" виде)
# cat /proc/cpuinfo
Объём оперативной памяти:
# free
Список PCI устройств и мостов:
# lspci
Список USB устройств
# lsusb
Вывести размер, а так же свободное и занятое место на всех смонтированных файловых системах.
# df -h
Размер папок в текущей директории (выберите через cd нужную директорию которую надо просканировать)
#du --si --max-depth=1
Размер папок и файлов в текуще директории
#ls -lh
*(ключик -h означает humanise - вывести инфо в "читабельном" виде)
вторник, 3 августа 2010 г.
Bash. Построчное чтение файла и разбивка строк с использованием делимитера
В посте постараюсь описать алгоритм построчного чтения текстового файла и разбиение его строк на части.
Допустим мы имеем текстовый файл такой структуры:
Пример просто для наглядности, пароли хранить так не безопасно.
Рассмотрим детальнее:
- цикл читает файл построчно, сохраняя текущую строку в переменной line
- IFS=";" выставляем делимитер разбивки (в нашем случае ";")
- set -- $line - разбиваем строку, после чего каждая ее часть будет доступна как $1, $2, ...
Допустим мы имеем текстовый файл такой структуры:
...
username1;password1
username2;password2
username3;password3
...
Пример просто для наглядности, пароли хранить так не безопасно.
#!/bin/bash
while read line ; do
IFS=";"
set -- $line
username=$1
password=$2
echo -e "$username->$password\n"
done < filename.csv
Рассмотрим детальнее:
- цикл читает файл построчно, сохраняя текущую строку в переменной line
- IFS=";" выставляем делимитер разбивки (в нашем случае ";")
- set -- $line - разбиваем строку, после чего каждая ее часть будет доступна как $1, $2, ...
Подписаться на:
Сообщения (Atom)