Архив за Июль 2008

Программеры и админы

Программеры — они толстые. Потому что они сидят. А админы — они тощие. Потому что бегают. Впрочем, бывают тощие программеры. Hо не надо думать, что это исключение из правил — это переученные админы. Также встречаются и толстые админы. Это обленившиеся программеры.

Программеры курят быстро, потому что мысль. Потому что она уйдет и придется думать ее снова. У админов мыслей нет, поэтому они курят медленно. Они делают это в те моменты, когда все работает и ничего не падает. Поэтому они курят редко.

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

Программеры уходят с работы ночью. Потому что мысль. Hекоторые из них уходят вечером и думают мысль дома. Hекоторые, у которых есть ноутбук, думают ее в метро. Админы домой не ходят. Потому что если они пойдут домой, что-нибудь упадет. И придется идти на работу. А на работу они ходить не любят. И не ходят. Они там живут. У них обычно есть отдельное гнездо за отдельной дверью, часто запираемой на отдельный замок.

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

Программеры пьют пиво. В основном светлое и много. Потому что мысль. Пока она плавает — ее можно думать. Главное, чтобы не утонула. Админы тоже пьют пиво. Потому что если что-нибудь упадет, им будет пофиг. Админы любят когда им пофиг. И программеры любят, когда им пофиг. Поэтому часто они пьют пиво вместе. И им вместе пофиг.

После этого они спят. Hо не вместе. Админы спят в гнезде, а программеры — на клаве. Когда они просыпаются, они снова пьют пиво. Потому что хочется. Потому что они админы. И программеры.

Бесплатные редакторы PHP, HTML, CSS, JavaScript

PHP Expert Editor

PHP Expert Editor - удобный редактор для PHP, Perl, Python, HTML, Java Script и других файлов с поддержкой UTF-8. Программа разработана специально для PHP мастеров и имеет встроенный отладчик PHP. PHP Expert Editor имеет встроенный HTTP сервер и позволяет запускать PHP, Perl, Python, скрипты. Вы также можете использовать любой внешний HTTP сервер. Проверка синтаксиса PHP, встроенный браузер, FTP клиент с поддержкой SFTP, Кодовый и файл эксплорер, поддержка проектов, настраиваемые шаблоны кода, настраиваемая подсветка кода, и многие другие функции значительно облегчают работу разработчика.

Свойства программы

  • Поддержка UTF-8
  • Настраиваемая подсветка кода
  • Свертывание кода
  • Встроенный браузер
  • Встроенный FTP-клиент с поддержкой SFTP
  • Code Explorer
  • File Explorer с Избранными папками
  • Project Explorer
  • Library Explorer
  • Настраиваемые горячие клавиши и клавиши работы в редакторе
  • Клавиатурные макросы
  • PHP макросы
  • Авто сохранение
  • Проверка синтаксиса PHP
  • Запуск скриптов и просмотр результата во встроенном или внешнем браузере
  • Отладчик
  • Для запуска и отладки PHP скриптов Вы можете использовать встроенный или любой внешний HTTP-сервер
  • Поддержка всех известных Content-Type. Вы можете отлаживать скрипты, которые генерируют различный контент, например, картинки
  • Быстрая вставка всех функций PHP с подсказкой параметров
  • Быстрая навигация в коде с помощью горячих клавиш и мыши
  • Подсветка парных скобок
  • Настраиваемые Шаблоны Кода для быстрой вставки часто употребляемых фрагментов
  • Экспорт исходного текста в HTML и RTF с подсветкой синтаксиса
  • Закладки
  • Два стиля интерфейса - Classic и Office XP
  • Поддержка справки PHP с возможностью поиска по ключевому слову в текущей позиции
  • Keymaping (Default, Classic, Brief, Epsilon, Visual Studio)
  • Поддержка форматов файлов Windows, Unix, Mac
  • Поддержка Perl, Python, Ruby, Tcl. Есть возможность использовать несколько интерпретаторов, не только PHP.

Notepad++

Notepad++ это бесплатный редактор текстовых файлов (замена стандартного Блокнота) с поддержкой синтаксиса большого количества языков программирования, ориентирован для работы в операционной системе MS Windows.

Этот проект базируется на компоненте Scintilla (очень мощном компоненте для редактирования) написанном на C++ с использованием только Win32 API и STL (что гарантирует максимальную скорость выполнения при минимальном размере программы), распространяется под лицензией GPL.

Основные особенности Notepad++ :

  • Подсветка текста и возможность сворачивания блоков, согласно синтаксису языка программирования
  • WYSIWYG (печатаешь и получаешь то, что видишь на экране)
  • Настраиваемый пользователем режим подсветки синтаксиса
  • Авто-завершение набираемого слова
  • Одновременная работа с множеством документов
  • Одновременный просмотр нескольких документов
  • Поддержка регулярных выражений Поиска/Замены
  • Полная поддержка перетягивания фрагментов текста
  • Динамическое изменение окон просмотра
  • Автоматическое определение состояния файла
  • Увеличение и уменьшение
  • Поддержка большого количества языков
  • Заметки
  • Выделение скобок при редактировании текста
  • Запись макроса и его выполнение

Как отправить файл на сервер (продолжение)

В одной из предыдущих заметок я рассматривал способ отправки файла с одного сервера на другой. Используя сокеты, мы отправляли POST-запрос с сервера first.com на сервер second.com. Но данный способ работает для относительно небольших файлов (примерно до 2-х мегабайт, для получения более точного значения необходимо смотреть в настройках PHP максимальный объем принимаемых данных методом POST).

Чтобы обойти это ограничение, будем передавать файл методом PUT, используя библиотеку CURL. Для этого мы должны инициализировать сеанс CURL, задать для сеанса необходимые параметры, выполнить запрос CURL и закрыть сеанс.

<?php
// Задаем скрипт на сайте second.com, который примет наш запрос и обработает его
$url = 'http://second.com/getfile.php';

// Файл, который мы хотим передать сайту second.com
$file = 'pricelist.csv';

// Узнаем размер передаваемого файла
$filesize = filesize($file);

// Узнаем имя файла (в случае, если в $file указан полный путь до файла)
$pathinfo = pathinfo($file);
$filename = $pathinfo['basename'];

// Открываем передаваемый файл на чтение для дальнейшей его передачи
$fp = fopen($file, 'r');

// Инициализируем сеанс CURL
$ch = curl_init();

// Задаем параметры для открытого сеанса CURL

// Указываем URL скрипта, который примет наш запрос. К имени скрипта
// добавляем переменную, содержащую имя передаваемого файла
curl_setopt($ch, CURLOPT_URL, $url . '?filename=' . $filename);

// Указываем файл (а вернее дескриптор открытого на чтение файла),
// который собираемся передать
curl_setopt($ch, CURLOPT_INFILE, $fp);

// Указываем размер отправляемого файла
curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);

// Указываем, что файл передается методом PUT
curl_setopt($ch, CURLOPT_PUT, 1);

// Указываем, что будет производиться закачка на удаленный сервер
curl_setopt($ch, CURLOPT_UPLOAD, 1);

// Выполняем запрос CURL
curl_exec($ch);

// Завершаем сеанс CURL
curl_close($ch);
?>

После выполнения этого скрипта с сайта first.com на сайт second.com уйдет PUT-запрос, в котором будет находится содержимое передаваемого файла, а в переменной GET['filename'] будет содержаться название передаваемого файла.

Далее нам необходимо организовать прием файла на сайте second.com. Для этого в скрипте getfile.php, находящегося на сайте second.com, из массива $_GET мы должны получить название файла, а из входного потока — содержимое файла:

<?php
// Определяем имя файла; если не определено, задаем как unknow.dat
$filename = (isset($_GET['filename'])) ? $_GET['filename'] : 'unknow.dat';
// Получаем содержимое входящего потока
$content = file_get_contents('php://input');
// Записываем содержимое потока в файл
$file = fopen($filename, 'w+');
fwrite($file, $content);
fclose($file);
echo '<p>Файл получен</p>';
?>

Ссылки по теме: