Поддался на уговоры и наконец проапдейтил свой блог. Я был морально готов к глюкам, так что в целом я доволен.
Минусы (сразу стали видны они):
- похерились мои интерфейсные надписи на русском - всё вроде бы утф8, а нет, закрокозяблило…
- вообще всё, что было нажито непосильным трудом (настройки темплейта), чуть было не пропало - хорошо, что я сделал бэкап. CSS, набор ссылок на интересные сайты и прочий хлам никак не вписывался в новый стандартный темплейт.
Плюсы:
- они добавили прикольную штуку - кроме прямого редактирования темплейта прикрутили редактирование виджетов. Теперь в сайд-бар можно вставить картинку,
картонку и маленькую собачонку фид, просто какой-то HTML+JavaScript. Короче, визуальное редактирование мне понравилось.

- общий вид тоже стал настраиваемым - т.е. теперь можно двигать блоки “дата поста”, “комменты” итд. Удобно.
- после небольшой правки CSS (просто вставил нужный кусок из бэкапа) сайт стал выглядеть так же, как и раньше.
- прочие мелочи - например, на странице, появляющейся после публикации нового поста, появились 2 удобные ссылки “Edit this post” и “Create new post” (раньше надо было погонять по меню ради этого).
Ну в общем я пока доволен.
Спорим с коллегами по поводу того, как и сколько PHP жрёт памяти.
Две ветки спора:
- отличается ли подключение библиотек через include и require;
- съедается ли сразу память под все имеющиеся в библиотеках функции либо по вызову.
Пока ссылок на ман никто не привёл, поэтому я решил сделать пару тестов.
Повырубал ненужные библиотеки (почти все), и апач стал в памяти меньше
на 42 байта ;]
Поэтому придумал другой тест.
Как тестил:
- запускал апач и записывал кол-во занятой им памяти;
- обновлял страницу в броузере и в процессе снимал показания памяти;
- закрывал апач.
Тест №1.
<?
$var = str_repeat(”asdf”, 123456789);
?>
Было : 11 980
Пик : 25 500
Стало: 13 436
Тест №2.
<?
function f1()
{
$var = str_repeat(”asdf”, 123456789);
}
?>
Было : 11 980
Пик : 13 476
Стало: 13 476
Смею сделать вывод, что просто лежащие в библиотеках функции только “индексируются”, но память сразу под них не выделяется (косвенный признак: пока функцию не вызовешь - PHP не скажет, есть ли в ней ошибки).
А вы что скажете?
Странно, но текстовые функции PHP не умеют работать с юникодовой кодировкой. Поэтому, когда надо, скажем, тотально поменять регистр куче строк, приходится юзать базу данных. Например, генерить такой запрос и использовать результат:
SELECT LOWER( 'вася ПУПКИН' )
UNION
SELECT LOWER( 'пупкин ВАСЯ' )
UNION
SELECT LOWER( 'пупкин ВАСИЛИЙ' )
Есть более человеческие варианты?
1. Программист в windows среде
Языки: ASM, C, C++, C#, Pascal, PL/SQL
Инструменты:
- Владение средствами разработки Visual Studio, линейкой продуктов Borland.
- Базы данных Oracle, MsSQL Server, MySQL
Технологии и библиотеки:
- Доскональное знание Windows API, SDK.
- Владения быстрыми алгоритмами обработки данных.
- Анализ машинного кода/дампа программы.
- Умение работать с SoftICE.
- Обязательно знание протоколов TCP, UDP.
- Программирование TCP/IP на низком уровне (NDIS).
- Четкое понимание способов управления потоками данных в windows.
- Расширенное знание и умение применить алгоритмы шифрования данных/кода.
- Расширенное знание структуры исполняемых файлов.
- Расширенное понятие сигнатуры кода. Умение ее находить и анализировать.
- Знание серверной платформы Windows.
- Операционные системы: Windows 95/98/NT/2000/2003/ХР, + all SP
2. Программист в *nix (Unix, Linux, Free BSD, etc.)
Языки: ASM, C, C++, Perl, PL/SQL
Инструменты:
- Владение средствами разработки для *nix, линейка продуктов Borland (Kylix).
- Базы данных Oracle, Mysql
Технологии и библиотеки:
- Доскональное знание ОС Linux/FreeBSD (ELF файлы, системная fs), программирование kernel (syscall, перегрузка вызовов, пересборка измененного ядра) и служб.
- Владения быстрыми алгоритмами обработки данных.
- Анализ машинного кода/дампа программы.
- Умение работать с gdb.
- Обязательно знание протоколов TCP, UDP
- Программирование TCP/IP на низком уровне (формирование пакетов)
- Четкое понимание способов управления потоками данных в *nix.
- Расширенное знание и умение применить алгоритмы шифрования данных/кода
- Расширенное знание структуры исполняемых файлов
- Расширенное понятие сигнатуры кода. Умение ее находить и анализировать.
Операционные системы: *nix, FreeBSD, OpenBSD, Debian
Немного о компании: это IT-компания, которая занимается разработкой антивирусного программного обеспечения и защитой компьютерных сетей. На данный момент она набирает группу разработчиков (3 человека), которые будут работать над новыми крупными проектами. Изначально компания была открыта в России, но вот уже несколько лет есть филиал и в Киеве. Человек принимается официально и стабильно выплачивается з\п в начале месяца. Так же предусмотрены и премии.
Waiting for possibilities - and don’t see too many around.
Queen
Читаю пиар блог российского Гугла:
Цепочки писем: Gmail приучил меня к тому, что все письма в моей почте связаны между собой — в логически обоснованные цепочки.
и вот что меня удивило: цепочки писем - вещь очень старая. Я уже фиг-знает-сколько лет пользуюсь TheBat 1.6, и там всё время была эта функциональность. Конечно, не так красиво оформленная и не рекламируемая как супер-фича, просто видно цепочки есть в стандарте формата электронной почты, и нормальные клиенты просто реализовали этот стандарт.
Но чувствуете разницу: как это реализовали все - и как это реализовал Гугл?
Кто-нибудь знает, что за такой мега Донецкий государственный институт искусственного интеллекта? Название очень бодрое, но судя по их сайту, у них положение как у всех :[
Обсуждение
Сегодня пришла SMS от UMC, мол, хочешь получать прогноз погоды по своему городу - отправь сообщение на номер такой-то с кодом своего города.
Прогноз, конечно, мне не нужен, меня поразила следующая мысль: я, как девелопер такой SMS-системы, наверняка потратил бы немало времени на выбор оптимального PRIMARY KEY, т.е. идентификатора для каждого украинского города - это могла быть строка типа “Sevastopol”, могли быть 2-3 первые буквы в верхнем регистре или просто какой-то порядковый номер. У строковых ID есть тот минус, что украинцы и русские будут писать названия городов по-разному (тот же Киев/Kiiв), а сокращения или порядковые номера нужно где-то брать, т.е. товарищи клиенты должны будут сделать ещё один шаг перед уплатой мне денег за сервис, что не юзабельно.
И вот бравые UMCшные синоптики поступили очень грамотно: взяли идентификаторы из другой системы - телефонной. Телефонисты уже обо всём позабитились, каждому городу присвоили уникальные коды.
Вывод: не ограничиваться своей предметной областью для решения задачи.
P.S. Интересно, если бы UMC была не телефонной компанией, догадались бы синоптики до такого ответа?
Читаю электронный мануал по экзамену по PHP, и уже в первой части нашёл багу: говорят о трёх тагах, а приводят четыре.

Хорошо, что я бумажный ман не купил.
Блин, убил несколько часов, чтобы выяснить простой факт: в PHP при инстанцировании подкласса автоматом не вызывается конструктор суперкласса…
Вот блин, придётся вручную…
Я давно отношусь с уважением к тем товарищам, которые придумали, продумали и создали такие вещи, как HTML и JavaScript - этим технологиям в обед сто лет, а возможности мы до сих пор не исчерпали.
Чего, однако, явно не хватает веб-страницам, так это ComboBox - стандартного списка, который позволяет не только выбирать одно из имеющихся значений, но и писать в строке ввода текст с тем, чтобы автоматом выбралась похожая запись. Оно есть в винде, всем им пользуются, например, при вводе имени файла в стандартном диалоге.

Конечно, любой JavaScript-фреймворк имеет такой контрол, но все они какие-то недоделанные - раз, часто ведут себя по-разному в различных броузерах - два, не пашут без включённого JavaScript - три.
Тем не менее, самый, на мой взгляд близкий к виндовому вариант (что означает привычность использования - один из постулатов юзабилити) находится здесь, но в ИЕ немного колбасит низлежащий текст. Что поразило - ну очень похоже на то, как оно должно быть, я даже полез смотреть код, чтобы убедиться, что это на JS сделано, а не впаяли как-то новый контрол прямо в броузер
Знает кто действительно классную реализацию, чтобы вообще без нареканий?