Search
Write a publication
Pull to refresh
26
0
Джагаев Давид @1eon

User

Send message

Правильная обработка ошибок в PHP

Reading time7 min
Views33K

Что я понимаю под правильной обработкой:


  • Универсальное решение, которое можно вставить в любой существующий код;
  • Легко расширяемое решение;
  • В PHP аж три «механизма ошибок»: собственно ошибки (error), исключения (exception) и утверждения (assertion). Свести три механизма к одному — exception. В комментариях к предыдущей статье на эту тему выражалось мнение, что exception это плохой и/или сложный метод обработки ошибок. Я так не считаю и готов это обсудить в комментариях;
  • Опциональное логирование;
  • Общий обработчик exception, который будет поддерживать разные форматы вывода и debug/production режимы;
  • В debug режиме должен выводится trace. Требования к trace: компактный, понятный и по возможности ссылки на открытие файлов в IDE.

Теперь по порядку

Новый взгляд на удаленное управление компьютером – пятьсот километров и ни одной ошибки

Reading time4 min
Views40K
Два дня назад я переустановил систему на компьютере, который находится в 500 километрах от меня. Именно сам, а не по известной схеме «теперь кликните «ОК», да, мышкой, левой кнопкой. Нет, он не сломался, он перезагружается». Понятно, что без технологической магии дело не обошлось.

image

Список заклинаний - внутри

Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями

Reading time7 min
Views121K
Продолжение перевода первой части руководства. Начало тут.

В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.
Читать дальше →

Git Workflow

Reading time6 min
Views120K

1 Вступление



В топике освещаются не столько подробности работы с git, сколько его отличия от схемы разработки других систем контроля версий, и общий подход (выработанный по большей части личным опытом и Git Community Book) к работе.


Читать дальше →

7 бесплатных сервисов для проверки сайтов (о которых вы могли и не знать)

Reading time2 min
Views257K
Картинка для привлечения внимания
Мне достаточно часто приходится использовать различные онлайн-сервисы для проверки доступности сайтов и их поверхностных тестов и проверок.
Как показал краткий опрос коллег — почти у всех эти наборы сервисов отличаются. Я хочу показать вам свой, прошу в
подробности

Смотрим кино с субтитрами сразу на двух языках

Reading time2 min
Views30K
Увидев только что на Хабрахабре вот эту блогозапись, подумал, а нельзя ли сделать так в Линуксе. Оказалось — можно. Причём метод не зависит от проигрывателя видео, главное, чтобы программа поддерживала субтитры в формате ASS.

Скриншот
Читать дальше →

openSUSE 11.3 «Teal»

Reading time2 min
Views1.1K
image

Сегодня вышла новая версия дистрибутива openSUSE

В 11.3 на DVD и в официальные репозитории помимо KDE 4.4.4, GNOME 2.30.1 и XFCE 4.6.1 включено так же легковесное окружение LXDE 0.5.5.

Для любителей острых ощущений в официальные репозитории включены grub2 и система инициализации upstart, кроме того инсталлятор предоставляет возможность установки на btrfs.

Значительные изменения в графической подсистеме:
  • Ушла в небытие Sax2 — утилита для настройки X сервера, так как в 11.3 используется X.org 7.5 и xserver 1.8, умеющий самостоятельно выбирать подходящий драйвер для видеокарты.
  • Для систем с видеокартами Intel, Nvidia и AMD/ATi по умолчанию включен режим KMS.
  • Драйвер radeonhd заменен на radeon.
  • Для видеокарт Nvidia по умолчанию используется драйвер Nouveau


Долгожданные изменения в системе управления пакетами:
  • Zypper теперь имеет ключ —clean-deps, которая позволяет удалить вместе с пакетом все его зависимости, не связанные с другими пакетами.
  • Zypper теперь предупреждает о смене производителя при обновлении(репозитория).

Читать дальше →

Код, который невозможно поддерживать (часть 2)

Reading time7 min
Views3.5K
Продолжение этого топика — вторая и третья главы эссе «Unmaintainable Code». Несколько перекликается с первой, но описанные методы уже не так очевидны (а некоторые отличаются поистине дьявольской изобретательностью и не меньшей злокозненностью). Ах да, с заявленного в прологе языка Java автор незаметно переключился на C/C++.

Камуфляж



Искусство камуфляжа — сокрытия вещей или маскировки их под другие — составляет значительную долю искусства написания неподдерживаемого кода. Большинство приемов этого раздела основаны на том, что компилятор воспринимает и обрабатывает код иначе, чем текстовый редактор или человек. Ниже приведены избранные приемы камуфляжа:

Читать дальше →

Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

Reading time6 min
Views254K

Предисловие


Об этом руководстве


Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



Данная первая часть руководства отлично подходит для новичков в Linux, а также для тех пользователей, кто хочет освежить или улучшить свое понимание фундаментальных концепций Linux, таких, как копирование и перемещение файлов, создание символических и жестких ссылок, а также стандартных команд обработки текста, включая конвейеры и перенаправления. По ходу мы также дадим множество советов, подсказок и трюков, что делает это руководство насыщенным и практичным, даже для тех, кто уже имеет солидный опыт работы с Linux. Для начинающих большая часть этого материала будет новой, но более продвинутые пользователи Linux найдут это руководство отличным средством, чтобы разложить свои фундаментальные навыки по полочкам у себя в голове.


Читать дальше →

Деревенские заметки

Reading time4 min
Views3.2K
Привет, друзья!

Уже несколько дней живу в деревне – радуюсь солнышку и теплу.
Вот несколько интересных наблюдений о деревне.

Сегодня купил в местном сельпо мангал – неплохой такой мангал и шесть шампуров к нему обошлись в 190 рублей. Коммунизм уже наступил.

Местная речка оккупирована продленкой в школе и местными девушками – мальчиков почти нет. На купальники и прочую ерунду многие не обращают внимания – купаются и загорают топлесс или просто в чем мать родила. На меня посматривают многозначительными взглядами.

Покупал в магазине пять литров молока, думал что спросят что так много купил. Спросили почему так мало – обычно берут от 10 литров за раз. Хлеба тут тоже покупают по пять-шесть буханок. Вообще здешние закупают неприлично много продуктов – тушенку, какую-то колбасу по девяносто рублей килограмм (я думал такой вообще не существует). Все это слабо вяжется с местными зарплатами – в среднем получают по пять-шесть тысяч в месяц.

В деревне два магазина – один продает продукты, а второй продукты и водку. Первый работает до шести, второй – до 11.
Читать дальше →

5 тем оформления в стиле ретро

Reading time2 min
Views5.6K
С переходом к каждой более визуально анимированной теме рабочего стола и графическому интерфейсу легко забыть, насколько быстро развились темы, используемые нами сейчас. Так что вот несколько ретро-тем рабочего стола в случае, если все современные темы не заставили вас забыть о BeOS.

Windows 2000


Начнём с этой скучной серой темы Windows. При желании вы можете почти полностью воссоздать её в Ubuntu, используя тему Gnome Redmond, подобный оконный менеджер и набор иконок.



Последовательная инструкция по установке — здесь
Читать дальше →

Код, который невозможно поддерживать

Reading time7 min
Views11K
Вольный перевод с сокращениями первой части эссе «Unmaintainable Code». Именование переменных — довольно банальная тема (хоть и забавно изложенная), но без этой части эссе было бы неполным.

Пролог



Это самое популярное из моих эссе. Удивительно, сколько людей не понимают, что это насмешка.

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

Не переусердствуйте: ваш код не должен выглядеть неподдерживаемым, а только быть таким, иначе он рискует подвергнуться рефакторингу или просто быть переписанным.

Читать дальше →

Что интересного нам расскажет EXPLAIN EXTENDED?

Reading time6 min
Views13K
Большинство разработчиков на MySQL знакомы с командой EXPLAIN, однако значительно меньше людей знают о команде EXPLAIN EXTENDED, появившуюся ещё в MySQL 4.1, и ещё меньше умеют ею пользоваться.

EXPLAIN EXTENDED умеет показывать, что же конкретно делает с Вашим запросом оптимизатор MySQL. Для разработчика может быть совсем не очевидно, насколько сильно может отличаться написанный им запрос от того, который в действительности будет выполнен сервером. Этот процесс называется механизмом перезаписи запросов (query-rewrite), и он является частью любого хорошего SQL-оптимизатора. Команда EXPLAIN EXTENDED добавляет дополнительные предупреждения (warnings) к выводу команды EXPLAIN, в том числе и переписанный SQL-запрос.
Читать дальше →

Объединение нескольких разделов в один без потери информации

Reading time2 min
Views46K

Задача


Необходимо объединить несколько существующих разделов в один без потери информации. Такое может случиться, если заранее не был задействован LVM, а необходимо расширить пространство, например, для торрентов.
Узнать решение

Возможно, баг в PHP, возможно фича…

Reading time1 min
Views3.1K
… а возможно — баг у меня в уставшей к вечеру голове -))

Пробуйте на PHP 5.3.1, версию 5.3.2 не успел проверить.

Простейший код:
abstract class First {

function init() {
echo static::DIR;
}

}

class Second extends First {

const DIR = 'test';

}

Second::init(); //ожидаем "test"


Запускаем, вполне ожидаемо получаем «test». Что и логично. Используем появившуюся недавно возможность LSB, все работает корректно.

ОК, добавим еще немного кода:
Читать дальше →

Улучшение для дерева коментариев хабра

Reading time2 min
Views772
Некоторые статьи вызывают оживлённые дискусии с сотнями коментариев, ветки которых занимают по два экрана на 1280х1024.

Например, вот на этом снимке экрана легко запутаться в уровнях коментариев.

Мне хотелось чтобы дерево коментариев было оснащено такими вертикальными линиями с минусиками к которым мы привыкли во многих современных редакторах. И я это сделал на выходных.

Сравните со снимком экрана после.







Далее: описание принципа работы, инструкция по установке

Дополнительные 24 часа в сутках. Игры со временем

Reading time8 min
Views17K
Мечта многих моих друзей и знакомых, чтобы у них было больше времени. На что, вопрос второй. Кому-то время нужно на семью, кому-то на любимую работу, кому-то на отдых. Но время, это тот ресурс, которого не хватает у нас всех. Мне удалось спрессовать время и получить в сутках, вначале лишние десять минут, потом час, потом еще несколько часов. За десять лет, время спрессовалось так, что в моих сутках около 48 часов. За неделю я успеваю сделать столько, сколько многие люди за две, три, а то и месяц. Без ущерба личной жизни, качеству работы, не с помощью бессонных ночей и постоянных авралов. В небольшой заметке постараюсь изложить основные положения той системы, которой придерживаюсь, чем она помогает мне, какие слабые и сильные стороны в ней есть. Чтобы изложить все приемы и уловки, понадобится не один материал, рассматривайте эту заметку, как вводную. Если вам понравится, и вы скажете, что желаете прочитать продолжение, то оно появится.

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

Время это не только физическая величина, но и психологическая

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

Читать дальше →

30 комплектов иконок в стиле минимализм

Reading time1 min
Views47K
image

Минимализм — стиль в дизайне, характеризующийся лаконичностью выразительных средств, простотой, точностью и ясностью композиции. Отвергая классические приемы творчества и традиционные художественные материалы, минималисты используют промышленные и природные материалы простых геометрических форм, нейтральных цветов (черный, серый) и малых объемов.
Эти значки идеально подходят для проектов, которые направлены на контент и типографику.
Читать дальше →

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity