Excelsior
Jan. 1st, 2020
12:00 am - Давайте познакомимся
Всем привет! Меня зовут Женя или Ксено. Здесь я буду постить свои новые идеи, рассуждения о программировании, события и факты, преломленные через призму моего восприятия. Не знаю даже, чего больше хочу - поделиться своими идеями во славу Мирового Разума, или заодно еще и получить фидбэк, но по ходу дела разберемся.
Коротко о главном. Очень люблю творчество (в моем случае оно находит выражение в программировании). Ищу общения с людьми, которым интересно жить. Хорошо, если вам будет тут интересно, очень хорошо, если что-нибудь пригодится, совсем замечательно, если мы подискассим посты в каментах. Меня можно и нужно называть на "ты". Кроме каментов связаться со мной можно по мылу/гтолку: xeno.by@gmail.com или по скайпу xeno.by. Также, у меня есть профайлы в плюсе, в твиттере и на фейсбуке.
Из интересного:
1) Мои опен-сорс проекты проиндексированы вот тут: http://projects.xeno.by (некоторые из них описаны в этом ЖЖ: пост про метапрограммирование в C#, пост про Конфлакс),
2) В аспирантуре EPFL работаю над системой метапрограммирования времени компиляции для языка Scala,
3) В аспирантуре ОИПИ НАНБ работал над Конфлаксом, системой для гетерогенных параллельных вычислений,
4) Люблю анализировать и оптимизировать wetware - ментальный фреймворк организации сознательной деятельности,
5) Проверяю на практике идею расширения сознания посредством смены инструментов работы: языка программирования, программного окружения, операционной системы. На этом пути меня порадовал Линукс, я был наповал сражен Емаксом, и смог заменить тотал коммандер на гораздо более эффективный файловый менеджер. Впрочем, через несколько месяцев линукса я вернулся на винду с багажом новых впечатлений и скиллов,
6) Расшарил и проиндексировал подборку статей и книжек по программированию (там есть по разным аспектам функционального программирования, метапрограммирования, теории типов и еще много всякого разного, например, набор статеек и слайдов для подготовки к собеседованию по алгоритмам).
7) Собрал заметки по переезду в Лозанну: как привезти баблос, как сделать мобильный интернет, как снять жилье, о резиденс пермите и всякое разное остальное.
Через меня можно задать вопросы команде разработчиков Scala. Сразу отмечу, что непонятки по синтаксису и функциональности лучше отправлять на stackoverflow или в почтовую рассылку - там на них весьма быстро ответят люди более опытные, чем я. С другой стороны, открытые вопросы и предложения (вроде, например, вот такого или вот такого) можно запостить и сюда. Так как я нахожусь географически недалеко от Мартина и других участников Scala Team, то у меня есть дополнительная возможность обсуждать с ними сабжевые вещи. Не стоит ожидать чудес, но обещаю делать все, что смогу.
( Под катом инфа о правилах бложека )
Apr. 10th, 2012
02:12 pm - типизация эффектов
Уважаемые ребе
akuklev и
sorhed нафигачили просто убойный концепт прозрачной и элементарно расширяемой типизации эффектов на Скале. В ближайшее время ждите слайдов.
Mar. 21st, 2012
02:51 pm - shell vs far manager
Завязался разговор с уважаемым @digal: https://twitter.com/#!/xeno_by/status/1
На самом деле причина осталась только одна: Far Manager. Если честно, я все никак не пойму, как очень многие сидят в голой консоли, даже если это zsh. Вот парочка юзкейсов, которые удалось тривиализировать с помощью фара.
1) Количество тестов для макросов и рефлекшена уже зашкаливает за 250, поэтому выполняются они 4 минуты, а то и больше. Ессно мне неинтересно после каждого изменения тупить 4 минуты, поэтому надо как-то упростить процесс создания нового test suite из пачки выбранных файлов. В фаре это тривиально. Открыл файловую панель, инсертом выбрал нужные файлы, нажал хоткей, который маппится на макрос - готово. Если бы я это делал при помощи ls, я бы точно сошел с ума.
2) Снова тесты. Запускаешь test suite - бэмц, что-то упало. Надо посмотреть что именно. Можно скроллить длиннющий список и руками вбивать имена упавших тестов (пусть даже с автокомплишеном). А можно нажать магический хоткей, который соберет имена виновников и вбросит их на temporary panel, по которой можно пройтись и на интересных файлах выборочно понажимать F3, чтобы посмотреть, что именно произошло.
3) Работа не вслепую. Сколько раз уже такое случалось. Что-то у кого-то отвалилось. Прихожу к челу. Говорю: "давай смотреть". Он такой: "окей, щяс тока найду где у меня тут эта штука. cd тыц тыц тыц таб энтер. scalac блаблабла. file not found. wtf?! ls. хм странно, нет этого файлика. ааа... не та папка".
Хочу сразу сказать, что я не имею ничего ни против юникса (сам юзаю утилиты из cygwin), ни против консоли (несмотря на то, что эклипс поддерживает и ant, и sbt, я все равно все собираю в командной строке). Просто не могу понять, как у меня без фара получится эффективно работать. Давайте обсудим.
Mar. 20th, 2012
08:18 pm - Scala 3.0 - Roadmap
Кто еще не читал, обязательно посмотрите: http://groups.google.com/group/scala-la
Mar. 9th, 2012
05:22 pm - Бета-версия макросов
Спека: https://docs.google.com/document/d/1O87
Имплементация: https://github.com/scalamacros/kepl
Feb. 29th, 2012
10:46 pm - В принципе эклипс ок
Стартует за каких-то жалких (/trollface) 20 секунд + 10 секунд инициализации Скала-плагина. На хоткеи можно повесить вызов шелл-команд, перемещение между открытыми буферами. Поиск по проекту после того, как я заигнорил *.class и .git, стал весьма быстрым. Опять же, можно повесить хоткеи на перемещение между результатами поиска. Жить можно.
12:34 pm - Sublime капут
Не канает ENSIME для нашего кодебейза. Пора полностью пересаживаться на эклипс. Саблайм очень няшный, но кодить без семантической поддержки это надо быть или Адрианом, который все 4к+ строчек тайпера знает наизусть, или Мартином, который ну вы поняли.
Feb. 28th, 2012
11:33 pm - Ipad + Gmail + Exchange account = Broken sync
Все сделал, как надо, но синхронизация почти никогда не работает.
Причем не работает не только синхронизация в фоне, но и явное нажатие кнопки рефреш. Индикатор в статус-баре показывает, что девайс подконнектился к инету, потом индикатор пропадает, а новых писем нет. Помогает только force close почтовой прилаги или ребут девайса.
Что я уже только не делал. И ребутился, и сбрасывал на заводские настройки - один фиг. Кто-нибудь сталкивался с таким жупелом?
Feb. 23rd, 2012
10:20 pm - макросы + ооп
Возник интересный вопрос. Одной из наших идей относительно макросов было дать программистам возможность объявлять макросы внутри классов. Вот хорошая иллюстрация того, где это может быть нужно:В данном случае то, что макрос объявлен внутри класса-коллекции дает возможность вызывать его при помощи обычной инфиксной нотации (q.filter вместо Queryable.filter(q)). Еще один бонус такой фичи - прозрачная интеграция в язык. Без дополнительных усилий можно добавить макросы в существующие классы, сохраняя естественность нотации. Например, можно сделать Range.foreach макросом, который заинлайнится в цикл while, и это все не ломая обратную совместимость с уже существующим циклом for.
class Queryable[T, Repr](query: Query) {
macro def filter(p: T => Boolean): Repr = scala"""
val b = $newBuilder
b.query = Filter($query, ${reify(p)})
b.result
"""
}
Звучит классненько, но есть одна проблема. Понятное дело, что вне квазицитаты (но внутри макроса), мы не можем сослаться на query потому, что для этого нужен инстанс класса, который существует только в рантайме, а макросы раскрываются во время компиляции. С другой стороны, если из макроса мы вызываем статический хелпер (который, например, объявлен в компаньоне), то все ок, ибо такой вызов вполне можно разрулить.
Получается неприглядная иррегулярность, которую непонятно как починить. Моей первой реакцией было посмотреть в сторону Немерле, но макросы там объявляются только в top-level скоупе, поэтому такой проблемы у них нет. Ваши предложения?
Feb. 16th, 2012
05:12 am - Планки по 8 гектар для ноута
Сегодня с удивлением узнал, что в мой ноут можно воткнуть две планки по 8 гектар. В честь этого вопросы. Нормально ли юзать non-ECC память? Какие еще могут быть проблемы с такими модулями? Почему есть дикий разброс цен на 8gb ddr3 sodimm? Не просто плюс-минус 30%, а в два раза и больше, притом что ЕСС ни у кого нет.
Navigate: (Previous 10 Entries)