Category: it

Category was added automatically. Read all entries about "it".

Некоторые философские размышления насчёт программирования

Мы тут на работе организовали доморощенный курс по С++ и вообще программированию для людей без всякого компьютерного образования, которые хотят продвигаться.
Я подвизался его вести. 

Collapse )

О блокчейновой революции

Я думаю, мне удалось для себя понять, какую революцию на самом деле совершает блокчейн. Ну, вернее, совершит в будущем, сейчас ещё рано говорить. И тут я говорю даже не о биткоине, а об Ethereum и подобных ему платформах. И главным образом натолкнула меня на эту мысль дурацкая игра CryptoKitties на основе Ethereum. В этой игре можно покупать нарисованных котов, скрещивать их, выращивать новых и потом продавать. А можно коллекционировать редких котов, а потом уже продавать за огромные деньги. Некоторые коты стоят по сто тысяч долларов. А в будущем, может и ещё больше.
На самом деле игра эта не такая дурацкая, как может показаться - это, скорее, proof-of-concept. Дело в том, что если вы владеете виртуальным котом, то это навсегда. Даже если компания, которая создала игру, исчезнет с лица земли вместе со всеми своими серверами, кот всё равно будет принадлежать вам вечно (ну, по крайней мере до тех пор, пока будет существовать сеть Ethereum, а так как убить её почти так же сложно как весь интернет, то шансы высоки).

Так вот, моя мысль. Блокчейн (или, говоря точнее, распределённая платформа смарт-контрактов) позволяет превращать объекты виртуального мира в объекты реального, физического мира. Нарисованный кот, который не может исчезнуть, не принадлежит никому, кроме меня, и может быть отнят у меня только путём воровства (как настоящий кот) - это уже почти самый что ни на есть материальный объект.
Если завтра Гугл закроет gmail, то все мои мейлы, являясь чисто цифровыми объектами, исчезнут вместе с ним. Если Амазон решит забрать у меня всю годами накопленную библиотеку Kindle (или разорится, или все их сервера сгорят или ещё что-то), то я помешать этому никак не могу. Потому что эти книги нематериальны.
А если бы мои письма, книги и фотографии жили бы в блокчейне (или, скажем, в мировой распределённой файловой системе), то они практически превратились бы в осязаемые предметы, которые никому, кроме меня, не принадлежат.

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

Программистское

Для своего курса эзотерического программирования неожиданно написал интерпретатор давно забытого языка TRAC.
Он даже не настолько забыт, я думаю, насколько о нём вообще никто никогда не знал. Я о нём узнал в 1982 году из чудесной книжки "Этюды для программистов" Чарльза Уэзерелла (её тогда перевели с английского). Книжка почти вся развалилась, но я её бережно храню.
С тех самых пор я хотел написать этот интерпретатор, и вот через 35 лет руки дошли.
Автор советует использовать XPL, BLISS или Фортран. Настолько извращаться я не способен, поэтому написал его на Пайтоне.

Язык состоит исключительно из макро-подстановок. Оказалось, очень здорово на нём наглядно изучать рекурсию, closures и даже lambda calculus.
Будет про это подробная лекция.

P.S. А ЖЖ этот всё-таки надо закрывать. Надоело писать в никуда.


(no subject)

Машина Тьюринга из Lego Mindstorms (в честь его столетия):



А я как раз только что купил Lego Mindstorms и уже даже сотворил первого робота.
Это просто какое-то совершеннейшее Щастье.

(no subject)

Взломали ЖЖ Акунина. Надеюсь, у него есть backup.
Интересно, что случилось это как раз когда он стал много и активно писать по известному поводу.

UPDATE: Но на этом сегодняшние интересные новости, оказывается, не кончились.

Yet Another Another Another Monad Tutorial

Итак, монады. Я решил поделиться с читателями своим просветлением. Далее следует самое краткое объяснение монад, которое когда-либо существовало. Оно не совсем программистское, а больше философское, но по-моему, именно так и нужно понимать монады.

Collapse )

Про капчи и гениальные идеи

Когда случайно видишь простые и гениальные идеи, пройти мимо них просто не получается. Так и тянет написать.
Вот одна из таких идей: http://recaptcha.net

Если кто не знает, что такое captcha, то это такая штука с размазанными буквами-цифрами, которые обычно надо вводить при регистрации на какой-либо сайт. Это на самом деле маленький тест Тьюринга, который позволяет определить, где человек, а где компьютер. Сама по себе задача придумать идеальную капчу очень интересна, и есть очень даже неплохие идеи - но это отдельная тема.

Так вот, что придумали в проекте reCaptcha. Подсчитано, что каждый день люди решают примерно 60 миллионов капчей. И вот они решили поставить это бессмысленное занятие на службу распознавания просканированных книг.
Идея такова: несколько OCR программ распознают один и тот же текст. Если они не могут согласиться насчёт какого-либо слова, это слово поступает в качестве задания для капчи и даётся людям при регистрации на какой-нибудь сайт, участвующий в проекте. Проблема тут в том, что значение этого слова пока что никому не известно, а поэтому для распознавания даётся ещё и контрольное слово. Если человек распознал контрольное слово, то его ответ на слово под вопросом принимается в качестве кандидата. Потом это же слово даётся для распознавания ещё нескольким людям, и если они все распознали его одинаково, слово утверждается, и само становится контрольным.

Таким образом, люди, сами того не подозревая, помогают OCR-программам в распознавании книг. Польза выходит всем: бессмысленное действие поставлено на службу благому делу. Ни одно усилие в этой цепочке действий не пропадает зря. По-моему, это гениально.