Плохая цобако

4 марта 2010; Рубрика: php,Гон; Теги: , ;

Писец, сколько людей упёртых не там, где надо. Нахватались поначалу «правильных советов от великих гуру» и теперь остальным мозг выносят. «Никогда не используйте eval», «никогда не используйте @ в PHP»…

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

Итак, как можно бороться с ошибками в программном коде? Есть два основных способа:

  1. Путём их игнорирования.
  2. Путём их корректной обработки.

Как всем нормальным людям ясно, первый способ (для которого часто и используется собака) ведёт нас прямиком в ад. Человека, который не обрабатывает ошибки в коде, никто не будет уважать, не подаст ему руки и никакая девушка не выйдет за него замуж.

Нам нужна корретная обработка. Однако, ошибки бывают разные и способы их корректной обработки тоже разные.

Первый тип ошибок: ошибки в программе. Синтаксическая ошибка, в запросе опечатались, лень было проверить существование запрашиваемого ключа в массиве и т.п. Аналог проверяемых исключений (RuntimeException). Корректная обработка подобных ошибок может быть только одна — исправление программного кода на этапе разработки. И для этого нам нужно чётко отлавливать их появление и ни в коем случае не подавлять сообщения о них. Здесь собака действительно вредна.

Второй тип — непроверяемые. Сервер базы данных отвалился, сокет не открывается. На этапе разработки мы не можем устранить возможность подобных происшествий. Единственное, что можем, это обрабатывать эти ситуации. Пример:

$lid = mysql_connect($host, $user, $password);
if (!$lid) {
    throw new Exception('MySQL fail');
}

Мы не спрятали голову в песок. Мы корректно обработали возможную ошибку. Но вот незадача — несмотря на это, mysql_connect() всё равно выкинет совершенно уже ненужный нам Warning.

К чёрту Warning!

$lid = @mysql_connect($host, $user, $password);
if (!$lid) {
    throw new Exception('MySQL fail');
}

Вывод: слушайте умных дядей, но и своей головой думайте.

Из последнего

27 февраля 2010; Рубрика: мировые новости; ;

Записался я на широко разрекламированный мастер-класс по javascript. Но, в последний момент, взял его и проеболел. Впрочем, как говорят очевидцы, событие не совсем отвечало заявленному лозунгу «Этот МК – отнюдь не об основах javascript». Одно радует: хоть и не ходил, но всё равно получил сертификат — повешу на стенку.

Обновил в своём бложике wordpress. Данный процесс оказался несколько напрягающим, но об этом отдельно. Если заметите ошибки, пожалуйста, напишите об этом.

Купил себе нетбук. Теперь я компьютеромобилен, но об этом тоже отдельно.

Вышел PHP 5.2.13, ничем, особенно, не примечательный.

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

Билл Гейтс сбежал в Антарктиду от конкурентов, а Пентагон разрешил социальные сети. Прокуратура не хотела закрывать torrents.ru, видимо, это вышло случайно.

P.S. Да, и ещё: наши хоккеисты проиграли, причём ни во что-нибудь, а в хоккей. Отовсюду слышны всхлипы «мы проиграли, мы проиграли». К счастью, я не могу о себе сказать, что проиграл, ведь я не играл, а сидел на диване.

так…

24 февраля 2010; Рубрика: Гон; ;

Никогда не стоит говорить людям на собеседовании: «а сейчас я вам задам пару задачек, они, конечно, детские, но некоторые долбаёбы и их решить не могут».

Очень неудобно получается, когда они их тоже не решают.

Mercurial: первые впечатления (часть 2)

23 февраля 2010; Рубрика: mercurial; Теги: , , ;

Продолжаем разговор начатый в первой части.

Локальный репозиторий

Для примера, создаём тестовый каталог, допустим hg, а в нём папку с тестовым проектом, пусть будет my.
Теперь создадим там репозиторий: hg init.

C:\>cd hg\my

C:\hg\my>hg init

C:\hg\my>dir

21.02.2010  19:13    <DIR>          .
21.02.2010  19:13    <DIR>          ..
21.02.2010  19:13    <DIR>          .hg

Появившийся каталог .hg это и есть наша локальная репа. Не бойтесь, в отличии от SVN, он останется один и не будет лезть во все подкаталоги.

(Остальной текст под катом)

Mercurial: первые впечатления (часть 1)

21 февраля 2010; Рубрика: mercurial; Теги: , , ;

mercurial logo

На днях начал работать с Mercurial. На первый взгляд он охуенен. О чём здесь и поведаю.

Для тех, кто не в курсе, Mercurial, это система контроля версий. Типа SVN, но не SVN. Для тех, кто не в курсе что такое SVN, читать дальше бессмыссленно.

О меркуриале уже есть достаточно много информации, в том числе и на русском. Например:

Я попробую не расписывать подробно то, что уже неоднократно расписано, а описать свои впечатления. А так же показать, как человеку знакомому с Subversion, можно быстро пощупать Mercurial для, так сказать, первого ознакомления.

Так же просьба знающим людям тыкать меня носом в места, где я не прав.

(Остальной текст под катом)

Мировые новости за последнее время

14 февраля 2010; Рубрика: Новости; ;

Продолжаю писать этот идиотский заголовок, так как «мировые новости» единственный запрос, по которому сюда регулярно заходят.

Последние месяцы совершенно не было времени и сил для того чтобы предаваться графоманству в своём дневничке. Силы отъедала работа в супер-пупер-дупер проекте, об открытии которого хотелось бы здесь написать. Но так как открытие в очередной бесчисленный раз было отложено, то писать о нём, видимо, будут другие люди и в другом месте. Зато у меня скоро должно появится время и посетители смогут насладиться новыми дурацкими сервисами, тупыми рассказами и пафосными поучениями для чайников.

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

Из новостей ресурса — благодаря подвижничеству Михаила Андреева в деле переноса всего и вся с apache на nginx, этот сайт крутится теперь целиком на nginx и php-fpm. И отъедает намного меньше ресурсов, которые мы теперь можем потратить на всякую хуйню. Приношу извинения всем, кто не смог какое-то время попасть на сайт, а также тем, кому приходили на почту уебанские комментарии.

В тоже время супер-агрегатор торрентов Кинсбург.ру постепенно выходит на проектные мощности и ожидает, когда вы, наконец, разместите на нём свою рекламу. Теперь там можно регистрироваться, оставлять свои компетентные отзывы о фильмах и просто срать в камментах. В ближайшее время следует ожидать множества новых интересных сервисов. Это просто нереальная дичь!

А ещё я поставил себе FreeBSD с GUI и это просто пиздец. Но об этом в другой раз.

Tools: вычиталка дней

17 октября 2009; Рубрика: tools; Теги: , , ;

Сегодня на сайте открывается раздел «Тулзы» в котором будут собираться всякие полезные сервисы.

Но так как полезных сервисов пока нет, первым подразделом будет «бесполезные сервисы».

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

Крым-09: Одесса

10 октября 2009; Рубрика: Похождения; Теги: , , , ;

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

Местами было забавно, о чём я постепенно и поведую. Первая часть: Одесса (5М картинок).

Чёрное море в районе Ялты на фоне волосатых ног.

Prototype.js: введение

Того же дня; Рубрика: javascript,prototype.js; Теги: , ;

prototype.js

Можно много говорить по поводу того, нужны ли в JS навороченные фреймворки, а если нужны, то что из них говно, а что нет. Но по работе мне сейчас приходится использовать prototype.js, поэтому буду писать про него. Тем более, что не такое это и говно, если правильно готовить.



(Остальной текст под катом)

Всякое

Того же дня; Рубрика: мировые новости; Теги: , , , , ;

Google Gears: плагин расширяющий браузер до вообще не браузера. SQLite, многопоточный JavaScript, кросс-доменное общение, локальные файлы, хранилища и куча всего-всего. Из минусов: пользователь должен сей чудесный плагин установить и на каждый пук давать разрешение. Сам не пробовал — попробую отпишусь.

Не отстаёт от Гугла и Яндекс. Яндекс-Гирза пока нет, но зато есть эстонский яндекс с рассово верными тормозами.

Блог Дмитрия Сошникова на javascript.ru: несколько тягомотная теория по ECMA-262. Тем кто хочет начать изучать JavaScript глубже jQuery, рекомендую.

Как заставить AJAX индексироваться: команде гугла всё не спится и она спешит представить нам новый подход который позволит индексировать сайты, сделанные с помощью AJAX.

Memcached. Как найти ключи по паттерну: грязные хаки, позволяющие делать из PHP с memcached, то что по идее делать не нужно, но часто очень хочется. В частности получить список хранимых ключей. Забавно.

HTML5: кэширование приложений для работы в оффлайне: HTML5 делает те же фишки, что и Google Gears. Преимущество HTML5 в том, что это стандарт. Преимущество GG в том, что он работает.

На пидистале: PHP уделал ЦПП и вышел на 3-е место по популярности. Особенно жжот Objective-C, так же, как оказывается, Pascal ещё живой и вообще не плохо себя чувствует.

Так же по слухам окончательный пиздец пришел к nVidia. По другим слухам пока не пришёл.

Популярность Кинсбург.ру уже достигает трёхсот человек в день. Видимо, пора прикупить там рекламы, чего и всем советую.

Типочки:
© Я не я и сайта не моя, 2008–2011