Google+ круги == Facebook списки друзей

Google+ круги == Facebook списки друзейВ последнее время много шума вокруг кругов Google+. И тут и там слышны фразы вроде «наконец-то я смогу одни фотки показывать только близким друзьям, а другие только сотрудникам» (говорится подобное в противовес Facebook). Судя по всему, многие не знают, что такая же возможность есть и была с давних времен на Facebook. Да, она не так очевидна и визуально красива (в Google+ процесс разбрасывания знакомых по кругам прямо таки затягивает :-)), но она есть и достаточно неплохо работает.

Итак, если вам нужна возможность разделять информацию для разных типов друзей на фейсбуке, и вы не в курсе этой возможности, надеюсь, мое мини руководство по созданию «кругов на Facebook» будет полезным.
Читать далее Google+ круги == Facebook списки друзей

CakePHP без базы данных

CakePHP без базы данныхЧасто видел в интернете упреки в сторону CakePHP в том смысле, что ему для работы обязательно нужна база данных, и это, мол, великое зло. Как-то не обращал внимания на данные утверждения (и правильно делал), так как всегда использовал базу данных. Но вот случилась необходимость сделать сайт на CakePHP без БД (временный сайт, со статикой, в будущем подразумевающий развитие до использования базы). В русскоязычной части интернета не удалось найти решения этой задачи (ясно примерно как это сделать, но хочется готового 🙂 ), к счастью, на англоязычном блоге был найден ответ.

Итак, приступим.
Читать далее CakePHP без базы данных

Flv и субтитры

Flv и субтитрыПредположим, вам понравился какой-то видео файл на youtube (или в любой подобной системе, суть в том, что этот файл хранится в интернете в формате flv), и вы хотите его показать другим людям, разместив это видео на своем сайте или блоге, но, к сожалению, фильм не на русском языке. В этом случае может появиться потребность в его русификации, самый простой способ сделать это — создание субтитров для фильма.

Конечно, можно сделать такие субтитры почти в любом видео-редакторе, создав в итоге свой уникальный видео-файл. Но в этом методе есть ряд неудобств:

  • нужно уметь пользоваться подобными видео-редакторами,
  • нельзя будет легко откорректировать титры при необходимости (ведь они уже будут намертво замурованы в видео),
  • так как на выходе вы получите свой модифицированный видео-файл, вам нужно будет дополнительно заботиться о том, где его хранить в интернете, чтоб иметь возможность показывать его на своем сайте, а если же хранить прямо на своем сайте, то это может угрожать нежелательным расходом трафика,
  • при сохранении отредактированного видео его качество будет хуже оригинала.

Мне этот способ не подошел из-за последних трех минусов, поэтому пришлось искать другое решение, более гибкое и простое, которым я и хочу поделиться.
Читать далее Flv и субтитры

Делаем свой RSS-канал

Делаем свой RSS-канал

После серии статей о том, что такое RSS, у многих владельцев сайтов, у которых нет RSS (а таких не так уж и мало, как могут думать некоторые), может возникнуть желание заполучить его себе:-) В этой статье я хочу перечислить способы организации RSS-канала для своего сайта. Начиная с самых простых способов и заканчивая сложными.

Изначально нужно быть уверенным, что вы знаете о том, что RSS-документ – это, по сути своей, обычный файл, в котором специальным образом в виде текста описаны те или иные новости (или статьи). В итоге понятие «у меня (у моего сайта) есть RSS-канал» будет выражаться на практике в виде интернет адреса к этому самому документу (у меня на блоге это, к примеру, адрес: http://feeds.feedburner.com/devezoterik). Ваши же читатели, имея этот адрес, в дальнейшем смогут следить за изменениями в этом файле с помощью специальных программ.
Читать далее Делаем свой RSS-канал

PHP и BBCode

У меня периодически появляется потребность в использовании «интерпретатора» BBCode в своих проектах (написанного на PHP), и постоянно нет времени искать какое-то более-менее удобоваримое решение, что в итоге выливается в использование или создание «костылей» для каждого конкретного случая.
Но вот, похоже, получилось найти то, что хотелось.

Моя претензия к подобным готовым решениям обычно в первую очередь заключается в неспособности этих библиотек правильно обрабатывать абзацы. Фактически они обычно вообще не используют абзацы (тэг P), вместо этого в результате своей работы они просто вставляют тег <br /> , заменяя обычные символы переноса строки. Я считаю такой метод эмулирования абзацев в 98 процентах, мягко говоря, не уместным. Но так как перенос строк по средствам <br /> намного легче реализовать вместо «человеческих» <p>, так большинство и делает 🙁 Некоторые даже придумывают оправдания, что мол с br даже правильнее, отчасти, из-за подобной лени разработчиков различных готовых библиотек, другая часть людей думает, что тэг P является устаревшим (ведь даже во многих готовых продуктах и сайтах абзацы формируются путем использования <br />) 🙂
Читать далее PHP и BBCode

Грамотная работа в Word. Продолжение

Уж не знаю, на сколько эта тема интересна кому-либо (на первую часть статьи комментариев-то считай и нет), но для того, чтобы быть последовательным, все же допишу «двулогию» о правильном обращении с текстами в текстовых редакторах 🙂 Да и вдруг кому-то эта тема интересна.

После того, как мы подготовили «чистый текст», его можно, наконец, оформлять.

Для начала нужно обязательно воспринимать каждый абзац (напомню, что нажимая Enter на клавиатуре, мы их порождаем все больше и больше) как некое отдельное существо 🙂

Абзацы
Читать далее Грамотная работа в Word. Продолжение

Грамотная работа в Word

Часто сталкиваюсь с тем, что люди не умеют корректно работать в программах типа MS Word и ей подобных. Хотя обычно большинство из них уверены, что все отлично делают.

Чаще всего это проблема всех новичков, недавно научившихся в той или иной мере пользоваться вордом (а иногда и у «старичков» 😉 ). Проблема появляется тогда, когда человек, создавая документ, не знает основной «философии» работы в подобных программах, набирает текст «абы как», вставляя кучу пробелов где нужно и не нужно и т.п., стремясь к одному – «главное, чтобы выглядело как нужно». Часто со временем это приводит к выработке каких-то своих «хитростей», то есть, к изобретению достаточно некачественного велосипеда. С другой стороны, если документы создаются только чтобы их распечатать и забыть про них, а также имеют достаточно маленький размер, то такой подход вполне жизнеспособен. Но, думаю, применение правильного подхода все же может очень облегчить жизнь даже в таких случаях. Если же эти документы хранятся и предполагается их дальнейшее изменение вами или, тем более, другими людьми, то при «самобытном» способе их изготовления может начаться настоящий хаос.

Все дальнейшие рекомендации можно и нужно применять не только в MS Word, но и во всех других программах подобного плана (OpenOffice.org Writer, AbiWord, Google Docs, StarOffice и прочие, разве что к программе «Блокнот» далеко не все применимо 🙂 ), и даже в более серьезных программах, предназначенных для профессиональной верстки текстов. Также предполагается, что человек все же имеет какой-никакой опыт работы в используемой им программе.
Читать далее Грамотная работа в Word

Отсылка e-mail через C#

Отсылка e-mail через C#Этот кусок кода показывает, как можно программно отослать электронное письмо средствами C#. Письмо отсылается через указанный SMTP-сервер, который требует авторизацию. Так же к письму можно прикрепить одно или несколько вложений.

//Адрес SMTP-сервера
String smtpHost = "SMTP.SERVER.RU";
//Порт SMTP-сервера
int smtpPort = 25;
//Логин
String smtpUserName = "LOGIN";
//Пароль
String smtpUserPass = "PASSWORD";

//Создание подключения
SmtpClient client = new SmtpClient(smtpHost, smtpPort);
client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass);

//Адрес для поля "От"
String msgFrom = "LOGIN@SERVER.RU";
//Адрес для поля "Кому" (адрес получателя)
String msgTo = "KUDA@TO.RU";
//Тема письма
String msgSubject = "Письмо от C#";
//Текст письма
String msgBody = "Привет!\r\n\r\nЭто тестовое письмо\r\n\r\n--\r\nС уважением, C# :-)";
//Вложение для письма
//Если нужно больше вложений, для каждого вложения создаем свой объект Attachment с нужным путем к файлу
Attachment attachData = new Attachment("D:\Тестовое вложение.zip");

//Создание сообщения
MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody);
//Крепим к сообщению подготовленное заранее вложение
message.Attachments.Add(attachData);

try
{
    //Отсылаем сообщение
    client.Send(message);
}
catch (SmtpException ex)
{
    //В случае ошибки при отсылке сообщения можем увидеть, в чем проблема
    Console.WriteLine(ex.InnerException.Message.ToString());
}

Тело письма и его заголовок будут созданы и отосланы в кодировке — UTF-8. Если же захочется отослать письмо в кодировке windows-1251, то начинаются проблемы. Мне удалось найти только одно достаточно подробное описание этой проблемы. И в более свежих версиях фреймворка (помимо .Net Framework 2.0) точно такая же проблема.
Читать далее Отсылка e-mail через C#

Правильный редактор для PHP

Иногда очень сильно не хватает какого-то хорошего редактора для PHP именно с точки зрения комфортной работы с кодом, что-то посерьезней, чем простая подсветка синтаксиса. При этом обычных редакторов пруд пруди, в которых, к сожалению, та же подсветка синтаксиса далеко не всегда корректно работает.

Хочется иметь нормальную реализацию IntelliSense, а не «деревянную» пародию на него в виде заранее определенного списка методов и констант языка, «вываливающегося» во время работы по поводу и без повода в виде полного списка. IntelliSense обязательно должен «знать» о всех используемыми вами классах, о их методах и переменных, то есть подключил через #include файл с определением своего класса, и редактор сразу же его подхватывает, подсказывая информацию о всех «внутренностях» объектов этого класса.
Читать далее Правильный редактор для PHP

Борьба со спамом в форумах phpBB2

Борьба со спамом (c) :-)Недавно на своем форуме изменил тактику борьбы со спамом (по сути, просто поставил другой мод 🙂 ), что принесло свои плоды.

Раньше для борьбы со спамерскими роботами был установлен мод расширенной графической капчиAdvanced Visual Confirmation и одна из первых версия мода Stop Advertisement Bots (уже есть более свежая версия).

Stop Advertisement Bots скрывает от глаз посетителей поле для ввода сайта и при этом определяет, что регистрационную форму заполнил робот, если заполнено это скрытое поле.

Еще установлен прекрасный мод, который автоматически удаляет пользователей (и их сообщения), которые использовали более чем 1 ссылку в тексте своего поста (Detector Bots) (макс. допустимое количество ссылок в одном сообщении можно настраивать).
Читать далее Борьба со спамом в форумах phpBB2