Christian Archer Chase Your Dreams!

четверг, 11 апреля 2013
01:54 СтарТречное
The Doctor was sensibly bitter
When they hijacked his holo-emitter
For now he depends
To stay current with friends
On the ancient tech once known as Twitter

© Robert Picardo
URL
понедельник, 08 апреля 2013
22:37 Iron Lady
Вслед за Парфёновым снимаю шляпу

Margaret Hilda Thatcher 1925-2013
Margaret Hilda Thatcher
1925-2013
URL
воскресенье, 07 апреля 2013
02:03 Darth Saud
06.04.2013 в 23:17
Пишет  Шаман Синусоидная Рука Ы Печенье Лом:

УПРЛС

В 2007 году король Саудовской Аравии Абдалла ибн Абдель Азиз Аль Сауд, которого многие считают одним из самых жестоких диктаторов и попирателей человеческих прав и свобод, посетил с государственным визитом Великобританию. По этому случаю оркестр Уэльской гвардии, обычно сопровождающий официальные мероприятия с участием королевы, прямо во время торжественной встречи короля вместо традиционной приветственной музыки исполнил Имперский марш из «Звёздных войн».




URL записи
URL
четверг, 04 апреля 2013
02:01 Don't Blink
Видимо, окончательно переходя на путь "Embrace, Extend, Exterminate", Гугл решил форкнуть WebKit. Возрадуйтесь, верстальщики! Теперь, когда готовится исчезнуть Presto, движок Оперы, появится новый движок — Google Blink.

С другой стороны, учитывая политику Apple с CSS-префиксами, может это и не так плохо, всё-таки перевес пользу Вебкита возник из-за Хрома, а стандарты в движке нарушаются из-за Сафари.

Опс, на Хабре пишут:

Если вы загорелись использовать Blink в своих проектах, то тут небольшое разочарование, потому что движок слишком плотно привязан к кодовой базе Chromium, поэтому без неё Blink фактически бесполезен. Тем не менее, можно будет использовать наиболее лёгкий Chromium Embedded Framework.

http://habrahabr.ru/post/175377/


Это таки плохо.

И на всякий случай, если вы пользуетесь Хромом или Хромиумом, старайтесь не моргать :3

chrome-dont-blink
URL
воскресенье, 31 марта 2013
19:16 Понаехали тут
Начиная с сегодняшнего дня, на серверах QIP запрещена арабская вязь в джидах, никах, в сообщениях, теме и названиях комнат, в презенсах.
Сервис конференций пришлось перезагрузить наживую. Приносим извинения за неудобства.

http://juick.com/QIP/2292699


Теперь и в наших интернетах "понаехали"? :D
URL
пятница, 29 марта 2013
23:22 One Does Not Simply Install Windows 8
boromir-One-does-not-simply-walk-into-Mordor

Внезапно узнал, что просто взять и установить Windows 8 нельзя — нужна особая извращённая
OEM-версия, на которую к тому же не будет суппорта. (Кому ж он нужен, конечно, но тем не менее)

И, кстати, попробуйте найти об этом инфу на сайте Майкрософта — http://windows.microsoft.com/en-us/windows-8/upgrade-to-windows-8. Я, наверное, минут 15 втыкал и уж было подумал, что это невозможно вообще
URL
четверг, 28 марта 2013
среда, 27 марта 2013
вторник, 26 марта 2013
01:38 Prolog: Я свой собственный дедушка
Задача:
Два мужика встретились в баре и разговорились. Через некоторое время один из них сказал: "Ты думаешь только у тебя семейные проблемы? Послушай про мою ситуацию: Несколько лет назад я встретил молодую вдову со взрослой дочерью, и мы поженились. Недавно мой отец женился на моей падчерице. Это сделало мою падчерицу моей мачехой, мой отец стал моим пасынком. Кроме того, моя жена стала тещей собственного свекра. Идем дальше, у дочери моей жены (моей мачехи) родился сын. Этот мальчик мой единокровный брат, потому что он сын моего отца, но он также сын дочери моей жены, что делает его внуком моей жены. Это делает меня дедушкой моего единокровного брата. Это было бы еще терпимо, пока у нас с женой не родился сын. Теперь сестра моего сына, моя теща, стала еще и бабушкой. Это делает моего отца шурином моего ребенка, сводная сестра которого — жена моего отца. Я шурин моей мачехи, моя жена — тетя ее обственного ребенка, мой сын — племянник моего отца, а я свой собственный дедушка, а ты тут жалуешься на семейные проблемы!"

Поскольку вводить кучу семейных отношений ломает, докажем лишь дедушку.

# j = our generation; i = john's father; k = jane's daughter

male(john). # our protagonist
male(ian).
female(jane).
female(kate).

family(john, jane).
family(ian, kate).

parent(ian, john).
parent(jane, kate).
parent(X, Y) :- family(X, Z), parent(Z, Y).
parent(X, Y) :- family(Z, X), parent(Z, Y).

father(X, Y) :- parent(X, Y), male(X).

grandfather(X, Y) :- father(X, Z), parent(Z, Y).

# and these couples have children
parent(john, keegan).
parent(ian, jake).


Где Джон — это и есть наш мужик. Для проверки вводим или grandfather(john, john) — выдаст True, или grandfather(X,X) — выдаст X=john.

При решении задачи использовался компилятор SWI-Prolog 5.6.59

Под катом подробно закомментированный вариант.

## Семейные хитросплетения:
## 1 буква имени, чтоб не запутаться:
#
# J — наше поколение
# I — поколение родителей
# K — поколение детей

male(john). # Несколько лет назад я
female(jane). # встретил молодую вдову
female(kate). # со взрослой дочерью
parent(jane, kate).
family(john, jane). # и мы поженились.
male(ian). # Недавно мой отец
parent(ian, john).
family(ian, kate). # женился на моей падчерице.

parent(ian, jake). # Идем дальше, у дочери моей жены (моей мачехи) родился сын. // ну не сам же собой родился ^^
# на самом деле он тут для совместимости с текстом. в выводе по нашей задаче он роли не играет

parent(john, keegan). # Это было бы еще терпимо, пока у нас с женой не родился сын.
# пол детей роли не играет, поэтому не мусорим в памяти

#
## все в сборе, начианем веселье
#

# супруг(а) родителя тоже родитель!!!
parent(X, Y) :- family(X, Z), parent(Z, Y). # осторожно, если поменять местами, будет бесконечная рекурсия // сам напоролся
parent(X, Y) :- family(Z, X), parent(Z, Y). # на самом деле в задаче не требуется

# отец — это родитель мужского пола.
father(X, Y) :- parent(X, Y), male(X).

# дед — это отец родителя
grandfather(X, Y) :- father(X, Z), parent(Z, Y).

#
## всего три правила, а какая семейная трагедия!


Вот такой вот prololg.
URL
понедельник, 25 марта 2013
23:33 PHP 5.5 yield
Извращаюсь с новой игрушкой

$a = function () {for ($i = 0; $i < 10; $i++) yield $i;};
foreach ($a() as $i) echo $i; // 0123456789


Жаль, что не работает foreach ($a as $i) echo $i;, тогда можно было бы написать короче

foreach(function () {for ($i = 0; $i < 10; $i++) yield $i;} as $i) echo $i;

Или будь PHP похож на одного из своих предков, можно было бы

foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})() as $i) echo $i;

Даже извращения не работают типа

foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})->__invoke() as $i) echo $i;

Если кто не догнал, я пытаюсь сделать вот это:

(0..9).each { |i| print i }
URL
воскресенье, 17 марта 2013
07:50 Google Clusterfuck
Когда shit happens, shit обычно happens сразу массово, подумал я и чутьё меня не подвело. Гугл начал какое-то массовое непойми чё. К счастью, ко мне относилось только это:
CalDAV API после 16 сентября 2013 года будет доступен только для разработчиков из белого списка. Всем остальным разработчикам придется переключиться на использование Google Calendar API;

не зря я утащил оттуда свои календари :)

И вот еще круто:
Google сегодня «обрадовала» всех разработчиков приложений типа AdBlock вестью о том, что все их приложения заблокированы в соответствии с пунктом 4.4 Соглашения разработчика о распространении продуктов, который гласит:
Вы обязуетесь не совершать действий (включая разработку и распространение Продуктов), которые нарушают или прерывают работу устройств, серверов, сетей и других объектов и служб третьих сторон, включая пользователей Android, компании Google и операторов мобильной связи, а также наносят им другой ущерб. Запрещается использовать информацию о покупателях, полученную на Android Маркете, для продажи или распространения Продуктов вне Android Маркета.

Итак, под раздачу попали AdBlock Plus, AdFree, AdBlocker и другие. Понятное дело, что формально эти приложения действительно наносят вред инструментам монетизации приложений через рекламу, но шаг сам по себе не очень красивый. AdBlock для Firefox вроде работает как нужно, поэтому от рекламы в Интернете спастись можно.

Надо будет на всякий отрубить телефон от Google Play

Я даже перестал расстраиваться, что Samsung отказалась от ОС Android
URL
суббота, 16 марта 2013
19:27 Не доживут до зимы
Вслед за Google Reader в /dev/null решил прогуляться Formspring

Сервис Formspring.me, запущенный в ноябре 2009 года, закрывается по причине необходимости огромных ресурсов для его работы. Об этом было объявлено в блоге компании 15 марта.

http://habrahabr.ru/post/173011/


Эпидемия у них что ли?
URL
05:45 Googless

Я регался на Gmail и Google+ когда это не было мейнстримом
— G. Christian Archer



Итак, с предстоящей смертью Google Reader пришлось искать ему замены. Нашел сразу три. Точнее, после отбора осталось 3 варианта — The Old Reader в духе Google Reader до изменений 2011 года, BazQux — платный, но умеющий всякие штуки типа подсасывания комментариев и третий вариант — возможность поднять на своем серваке Tiny Tiny RSS, который хоть и простенький, но умеет API, которым пользуется клиент Liferea (который тоже умеет тягать комментарии, но не переваривает категории TT RSS, кидая все подписки в кучу. ИЧСХ, с Google Reader он так не поступал) О результатах позже, щас я осваиваюсь со свеми тремя, благо все сжевали экспорт из Ридера — напишу что выбрал когда кончится триал BazQux.

Но встал и другой вопрос — а нужен ли мне вообще теперь Google? Незаменимых всё-таки у нас нет. Решил избавиться от гугла везде где возможно, прежде всего от Google Apps для домена sunchaser.info. Первым под нож пошел календарь. Т.к. веб-интерфейс для него мне в общем-то не нужен, он был заменен синхронизацией через Fruux (для календаря я юзаю Mozilla Thunderbird + Lightning), туда же отправилась и адресная книга.

С почтой сложнее — Яндекс я не очень хочу (мне не нравится как настраивается почта для домена), Windows Live не поддерживает IMAP — для меня это критично. Пришлось остановиться на Zoho Mail — лимит в 3 бесплатных аккаунта на домене оказался как раз. Хотя я не знаю что делать если потребуется 4-й :D

В итоге остались поиск гугла, синхронизация Chrome (но у меня всё равно основной браузер Firefox), инструменты вебмастера, остался сам Google Apps — в спящем состоянии, всё таки это старая Free Edition, на 50 аккаунтов — не выбрасывать же. Ну и телефон на Андроиде. Куда ж без него.
URL
четверг, 14 марта 2013
12:31 Google Murder
Гугл решил прибить последний сервис, который мне у него нравился — Google Reader. Ищу альтернативы
URL
среда, 13 марта 2013
23:28 Напоминальщик Noty
Был раньше такой удобный напоминальщик — Noty, жил в джаббере по адресу [email protected]. Т.к. он похоже то ли откинул копыта, то ли на него автор забил просто, решил поднять свою копию, благо он опенсорс. Живет на [email protected], код взят с github.com/Ximik
URL
воскресенье, 10 марта 2013
17:33 Sheremetyevo Cheap

I need to find some food in this terminal. I'm hungry for eternity. — Selene Shepard


Всё хотел с прилета из Праги написать про это открытие, но влом было.

Так вот, если вы застряли в Южном комплексе аэропорта Шереметьево (Терминалы D, E, F) и испугались тамошних цен, вам инфа: на 1 этаже Терминала F есть минимаркет 24 с минимальными наценками.

sheremetyevo-cheap

Магазин любезно подсказан работниками аэропорта. Схема взята с официального сайта
URL
13:51 Adding Java Style
Оппа, оппа, Java Style

Что делает эта программа?

use SimplePHPEasyPlus\Number\NumberCollection;
use SimplePHPEasyPlus\Number\SimpleNumber;
use SimplePHPEasyPlus\Number\CollectionItemNumberProxy;
use SimplePHPEasyPlus\Parser\SimpleNumberStringParser;
use SimplePHPEasyPlus\Iterator\CallbackIterator;
use SimplePHPEasyPlus\Operator\AdditionOperator;
use SimplePHPEasyPlus\Operation\ArithmeticOperation;
use SimplePHPEasyPlus\Operation\OperationStream;
use SimplePHPEasyPlus\Engine;
use SimplePHPEasyPlus\Calcul\Calcul;
use SimplePHPEasyPlus\Calcul\CalculRunner;


$numberCollection = new NumberCollection();

$numberParser = new SimpleNumberStringParser();

$firstParsedNumber = $numberParser->parse('1');
$firstNumber = new SimpleNumber($firstParsedNumber);
$firstNumberProxy = new CollectionItemNumberProxy($firstNumber);

$numberCollection->add($firstNumberProxy);

$secondParsedNumber = $numberParser->parse('1');
$secondNumber = new SimpleNumber($secondParsedNumber);
$secondNumberProxy = new CollectionItemNumberProxy($secondNumber);

$numberCollection->add($secondNumberProxy);

$addition = new AdditionOperator('SimplePHPEasyPlus\Number\SimpleNumber');

$operation = new ArithmeticOperation($addition);

$engine = new Engine($operation);

$calcul = new Calcul($engine, $numberCollection);

$runner = new CalculRunner();

$runner->run($calcul);

$result = $calcul->getResult();
$numericResult = $result->getValue(); // 2


Она вычисляет 1+1!!!

http://habrahabr.ru/post/172119/
URL
суббота, 09 марта 2013
четверг, 07 марта 2013
понедельник, 04 марта 2013
01:48 Я.Онлайн




После запуска собственного Jabber-сервиса, Яндекс перешел к следующему логическому шагу: выпустил свой Jabber-клиент. По скринам сильно напоминает Google Talk. Это скорее хорошо, чем плохо. Гугл знает толк в интерфейсах.

Насладиться обкаткой не удалось, потому что он сразу же захотел уствановить Flash для IE, чего, на мой вкус, для проги под вайном жирновато :(

http://online.yandex.ru/
URL