Профессия обязывает каждый день писать на php и поэтому первый важнейший инструмент после головы для меня является среда разработки (IDE). До сих пор я сидел на Zend 5.5, но столкнувшись с PhpStorm 1.0 от чехов русских с JetBrains сразу перешёл на него.
Понятно что редактор - дело субъективное и многое зависит от проектов с которыми вы работаете. Zend 5.5 мне нравился удовлетворительной скоростью и простым доступом к ftp. Я знал что там ещё были всякие дебаги, интеграция с SVN и sql-серверами но практически их не смог применить. Я пробовал Netbeans, Aptana и PDT, Zend 6 но во все они медленные особенно при индексации файлов и монстроидальный интерфейс с кучами кнопочек. Поэтому и начну сразу с недостатков.
Недостатки
- Невозможно сразу начать работать при медленных (>5 сек) сетевых соединениях (VPN) и обращению к файловой системе
- Синхронизация файлов при deployment'е удалённого проекта не совмещает различия, а просто перезаписывает удалённые файлы, что делает невозможным изменение файлов двумя пользователями. Есть возможность ручной проверки одиночного файла, но сверять каждый раз самому неудобно.
- Подвисание процесса при долгой индексации дополнительных папок к проекту и отсутсвие полоски прогресса этого процесса. При обычной индексации всё-таки прогресс показывается и может уходить на задний план.
- Редактирования по FTP нету. Можно файлы читать, но для полноценного редактирования надо делать локальную копию проекта с настройкой синхронизации и deployment'а, а при переходе с одного IDE на другой и большом количестве проектов ждать скачивание каждого - жуть
- Автосохранение файлов сразу во время редактирования, хотя и компенсируется "локальной версией изменений файла", однако многим может быть непривычно при переходе из других IDE.
- Глупое автодополнение тэгов в html режиме (вечно мне добавляет comment тэг!). В редактировании php кода методы не подсказываются автоматически а только с нажатием Ctrl+Space, видимо из-за погони за скоростью.
- Импорт remote-проекта без возможности фильтра ненужных папок. Точней этот фильтр появляется в настройках после того как вы скачаете весь проект. Очень удручающая ситуация когда есть папка с кучей картинок которые не нужны. Конечно есть фильтр типов файлов с масками, но это не совсем то
- Пугающие настройки. Их просто много. Разве что они понятней чем в Эклипсе - сразу разбиение на настройки проекта и настройки IDE.
- Непривычность клавишных связок (hotkey binding) - например у меня несколько раз возникала ситуация когда я двигался назад по истории изменений (Undo), а потом хотел вернуться нажимая Ctrl+Y и вместо этого терял Redo-историю потому что Ctrl-Y на самом деле удаляет строку
- Мало плагинов. Из серверов управления задачами только Jira и собственній youtrack. То же касается систем версионирования (Есть CVS, SVN, git, perforce). В основном они пишутся для общего редактора IntelliJ idea, а php-просто как частный случай
Как у всех..
Редактор визуально очень похож на все существующие IDE - динамические панели как у eclipse но с меньшим визуальным шумом иконок. Тут собственно меню, панель дерева файлов, панель структуры класса, внизу дополнительные панельки для todo, версионирования, иерархий и удалённого редактирования (появляются по мере необходимости).
Очевидно что редактор не компилятор и не настолько умён
что-бы понимать переменные при использовании extract() или при
переменных с динамическими именами через $$var — анализ этого на лету
просто нереально ожидать и соответсвенно в проектах такие дела подсвечиваются как ошибки деклараций переменных. То же касается закриптованных частей через Ioncube или Zend guard.
Про автодополнение с Ctrl+Space я уже говорил, так же тут и Ctrl+click работает для перехода к собственно декларации метода или класса. И Ctrl+D дублирует строку. Тут есть и закладки строчек через Ctrl+Shift+цифра. Есть тут и поддержка PHPdoc и @todo синтаксиса.
Основные фишки
Главные прелести редактора - хорошая скорость в обычном редактировании текста - ничего не прыгает, не задумывается на три секунды покуда я печатаю.. Вобщем есть "основа" которая дополнена мелочами в которых и кроется секрет хорошего блюда:
- Поиск классов Ctrl+N и файлов Ctrl+Shift+N в том числе и со звёздочками (wildcard). Очень полезно и быстро, потому что файлы как правило разбросаны в разных ветках дерева и консоль всегда оперативна
- Скролл при поиске или при навигации по своим закладкам строк через Ctrl + цифра. Очень помогает не потеряться и интуитивно понимаешь в какую сторону файла ты прыгаешь.
- Рефакторинг имён файлов, классов и методов во всём проекте и/или поиск их использования. Потому что часто просто боишься поменять старое название на более информативное потому что не помнишь где это используется, а искать как фразу через Ctrl+F запаришься
- Подключение внешних папок. Скажем если у вас 10 проектов в которых используется повторяемый фреймворк (PEAR к примеру) или закриптованный код, то можно подключить внешнюю папку чтобы IDE понимала пространство имён
- Версионирование. Как встроенная история изменений, так и отлично встраиваемый SVN со всякими диффами, определённо лучше TortoiseSVN.
Приятно удивили и некоторые мелочи
- Поддержка smarty шаблонизатора. С одной стороны для меня это позитив - я его использую. С другой стороны так же обойдены стороной остальные фреймворки для которых тоже неплохо бы иметь плагины что-ли для быстрого запуска комманд генерации кода и тп.
- Иерархия вызовов метода и вызываемых методов в hierarchy блоке
- Статус и ручная чистка памяти в статус-баре - сразу говорит о заботе
- Локальная история изменений файла
- Перетаскивание строки или целого выделенного блока с сохранением
табуляции через Ctrl+Shift+Up/Down вместо того что-бы делать
Copy-Delete-Paste с ручным форматированием
- Вернуться к последнему месту редактирования Сtrl+Shift+Backspace
Кроме этого в редакторе есть простор для изучения до которого я ещё не дорос:
- XDebug для профилирования скриптов.. Для удалённого проекта надо что-бы расширение на сервере было установлено, поэтому всюду использовать нельзя.
- PHPUnit для автоматического тестирования кода
- SASS для более гибкого написания css
Когда я был помоложе, я почемуто думал что раз телевизор так схож с монитором, то показывать телевидение на компьютере должно быть пустяком. Даже когда в университете объясняли о передаче телесигнала, частотной модуляции, пределах возможностей передачи данных у медного кабеля, я всё больше подтверждался что компьютер посложней чем телевизор, следовательно последний легко интегрируется с компом
Наконец практическое устройство попала и в мой огород - ввиду отсутсвия телевизора но присутсвия подключения к телевидению (такой у STV маркетинг с интернетом), решил чего уж добру пропадать - куплю TV-тюнер, благо они относительно дешёвые

Глаза загорелись и я без предварительной проверки по интернету, ухватился за некий дигитальный тюнер от Kworld. Продавец K-arvutid тем более утверждал что он и аналоговые поддерживает и вообще чудо устройство. После хитрых манипуляция с созданием iso-образа установочного диска на ноуте и перекидыванию через флешку (от CD/DVD я отказался уже года два как), установки софта "Hypermedia 3.5", оказалось что я взял только дигитальный USB-тюнер. Пришлось идти менять на более старую и аналоговую PCI-версию
Впрочем поставив PCI-устройство, софт оказался по прежнему глючным и практически Hypermedia ничего не нашло и никакого прогресса не показывало. Как выход я стал пробовать тн. TV-tuner software:
| Название |
Описание |
Оценка |
| Windows Media Center |
Встроенный в Windows Vista Ultimate вполне симпатичен, понимает
инфракрасный пульт поставляемый с тюнером и вообще всячески
оптимизирован для полного экрана. Увы, правильно найденные 80 каналов
хоть и с хорошим качеством, но большинство без звука |
4 |
| Snapstream Beyond TV 4,8 |
Даже триальная версия нашла так же с дублями каналы, но со звуком. В минус - каналы оказались в хаотичном порядке без возможности переименовать и с очень неудобным интерфейсом (переключение каналов в частности)
|
4 |
| ArcSoft TotalMedia |
Поиск каналов происходит в реальном режиме с картинкой, каналы можно
добавлять в избранное. Качество картинки хорошее, но опять же - многие
каналы без звука |
3 |
| SageTV |
Упал с надписями "Java Missing. Could not get information on current JVM. Please install Java Runtime Environment 1.4", хотя у меня уже JRE 1.6.3 стоит. После переустановки Java, заработала но не смогла ничего найти
|
2 |
| SesamTV media center |
Внешне показался вполне нормальным, но на 100% проценте сканирования
как это часто случается, вдруг взял и упал. Три попытки повторить
эксперимент привёл к тому же результату |
2 |
| DScaler 4.1 |
Внешне достаточно много настроек, но ограниченное карточка и тюнер не автоматически не распознались (в списке было порядка 20 и 50 соответсвенно) |
2 |
| Got All Media |
Позиционирующися как и медиа центр, программа с кучей настроек. Состоит из конфигурации и собственно программы. В конфигурации каналы нашлись отлично, звук тоже есть. Но при сохранении каналов, за которые он посчитал даже лишние 200 сигналов, подвис и не вернулся |
3 |
| MediaPortal |
Так и не дошёл до настройки каналов - поставила DirectX, захотела поставить ещё и SQL server или MySQL, не смогла соединиться, опять отдельные программы настроек и "пустая" полноэкранная программка как Media Center |
2 |
| GB-PVR |
Чуть странное название. Поддерживались только порядка 30-50 карточек, среди которых моей небыло. |
2 |
| MeediOS |
Началось качание .NET 3.5 SP1, на этом оно и остановилось
|
1 |
| CT-PVR |
Поставилась, и сразу полезла в полноэкранный режим, но нашла 10 пустых каналов, а управление сделанное через контекстное меню (sic!) никак не помогло в настройке. Позиционируется с фичами записи телевещания
|
2 |
Кроме WMC практически все предлагали ручные настройки PAL/NTSC/SECAM, впрочем вместе с настройками по стране.
Теперь пара определений которые часто используются на коробках этих самых продаваемых тюнеров.
Placeshifting - подразумевается передача принимаемого тюнером с антенны сигнала и передачи его по сети, интернету на удалённый компьютер
Timeshifting - телевизионная передача записывается на жёсткий диск, а по приходу домой, хозяин может просмотреть передачу когда ему удобно
Home automation - подразумеваются умные дома и квартиры, где
устройства взаимодействуют друг с другом, в том числе и телевизор может
поддаваться включениию/изменению со стороны других интерфейсов (Firewire / Bluetooth / IRDA / USB / WiFi)
После экспериментов всё-таки остался на Media Center. Он каким-то хитрым образом определяет кодирование каналов в зависимости от страны. Наиболее подходящими для Эстонии как оказалось стали не Россия и Германия, а Израиль
По теме:
С СУБД сталкивается практически каждый разработчик, начиная как правило с PhpMyAdmin, PhpPgAdmin, простейших серверных скриптов, постепенно переходя на более тяжёлое но удобное ПО, которое я тут постараюсь описать.
Maestro group
SQL Maestro это компания, производящая административные программы баз данных. Практическая реализация очень схожа с SQLyog, т.е. так же позволяет легко управлять таблицами, данными, базами, схемами, функциями, тригеррами и тп. В плюс - возможность составление диаграммы структур. В комплекте есть поддержка MySQL, Postgre, Oracle, MS SQL server, Firebird, Max DB. В последних версиях есть HTTP-туннелирование. В минусы - порой выпадают ошибки нехватки памяти.
SQL yog
SQLyog 6 Enterprise стоит 67$, что для фирмы, которая хочет экономить время своих работников, цена приемлимая. Интерфейс
построен как и в pgadmin - слева список таблиц с подразделами (поля,
индексы, триггеры), справа - данные таблицы и sql запрос. Сверху - меню
с удобными диалогами создания FOREIGN KEY, управлением привилегиями,
структурой таблиц, возможностями импорта/экспорта и т.п.
См. также
Синхронизируем Outlook и Google calendar. Самый недавно вышедший и простой способ - Google Calendar Sync.
Iframe
Для начала самый простой и не настоящий способ. Идём в Outlook под Calendar слайд, и под "My Calendars" жмём правой кнопкой по нужному календарю, ставим на нём Properties->Home Page->Address равным http://www.google.com/calendar/render. Браво, теперь у вас iframe вместо настоящего календарика.
Plug-in RemoteCalendars
- Закрываем Outlook
- Устанавливаем NET 2.0
- Устанавливаем RemoteCalendars (включая файлы O2003PIA.EXE, O2003PIA.MSI, vstor.exe, RemoteCalendarsVSTOSetup.msi)
- Открываем Outlook, ставим во вдруг появившемся окошке настроек временную зону и Auto Update.
- Видим такую панельку
- Добавляем новый календарь. Для этого берём из Google Calendar настроек ссылку
. После этого - вводим логин пароль, и вуаля - двусторонняя синхронизация есть.
Читайте также:
CVS и SVN (Subversion) это программы хранения истории изменения проекта в файловой системе разными пользователями в результате одновременной совместной работы. Существует клиентская и серверная часть.
Когда начинается разработка проекта, можно разделить весь проект на
части и дать разные части разным программистам реализовывать и
поставить архитектора заведывать всеми ими. Но как правило, общие части
системы надо редактировать в таком случае обоим одновременно и если
процесс разработки достаточно быстр то может возникнуть ситуация, когда
файл перезаписывается двумя или больше людьми.
SVN это наследник CVS, впрочем если вы испытываете большую симпатию к Microsoft, вы можете использовать Visual SourceSafe. Из себя это представляет сетевую программу, где центральный сервер хранит все вносимые изменения, а клиенты уже производят операции над этими изменениями. Поэтому если вы работаете в фирме, и сервер уже имеется, то вам достаточно установить клиентскую программу.