Vulpo One

Тоже забавно

Вот еще забавность:

<?php

namespace test;

class SomeName
{
    public static function SomeName()
    {
        echo "something\n";
    }
}

$a = new SomeName();
$a->SomeName();
/* печатает something */
<?php

// namespace test;

class SomeName
{
    public static function SomeName()
    {
        echo "something\n";
    }
}

$a = new SomeName();
$a->SomeName();
/* PHP Fatal error: Constructor SomeName::SomeName() cannot be static in /tmp/test.php on line 11 */

Причем если предыдущий пример был недоработкой по сути, то это фича

Comments


Забавно

<?php

$b = new stdClass;

$b->method = function($x) {
    var_dump( $x);
};

$b->method->__invoke('dads');   // string(4) "dads"
$b->method('dads');             // PHP Fatal error: Call to undefined method stdClass::method() in php shell code on line 1
($b->method)('dads');           // PHP Parse error: syntax error, unexpected '(' in php shell code on line 1

*задумался*

Comments



Jadaver

Apache Harmony был моделью Java, полностью неудовлетворенной. OpenJDK - модель Java, неудовлетворенная желудочно. Oracle в застенках готовит модель Java, удовлетворенную полностью.

—shimon (linux.org.ru)

Я всегда подозревал, что Java это кадавр.

Comments



Расшифровывалка паролей FTP для FAR Manager

Потребовалось сегодня по работе, все забыли пароль к одному серваку =)

Всё оказалось проще пареной репы.

  1. Лезем в настройки фара и находим заветный пароль в формате hex:a1b21a2112100162681711
  2. Идем в репо фара и находим исходник шифорвщика/дешифровщика — http://farmanager.com/svn/trunk/plugins/ftp/Crypt.inc
  3. Пишем обертку для дешифоратора или переделываем его по аналогии на любимый язык

Я подумал и решил, что проще всего переделать его на Ruby

#!/usr/bin/ruby

src = ''
ARGV[0].scan(/../).each { | tuple | src += tuple.hex.chr }

xor_mask = (src[0]^src[1]) | 80

src = src[2..-1]
src.each_byte do |c|
  res = c ^ xor_mask
  print res.chr
end

print "\n"

P.S. Господа Ruby-кодеры, если меня, конечно, читают такие, объясните, пожалуйста, почему лезет варнинг? Совсем не понимаю где я Doing It Wrong.

./far_pwd_decode.rb:4: warning: already initialized constant Src
./far_pwd_decode.rb:8: warning: already initialized constant Src

P.P.S. За гениальную строчку

.scan(/../).each { | tuple | Src += tuple.hex.chr }

спасибо г-ну James “raggi” Tucker.

P.P.P.S. Ога, оказывается переменная с заглавной буквы это константа. thnx to Подвальный кот. Актуальную версию со всеми фиксам всегда можно стащить с репы: https://bitbucket.org/sunchaser/miscellaneous/src

Comments


URL Shortener

От нечего делать наклепал свою сокращалку ссылок.

Посмотреть можно на http://url.sunchaser.info/

Фича — верификация по OpenID — должна отпугнуть от вашей сокращалки мошенников

Файлы add.php, auth.php и show.php можно инклудить, чтоб вписывалось в дизайн сайта. Но мене самого как всегда ломает

UPD: исправлена бага с Яндексом, качать там же, в common.inc.php новый параметр ($urlsh[‘url’][‘root’])

Comments


Новый видеоформат для Web

Не всегда новое это хорошо забытое старое, это может еще совсем-совсем свежее, просто еще подштукатруенное. Например урезанный MKV (WebM) + вот-вот ставший свободным VP8 + старый добрый OGG Vorbis = WebM — новая попытка профорсить единый стандарт для веб-видео, на этот раз вместе с Google, который подключил в войну теперь не только Хром, но и Утьюб.

Будем надеяться, что это технически подкованное решение в отличие от предыдущей попытки — слабоватой Theora в нерассчитанном на видео контейнере OGG (OGV) — займёт лидирующие позиции в инете.

Comments



WordPress 3.0 Beta 2

Не удержался и бетатестнул. Из видимых нововведений — механизм менюшек. Теперь там можно не только “страницы”, но и произвольные ссылки, и категории постов.

А также теперь тут встроен WordPress MU — движок для хостинга блогов. Учитывая, что у меня тут больше одного вордпресика, было бы удобно, если бы было вовремя. Щас уже удобнее держать их раздельно.

Comments