Авг 29

За последние полтора года зп PHP программеров изрядно подросли. В Москве уже не так редка сумма превышающая 2500 $. А удаленно предлагают 1000$ для начинающего студента, 1500$ для человека кто разберется в какой нибудь CMS или сможет сопровождать движок магазина, 2000$ предлагают за удаленную работу высококласного PHP программиста.

Это просто праздник какой-то (ц) Карабас-Барабас

автор: \\ теги: ,

Июл 21

По причине того что поисковики выдают много мусора на запросы типа Курсы Java или Обучение Oracle.
Вобщем публикую, может кому пригодится:
http://www.avalon.ru/
http://www.microinform.ru/
http://www.specialist.ru/
http://academy.it.ru/
http://edu.softline.ru/
http://www.academy.ru/
http://www.hth.kz/
http://www.sibinfo.ru/
http://www.cift.ru/
http://www.redcenter.ru/
http://www.limtu.spb.ru/
http://www.education.ru/
http://www.fors.com/
http://www.ucit.ru/
http://www.konto-spb.ru/

Список никак не ранжирован.

автор: \\ теги: ,

Июл 17

Не помню как забрел на блог Ивана Склярова, но читать мне его понравилось.

И в одном из постов Иван предлагает бесплатно взять скрипт генерации капчи http://www.sklyaroff.ru/comm.php?mess=8

И вот что я ему написал в коментарий:

2008-07-11 08:41:23 e64f пишет:
Добрый день!
Ваша капча картинка относится к разряду примитивных.
Могу на спор сделать программу распознавалку ваших картинок за 2 дня.
Если интересует, то вот инфо для связи
————————————–
Почта: VMatvienko@gmail.com
Сайт: vmatvienko.foxhole.ru
С уважением Матвиенко Валерий.

На что последовал ответ:

Напиши, посмотрим.

Заняло это правда чуть больше 2 дней, по причине того, что большой загруз на работе.

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

О тонкостях реализации пожалуй умолчу. )

Вот видео 2 мб. captcha.avi с доказательством.

Еще хочу сказать, что делал все это я не один, а нас сейчас двое, наши ники e64f и nman.

автор: \\ теги: ,

Июн 17

Буквально 3 дня назад имел счастье поразбираться (полазить по кодам) – такое случается редко, и после подобных разборок довольно хорошо поднимается экспириенс. А что еще нужно программисту кроме регулярного поднятия уровня опытности!?

Описание диспозиции

Есть форма, в этой форме есть поле для ввода даты/времени, для удобства ввода прикручена к этому полю JavaScript библиотека JSCalendar (симпотичный и удобный выпадающий календарик)

По сабмиту дата/время вставляется в таблицу в виде UnixTime, для конвертации в формат UnixTime использую следующую функцию

function format_to_unixtime($t)
{
   list($date, $time) = split(' ', $t);list($day, $mon, $year) = split("/", $date);
   list($hour, $min) = split(':', $time);    return mktime($hour, $min, 0, $mon, $day, $year);
}

Для работы с базой данных MySQL использую библиотеку Дмитрия Котерова DBSimple.

Проблема

Проблема состояла в том, что когда просматривал список записей, даты отличалась от тех которые вводил на 6 часов.

Сложилось стойкое впечатление, что на каком-то этапе к дате плюсутся 6 часов из за смещения по гринвичу.

Следующий тестовый пример показал что дело в функции mysql FROM_UNIXTIME

include_once('conf.php');
include_once('lib/dbsimple/mysql.php');
//Подключаемся в MySQL
$db = DbSimple_Generic::connect("mysql://".$mysql_user.":".$mysql_passwd."@".$mysql_host."/".$mysql_db);
// Устанавливаем обработчик ошибок MySQL.
$db->setErrorHandler('databaseErrorHandler');
$db->setIdentPrefix($mysql_table_prefix);

$dt = '18/06/2008 10:10';

$db->query("insert into test (dt) values (?)", format_to_unixtime($dt));

echo $dt."
";
echo format_to_unixtime($dt)."
";

$recs = $db->select("select id, dt, FROM_UNIXTIME(dt, '%d/%m/%Y  %H:%i') ddt from test");
print_r($recs);

function format_to_unixtime($t)
{
list($date, $time) = split(' ', $t);
list($day, $mon, $year) = split("/", $date);
list($hour, $min) = split(':', $time);

return mktime($hour, $min, 0, $mon, $day, $year);
}
?>

18/06/2008 10:10
1213783800
Array
(
[id] => 1
[dt] => 1213783800
[ddt] => 18/06/2008 16:10
)

А вот что написано на странице http://dev.mysql.com/doc/refman/6.0/en/date-and-time-functions.html

FROM_UNIXTIME() functions return values in the connection’s current time zone, which is available as the value of the time_zone system variable.

Вывод: читать документацию надо чаще.

автор: e64f \\ теги: , ,

Май 26

Про пакет программ Дмитрия Котерова Denwer, встречал упоминания много раз. В этом месяце наконец случилось, взял на вооружение.

Денвер оказался очень удобной штукой, если его ставить на флешку. Считай что веб. сервер в кармане: apache, mysql, php – все настроено, и уже работает после запуска файла Run.exe на любом компьютере, даже где этот денвер не ставился. Например, у  заказчика вставил флешку, кликнул по Run.exe и можно уже обращаться по доменному имени проекта, кстати очень понравилось, что домены(проекты), вернее не не так, достаточно создать папку www.project.ru, а внутри ее в папке www создать index.php, перезапустить денвер, как уже в браузере можно обращаться к этому домену.

Есть еще какой то интересный наворот в виде сборщика отправляемой сайтом почты, но это я пока не опробовал.

Рекомендую !!! Взять безвозмездно можно на http://dklab.ru/

автор: \\ теги: , , ,

Апр 15

Значит ситуация такая, есть у меня на работе замечательная программы 1С-архив. Использует она в качестве СУБД MSSQL. Собственно я это все хозяйство не сопровождаю, но есть на нашем внутреннем сайте отчеты по исполнению заданий, данные этих отчетов берутся из MSSQL.

Отчеты имеют параметрами:
Автора задания;
Исполнителя;
две даты;
Исполнение: Просрочено/Вовремя/Все;
Состояние: В работе/Выполнено/Все.

Все прекрасно работало!

Звонит значит мне админ 1С-архива, через много месяцев работы отчетов и просит зайти к нему.

А дело оказалось в том, что при обращении к хранимой процедуре с опр. параметрами выдавалось 3 записи в браузере (PHP, Apache, Solaris). А с теми же параметрами в программе MS SQL Server Management Studio (Windows XP)выдавалось четыре записи.

Реальный такой полтергейст.

Для чистоты эксперимента распечатал переменную SQL в браузере, в MS SQL Server Management Studio также 4 записи, а в браузере 3.

Ппц.

Посмотрели логи сервера, запросы попадающие серваку идентичны. Много было высказано в адрес Microsoft…

Решение

Причина была в том, что сравнение дат давало сбой. В SQL даты передавались строково и преобразовывались CONVERT(SMALLDATETIME, @FromDate) где @FromDate – строка

А нужно было

CONVERT(SMALLDATETIME, @FromDate, 104)

Применение данной функции было в нескольких местах, и только в одном месте допущена опечатка.

Зы. Процедуру писал не йааа 🙂

автор: \\ теги: , ,

Мар 18

Сейчас потихоньку настают времена, когда многие обзаводятся карманными средствами интернет связи, ведь удобно иметь почту в кармане да еще и браузер.

Так вот насчет браузеров, вернее о сайте (PDA) оптимизированном  для карманного девайса сейчас и поведу речь. Хм. в принципе обычные сайты, почти нормально просматриваются в карманном устройстве, особенно после того как я установил опцию резать страничку на 3 полосы и показывать в 1 столбец, результатом этого стало то, что исчезла необходимость в горизонтальной прокрутке. Так вот отличия по пунктам, которые повысят комфорт.

1) Разрешение экрана у мобильных устройств гораздо меньше, чем у настольного монитора обычно 320 х 240

Из этого следует что …

– картинки должны быть по ширине не больше 240 px

– трехколоночная и даже двух колоночная верстка шаблона страницы не нужна. Долой табличную вестку!

– вестку на DIV -ах тоже долой

– элементы форм ввода должны тоже вписываться в размер экрана, горизонтальная прокрутка это просто ужас

– а как же верстать? да очень просто: Текст, картинка(лучше кстати совсем без картинок, в крайнем случае логотип и все), ссылки – все это с использованием тегов: p, br, h1-h6, a, img, b, i. Никто не запрещает использовать стили и javascript, а оно надо?

2) Кстати насчет javascript, на PDA устройстве никогда не возникнет событие повешенное на наведение курсора на объект

– потому, что  курсора то нету, есть стилус который позиционируется не касаясь экрана, а прикосновение к экрану это уже onclick

 3) Еще насчет javascript, сдается мне не все js-коды  прекрасно работающие  на ПК будут работать на PDA

– где бы раздобыть список работающего хотя бы для пэдэашных IE и Opera?

– есть ведь еще много экзотических браузеров, которые вообще не поддерживают javascript

В последних строках поста отсылаю к статье на буржуйском языке

Make your site mobile friendly 

http://www.thinkvitamin.com/features/css/make-your-site-mobile-friendly

автор: \\ теги: , , ,

Мар 13

Ниже приведенный php код не печатал адекватно русские буквы

$im = imagecreate(140, 50);
imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
$txt = "Привет";
imagettftext($im, 12, 0, 45, 15, $text_color,'verdanab.ttf', $txt);
imagepng($im);

Пробовал заставить работать по разному, скармливал например в UTF, windows-1251, KOI8-r кодировках, ничего не помогло.

Вспомнил, что на сайте работает библиотека jpgraph, которая выводит всякую графику для анализа в виде а-ля Excel. Данная библиотека также как и вышеприведенный код, генерирует графику через GD. Там на графиках русский был читабельный.
Начал раскопки …

function iso2uni ($isoline)
{
   $isoline = convert_cyr_string($isoline, "w", "k");
   $isoline = convert_cyr_string($isoline, "k", "i");
   for ($i=0; $i < strlen($isoline); $i++) { $thischar=substr($isoline,$i,1); $charcode=ord($thischar); $uniline.=($charcode>175) ? "&#".(1040+($charcode-176)). ";" : $thischar;
   }
   return $uniline;
}

В итоге, пропустив текст через функцию, на картинке был уже читаемый текст.

ЗЫ. Я так понимаю, что у многих людей таких проблем не возникает, т.к. в интернете по форумам подобного решения не видел, обычно у людей проблема в том, что библиотеки не установлены.

Также стоит задуматься о, покупке огнетушителя в киеве

автор: e64f \\ теги: , ,

Мар 04

1) Самая первая ссылка на материал из Википедии

http://ru.wikipedia.org/wiki/%D0%AD%D0%BD%D0%B8%D0%B3%D0%BC%D0%B0

Особенно порадовало, что там кроме всего прочего дано математическое описание.

2) Прокт Открытые Системы – статья “Тайны проекта ULTRA”

http://www.osp.ru/os/2003/07-08/183294/

Про взломщиков Энигмы.

3) Страница Википедии посвященная Алану Тьюрингу

http://ru.wikipedia.org/wiki/%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%2C_%D0%90%D0%BB%D0%B0%D0%BD

4) Симулятор шифровальной машины (можно покрутить колесики настроек онлайн)

http://enigmaco.de/enigma/enigma.html

5) Посмотреть фотографии самой машины и ее отдельных деталей

http://www.jproc.ca/crypto/enigma.html

6) Назвать текст следующей ссылки статьей язык не поворачивается, но и книгой не назовешь. Хм, наверное описание (на английском)
The Enigma cipher machine

автор: \\ теги: ,

Фев 29

Создания .htaccess файлов онлайн.

Порой действительно очень нужная вещь 🙂

автор: \\ теги: ,