Авг
26
Опубликовано 26 Авг 2009
Рубрика: Программирование, Разработка | Автор: inst
Логотип SQLite

Начиная с последней на сегодня версии интерпретатора PHP 5.3.0 в его стандартную поставку был внедрён новый класс под названием SQLite3. Сама библиотека SQLite обладает большим потенциалом в сфере не очень больших web-разработок, так как имеет сравнительно высокую скорость работы. Несомненным плюсом для таких проектов является и то, что фактически вся база хранится в одном файле, рядом со всеми остальными файлами. Это сказывается как на удобстве портируемости, так и на том, что формально функция защиты базы переносится на файловую систему — как минимум придётся запоминать меньше паролей. Учитывая все эти и многие другие плюсы, а также со взглядом на будущее, когда новая версия интерпретатора PHP будет внедрена на большинстве серверов, я решил написать небольшой урок о том, как работать с базой данных третьей версии формата, а заодно и узнать у более опытных, всё ли правильно я усвоил из документации.

Все подобные уроки, что я видел ранее основываются на работе с встроенными функциями sqlite_*, однако сразу скажу, что они уже давно устарели, ибо для работы используют формат SQLite 2.

Читать полностью »

1 отзыв    Далее   
Авг
24
Опубликовано 24 Авг 2009
Рубрика: Разработка | Автор: inst

Господа программисты, это сообщение целиком и полностью я хотел бы адресовать Вам. И с самого его начала я поставлю вопрос ребром: почему нет русскоязычного ресурса по GTK+? Хотя бы какого-нибудь жалкого форума! Максимум, что я встречал в рунете – какой-нибудь раздел о всём, что связано с GTK на форуме каких-нибудь линуксоидов. И это в то время, как даже такой новичок как Ruby-фреймворк Rails уже давным-давно обзавёлся своим форумом. Каким образом можно расширять пользовательскую базу инструментария GTK+, если новичкам просто негде задать вопрос?! Приведу себя в пример: я без проблем могу читать документацию на английском и пойму весь смысл, который хотел до меня донести её автор, однако сказать что-то на всё том же английском — для меня достаточно проблематичная задача. Почему за столько лет существования GTK+ так и не обрёл русскоязычного ресурса. А ведь по сути GTK+ не сильно-то и хуже Qt (если вообще хуже)!

Да, я понимаю, что сравнивать Qt и GTK+ не совсем граммотное дело, хотя бы потому, что первый — расширение C++, а тема сообщения — чистый C. Но в самом-то деле, ведь не зря же они решают практически одинаковые задачи, а то, что нельзя решить на GTK+, легко решается ещё каким-нибудь инструментом. Пример тому — GTK+ как оболочка для GUI программы и cURL для работы с сетью. И разработчики поступили так не зря! Пускай шведская команда haxx оттачивает cURL, а команда GTK+ займётся в это время улучшением API своего детища. Все в выигрыше и каждый занимается тем, что ему нравится.

Отличная документированность и куча примеров без сомнения большой плюс для Qt, но минусом я считаю то, что это C++ – трудность создания биндингов для других языков – и то, что это KDE, в то время, как самый популярный дистрибутив Linux (Ubuntu) использует GNOME.

Суть этого поста пожалуй уже ясна, но я таки озвучу её. Я бы хотел сделать профильный ресурс по GTK+ (для начала всего лишь форум, а дальше будет видно) и ищу поддержку среди заинтересовавшихся. Мне кажется, такого сайта сильно не хватает рунету. Я предлагаю всем заинтересовавшимся написать в комментариях к этому сообщению то, что Вы думаете по этому поводу. Думаю, если наберётся хотя бы 10 человек готовых развивать такой сайт, то мои страдания не прошли даром. Впрочем, в противном случае думаю тоже можно сделать правильные выводы, ведь если у GTK+ не наберётся и 10 поклонников, значит профессионалы действительно не заинтересованы в его развитии.

Авг
23
Опубликовано 23 Авг 2009
Рубрика: Паутина, Разработка | Автор: inst

Хочу приподнести моим дорогим читетятелям очередной подарок. За эту работу на free-lance.ru, кажется, просили не менее $100, а о качестве в то же время не было и слова. В общем, не знаю, кому и зачем это надо, но задание показалось мне достаточно интересным, чтобы я выполнил его бесплатно, хоть и прошло довольно много времени. Впрочем, об этом Вы узнаёте первыми и о полезности обработанной мной информации судить скорее всего тоже только Вам.

Gismeteo

После реформации сайта Gismeteo (сайта погоды) на нём изменились ID городов, а так как по этим ID работает невероятно большое число программ (к примеру, плагин погоды в Miranda под Windows), думаю, я сдалал всё-таки важное дело. Я получил список в формате «Название_города;Старый_ID;Новый_ID», а уж его-то можно без труда привести к любому виду. Так как база была составлена на основе давным-давно полученного полуофициальным путём списка городов со старыми ID (они тогда ещё были актуальны), то в ней сейчас более 4500 городов (подозреваю, что после реформации их могло стать и больше). Мне надо было лишь немного поопрашивать сайт Gismeteo, чтоб он вернул мне новые ID вместо старых. Для 5 городов, кстати говоря, новых идентификаторов Gismeteo не определил — похоже на то, что для них теперь погода вообще не предоставляется.

Читать полностью »

Авг
14
Опубликовано 14 Авг 2009
Рубрика: Паутина, Разработка | Автор: inst

Встала задача: отличить GET-запросы к серверу Apache от POST и в зависимости от результата перенаправить на нужную страницу.

Двоеточие, слэш, слэш

Для тех, кто только начинает разбираться в web-разработке, объясню разницу. Интерактивность страниц — одна из основополагающих частей современного интернета, эту самую интерактивность нам обеспечивает обмен данными между пользователем и web-страницей. Разработчики протокола HTTP много лет назад позаботились о том, чтобы существовало несколько способов передачи информации. Так вот, разница между POST и GET элементарна: при GET-запросе мы видим то, что ввели ранее в строке заголовка, а POST предусматривает скрытую передачу этой информации, так что как правило для логина на большинстве сайтов вполне логично используется именно POST.

Если говорить о случаях, когда может понадобится различать эти 2 типа, то это, например, желание заблокировать GET-доступ к странице в пользу POST. Такое блокирование используется в XML-RPC. В некоторых случаях при разграничивании POST и GET, думаю, даже можно снять некоторую нагрузку с сервера.

Читать полностью »

Авг
09
Опубликовано 09 Авг 2009
Рубрика: Разработка | Автор: inst

Хоть я и не настолько старый блогер, я, тем не менее, уже столкнулся с проблемой некрасивых смайлов в WordPress по умолчанию. Думаю многие согласятся со мной в том, что смайлы в WordPress немного ужасненькие и я решил заменить их на колобков. Между делом, автор колобков утвеждает, что единственное их отличие от всех остальных — это то, что в них есть наша русская душа. Что ж, для начала как обычно взялся погуглить, но найти ничего толкового так и не удалось. Видимо я единственный на планете человек, считающий, что в моём блоге смайлы должны быть красивыми.

Первым делом определился из какого набора делать замену — хорошей подборкой мне показались колобки mini, так как они практически соответствуют размерам оригинальных смайлов WordPress. Далее настал крапатливый труд. К сожалению абсолютно все смайлы заменить не удалось: некоторым ещё не существует замены. Не нашёл я замену смайлам:

  • icon_arrow.gif arrow
  • icon_exclaim.gif exclaim
  • icon_idea.gif idea
  • icon_question.gif question

Читать полностью »

Авг
07
Опубликовано 07 Авг 2009
Рубрика: Программирование, Разработка | Автор: inst

Не знаю, насколько низка среди web-разработчиков потребность во время работы сотворённого тобою приложения удалять папки и создавать новые (подозреваю, что это вовсе и не нужно в web), однако мои desktop-приложения почему-то нуждаются в подобном функционале довольно часто. Последний мой проект я писал для себя и поэтому вопрос о выборе языка не стоял: скорость выполнения не важна, так что Ruby.

Web 2.0 логотип Ruby

Когда встал вопрос о создании новой папки быстренько нашёл в документации к классу Dir метод mkdir, впрочем, мне это не очень помогло. Задача стояла создать директорию, но вот об уровне вложенности метод mkdir не заботится, — например, если по адресу «/home/inst/examples/newdir» не будет существовать папки «examples», то метод возвратит ошибку. Мне же требовалось создать и все вышележащие папки в случае их отсутствия. Очень повезло с тем, что нашёл в документации к калссу File метод makedirs. Он реализует как раз нужный мне в этом случае функционал. Чтобы им воспользоваться нужно подключить «ftools».

Читать полностью »

Авг
03
Опубликовано 03 Авг 2009
Рубрика: Паутина, Разработка | Автор: inst

Задавшись вопросом добавления сайта в индекс поисковых систем, очень быстро нашёл информацию о пинг-сервисах. Пинг-сервисы — это такие страницы, работающие по протоколу XML-RPC, которые служат для оповещения различных интернет-ресурсов (в том числе поисковых систем) об изменениях на страницах Вашего сайта. В двух словах — после появления на сайте нового контента Вы отправляете поисковику об этом сигнал. Попался в интернете даже один отзыв о том, что якобы при комплексном подходе новый контент индексировался Google‘ом в течении одной минуты.

Быстро организованный поиск по интернету обнаружил порядка 300 таких адресов.

Далее дело осталось за малым. Я написал на Ruby простейший скрипт в пару строк вот такого содержания:

file = File.open('list.text', 'r')
result_list = file.to_a.uniq.compact
file.close

puts result_list
puts "Найдено уникальных строк: #{result_list.size}"

А затем запустил, перенаправив его вывод в файл с нужным названием вместо STDOUT. В результате такой полуавтоматической обработки получился список со 186-ю уникальными пинг-адресами! Ими-то я и решил поделиться в этой заметке :)

Читать полностью »

Авг
03
Опубликовано 03 Авг 2009

В практике web-программирования бывают случаи, когда для отображения пользователю какой-либо информации на сайте сначала требуется воспользоваться его IP-адресом. Первая идея для чего это может понадобится, которая приходит в голову — распознавание языка, на котором говорит Ваш посетитель. Узнав host его реального IP можно, как минимум, по зоне узнать откуда посещается ваш сайт и, следовательно, отдать этому посетителю страницу Вашего сайта на том языке, на котором с большой долей вероятности он говорит и мыслит.

Web 2.0 логотип PHP

Безусловно в большинстве случаев достаточно воспользоваться $_SERVER['REMOTE_ADDR'], но это не всегда верный путь. Возможно я Вас удивлю, но если к сайту подсоединится через любой proxy-сервер, то в эту переменную сервер во время выполнения скрипта поместит именно адрес прокси, а не клиентской машины, как скорее всего ожидалось.

Читать полностью »

Авг
01
Опубликовано 01 Авг 2009
Рубрика: История успеха, Паутина | Автор: inst
Рубли

Очень часто говоря о деньгах люди задумываются о том, что неплохо бы найти не утомляющее занятие, обеспечившее их прибылью. Проще говоря, сшибать бабки из неоткуда. В то же время большинство просто уверенно, что чем больше работать они будут, тем больше получат. В таком противоречии и рождается истина: чтобы зарабатывать не утомляясь нужно найти себя, а точнее своё дело; то дело, которое будет тебе по душе.

Читать полностью »

Авг
01
Опубликовано 01 Авг 2009
Рубрика: Паутина, Разработка, Это блог | Автор: inst

DNS-сервер

Всё это время, в течении последних 2-х недель, с момента последней публикации в блоге, я трудился без сна и отдыха. Я читал литературу по движку для блога, подбирал ненапрягающую глаз тему, значительно оптимизировал блог и движок как в плане производительности, так и в плане SEO, а также добавил некоторые позезные и просто забавные дополнения (плагины). Но пожалуй самым важным из всего этого был мой первый опыт разделения нагрузки между серверами. А было дело вот как…

Изначально при выборе хостинга этот блог не планировался. Я расчитывал, что создам лёгкий AJAX’овый сайт, отображающий лишь пару страниц информации обо мне. Теперь судить о том, как мне это удалось можно перейдя на главную страницу по ссылке из колонки «Обо мне». Эту стадию развития персональной страницы мой мозг благополучно перерос и я выносил идею блога. Однако, как выяснилось, не все складывалось успешно для создания и развития блогоподобного сайта: так, на первоначальном хостинге я не имел возможности использовать какие бы то ни было инструменты получения контента удалённых сайтов (cURL, f_open).

Читать полностью »