29 Sep

PHP və MySQL-də unicode probleminin həlli

PHP-də ana dilimizdə sayt yaradanların tez-tez qarşılasşdığı cansıxıcı problemlərdən biri azərbaycan dilinə məxsus simvolların evezinə sual işarələrinin (????) çıxmasıdır. Bunun qarşısını almaqçün internetdə çoxlu üsullar təklif olunsa da çox təssüf ki, onların hamısı özünü doğrultmur.
Bes bu problemi həll etmək üçün nə etməli?
İlk öncə biz saytımızın əsasını təşkil edəcək mətni UTF8-də saxlamalıyıq. Əgər Notepad++ istifadə edirsinizsə (məslət görürəm ki, istifadə edəsiniz=) format menyusundan UTF-8 without BOM seçin. UTF-8 bir çox dilləri dəstəklədiyi üçün daha çox istifadə olunur (UTF8-də olan səhifələrin ölçücə daha iri olmasına baxmayaraq). Dünyanın müxtəlif ölkələrinin blog yazarlarının rahat işləyə bilməsi üçün WordPress də ondan istifadə edir.
HTML kodlarını yazarkən tagları arasına

1
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

meta tagını əlavə etməyi unutmuruq. Və ya

1
header('Content-type: text/html; charset=utf-8');

funksiyasını işlədin. Read More

19 Sep

Gmail и Ruby.

Этот пост будет посвящен написанию программы на Ruby, которая даст возможномть проверять почту за программной консолью, не пользуясь браузером или иными какими либо почтовыми приложениями. Нужен будет лишь установленный Ruby. В англоязычной литературе много примеров с использованием различных gem-ов, но рунете найти подобные описания не удалось да и особо копаться не хотелось. Ибо Ruby насколько динамичный язык, что покопавшись только в его мануалах и усвоив синтаксис языка, можно писать небольшие приложения. В данном примере используеться обычный gem “net/pop” и пару строк программного кода. Но для начала надо активировать доступ pop в настройках gmail.

require 'net/pop' #Подключаем gem

username = 'Логин@gmail.com' #Вводим логин
password = 'Пароль' #Вводим пароль

Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) #Открываем доступ SSL
mail_server = Net::POP3.start('pop.gmail.com', 995, username, password) #создаем обьект и присваеваем ему значения

begin #здесь начинается основной код

if mail_server.mails.empty? #В случае отстутвии писем

puts "No mails"

else

puts "#{mail_server.mails.length} mails waiting" #Общее количество писем

end

#Здесь можем вставить какой либо метод для обработки наших сообщений.
#К примеру:

mail_server.mails.each do |mail| #Применяя метод each для каждого письма выводим его содержание загаловка.
p mail.header
end

rescue

puts "Mail error" #Если что-то пошло не так.

end

Read More

16 Sep

Установка KDE 4.5.1 на Ubuntu 10.04

Как известно, 31 августа этого года состоялся релиз KDE 4.5.1. Про особенности можно почитать тут. Собственно, я сидел на Gnome. Экспериментально решил попробовать KDE. Цепочка дальнейших действий для установки KDE на Ubuntu 10.04 c Gnome:
Добавляем репозиторий:

1
sudo add-apt-repository ppa:kubuntu-ppa/backports

Обновляем репозитории:

1
sudo apt-get update

Скачиваем:

1
sudo apt-get install kubuntu-desktop

Read More

07 Sep

XSS в Rails 3.

Много нового появилось в версии Rails 3.
Изменения коснулись буквально всех его частей, начиная с использованием новый версии ruby выше 1.8.7,  командный код (script/server), больше не приходиться возиться с конфигами gemov (включен Bundler)изменения в Action Pack, новой валидацией (новые правила написания кодов валидации), изменения в rout.rb, улучшена генерация scaffold, добавлены javascript, изменен rake и многое другое. Некоторые из них существенно не отличаются, но быстроту и эффективность написания кода явно увеличили. Одним словом, чуть облегчена жизнь разработчика. Особо переходить пока на 3 версию не рекомендуется, но поэкспериментировать с ним можно, для дальнейшего перевода своих проектов на него.
Изменена и встроенная защита от XSS-атак. А именно, если в версиях 2.3.х в файлах View нужно было не забывать дописывать:

1
 <%= h ... %>

то в Rails 3 можно смело менять его на:

1
<%= ... %>

Подробнее на картинке(кликабельна для увеличения).
А еcли же в некоторых случаях нужно вводить какой либо код, то вместо “h” нужно вписать “raw”.