LINUX.ORG.RU

Сообщения BYHYRT

 

Вызов лисперам.

Форум — Development

Всем привет. А давайте проверим некоторые громкие утверждения о лиспе, и сделаем это с пользой для человечества?

Я часто вижу на ЛОРе утверждения наподобие такого: «Лисп-макросы дают возможность создавать DSL под задачу, а саму задачу решать на языке предметной области». Дальше обычно следуют выводы: благодаря этому лиспер во много раз производительнее программиста на С, С++, Java, Python и прочих non-Lisp языках. Сразу disclaimer: я тут ни на чьей стороне, мне самому интересно посмотреть, как работает этот подход. В частных беседах добиться особо ничего не удалось, разве что «я тут писал DSL для разбора лисповых DSL, чтобы можно было DSLить, пока DSL разбирается; а eDSLей так вообще было не счесть». Поэтому предлагаю решить предельно конкретную задачу, в которой, кстати, есть острая нужда.

Есть такой замечательный дистрибутив Gentoo, наверняка многие им пользуются. У него прекрасная концепция, но есть большая проблема с пакетным менеджером portage. Он — «невыносимо тормозной», а его разработчики "не хотят лезть в это адское спагетти из пистона и баша". Перевожу на профессиональный язык: portage имеет проблемы с производительностью и поддерживаемостью. Вероятно, отчасти из-за неудачного выбора языков реализации.

ЛОРовцы уже кинули клич на предмет переписывания portage на С/С++, но как мне показалось, делишки идут неважно. Давайте поможем общему делу? Мне кажется, задача просто идеальная:

1. Не «Hello, World», но и не система управления ядрёным реактором. Судя по утверждениям лисперов, такое должно занять от одного вечера до нескольких дней. Таким образом, проверяем claim о производительности лиспера;
2. Исходный продукт испытывает проблемы с перфомансом. Проверяем claim о том, что лисп не тормознее сишечки, а также claim, что на лиспе проще реализовать правильные алгоритмы и структуры данных;
3. Предметная область — пакеты, метаданные, содержимое, зависимости, сборка и установка. Предельно ясная и самодостаточная. Проверяем claim о DSL и решении задачи на языке предметной области.

Итак, ТЗ — реализовать Gentoo portage на лиспе вашей мечты, The Right Way(TM). Приз — всенародное признание, сотни нефти и гарем из 99 девственниц подросшая репутация лиспа :) Впрочем, пацаны вроде даже собирались скидываться на условную «бутылку Жигуля». Кстати, призываю Chaser_Andrey в свидетели.

Ну, что? Challenge accepted?

 

BYHYRT
()

Паттерны.

Форум — Development

Народ, откуда столько НЕНАВИСТИ к паттернам в программировании?

Пробежался тут по последним темам.

For example, in the OO world you hear a good deal about «patterns». I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough — often that I'm generating by hand the expansions of some macro that I need to write. — P. Graham

'Patterns mean «I have run out of language.»' — Rich Hickey

Ну и там хор подпевал, как обычно, и всё в таком духе. Вообще, сколько себя помню, на ЛОРе термин «паттерны проектирования» всегда был синонимом какого-то вселенского зла.

Но ведь если разобраться, то «паттерны» так или иначе присутствуют просто ВЕЗДЕ. В градостроительстве, архитектуре, механике, инженерии, электронике, транспорте, аэрокосмосе, музыке, спорте, кулинарии, литературе, поэзии, живописи, медицине, физике, математике, геологии, географии, добыче ископаемых, сельском хозяйстве, военном деле, государственном управлении, экономике, финансах, социологии, в людских взаимоотношениях, наконец! Человечество повсеместно использует стандартные подходы/сценарии/решения, проверенные годами. И к ним мы относимся совершенно нормально. Почему мы, например, услышав секвенцию II-V-I в «Лунной сонате», не говорим Бетховену: «Чувак, you've run out of harmony!» Почему, увидев четырёхстопный ямб у Пушкина, не предъявляем: «Чувак, да у тебя же a sign of trouble в стихах!»

Почему только будучи применёнными к программированию паттерны вызывают столь лютую ненависть?

 

BYHYRT
()

Асинхронщина в Spring

Форум — Development

Дали тут вести большой проект на Спринге. Девелоперский сервер — голый Jetty, продакшен — кластерный WebSphere (не спрашивайте меня, почему так).

Возникла задача обрабатывать большое количество запросов в асинхронном режиме. Если б я разрабатывал проект с нуля, разумеется, выбрал бы кошерно-православный Java EE, а не этот набор костылей (Spring). В Java EE всё понятно: шлёшь сообщение в очередь JMS, а на том конце сидит MDB и всё обрабатывает (возможно, что в несколько потоков).

Но, увы, проект начинал не я, и на Java EE его уже не перепишешь. Так вот, вопрос: как подобная задача решается в Spring? Дружит ли он с JMS, и можно ли обойтись без JMS вообще (т.к. на devel-сервере никакого JMS нету)?

 , ,

BYHYRT
()

Javascriptачи-трюкачи

Форум — Development

Привет, ЛОР. Читаю тут простыни разного джаваскрипта и не раз наталкиваюсь на такие конструкции:

(function() {
 ...
 // здесь тело функции
 ...
})();

или даже так:

(function(foo) {
 ...
})(this);

Что это за такие трюки, ЛОР? Объясни мне, ламеру, почему бы просто не написать код прямым текстом, без оборачивания в функцию? Эффект ведь тот же будет. И да, закралась мысль, что трюкачи подобным образом эмулируют отсутствующие в языке C-style скоупы, но ведь для этого же есть кошерный let. Короче, тут следует картинка с лётчиком и признанием, что я совершенно ничего не понял.

 

BYHYRT
()

Java Dependency Injection (JSR-330) с Google Guice

Форум — Development

Всем привет. Решил попробовать новомодный Java'вский dependency injection. Только не тот, который толсто-ынтерпрайзный (JSR-299), а простой и базовый (JSR-330), который в принципе можно юзать вне Java EE контейнера.

В JCP написано, что reference implementation этого дела — Google Guice. Имею следующий код (обычная Java SE программа):

package com.mycompany.di;

public class Foo {

    public String foo() {
        return "Foo!";
    }
    
}   
package com.mycompany.di;

import javax.inject.Inject;

public class App {

    @Inject private Foo foo;

    public Foo getFoo() {
        return foo;
    }

    public static void main(String[] args) {

        App app = new App();
        System.out.println(app.getFoo());

    }

}

Guice 3.0 с потрохами подцепил Maven'ом. Конпеляю, запускаю — фиг там, вместо foo лежит null. ЧЯДНТ? Кастую vertexua, subwoofer, Kuka, dizza, Legioner, hizel, BattleCoder, анонимуса с домиком у озера, и кто у нас там ещё спец по Java.

 ,

BYHYRT
()

Бухгалтер требует скан паспорта и отказывается платить. Как побороть?

Форум — Talks

Здравствуйте, достопочтенные специалисты по всему. Сегодня обращаюсь к спецам по трудовому законодательству DC (Default Country) и вообще к людям, ориентирующимся в законодательной базе.

Довелось вашему покорному слуге выполнить некоторые работы по договору с одной конторкой. Задачи выполнены в срок и в полном объёме, работа принята, акт подписан, деньги есть. Но! Бухгалтерша отказывается осуществлять платёж, покуда незадачливый исполнитель (т.е. я) не предоставит ей скан паспорта: первой страницы и страницы с пропиской.

Сразу скажу, что бухгалтерша — аутсорсинговая, т.е. некий левый человек, которого я не знаю. Вручать скан паспорта кому попало желания никакого не испытываю. Были прецеденты, когда в подобных обстоятельствах люди становились «счастливыми» гендирами десятков фирм-однодневок, хозяевами СЕО- или порно-доменов и так далее. Пускай даже сама бухгалтерша и не промышляет «помойками» (в чём я совершенно не уверен), но ведь она будет хранить мой скан в уютненьком гмыльчике с паролем 123456 или на своём компе с протрояненной семёрочкой максимальной. Нет никаких гарантий, что скан не утечёт налево.

Жопой чую, что здесь дело нечисто. Раньше эта контора исправно платила по договорам безо всяких сканов. Теперь утверждают, что «таково требование закона». Какого ещё закона, ЛОР? В каком разделе законодательства это вообще может быть? Как бороться с бухгалтершей, и есть ли у меня вообще шансы увидеть свои кровные денежки и не расстаться с анальной девственностью?

Спасибо всем заранее.

 ,

BYHYRT
()

Википедия бросает в бой тяжёлую артиллерию

Форум — Talks

Пруфпик. Видимо, Джигурда не справляется.

BYHYRT
()

QEMU 1.0

Новости — Open Source
Группа Open Source

Выпущен знаковый релиз системы виртуализации QEMU 1.0.

Заявлены поддержка новых систем-хостов и новых эмулируемых процессоров (в основном ARM). Основные изменения касаются управления памятью и блочными устройствами. Также QEMU теперь зависит от библиотеки GLib и активно её использует.

Начиная с версии 1.0 возможна «живая миграция» виртуальных машин с использованием QCOW2-образов на разделяемом хранилище.

Сайт QEMU

>>> Подробности

 ,

BYHYRT
()

Почему Ruby называют «хипстерским языком»?

Форум — Development

Уже не в первый раз такое слышу, как здесь так и на других сайтах. Кто такие хипстеры я себе представляю, каждый вечер в метро встречаю этих разноцветных клоунов. Но как этот термин можно применить к ЯП? Всё-таки цветные кроссовки, футболки, очки без диоптрий, ЛОМО и айфоны — это одно, это лишь внешняя мишура, а пристрастие к языку программирования как-то больше относится ко внутреннему миру и интеллекту.

BYHYRT
()

[НЁХ] Нововведения Java 1.9

Форум — Development

отсюда

Early JDK 1.9 ideas were shared: self-tuning, native integration, big data, reification, tail calls/continuations, mop, multi-tenancy (...)

кто-нибудь объяснит мне что значат все эти умные слова?

 

BYHYRT
()

UML, чертежи, принципиальные схемы — ненужны?

Форум — Development

Скажите, почему принято говорить, что UML — это маркетинговый баззворд и ненужен, а про чертежи, принципиальные схемы, осциллограммы и схемы коммуникаций никто так не говорит? Ведь по-сути это всё одно и тоже, служит абсолютно одинаковым целям.

BYHYRT
()

RSS подписка на новые темы