Ох уж этот sterr

Отличие stderr от stdout изначально задумывалось в том, чтобы как ни перенаправляй выходной поток, ошибки всегда вылезут на экран. Это работало в однозадачной MS-DOS, это работает и сейчас в простых скриптах.
Однако сейчас особенность sterr стала его же собственной проблемой. Во первых, с целью незагромождения оконного интерфейса, часто скрипты запускаются в скрытом окне. У WSHShell.run даже есть специальная опция, позволяющая это сделать. Во вторых скрипты часто запускаются по какому-либо событию (по расписанию или сигналу по сети) в отдельном консольном окне, которое сразу после окончания работы закрываются.
Хоть какая-либо попытка перенаправить выходной поток скрипта в какой-нибудь файл-журнал оборачивается крахом.
Последнее мое столкновение с данной проблемой была с РНР. Казалось бы в РНР есть функция set_error_handler, позволяющая все сообщения об ошибках выводить через echo в stdout. Но кто бы мог подумать, что разработчики библиотеки для работы с COM проигнорируют наличие этой функции и все сообщения об ошибках будут все равно выдавать в sterr.

Так что мое мнение: stderr – анахронизм, по крайней мере в Windows

Опубликовано в Дизайн. 1 комментарий »

Erlang:Dictionary с помощью оператора [ || ]

Оператор [ || ] открывает широкие возможности перед программистом, главное применить фантазию.
Одна из сфер, которую я нашел для этого оператора – это создание Dictionary.

  1. Создаем словарь:
    A=[{1,'orange'},{2,'apples'},{3,'milk'}].
  2. Ищем по ключу:
    [Y||{2,Y}<-A].
    [apples]
  3. Ищем все ключи, которые выдают milk:
    [X||{X,'milk'}<-A].
    [3]
  4. Удаляем элемент:
    [{X,Y}||{X,Y}<-A,X=/=2].
    [{1,orange},{3,milk}]

Эрланг в очередной раз показывает, как лаконично можно на нем выразить код.

Что мне не хватает в императивных языках

Очень не люблю серию вложенных условий в друг друга:

if(условие1)
{
	if(условие2)
	{
		if(условие3)
		{
			if(условие4) ...
		{
	}
}

Получаем быстрорастущую пирамиду в бок в которой уже сложно отследить, где начинается один блок, а где второй. Моя мечта, чтобы можно было писать так:

if(условие1)
{
	if(!условие2) breakif;
	if(!условие3) breakif;
	if(!условие4) breakif;
	...
}
Опубликовано в Дизайн. Комментарии (4) »

Голосование на сайтах

Сейчас все более популярным становится создание системы рейтинга на сайте. Это позволяет движку сайта отсортировать информацию по популярности. В качестве примера можно привести ресурсы Хабрахабр, reddit и Stack Overflow. В перечисленных ресурсах система голосования, является основной функцией, благодаря которым эти ресурсы обрели популярность. Прочтите эту запись до конца »

Собираем данные с других сайтов в автоматическом режиме

Зачем это может понадобится? Кроме передирания контента с чужого сайта можно решать менее аморальные задачи. Например можно сделать специализированный поисковик товаров по электронным магазинам со сравнительным выводом цен или собрать все объявления автомобильной тематики на одном ресурсе, или сделать сравнительную характеристику ипотечных кредитов по разным банкам, обновляемую автоматически, или… ну вобщем довольно интересный ресурс. Прочтите эту запись до конца »

Главный враг Linux

Как это не парадоксально но главным врагом Linux в рунете являются его фанатики. А точнее их стереотип о панацее командной строки. Я согласен, что превосходство функциональности командной строки перед GUI открывает широкие возможности для автоматизации рутинных действий. Но у командной строки есть своя специфика: Прочтите эту запись до конца »

Опубликовано в Юзабилити. Метки: . Комментарии (2) »

Когда приложения масштабируются

На первой фирме, на которой я работал, мы занимались автоматизацией бюджетных учебных учреждений. В их учёте есть такой нюанс, что они как правило финансируются и из бюджета и за счёт студентов-контрактников. И разделение это очень значимое: строго регламентировано за что с какого источника платить можно. Казалось бы третьего источника денег быть не может. Но наш руководитель заставлял нас писать систему так чтобы она работала нормально и пятью источниками финансирования. Это усложняло и без того запутанные участки кода, увеличивало время работы программы, но когда спустя 3 года министерство финансов прислало деньги и заставило их учитывать отдельно, оказалось что делалось это не зря. Прочтите эту запись до конца »

Опубликовано в Дизайн. Комментарии (2) »

Стал ли Linux десктопной системой?

После месяца знакомства с одним из дистрибутивов Linux – Ubuntu рискну дать субъективную оценку возможности использования его в домашних условиях. Ответ будет и да и нет.
Прочтите эту запись до конца »

Опубликовано в Юзабилити. Метки: , . Комментарии (3) »

О программистах и пользователях

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

Почему новая ОС априори хорошая

На блоге Алены видел ссылку на новую ОС Syllable. Повеселил на сайте раздел Актуальность проекта.

[+] Самобытность. Syllable не отягощена грузом обратной совместимости с драйверами и приложениями.

Что самое смешное, что таким преимуществом обладает любая новая ОС. Исходя из этого любая ОС-старожил автоматически обладает недостатком: она отягощена грузом обратной совместимости с драйверами и приложениями. Прочтите эту запись до конца »

Опубликовано в Дизайн. 1 комментарий »