Archive for the ‘Идиотека’ Category

Enthiran \ TTGL

Posted on June 29, 2011 at 18:58 · Permalink · Leave a comment
In: Идиотека

Надписи и объявления

Натоптыши.

Ксерок по 7 рублей.

Posted on June 24, 2011 at 12:50 · Permalink · Leave a comment
In: Идиотека

математическая заумь

А вы знаете, что если взять кота Шредингера, засунуть его в бутылку Клейна, обмотать скотчем Мебиуса, положить на ковер Серпинского и посыпать пылью Фату – можно вызвать демона Лапласа?

Posted on June 12, 2011 at 12:59 · Permalink · Leave a comment
In: Идиотека

Gemcraft Labyrinth: гем 12 уровня

А знаете что было после этого? Я нажал X чтобы его разбить, а фокус оказался не на флешке, а на самой странице. И она перезагрузилась.

:(

Posted on April 14, 2011 at 14:49 · Permalink · Leave a comment
In: Игры, Идиотека

Наушники MP3

Видимо, для прослушивания WAV или даже радио они не годятся. Москва, ВДНХ, павильон 1

Posted on April 13, 2011 at 11:01 · Permalink · Leave a comment
In: Идиотека

Новая порция идиотов

Posted on March 21, 2011 at 15:03 · Permalink · Leave a comment
In: Идиотека

Axe Gemcraft

Игравшие в Gemcraft поймут :)

Posted on March 21, 2011 at 14:59 · Permalink · Leave a comment
In: Игры, Идиотека

Python: ввод данных

Постепенно начинаю знакомиться с языком Python, на который очень сильно хочу перелезть с PHP. К счастью, недавно вышел пакет Python Tools for Visual Studio, который очень сильно упростил мне жизнь. К сожалению, он еще далек от совершенства (нет дебага, проблемы с кодировками), но все равно очень приятное дополнение.

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

Для того, чтобы попросить пользователя ввести какие-то данные, первая функция, которая приходит на ум – input(). И она действительно запрашивает у пользователя ввод, но как только ты жмешь Enter, откуда-то сыпятся эксепшены.

После чтения документации интернетов и документации оказалось, что input() после введения данных интерпретирует их как код на питоне и моментально исполняет его. А для ввода строки требуется использовать функцию raw_input().

И это весьма странно. В соответствии с правилами кодирования Хаффмана, у часто используемых функций должны быть более короткие имена. Получается, что в программы на питоне чаще вводят исполняемый код на питоне, чем строковые данные? :D

UPD: оказывается, в Python3 эта хитрость исправлена. input() теперь работает как raw_input(), а для имитации старого поведения можно использовать eval(). Есть все-таки в мире справедливость!

Posted on March 12, 2011 at 22:43 · Permalink · Leave a comment
In: Идиотека, Кодинг

Символизм

Сфотографировано в Адлере, пару лет назад.

Posted on March 12, 2011 at 13:35 · Permalink · Leave a comment
In: Идиотека

Типизация аргументов в PHP

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

1
2
3
4
function test(bool $arg)
{
  echo $arg ? "yes" : "no";
}

Однако эта возможность, как и следовало ожидать от возможностей в PHP, работает через раз. Например, я хочу добавить значение по умолчанию:

1
2
3
4
function test(bool $arg = false)
{
  echo $arg ? "yes" : "no";
}

Получаю болт по всей морде в виде фатальной ошибки:

Fatal error: Default value for parameters with a class type hint can only be NULL in file.php on line 1

Оказывается, у типизированных аргументов единственным значением может быть ключевое слово NULL.
Первый факап: на аргументы типа array это ограничение не распространяется. Их можно задавать, как и всегда:

1
2
3
4
function test(array $arg = array(1, 2, 3))
{
  echo $arg ? "yes" : "no";
}

А теперь, самое сочное!

1
2
3
4
5
6
7
function test(string $arg = null)
{
  echo $arg ? $arg : "Empty";
}

test();
test("hello");

Запускаем, и уходим в медитацию:

Catchable fatal error: Argument 1 passed to test() must be an instance of string, string given

Error: must be string, string given.

Глюк актуален в php 5.3.5 и работает только для встроенных типов, кроме array. Для значений по умолчанию не проявляется.

Posted on March 8, 2011 at 00:37 · Permalink · Leave a comment
In: Идиотека, Кодинг