You are viewing [info]xeno_by's journal

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, то у меня есть дополнительная возможность обсуждать с ними сабжевые вещи. Не стоит ожидать чудес, но обещаю делать все, что смогу.

Под катом инфа о правилах бложека )

Tags:

Apr. 10th, 2012

02:12 pm - типизация эффектов

Уважаемые ребе [info]akuklev и [info]sorhed нафигачили просто убойный концепт прозрачной и элементарно расширяемой типизации эффектов на Скале. В ближайшее время ждите слайдов.

Mar. 21st, 2012

02:51 pm - shell vs far manager

Завязался разговор с уважаемым @digal: https://twitter.com/#!/xeno_by/status/182457013945630720 на тему того, почему я все еще юзаю винду.

На самом деле причина осталась только одна: 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, я все равно все собираю в командной строке). Просто не могу понять, как у меня без фара получится эффективно работать. Давайте обсудим.

Tags:

Mar. 20th, 2012

08:18 pm - Scala 3.0 - Roadmap

Кто еще не читал, обязательно посмотрите: http://groups.google.com/group/scala-language/browse_thread/thread/3d5e2ae8ed6a221f. Унификация экзистенциональных типов и типов высшего порядка звучит замечательно!

Tags:

Mar. 9th, 2012

05:22 pm - Бета-версия макросов

Спека: https://docs.google.com/document/d/1O879Iz-567FzVb8kw6N5OBpei9dnbW0ZaT7-XNSa6Cs/edit
Имплементация: https://github.com/scalamacros/kepler

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 - макросы + ооп

Возник интересный вопрос. Одной из наших идей относительно макросов было дать программистам возможность объявлять макросы внутри классов. Вот хорошая иллюстрация того, где это может быть нужно:

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
  """
}
В данном случае то, что макрос объявлен внутри класса-коллекции дает возможность вызывать его при помощи обычной инфиксной нотации (q.filter вместо Queryable.filter(q)). Еще один бонус такой фичи - прозрачная интеграция в язык. Без дополнительных усилий можно добавить макросы в существующие классы, сохраняя естественность нотации. Например, можно сделать Range.foreach макросом, который заинлайнится в цикл while, и это все не ломая обратную совместимость с уже существующим циклом for.

Звучит классненько, но есть одна проблема. Понятное дело, что вне квазицитаты (но внутри макроса), мы не можем сослаться на query потому, что для этого нужен инстанс класса, который существует только в рантайме, а макросы раскрываются во время компиляции. С другой стороны, если из макроса мы вызываем статический хелпер (который, например, объявлен в компаньоне), то все ок, ибо такой вызов вполне можно разрулить.

Получается неприглядная иррегулярность, которую непонятно как починить. Моей первой реакцией было посмотреть в сторону Немерле, но макросы там объявляются только в top-level скоупе, поэтому такой проблемы у них нет. Ваши предложения?

Feb. 16th, 2012

05:12 am - Планки по 8 гектар для ноута

Сегодня с удивлением узнал, что в мой ноут можно воткнуть две планки по 8 гектар. В честь этого вопросы. Нормально ли юзать non-ECC память? Какие еще могут быть проблемы с такими модулями? Почему есть дикий разброс цен на 8gb ddr3 sodimm? Не просто плюс-минус 30%, а в два раза и больше, притом что ЕСС ни у кого нет.

Navigate: (Previous 10 Entries)