fungraph.ru не является авторским развлекательным ресурсом, а предоставляет инструменты для создания и размещения графиков, и если кто-то переводит графики с graphjam.com или перерисовывает графики sly2m :) что здесь не так?
Приходилось использовать это в реальных приложениях, одно из преимущество возможность нормально остановиться не получая интеррапты на заблокированные треды и прочие радости кила. Ещё одним из плюсов была возможность логировать весь процесс остановки, т.к. логгеры умирающие по addShutdownHook как правило закрываются раньше.
Не поспоришь, конечно же аццептить будет намного быстрее, только это может вызвать усложнение кода при регистрации сокета в селекторе, скорее всего это операция возможна только в том же треде, где происходит select(), по крайней мере с установкой interstOps всё именно так и приходится кидать ChangeRequest в очередь на выполнение и кричать selector.wakeUp(), т.е. после accept скорее всего надо будет сделать тоже самое, только RegisterRequest.
Относительно селениума полностью согласен :) но статья про то, как организовать сборку и тестирование вебприложений, и JWebUnit приводится как инструмент близкий к привычному JUnit :) Делать полноценное многобраузерное тестирование на Селениум или нет, решать уже самим разработчикам в контексте их ресурсов и задачи.
Ну тогда хранилище с простым протоколом для хранения текстовых данных,
данные будут складываться например в lucene с возможность полнотекстового поиска.
Команда на положить:
>key \n
data data data\n
data data data\n
data 123 data data\n
\n
команда на поискать.
?123 data\n
и дальше соответственно ответ.
Поисковые задачи будут соответственно распаралелены.
В вебприложениях DataSource для соединения с БД обычно попадает в applicationConext.xml по средством JNDI, например из META-INF/context.xml для томката.
Поэтому было бы интересно написание подобного теста на базе настоящего applicationConext.xml которому просто подсовывается тестовый DataSource через JNDI.
Как я писал в habrahabr.ru/blogs/crazydev/70714/#comment_2021100 хотелось бы чтобы инструмент позволял расширять и рантайм тоже :) создавая возможность связывать и описывать сущности новыми нужными в конкретном контексте способам, а если бы язык был ещё и не интерпритируемым и имел скорость Java (без рефлекшена) или C++ :) future is now и всё такое :)
Я в курсе :) но вот простого и быстрого способа создать свой метаязык, или коллекции готовых, для определённых задач мне встречать не приходилось, конечно многое можно решить препроцессором кода, но т.к. препроцессор (ИМХО насколько я знаю) не умеет оперировать сущностями языка (Java классы методы переменные и т.д.), то много сделать им просто нельзя.
:) математика первый пример который приходит в голову, уж очень неудобно писать всякие pow и т.д…
Большинство современных языков добавляют возможности для связей и описаний сущностей новыми способами, например аннотации в Java например @Id, @Column, @Entity и т.д. позовляют описать сохранение сущности в БД,
Во Flex есть магическое свойство позволяющее связывать поля сущносте напрямую напрямую например
<mx:Panel title={textbox.text}>
<mx:TextInput id=«textbox» />
</mx:Panel>
и т.д. Так что думаю сейчас метаязыку надо позволять конфигурять не только синтаксис но и подобные связи и отношения между сущностями.
ИМХО очень интересная разработка, разработку многих вещей можно вывести просто на новый уровень, сделав поддержку на уровне языка сущностей и понятий которые фигурируют в данном контексте.
Спасибо за статью. Интересно было бы прямой генерацией байткода, получить быстрый рефлекшн для вызова методов, без декоратора как это реализовано в FastMethod в cglib.
Вообще для операции проксирования, одного потока вполне достаточно, т.к. все методы неблокируюшие, процессор тратится только на работу с доступными данными, размер которых на одной итерации ограничен размером сокет буфера или байтбуфера в который происходит чтение. Скорее всего такой сервер сможет достаточно безпроблемно прокачать 100мБ канал.
Selector и должен работать в одном потоке, ключам даже interestOps поменять из другого нельзя.
Пример использования нескольких потоков, планируется в следующем посте, обычно использую блокирующую очередь и N воркеров для этой задачи.
Если предложите что полезного бы сервер мог делать, сделаю пример на базе этих полезных действий.
:) ну постараюсь в ближайщих статьях, осветить создание своего сокет-сервера делающего чего-нить полезное, с неблокирующим коннектором и многопоточными воркерами :)
данные будут складываться например в lucene с возможность полнотекстового поиска.
Команда на положить:
>key \n
data data data\n
data data data\n
data 123 data data\n
\n
команда на поискать.
?123 data\n
и дальше соответственно ответ.
Поисковые задачи будут соответственно распаралелены.
В вебприложениях DataSource для соединения с БД обычно попадает в applicationConext.xml по средством JNDI, например из META-INF/context.xml для томката.
Поэтому было бы интересно написание подобного теста на базе настоящего applicationConext.xml которому просто подсовывается тестовый DataSource через JNDI.
не вижу remove по индексу, в сете вообще нету индексов :) и правда ещё не проснулся :)
Большинство современных языков добавляют возможности для связей и описаний сущностей новыми способами, например аннотации в Java например @Id, @Column, @Entity и т.д. позовляют описать сохранение сущности в БД,
Во Flex есть магическое свойство позволяющее связывать поля сущносте напрямую напрямую например
<mx:Panel title={textbox.text}>
<mx:TextInput id=«textbox» />
</mx:Panel>
и т.д. Так что думаю сейчас метаязыку надо позволять конфигурять не только синтаксис но и подобные связи и отношения между сущностями.
Пример использования нескольких потоков, планируется в следующем посте, обычно использую блокирующую очередь и N воркеров для этой задачи.
Если предложите что полезного бы сервер мог делать, сделаю пример на базе этих полезных действий.