Всегда устанавливаю операционные системы с нуля, чтобы избежать побочных эффектов. С Yosemite все не заладилось с самого начала, потому что инсталлер в самом конце подзавис. Но самый ад начался потом, когда каждый раз при загрузке не запускался Google Chrome, Adium. Процессы просто зависали, писали Not Responding. Приходилось их многократно снимать и запускать заново до приведения в работоспособное состояние. При этом Safari и Firefox запускались отлично. В какой-то момент я начал думать что так выглядит грязная борьба Apple против Google.
В общем сегодня меня это достало окончательно, и методом проб и ошибок решение было найдено. Необходимо отключить рассылку приглашений Bonjour без отключения службы DNS. Для этого в Yosemite надо добавить параметр --no-multicast для com.apple.networking.discoveryd в файле /System/Library/LaunchDaemons/com.apple.discoveryd.plist
Ссылки по теме:
http://apple.stackexchange.com/questions/151485/how-do-i-disable-bonjour-visibility-after-yosemite-install?answertab=active#tab-top
http://blog.spikie.info/osx-10-10-yosemite-how-to-disable-bonjour-service-advertising-without-disabling-dns/
Неужели Apple после ухода Джобса постепенно превращается в нечто унылое?
ЗЫ: на самом деле трюк не сработал. Переустановка сверху тоже не помогла. Что интересно, когда подключаешь второй монитор, глюка нет.
вторник, ноября 25, 2014
четверг, ноября 13, 2014
Печать в pdf в Mac OS X в терминале 2X RDP
Если:
- Вы используете Mac OS X
- Вынуждены пользоваться RDP
- Программы в этом RDP печатают на принтер по умолчанию
- Но Вам нужен pdf
То устанавливайте PDFWriter и ищите свои pdf в private/var/spool/pdfwriter или в Macintosh HD/Users/Shared/PDFwriter
Победитель номинации Костыли-2014.
Победитель номинации Костыли-2014.
среда, октября 22, 2014
Как открыть сайт в Chrome без элементов управления бразуера
open -a "Google Chrome" -n --args --app="http://google.com"
четверг, октября 16, 2014
Конкантенация файлов в scala
В spray.io надо было склеить чанки, каждый из которых сливался в отдельный файл и родилась такая вот конструкция для конкантенации нескольких файлов. Мне кажется красиво и функциональщина в тему.
import java.io.{ FileInputStream, FileOutputStream }
val newFileChannel = new FileOutputStream("result.txt") getChannel ()
List("a.txt","b.txt", "c.txt").foldLeft(0L)((offset, f) => offset + (newFileChannel transferFrom (new FileInputStream(f) getChannel, offset, Long.MaxValue)))
import java.io.{ FileInputStream, FileOutputStream }
val newFileChannel = new FileOutputStream("result.txt") getChannel ()
List("a.txt","b.txt", "c.txt").foldLeft(0L)((offset, f) => offset + (newFileChannel transferFrom (new FileInputStream(f) getChannel, offset, Long.MaxValue)))
вторник, сентября 09, 2014
Русифицируем asciidoctor-pdf
Очередной раз поднялся вопрос в чем писать документацию, чтобы:
1) была простая разметка, которую можно было редактировать в простом текстовом редакторе
2) можно было получить diff в версиях, как следствие текстового представления сырца
3) была генерация html
4) была генерация pdf без всяких docbook, latex и прочего
Если под первые три пункта подходит тот же markdown, то по последнему мною было обнаружено только одно хоть как-то работающее решение - https://github.com/asciidoctor/asciidoctor-pdf. И то в состоянии альфы.
Вообще, конечно, странно в 2014 году не иметь нормальных прямых решений генерации pdf из разметки. Видимо, это никому особо не надо - взяли ворд и вперед вместе с pdf-принтерами.
В asciidoctor-pdf тоже вылезла проблема - с русским языком. По крайней мере у меня на Mac OS X. Причина, как ожидаемо, в шрифтах.
Для лечения в Mac OS X нужно закачать правильные шрифты в папку /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/fonts, которые позаимствовать из папки системных шрифтов /Library/Fonts/
Затем решить как прописываем установки шрифтов - глобально или локально. Если глобально - работаем с файлом конфигурации asciidoctor-pdf /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/themes/default-theme.yml. Если локально - переписываем эту конфигурацию в папку со своим документом.
В конфигурации добавляем еще одну секцию font:catalog:
и указываем новый шрифт в секции base:font_family:
Будет выглядеть как-то так:
font:
catalog:
Arial:
normal: Arial.ttf
bold: Arial Bold.ttf
italic: Arial Italic.ttf
bold_italic: Arial Bold Italic.ttf
base:
font_family: Arial
если используете русский язык в коде, которые вставляется директивой source, не забудьте в секции code/font_family указать шрифт, поддерживающий кириллицу:
code:
font_family: Arial
Далее, русификация наименования секций Chapter -> Глава
https://github.com/asciidoctor/asciidoctor-pdf/commit/43584be1cae1853c6e8479c76c6d7ba561782b34
после этого можно писать в заголовке
:chapter-label: Глава
и все получится
Для переименования Table of context -> Оглавление
можно просто переопределить переменную toc-title.
Для этого прямо в документе пишем
:toc-title: Оглавление
Для перевода Version -> Версия добавь
:version-label: Версия
При формировании нумерованных списков может потребоваться настройка размера отступа текста от номера, что можно сделать через переменную outline_list indent в конфигурации темы:
outline_list:
indent: $horizontal_rhythm * 2.25
Как верно подсказали в комментариях - не стоит портить дефолтную тему, имеет смысл закачать в папку /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/fonts нужны шрифты, а определения стилей хранить прямо около документа, запуская генерацию командой
asciidoctor-pdf -a pdf-style=path/to/*-theme.yml *.adoc
1) была простая разметка, которую можно было редактировать в простом текстовом редакторе
2) можно было получить diff в версиях, как следствие текстового представления сырца
3) была генерация html
4) была генерация pdf без всяких docbook, latex и прочего
Если под первые три пункта подходит тот же markdown, то по последнему мною было обнаружено только одно хоть как-то работающее решение - https://github.com/asciidoctor/asciidoctor-pdf. И то в состоянии альфы.
Вообще, конечно, странно в 2014 году не иметь нормальных прямых решений генерации pdf из разметки. Видимо, это никому особо не надо - взяли ворд и вперед вместе с pdf-принтерами.
В asciidoctor-pdf тоже вылезла проблема - с русским языком. По крайней мере у меня на Mac OS X. Причина, как ожидаемо, в шрифтах.
Для лечения в Mac OS X нужно закачать правильные шрифты в папку /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/fonts, которые позаимствовать из папки системных шрифтов /Library/Fonts/
Затем решить как прописываем установки шрифтов - глобально или локально. Если глобально - работаем с файлом конфигурации asciidoctor-pdf /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/themes/default-theme.yml. Если локально - переписываем эту конфигурацию в папку со своим документом.
В конфигурации добавляем еще одну секцию font:catalog:
и указываем новый шрифт в секции base:font_family:
Будет выглядеть как-то так:
font:
catalog:
Arial:
normal: Arial.ttf
bold: Arial Bold.ttf
italic: Arial Italic.ttf
bold_italic: Arial Bold Italic.ttf
base:
font_family: Arial
если используете русский язык в коде, которые вставляется директивой source, не забудьте в секции code/font_family указать шрифт, поддерживающий кириллицу:
code:
font_family: Arial
Далее, русификация наименования секций Chapter -> Глава
https://github.com/asciidoctor/asciidoctor-pdf/commit/43584be1cae1853c6e8479c76c6d7ba561782b34
после этого можно писать в заголовке
:chapter-label: Глава
и все получится
Для переименования Table of context -> Оглавление
можно просто переопределить переменную toc-title.
Для этого прямо в документе пишем
:toc-title: Оглавление
Для перевода Version -> Версия добавь
:version-label: Версия
При формировании нумерованных списков может потребоваться настройка размера отступа текста от номера, что можно сделать через переменную outline_list indent в конфигурации темы:
outline_list:
indent: $horizontal_rhythm * 2.25
Как верно подсказали в комментариях - не стоит портить дефолтную тему, имеет смысл закачать в папку /Library/Ruby/Gems/2.0.0/gems/asciidoctor-pdf-1.5.0.alpha.4/data/fonts нужны шрифты, а определения стилей хранить прямо около документа, запуская генерацию командой
asciidoctor-pdf -a pdf-style=path/to/*-theme.yml *.adoc
среда, июля 30, 2014
Запись синтезированного голоса в Mac OS X
Мне кажется что неплохой синтезатор голоса сделан на ivona.com. Голос гуглопереводчика показался каким-то тормозным.
В Mac нет звукового loopback, поэтому для записи проигрываемого звука надо ставить отдельные программные инструменты. Вполне адекватно работает soundflower. После его установки необходимо выставить soundflower как input и output source. Теперь можно писать звук с звуковой карты. Обрезать лишнее можно с помощью audacity, для поддержки им сохранения в mp3 надо установить lame.
В Mac нет звукового loopback, поэтому для записи проигрываемого звука надо ставить отдельные программные инструменты. Вполне адекватно работает soundflower. После его установки необходимо выставить soundflower как input и output source. Теперь можно писать звук с звуковой карты. Обрезать лишнее можно с помощью audacity, для поддержки им сохранения в mp3 надо установить lame.
четверг, июля 24, 2014
iOS 7 + Phonegap + Leaflet + Google Maps Plugin = freeze after zoom
Напоролся на проблему, что в phonegap-приложении под iOS 7 с использованием Leaflet и плагина для просмотра Google Maps после зума карта морозится.
Помогло https://github.com/Leaflet/Leaflet/issues/2693#issuecomment-45146332
Помогло https://github.com/Leaflet/Leaflet/issues/2693#issuecomment-45146332
map.on('zoomanim', debounce(map._onZoomTransitionEnd, 250));Все остальное не помогло и не повлияло.
среда, июля 09, 2014
Mithril templates
Обычно во всех джаваскриптовых MV*-фреймворках темплейты могут иметь только один корневой элемент. Иногда это создает сложности для разметки. В Mithril можно возвращать массив. С использованием JSX for Mithril код темплейта может выглядеть так.
Ссылки 2014-07
Fixed persistent header and scroll to focussed input fields
How to Create a 4GB/s RAM Disk in Mac OS X
Просто постоянные проблемы в с position:fixed в вебвью разных OS в cordova. То заголовок уезжает в iOS, то в андройде скролл тормозит если контент внутри fixed div.
Что-то gulp и browserify стали долго делать инкрементальную сборку проекта, последняя мера по ускорению диска - работать с проектом на RAM-диске. Диск не персистентный, существует только в памяти, поэтому коммитить наружу надо чаще. Если что зависнет - потеряешь сделанные изменения. Зато прирост в скорости сразу в 3 раза. Больше из железки уже просто не выжать.
пятница, июня 20, 2014
Идиоматический асинхронный линеаризированный javascript на node.js с использованием Q
Если не принять мер, рано или позно callback-hell в javascript начнет отравлять вашу жизнь и вы будете искать способ линеаризации кода для композиции асинхронных и синхронных вызовов.
Лично я для линеарилизации асинхронных вызовов предпочитаю использовать библиотеку Q. Впрочем, у всех подобных библиотек примерно одинаковая семантика. Рассмотрим, к примеру, гипотетическую последовательность действий при регистрации пользователя:
1. Регулярными выражениями проверяем что e-mail правилен (sync)
2. Проверяем что пароль сложен (sync)
3. Проверяем существует ли пользователь с таким именем в базе (async)
4. Записываем в базу новую учетную запись, если за это время кто-то другой не создал запись (async)
5. Возвращаем сериализованную запись пользователя или ошибку
Какие выводы можно сделать из вышеприведенного кода?
1. В асинхронной функции создается Q.defer(), возвращается promise, в нужный момент вызываются reject с ошибкой или resolve с результатом выполнения.
2. В синхронной функции возвращается значение или кидается ошибка.
3. Обработку fail имеет смысл централизовать.
4. Поскольку в следующий .then аргументом передается результат выполнения предыдущего, то в этих случаях оберток не требуется (createUser передает user в serializeUser)
Лично я для линеарилизации асинхронных вызовов предпочитаю использовать библиотеку Q. Впрочем, у всех подобных библиотек примерно одинаковая семантика. Рассмотрим, к примеру, гипотетическую последовательность действий при регистрации пользователя:
1. Регулярными выражениями проверяем что e-mail правилен (sync)
2. Проверяем что пароль сложен (sync)
3. Проверяем существует ли пользователь с таким именем в базе (async)
4. Записываем в базу новую учетную запись, если за это время кто-то другой не создал запись (async)
5. Возвращаем сериализованную запись пользователя или ошибку
Какие выводы можно сделать из вышеприведенного кода?
1. В асинхронной функции создается Q.defer(), возвращается promise, в нужный момент вызываются reject с ошибкой или resolve с результатом выполнения.
2. В синхронной функции возвращается значение или кидается ошибка.
3. Обработку fail имеет смысл централизовать.
4. Поскольку в следующий .then аргументом передается результат выполнения предыдущего, то в этих случаях оберток не требуется (createUser передает user в serializeUser)
среда, апреля 02, 2014
Ссылки 2014-04
http://www.bluthemes.com/blog/3/clearing-bootstrap-3-columns
Clearing Bootstrap 3 columns
Суперхак для нормального выравнивания бутстраповских гридов. Must have.
https://github.com/OverZealous/run-sequence
Решение проблем с зависимостями между задачами в gulp.
http://blog.oio.de/2014/04/04/internet-explorer-11-source-map-based-debugging/
Internet Explorer 11 will support source maps based debugging!!!
https://github.com/eugeneware/deglobalify
A browerify transform to stops 3rd party javascript modules writing to the global window object, and to return a module.exports object instead.
Clearing Bootstrap 3 columns
Суперхак для нормального выравнивания бутстраповских гридов. Must have.
https://github.com/OverZealous/run-sequence
Решение проблем с зависимостями между задачами в gulp.
http://blog.oio.de/2014/04/04/internet-explorer-11-source-map-based-debugging/
Internet Explorer 11 will support source maps based debugging!!!
https://github.com/eugeneware/deglobalify
A browerify transform to stops 3rd party javascript modules writing to the global window object, and to return a module.exports object instead.
среда, марта 05, 2014
Ссылки 2014-03
https://github.com/jrudolph/sbt-dependency-graph/
Полезный плагин к sbt, позволяющий посмотреть граф зависимостей между библиотеками
https://github.com/kinkadzs/twirlsbt13
пример с twirl 0.7.0-snapshot (play framework template engine) на scala 2.10
https://github.com/spray/spray/tree/master/site
сайт spray.io с использованием twirl 0.7.0
Полезный плагин к sbt, позволяющий посмотреть граф зависимостей между библиотеками
https://github.com/kinkadzs/twirlsbt13
пример с twirl 0.7.0-snapshot (play framework template engine) на scala 2.10
https://github.com/spray/spray/tree/master/site
сайт spray.io с использованием twirl 0.7.0
понедельник, февраля 17, 2014
clustered node.js vs spray.io vs erlang в ping-pong
Автор (https://github.com/jakubkulhan/node-spray-bench) почему-то решил сравнивать некластеризованный Node.js и Spray.io. Естественно, что Node.js сильно проигрывал. Пришлось исправить ошибку и кластеризовать ноду (https://github.com/olegsmith/node-spray-bench). Ну и в догонку добавить Erlang, чтобы были представлены все ключевые виртуальные машины.
Тесты на моем макбуке Mid 2011 показали:
1) Erlang и кластерный Node.js показывают числа одного порядка.
2) Spray.io при увеличенной конкурентности будет побыстрее Erlang и кластерного Node.js раза в полтора-два.
3) у Spray.io ниже средняя латентность, но сильно хуже стандартное отклонение
PS: Автор переименовал репо https://github.com/jakubkulhan/hit-server-bench и добавил http-kit на clojure, который показал неожиданно высокую производительность и маленькое стандартное отклонение латентности. Будем смотреть.
Node
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 116.22us 77.97us 5.97ms 99.52%
Req/Sec 7.95k 546.35 8.67k 75.03%
74852 requests in 10.00s, 10.42MB read
Requests/sec: 7487.30
Transfer/sec: 1.04MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 521.68us 1.39ms 44.86ms 99.24%
Req/Sec 10.26k 1.97k 14.44k 68.55%
192574 requests in 10.00s, 26.81MB read
Requests/sec: 19258.40
Transfer/sec: 2.68MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.06ms 3.31ms 37.70ms 89.96%
Req/Sec 2.41k 1.32k 7.00k 51.13%
193808 requests in 10.00s, 26.99MB read
Requests/sec: 19378.43
Transfer/sec: 2.70MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.60ms 4.97ms 36.03ms 64.39%
Req/Sec 1.10k 661.64 5.18k 72.07%
183343 requests in 10.00s, 25.53MB read
Requests/sec: 18328.81
Transfer/sec: 2.55MB
Spray.io
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 125.49us 33.17us 2.54ms 98.52%
Req/Sec 7.24k 507.78 8.11k 75.55%
68564 requests in 10.00s, 9.35MB read
Requests/sec: 6856.59
Transfer/sec: 0.94MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.59ms 12.91ms 140.62ms 98.93%
Req/Sec 13.30k 3.26k 25.67k 87.42%
235621 requests in 10.00s, 32.13MB read
Requests/sec: 23562.77
Transfer/sec: 3.21MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.73ms 35.13ms 155.83ms 93.35%
Req/Sec 3.77k 1.48k 20.44k 88.13%
347999 requests in 10.00s, 47.46MB read
Requests/sec: 34804.40
Transfer/sec: 4.75MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.87ms 8.87ms 78.06ms 97.79%
Req/Sec 1.99k 490.15 15.78k 88.91%
372251 requests in 10.00s, 50.77MB read
Requests/sec: 37237.53
Transfer/sec: 5.08MB
Erlang
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 140.07us 33.36us 1.26ms 97.17%
Req/Sec 6.75k 517.40 8.11k 73.23%
63944 requests in 10.00s, 7.50MB read
Requests/sec: 6394.53
Transfer/sec: 768.09KB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 618.15us 295.73us 7.04ms 77.63%
Req/Sec 8.18k 839.32 10.78k 74.76%
155008 requests in 10.00s, 18.18MB read
Requests/sec: 15501.56
Transfer/sec: 1.82MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.27ms 2.05ms 18.03ms 69.48%
Req/Sec 1.62k 298.53 3.50k 73.85%
154527 requests in 10.00s, 18.13MB read
Requests/sec: 15454.23
Transfer/sec: 1.81MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.97ms 4.64ms 40.03ms 68.73%
Req/Sec 763.11 163.90 1.50k 70.78%
147900 requests in 10.00s, 17.35MB read
Requests/sec: 14792.68
Transfer/sec: 1.74MB
Тесты на моем макбуке Mid 2011 показали:
1) Erlang и кластерный Node.js показывают числа одного порядка.
2) Spray.io при увеличенной конкурентности будет побыстрее Erlang и кластерного Node.js раза в полтора-два.
3) у Spray.io ниже средняя латентность, но сильно хуже стандартное отклонение
PS: Автор переименовал репо https://github.com/jakubkulhan/hit-server-bench и добавил http-kit на clojure, который показал неожиданно высокую производительность и маленькое стандартное отклонение латентности. Будем смотреть.
Node
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 116.22us 77.97us 5.97ms 99.52%
Req/Sec 7.95k 546.35 8.67k 75.03%
74852 requests in 10.00s, 10.42MB read
Requests/sec: 7487.30
Transfer/sec: 1.04MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 521.68us 1.39ms 44.86ms 99.24%
Req/Sec 10.26k 1.97k 14.44k 68.55%
192574 requests in 10.00s, 26.81MB read
Requests/sec: 19258.40
Transfer/sec: 2.68MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.06ms 3.31ms 37.70ms 89.96%
Req/Sec 2.41k 1.32k 7.00k 51.13%
193808 requests in 10.00s, 26.99MB read
Requests/sec: 19378.43
Transfer/sec: 2.70MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.60ms 4.97ms 36.03ms 64.39%
Req/Sec 1.10k 661.64 5.18k 72.07%
183343 requests in 10.00s, 25.53MB read
Requests/sec: 18328.81
Transfer/sec: 2.55MB
Spray.io
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 125.49us 33.17us 2.54ms 98.52%
Req/Sec 7.24k 507.78 8.11k 75.55%
68564 requests in 10.00s, 9.35MB read
Requests/sec: 6856.59
Transfer/sec: 0.94MB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.59ms 12.91ms 140.62ms 98.93%
Req/Sec 13.30k 3.26k 25.67k 87.42%
235621 requests in 10.00s, 32.13MB read
Requests/sec: 23562.77
Transfer/sec: 3.21MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 10.73ms 35.13ms 155.83ms 93.35%
Req/Sec 3.77k 1.48k 20.44k 88.13%
347999 requests in 10.00s, 47.46MB read
Requests/sec: 34804.40
Transfer/sec: 4.75MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.87ms 8.87ms 78.06ms 97.79%
Req/Sec 1.99k 490.15 15.78k 88.91%
372251 requests in 10.00s, 50.77MB read
Requests/sec: 37237.53
Transfer/sec: 5.08MB
Erlang
Running 10s test @ http://127.0.0.1:8080/
1 threads and 1 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 140.07us 33.36us 1.26ms 97.17%
Req/Sec 6.75k 517.40 8.11k 73.23%
63944 requests in 10.00s, 7.50MB read
Requests/sec: 6394.53
Transfer/sec: 768.09KB
Running 10s test @ http://127.0.0.1:8080/
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 618.15us 295.73us 7.04ms 77.63%
Req/Sec 8.18k 839.32 10.78k 74.76%
155008 requests in 10.00s, 18.18MB read
Requests/sec: 15501.56
Transfer/sec: 1.82MB
Running 10s test @ http://127.0.0.1:8080/
10 threads and 50 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 3.27ms 2.05ms 18.03ms 69.48%
Req/Sec 1.62k 298.53 3.50k 73.85%
154527 requests in 10.00s, 18.13MB read
Requests/sec: 15454.23
Transfer/sec: 1.81MB
Running 10s test @ http://127.0.0.1:8080/
20 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 6.97ms 4.64ms 40.03ms 68.73%
Req/Sec 763.11 163.90 1.50k 70.78%
147900 requests in 10.00s, 17.35MB read
Requests/sec: 14792.68
Transfer/sec: 1.74MB
суббота, февраля 08, 2014
Ссылки 2014-02
http://benninger.ca/posts/akkascala-deploying-an-actor-remotely/
AKKA+SCALA: DEPLOYING AN ACTOR REMOTELY
http://benninger.ca/posts/creating-an-akka-actor-from-a-dynamically-loaded-jar-file-in-scala/
CREATING AN AKKA ACTOR FROM A DYNAMICALLY LOADED JAR FILE IN SCALA
http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/
ASK, TELL AND PER-REQUEST ACTORS
http://tuxdna.wordpress.com/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/
A simple Scala parser to parse 44GB Wikipedia XML Dump
http://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/
SERVER-SIDE CLUSTERING OF GEO-POINTS ON A MAP USING ELASTICSEARCH
https://github.com/triforkams/geohash-facet
Geohash Facet Plugin for elasticsearch
https://groups.google.com/forum/#!msg/akka-user/8fZ75MlVEYc/YaZGsysG8mcJ
В Akka начались подвижки в направлении Rx
http://danielwestheide.com/blog/2013/01/23/the-neophytes-guide-to-scala-part-10-staying-dry-with-higher-order-functions.html
Staying DRY With Higher-order Functions
AKKA+SCALA: DEPLOYING AN ACTOR REMOTELY
http://benninger.ca/posts/creating-an-akka-actor-from-a-dynamically-loaded-jar-file-in-scala/
CREATING AN AKKA ACTOR FROM A DYNAMICALLY LOADED JAR FILE IN SCALA
http://techblog.net-a-porter.com/2013/12/ask-tell-and-per-request-actors/
ASK, TELL AND PER-REQUEST ACTORS
http://tuxdna.wordpress.com/2014/02/03/a-simple-scala-parser-to-parse-44gb-wikipedia-xml-dump/
A simple Scala parser to parse 44GB Wikipedia XML Dump
http://blog.trifork.com/2013/08/01/server-side-clustering-of-geo-points-on-a-map-using-elasticsearch/
SERVER-SIDE CLUSTERING OF GEO-POINTS ON A MAP USING ELASTICSEARCH
https://github.com/triforkams/geohash-facet
Geohash Facet Plugin for elasticsearch
https://groups.google.com/forum/#!msg/akka-user/8fZ75MlVEYc/YaZGsysG8mcJ
В Akka начались подвижки в направлении Rx
http://danielwestheide.com/blog/2013/01/23/the-neophytes-guide-to-scala-part-10-staying-dry-with-higher-order-functions.html
Staying DRY With Higher-order Functions
понедельник, января 13, 2014
пятница, января 10, 2014
понедельник, января 06, 2014
Ссылки 2014-01
OData
http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/
JSTS Topology Suite
https://github.com/bjornharrtell/jsts
OData query string parser for node.js. OData query -> JSON Expression tree
https://github.com/qraftlabs/node-odata-parser
ODataQueryBuilder: a JavaScript library for building OData queries
http://www.odata.org/2013/08/odataquerybuilder-a-cross-browser-javascript-library-for-building-odata-queries-3/
OGR bindings for node
https://github.com/zhm/node-ogr
Единственный публичный файлшаринг-сервис, который позволил закачать 200 мегов без регистраций и денег
http://turbobit.net/
http://www.odata.org/documentation/odata-v2-documentation/uri-conventions/
JSTS Topology Suite
https://github.com/bjornharrtell/jsts
OData query string parser for node.js. OData query -> JSON Expression tree
https://github.com/qraftlabs/node-odata-parser
ODataQueryBuilder: a JavaScript library for building OData queries
http://www.odata.org/2013/08/odataquerybuilder-a-cross-browser-javascript-library-for-building-odata-queries-3/
OGR bindings for node
https://github.com/zhm/node-ogr
Единственный публичный файлшаринг-сервис, который позволил закачать 200 мегов без регистраций и денег
http://turbobit.net/
Подписаться на:
Сообщения (Atom)
Мой список блогов
-
-
Notes on LLMapгод назад
-
Строительноегод назад
-
Будем честными ...год назад
-
Highscalability is Up For Sale2 года назад
-
-
-
-
-
Go Composition vs Inheritance6 лет назад
-
Welcome, Prashanth!6 лет назад
-
Top Developer Collaboration Tools6 лет назад
-
Транспортный микс7 лет назад
-
-
Исповедь скрам тестера7 лет назад
-
-
Running JRuby on the Graal JIT7 лет назад
-
-
-
Скрепкус гигантус8 лет назад
-
Мои твиты8 лет назад
-
-
-
6990 рублей9 лет назад
-
-
Смирение и американские боеголовки9 лет назад
-
-
-
-
-
-
Measuring Activity Startup Time10 лет назад
-
-
-
-
-
Рассказ жителя Мариуполя из первых рук12 лет назад
-
-
Grails - Convention over Configuration12 лет назад
-
$ (dollar) prefix for angularJS12 лет назад
-
-
-
-
Блог закрыт!12 лет назад
-
-
Websphere portal. Create pages programmatically13 лет назад
-
-
-
Tweetbot для Mac13 лет назад
-
Scala-IO Core: Unmanaged Resources13 лет назад
-
Использование шрифтов в JasperReports13 лет назад
-
Аудит менеджмента качества13 лет назад
-
-
Windows 8 Camp14 лет назад
-
-
-
Переезд14 лет назад
-
CSP15 лет назад
-
-
Графоманам15 лет назад
-
ListView Multiple Selection 215 лет назад
-
-
-
UnitOfWork & IdentityMap17 лет назад
-
-
-
-
-
-
-
-
-