wizzard: (Default)
Итак, кто помнит - кроме DiamondBox'a (черт, надо бы сайты свои привести в порядок, да...), у меня еще есть проект построения безопасного geek-oriented мессенжера - TrueLink.

Этот проект, в принципе, развивается и сейчас, но в свете всемирного закручивания гаек, пожалуй, было бы неплохо ускорить этот процесс.

В связи с этим, кхм, если кому-то нравится идея но не доходят руки сделать самому:

Яндекс.Деньги: 41001924385622
Webmoney: Z172953807163
Bitcoin: 1DrzrsauhGM5h8Z227J9MxGTRWuxYvepEC
LiqPay/Privat24: +380937683083
Visa/Wire: за реквизитами в почту/скайп/жаббер.


Посмотрим на интерес))

В примечании платежа пишите, хотите или не хотите, чтобы он или ваше имя были опубликованы на странице проекта. В биткойне примечаний нету, посему пишите в другие места.

Спасибо %)

SeedCamp

Apr. 23rd, 2013 06:08 pm
wizzard: (Default)

лол фоточка

Показал Cryptobox (переименованный в DiamondBox) на SeedCamp. Предсказуемо провтыкал записать презентацию на видео %) так что осталась только одна фоточка в ржачной позе)) но вроде евент снимался, так что думаю найдется еще.

Народ вроде заценил, теперь у меня есть визитки из Yandex, Paypal, и еще несколько)

Выспаться бы...

EDIT: а как можно конвертировать Keynote в PPT/PPTX/PDF на винде? Zamzar.com не справляется :/

дыбр

Feb. 13th, 2013 08:35 am
wizzard: (Default)
t=12d, полет нормальный.

Таки да, после ухода с фултайма и отбрасывания волевым усилием ряда навязчивых тянучек - проекты ожили и ощутимо зашевелились. Во всяком случае, количество висящих задач в тасклистах в кои-то веки начало снижаться, а заметки превратились из авгиевых конюшен в плюс-минус понятный roadmap.

График, правда, установился какой-то совершенно дурацкий - ложусь в 9 утра, встаю в 20 вечера. Несколько дней вообще спал по 16-18 часов, пару дней - наоборот, по 3 часа.

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

Запуск шифрованной бэкапилки и P2P дневников/органайзера - ну, как-то двигается.
Портирование криптографических и около того библиотек с языка на язык, а также стыковка разных библиотек в одной проге - адская жесть. Я начинаю всерьез подумывать о том, чтобы приложения делать в виде виртуалок с утрамбованными внутри разными рантаймами :/

Devil in the details, как говорится. В теории все красиво, а на практике то блочных режимов не хватает, то константы не те, то паддинг не тот, то структуры данных не те, куча таких вот мелких нестыковок. А все типа-кроссплатформенные конверторы любят забивать на мелочи типа sign bit'ов, поведения при overflow/underflow, сдвигах, размере int, endian'ности и в итоге тоже не помогают. Облом-с.

Дел, конечно, все равно очень много. Никак не получается себя заставить написать тексты для сайтов, например. Порой даже неудобно выходит - люди приходят, читают доку двухлетней давности и начинают недоумевать. Да и вообще public relations ощутимо отстает. Что бы с этим такого сделать...
wizzard: (Default)
вопрос - а какие сейчас есть программерско-ориентированные CMS с человеческим лицом? я так понимаю, что-то типа octopress и jekyll? вордпресс и прочее не подходит, на выходе должна быть пачка статических HTML.

надобно чтоб сорцы были в маркдауне/креоле или какой-то еще разметке, а в интернетах можно было найти кавайный дизайн :)

еще наверное хочется чего-то, в чем можно вести документацию, какой-то гибрид вики и sphinx например...

а то пора бы все свои проекты на публику вынести.

CPS style

Jun. 13th, 2012 02:35 am
wizzard: (Default)
вот те товарищи, которые так расписывали преимущества колбек-соплей перед многопоточностью, пускай попробуют написать хотя бы один алгоритм, где есть два вложенных цикла.

и waitAll, да.

(псевдокод)
queue=[];
foreach_parallel(file in files){
detectChunkBoundaries();
foreach(chunk in file){
queue.add(AES_encrypt(chunk), SHA(encrypted), file.name);
}
}
chunkers.waitAll();
queue.unique();
encrypters.waitAll();
foreach(var q in queue){
q.upload()
}
uploaders.waitAll();
chunk2 = buildChunkList();
chunk2.upload();
alert(done)


ну вот хоть такое, например ;)
да, detectBoundaries и SHA256 надо делать в вебворкерах, или хотя бы бить их на куски таймаутами, а то браузер скажет "страница повисла", и юзер обидится.

ну как, все еще хочется делать CPS?

вот и мне не хочется. хочется акторы, и акторы с тредами, а не с короткими обработчиками событий. они, кхм, гораздо больше подходят для выражения воркфловов, как только в воркфловах появляются циклы, и не требуют всего этого мозговыворачивания для форварда локальных переменных, как минимум.
wizzard: (Default)

Однако я теперь знаю, зачем нужна кнопочка “аварийный останов” :D



thx 4 [livejournal.com profile] sashman

wizzard: (Default)

(захотелось мыслю написать и сюда тоже)

еще одна причина трепыханий с собственным JS рантаймом - потому что хочется сделать подобие Application Domains из .NET для JS, чтобы компоненты могли что угодно творить. ибо без eval (или кодогенерации, как кому угодно), все-таки, львиная доля привлекательности динамических языков теряется.

плюс, когда рантайм свой, можно делать как hard так и soft resource quotes, и попробовать все-таки осилить его сериализацию и сделать тот самый holy grail ака мигрирующие в пространстве (между машинами) и во времени (сейв-лоад) аппликухи.

а йаваскрипт, а не другой язык, просто потому, что популярный.

wizzard: (Default)

все, казалось бы, хорошо в современном стане активистов от программирования. по одну сторону стоят различные Ruby, Python, PHP, по другую - Ocaml, Haskell, F#, теперь вот Ur/Web – казалось бы, чего можно еще желать?

и в чем, собственно, вопрос?

Но вся эта братия деликатно обходит стороной два (связанных, в общем-то) вопроса – взаимодействие с другими системами (существующими и будущими), а также эволюция и взаимодействие с прошлыми и будущими версиями себя. Их решению мешает то, что ВСЕ theorem prover`ы, contract verification тулзы, генераторы тестов и пр. предполагают, что тестируемая система замкнута. Что неверно – ведь таким образом полностью протестировать можно только ПО, которое работает исключительно с предметной областью, порожденной единожды зафиксированной формальной логикой – например, компилятор или систему решения уравнений.

Понятно, что всякие твиттеры с веселыми фермерами можно отправить на свалку истории, и никто о них толком не вспомнит впоследствии, а что делать, например, с управляющим ПО автомобилей, электростанций, поездов и прочих комплексов со сроком службы более 20-30 лет? за это время успеет несколько раз смениться железо, ОС, а в запущенных случаях – протоколы обмена информацией и форматы файлов.

у нас же не просто так образовывается куча кода, который уходит на выброс (к вопросу о bit rot, который поднимался ранее), она образуется именно из-за нерешенной проблемы совместимости в малом масштабе (языков, платформ и т.д.) и в большом масштабе (взаимодействие построенных на этой базе систем).

революционное (write-build-test-release-repeat) развитие софта во многом упрощает разработку каждой следующей версии, но оставляет нас со старыми данными, зоопарком плохо совместимых (т.к. не все апгрейдятся мгновенно, по разным причинам) систем, и риском остаться с носом для тех, кто доверил софту свои данные, в случае внезапного исчезновения вендора или угасания комьюнити (да, понятно, что опенсорс частично решает эту проблему. но какой процент не-софтописательских организаций способен самостоятельно написать, скажем, конвертор хотя бы ODF в HTML, SVG в что-нибудь еще, или перенос нетривиального обьема и структуры БД, скажем, с MySQL на постгрес, включая переписывание всего использующего эту БД софта, если такой вопрос вдруг встанет?)

совместимость с другими существующими платформами – та же проблема, только в профиль. задача слегка облегчается тем, что есть “живое” окружение, на котором можно протестировать работу системы и заложить его в требования изначально. в случае с софтом, созданным после разработки оригинальной системы, таких поблажек нет.

тонкость в том, что все современные высокопроизводительные компиляторы, что у императивных, что у функциональных языков являются частными случаями проекций Футамуры. ключевое здесь именно слово “проекция” – т.е. происходит отображение А → B, а не A ↔ B, которое приводит к потере информации о исходной системе, или, точнее, потери информации о модели, реализацией которой является система.

к этому вопросу пытаются подходить с разных сторон – динамические ЯП (Lisp, Python, IO) позволяют интроспекцию структур данных “напрямую”, JVM и CLR имеют Reflection, более-менее продвинутые модели обмена данными между системами, известные в народе как “веб-сервисы” в той или иной форме самодокументируемы, а web медленно, но уверенно завоевывает семантическая разметка (другой вопрос, что там она далеко не всем нужна, т.к. конечные авторы и потребители информации – люди, а не машины), и именно поэтому она вряд ли получит такую же популярность как, например, CSS :)

ну и где же выход?

в этом смысле мне кажется, что долгоживущее программное обеспечение будущего должно представлять из себя динамические самодокументируемые системы, которые (в сегодняшней терминологии) способны

а) быть изменяемы без привлечения сторонних инструментов (которые могут стать недоступны по тем или иным причинам)

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

в) поддерживать протоколы обмена спецификацией друг с другом, которые позволяли бы системе накапливать знания о окружающем мире, людях и других системах, вносить их в модель и (автоматически или полуавтоматически) стыковаться с ними, и соответствующим образом развивать\расширять свое внутреннее представление данных и осваивать новые протоколы взаимодействия (возможно, тоже сгенерированные автоматически под данный частный случай)

фух. введение получилось в 4 раза дольше, чем собственно мысль. зато, вроде, теперь понятно, “зачем всё это нужно”. продолжение следует… черт. пост, к которому нужно оглавление – не такой уж и хороший пост…
NOTE TO SELF: перевести на английский, а то что-то я совсем англ версию бложека забросил.

wizzard: (Default)

решил рефрешнуть интересы в жж, снова поматерился на лимит в 150 штук, ну да ладно.
полез апдейтить гиккод, вроде все тоже up-to-date, кроме самого кода – устарел он порядком :)

короче, есть такие мысли:

1. поиграться с онтологиями интересов\занятий\наклонностей и прочего – попробовать сделать более современную версию гиккода, мультиязычную (декодирующуюся в разные языки) и расширяемую (без зтого им вряд ли будут пользоваться, как и без reference implementation)

2. сделать маленький сервис с гайдом и онлайн кодером-декодером вышеупомянутого кода, (и\или аналогичных, типа omnicode/furrycode/hackerkey), плюс хостинг профилей – для сервисов с лимитом длины профиля :)

не знаю, правда, какие можно найти применения оной штуке, но прикольно ведь :)

wizzard: (Default)

с входящими потоками пока что разобрались (методом их отключения), остались внутренние.

мучает необходимость раздобыть себе коммуникатор или какой-то онологичный девайс, на котором будет доступно хотя бы read-only view органайзера. пока аккум ноута был не так убит, а смс-ок было меньше, вопрос так остро не стоял. надо срочно прекращать нищебродствовать, однако.

а с "внешними мозгами" вопросов два - интерфейс удобный придумать к базе, ну и закодить, собственно... внутренняя структура более-менее понятна.

то есть, ммм. на логическом уровне сабж представляет собой “пространство”, в котором водятся ниточки таймлайнов (историй развития) сущностей, на пересечениях которых отмечены события взаимодействий, и граф связанных знаний “вне времени” (ну там, математика всякая, адреса-телефоны, и т.д., хотя оно конечно тоже на время завязано, но не так уж сильно)

а на физическом – фоновый синхронизатор базы данных между устройствами пользователя, маленькие клиенты-плагины, которые позволяют быстро вводить кусочки данных и связывать их между собой (“сфоткать”, “wizzard@tranquility# iskin remember Someone birthday is 1980-01-01”, “пришла смс-ка”, ну и т.д.), и клиенты чуть побольше, которые показывают графы, сущности, взаимосвязи и позволяют делать поиск по ним…

вдобавок, можно запихать туда фильмы-музыку-фотки и прочий трешак, и позволить системе заботиться о резервных копиях, поиске и т.д. давно пора.

брр, кашу конечно написал, потом утрясу в более понятном виде.
upd. чуть-чуть перефразировал.

wizzard: (Default)

миранда с метаконтактами принесла решение старых проблем, но и новые проблемы тоже…

появилось желание организовать не только friends, а и friendsfriends, но не добавлять же их всех… да и ограничивать себя поддерживаемыми мирандой протоколами как-то тупо, хоть их и хватает…

черт… видимо придется-таки его написать…

wizzard: (Default)

(см. http://infowatch.livejournal.com/86171.html )
Собственно, из той статьи всего лишь вытекает что *реализацию* программных продуктов пытаются поставить на поток. но тому же геймдеву (за исключением выпуска сиквелов и спортивных игр), а также стартапам – это по большей части не грозит.
Ну или можно сказать что пошло деление на research & production.
Та же фигня с художниками и дизайнерами (арт "сделайте пиздато" это ближе к рисерчу, но "шоб удовлетворяло правилам доступности для слабовидящих" и "нарисуйте 50 иконок для разных действий" это уже продакшен)

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

wizzard: (Default)

есть ли смысл клепать свой собственный язык программирования? :)

wizzard: (Default)

надо сделать генератор рукописных шрифтов, рисоватор графов более generic (частные случаи уже есть) и автоматическую лэйаутилку несложного текста.. возможно удастся припахать html/xaml туда. а потом можно делать генератор протоколов к лабам…

wizzard: (Default)

1. текущие вялотекущие проекты откровенно заебали, потому что они есмь чистый саппорт и изредка подпиливание под изменение внешних условий, к тому же, на одном PHP и невменяемые заказчики, на другом - просто создается впечатление что я один кому что-то надо.
2. начинать новые мешает отсутствие среди (знакомых-у-которых-есть-свободное время), людей которых не надо пинать ногами, чтобы они что-то делали
    *хотя всем все интересно, конечно же, и расспрашивать и обсуждать - сколько угодно
3. а люди со стороны обычно хотят зарплату
4. а знакомые, которые что-то реально делают, в общем-то действительно что-то делают, и отрывать их как-то не хочется
5. потому что целиком сосредоточиться на чем-то "побочном" я не могу, потому что надо, гм, на что-то жить, платить за сервера, хавчик, площадь и прочее. поэтому выходит противная демотивирующая фигня, которая влияет и на все остальное тоже.
6. из чего выплывает, что надо либо найти работу, пересекающуюся с задачами, которые я хочу решать и которые знаю как решать
7. или найти людей, которые готовы вкладывать деньги в решение этих задач, и сделать их основным занятием
8. а про себя у меня окончательно сложилось впечатление, что хотя я практически везде могу разобраться и описать, _как_ и _что_ сделать, но собственно заставить себя что-то делать ввиду перманентно висящих комплексов "надо, но бесперспективно" vs "перспективно, но на что жить сейчас?" - не могу.
9. а еще надо или обзавестись офисом, или сьехать от родителей и горячо любимой шумной семьи, потому что за исключением койкоместа никакого смысла в сидении здесь нету, работать дома можно только ночью, а работать ночью ввиду того что я не собираюсь пока бросать универ - не очень хорошо. и работать с кем-то еще надо on-site, а не удаленно.
10. а на это нужны опять же деньги и это тоже демотивирует.

здешние комменты открыл, остальное уехало в следующий пост

wizzard: (Default)

Где-то месяц назад я написал качалку файлов с файлообменников – Водокачку

Но вот незадача, на доведение сервиса до ума сейчас патологически нету времени, ибо по другим вещам народ прижимает и требует “всё, сразу и до понедельника”.

Посему с удовольствием приму любую помощь, возможно, оплачиваемую. Денег, правда, немного. Но если кто хочет попрактиковаться или просто сделать доброе дело - всегда пожалуйста.

P.S. Отдача в “мир”, а не только в UA-IX (украинские подсети) делается достаточно элементарно, но опять же нету времени(
P.P.S. Написано оно сейчас на C#, приветствуются также Python, haXe, F#, Nemerle и прочая экзотика :)

дыбр

May. 21st, 2009 05:00 am
wizzard: (Default)
  1. Хорошая новость – vs 2010 beta1 ок. Много странных фич, но вроде ничего не сломали, поэтому ок.
    поиграюсь - может обзор напишу.
  2. Плохая новость – похоже на десктопе умирает винт с виндой, потому что евентлог бэдблоками полон. Таким образом, у нас остается 3 сата винта и 0 иде винтов.
    goodbye \\dreamworld, welcome to \\tranquility.
    Надеюсь, что не проебу ничего важного во всяких program files/temp/appdata.
    Влом поднимать development environment под второй виндой, поэтому кодать буду на ноуте, а десктоп останется игровой консолью с большим монитором и файлсервером.
  3. Хорошая новость 2 – у меня finally есть научрук и утвержденная тема на бакалаврскую. Нас пока двое, надо найти третьего.
  4. неопределенная мысля, ммм, надо придумать, чем и как заниматься летом.
UPD: хахаха, бутлоадер винды переживает копипаст с раздела на раздел и ручное ковыряние в конфиге, не ожидал. удобно.

Profile

wizzard: (Default)
wizzard

January 2019

S M T W T F S
  12 345
6789101112
1314 1516171819
202122 23242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 1st, 2025 01:48 am
Powered by Dreamwidth Studios