По напридумывают аббревиатур: SCP, SFTP, FTPS. Соединят пару из них в одну программу. Нарисуют общий вид, как при работе с FTP. А у простых смертных потом непонятки. А ведь не всем дано найти и разобраться сразу что из них что, и через что, и кто поддерживает. Наверняка людей запутывает участие в них аббревиатуры FTP и отсутствие строго стандарта к названиям. Все привыкли к тому, что FTP это FTP, стандарт, который все знают, старый и добрый.
А ведь не так всё легко с этими SFTP, FTPS. С SCP легче – сразу видно из названия что с FTP как бы мало связан. SCP у нас Secure Copy и ничего больше. Всего лишь копирование файлов через SSH. Но стоит начать разбираться с аббревиатурами SFTP, FTPS – как наткнёмся на несколько понятий, как: SSH File Transfer Protocol, FTP session over SSH, Simple File Transfer Protocol, а так-же FTP+SSL/TLS. Так что, узнать что имеет ввиду заказчик/администратор под красивой фразой: У нас установлен SFTP – SSH File Transfer Protocol или Simple File Transfer Protocol – угадать сложно. А если он ошибся и имел ввиду FTP session over SSH или FTP+SSL/TLS?
А из всей этой красоты PHP у нас поддерживает простой FTP, FTP+SSL/TLS, и возможно, ещё работал бы FTP session over SSH – последнего сам не проверял – подтвердить или опровергнуть немогу.
А ведь так легко ошибиться и сказать: Да, мы сможем, а потом, понять что ошибся, но уже будет поздно. Я понимаю, что хорошему аминистратору, на сервере поднять FTP – раз плюнуть, но хороший администратор – стоит хороших денег, да и после такой грубой ошибки можно выглядрть делитантом.
Всё это классно расписано в ВикиПедие. Но можем и повторить:
Чаще всего под аббревиатурой SFTP подразумевяют: SSH File Transfer Protocol – передачу файлов посредством SSH исползуя многие возможности SHELLа.
Под аббревиатурой SFTP подразумевяют: FTP с использованием SSL/TLS
Simple File Transfer Protocol – старый, и считается раритетом.
Category Archives: Web
WordPress – адаптация к нуждам
Так как иногда приходиться пользоваться WordPressом, и ставить на него совсем не стандартные шаблоны, но так, что бы работало. Это часто требовало разных адаптаций стандартных функций WordPressа под шаблон или написание своих.
В первые раза два я делал такую грубую ошибку, как: залазил в ядро, менял что хотел. Потом выхадила новая версия и я себя проклинал. Сидел выдерал, искал, переносил, правил.
И только потом мне стрельнуло в голову использовать для хранения plug-inы WordPressа. Почему не шаблоны? Где-нибудь в начале, в каком-нибудь подгружаемом файле? Очень прото – шаблонов использующих эти функции может быть много и их могут время от времени менять – а таскать это всё по шаблонам каждый раз – здоровья не хватит. А вынос в отдельный общедоступный файл – это уже плугин.
Python, PHP и HTTP запросы
Припёрло тут такое дело: Наш всеми любимый google решил сделать свой новый сервис, Google Sitemaps. Этот сервис по идее хорош – у кого сайт плохо индексируется – тот мог составить список ссылок и это дело подлечить. Но где гарантия, что конкуренты, сделаф фиктивный акаунт вас не попытаются опустить? Интерестно, куда это дело продвиниться?
Естественно – ну надо же это дело опробывать. Тем более они предлагали взять готовый, ими же написанный скрипт на Python, который, как олазалось, проходил по сайту через файловую систему, и собирал все пути до файлов, которые находил, и вы ему разрешали взять. Такой путь подходит только если для статичных сайтов, как у моего тестя. Да и то – там сайт весь на PHP и mod_rewrite хитрый. А большие сайты, которые никогда не думали о том, что такая фишка будет, Google Sitemap сгенерить не могут. Тем более не на каждом сервере Python есть.
Появилась нужда, этот процесс сборки урлов автоматизировать. Ну не садиь же китайцев/студентов это дело делать.
Первая мысль – взять PHP, найти старый, мною писаный индексатор сайтов на cURL, где каждую страницу доставали за 2 обращения к серверу (вначале HEADER, потом, если наш формат – BODY). Что меня особо не вставило. Потому я решил обратиться к более современным языкам и интерпретаторам. Выбор пал на Python.
Continue reading
Код, стиль и PHP
Вот ненавижу я PHP код, когда он отформатирован типа:
if ([condition])
{
<statement>
<statement>
<statement>
}
else
{
<statement>
<statement>
<statement>
}
И обьяснить немогу, почему. Но читать немогу совсем.
Зато такой:
if ([condition]) {
<statement>
<statement>
<statement>
} else {
<statement>
<statement>
<statement>
}
читаю без проблем.
XML-RPC и стандарт ISO 8601
Так как по работе очень нужно было знать, как ведёт и что умеет WordPress с XML-RPC – мы начали шелестеть по всем ресурсам, что находил наш любимый Google. И наткнулся я на спек по XML-RPC – где ясным англицким языком сказано было, какой должен быть формат даты по стандарту ISO 8601. Но так как давеча я это дело изучал в Google SiteMaps я был приятно удивлен разницей (картинка в 52K)… Оказывается стандарт не для всех одинаковый… И вот теперь угадай, мне простому программисту, надо всё таки использовать настоящий ISO 8601 или тот, что утвердил XML-RPC?
Книги о PHP и register_globals = off
Как известно, о PHP писали, пишут и будут писать: книги, примеры, статьи, заметки, презентации и многое другое. Естественно всё это читается, рекомендуется, качается, разбирается – народ учиться – народу хочется быть крутыми Webmasterами – сторить порталы, блоги, WAP-чаты (последнее по моему вообще извращение).
Многие из новичков начинают с вопроса – какую бы книгу почитать? Естественно им рекомендуют что-то вроде: PHP & MySQL Website Development, или что-то в этом жанре. И мало кто берёт в голову что новички, пропустили нужные главы мануала об изменениях в PHP с тех пор, как были выпущены многие книги, наступит на теже грабли: register_globals = off.
Так вот, просьба, тыкайте новичков носом в первые главы мануала, а именно в I, II, III, IV, V и потом только давайте ему читать книги, статьи, презентации, но при условии что он уже знаком с основами TCP/IP, HTTP, HTML, CSS, знает что такое стандарты и где их искать.
Генерация паролей
Очень часто приходиться генерировать пароли, и казолось бы что тут сложного? Написал себе функцию и генерируй на здоровье. Для генерации обычно берут цифры от 0 до 9 и латинцкие символы от A до Z. И редко кто задумывается о том что в некоторых шрифтах, с некоторой слепотой 0 от O или o никак не отличить. Или 1 от l. Так сидеть, и мучаются пользователи, гадая какой это символ. Поэтому моя функция генерации пароля использует слегка обработанный набор символов для генерации, так что бы похожих символов небыло.
Собственно сам код:
function gen_passwd ( $len) {
$res = '';
$useChars = '23456789ABCDEFGHKMNPQRSTUVWXYZabcdefghkmnpqrstuvwxyz';
$useChars .= $useChars;
for ($i = 0; $i < $len; $i++ ) {
$res .= $useChars[mt_rand ( 0, strlen ( $useChars)-1)];
}
return $res;
}
