LINUX.ORG.RU

Сообщения kovrik

 

vim затирает выхлоп в консоли при выходе

Форум — General

При выходе из vim'а затирается весь выхлоп. Т.е. редактирую, например, кронтаб - выхожу их вима - и вижу только серый фон цветовой схемы, которая в vim'е прописана. А изменился ли кронтаб или нет - не видно. Как это исправить?
В инете нашел, что для screen'а отдельной опцией в конфиги это решается.
Как быть с tmux'ом? Или в vimrc что-то прописать?

 ,

kovrik
()

Сервлет и ограничение на количество открытых файлов

Форум — Web-development

Здравствуйте.
catalina.out:

SEVERE: Missing default web.xml, using application web.xml only conf/web.xml .../conf/web.xml java.io.FileNotFoundException: .../conf/web.xml (Too many open files)
at java.io.FileInputStream.open(Native Method)

Пишет, что открыто много файлов.

Выхлоп unlimit'а:

ulimit -a | grep «open files»
open files (-n) 1024

Выхлоп lsof'а:

lsof -p 8869 | wc -l
84

Почему такое может быть? В самом приложении никакие файлы не открываются.
Когда мы берем writer'а через response.getWriter() и пишем им - считается ли это за открытый файл?
И еще - я правильно понимаю, что на каждое подключение к сервлету создается сокет? Считается ли он за открытый файл?

 , , ,

kovrik
()

Работа с большими объемами данных

Форум — Development

Здравстуйте.

Есть сервлет, к нему делаются GET-запросы и передаются параметры from и to (UNIX-timestamp) - период, за который нужно вернуть данные.
Данные возвращаются в формате JSON.
В общем случае, каждый элемент возвращаемых данных представляет собой 2 поля - timestamps и data, где timestamps - массив timestamp'ов, где каждый - timestamp начала дня (и все в интервале от from до to, в порядке возрастания; разница между соседними - 86400). А data - массив значений (некоторое число, либо null, если данных за данный день нет; в данном случае 0 - это значение - и важно различать когда 0, а когда null).
Пример:

{
  "data": [
           25,
           null,
           35
          ],
  "timestamps":[
                1354910400,
                1354996800,
                1355083200
               ]
}
Сейчас делается следующим образом:
1. from округляется до начала дня, to - до начала следующего дня и массив timestamps в цикле заполняется long'ами от from до to с шагом в 86400
2. Вызываются различные методы и результаты записываются в HashMap'ы<Long, Long>, где ключ - timestamp начала дня, а значение - значение на данный день.
3. Создается StringBuilder и для каждого HashMap'а делается:
- пробегаем по всем элементам массива timestamps
- если в текущем HashMap'е элемент по ключу timestamps[n] равен null, то в StringBuilder делаем append(«null»)
- если же на данный день у нас есть данные - append'им их

Потом все переводится в валидный JSON и конце концов делается response.getWriter.print(result) - возвращается результат

В общем-то, все работает, все удобно, но при большом количестве запросов (а каждый запрос довольно тяжелый) - в куче накапливается огромное количество этих HashMap'Ов - они начинают занимать где-то 800МБ.
Т.е. ситуация чревата тем, что heap space кончится. Хотя по сути, данные долго хранить не надо - просто посчитать 1 раз, да вернуть их в respons'е

Вопросы:
1. Как организовать данные и минимизировать затраты памяти? Использовать вместо HashMap'ов обычные массивы (хотя с HashMap'ами работать намного удобнее)?
2. Как эффективно в данном случае работать с памятью? Делать myHashMap.clear() не имеет смысла,так? Вызывать насильно System.gc() - слишком радикально, да и сильно замедлит работу. Как в данном случае быть?
Решат ли проблему WeakReference's?

Спасибо.

 ,

kovrik
()

Вопрос по akka

Форум — Development

Начал изучать Akka.
Не работает отправка сообщений удаленным системам.
Пример:

        ActorSystem s1 = ActorSystem.create("actorSystem1", ConfigFactory.parseString("akka.remote.netty.port=2552"));
        ActorSystem s2 = ActorSystem.create("actorSystem2", ConfigFactory.parseString("akka.remote.netty.port=2553"));

        ActorRef s1ref = s1.actorOf(new Props(GreetingActor.class), "greeting");
        ActorRef s2ref = s2.actorFor("akka://actorSystem1@127.0.0.1:2552/user/greeting");

        s1ref.tell(new Greeting("Hello, actorSystem1!"));
        s2ref.tell(new Greeting("Hello, from actorSystem2!"));
Первое сообщение приходит, второе - нет. Как правильно указать путь для actorFor()?
ЧЯДНТ?

 ,

kovrik
()

диаграммы Венна

Форум — Development

Есть несколько объектов (A, B, C etc.).
В каждом объекте - множество элементов (1, 2, 3, 4, 5 etc.).
В разных объектах могут быть одинаковые элементы (количество общих элементов и интересует)

Задача:
Построить по данным диаграммы Венна, либо аналог - взвешенный граф, в котором узлы - это объекты, а на веса ребер - количество общих элементов.

Вопросы:
1. Как организовать хранение данных подобного вида? Желательно - используя более-менее традиционные методы (MySQL, например, или MongoDB). Да, есть графовые базы данных, но ставить отдельную СУБД не хотелось бы.

2. Как по этим данным лучше всего строить подобные диаграммы (алгоритм) ?

 диаграммы венна

kovrik
()

Поиск ошибки в vim

Форум — Desktop

При запуске vim'а проскакивает сообщение:

Error detected while processing function <SNR>23_ReadRgbTxt..<SNR>23_FindRgbTxt:
line   11:
E605: Exception not caught: no rgb.txt found, please set g:csexact_rgbtxt
Error detected while processing function <SNR>21_TermFactory:
line   32:
E121: Undefined variable: g:csexactdata#xterm256
E171: Missing :endif
Гугл ничего толкового не говорит. Как найти где возникает ошибка? Просто вырубать половину плагинов, потом другую, потом четверть и тд? Или как-то быстрее можно найти? Например, найти вызов функции этой...как?

 

kovrik
()

tmux, crontab и ssh сессии

Форум — General

Здравствуйте!
Пользуюсь tmux'ом. Все нравится, но есть проблема:

Допустим, я подключился по ssh к удаленному серверу. Сижу, работаю.
Редактирую crontab (от пользователя, а не от рута), он пишет во временный файл, но обновления не происходит - в /var/spool/cron/crontabs/cron.update висят локи.
Потом делаю exit, пишет Connection to <hostname> closed. Вроде все ок.
Проблема в том, что кронтабс все равно не обновляется и в cron.update продолжают висеть локи (или как это называется).

С чем это может быть связано? Это из-за tmux'а ? ssh-agent'а ? Еще из-за чего-то?

 , , ,

kovrik
()

Вопросы по MongoDB

Форум — Development

Здравствуйте!
С Монгой не работал, возник ряд вопросов:

1. Пишут, что лимит на коллекцию - 16MB. Много ли это? Пока что нет четкого понимания, что такое Коллекция.
Допустим, в коде (Perl):

my $conn = MongoDB::Connection->new; # connection
my $db = $conn->test;  # use db test
my $users = $db->users; # collection?
Правильно ли я понимаю, что users - это и будет коллекция (аналог таблицы) ?
16 МБ - как-то маловато, не?

2. Чтобы обойти это - нужно юзать GridFS, так? Какие ограничения и подводные камни? Я так понимаю, что GridFS не является полностью прозрачной (т.е. не получится просто прикрутить ее и не вносить изменений в код)?

3. Пишут, что сейчас блокировка там на уровне БД. Правильно ли я понимаю, что если 5 процессов пытаются одновременно писать в одну БД (test из примера), то сможет это сделать только 1 ?
Что будут делать остальные - ждать, пока бд не разлочится или просто отвалятся? В данном случае, лучше использовать синхронную запись, а не асинхронную, которая по умолчанию, так?

 

kovrik
()

java.nio.charset.IllegalCharsetNameException

Форум — Development

Здравствуйте!

В vim'е код на Scala:

Console.println("Hello, World!")
Использую плагин vim-quickrun. Пытаюсь запустить программу - выдает:

Error occurred during initialization of VM
java.nio.charset.IllegalCharsetNameException:
at java.nio.charset.Charset.checkName(Charset.java:290)
at java.nio.charset.Charset.lookup2(Charset.java:477)
at java.nio.charset.Charset.lookup(Charset.java:456)
at java.nio.charset.Charset.defaultCharset(Charset.java:599)
at sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:55)
at java.io.OutputStreamWriter.<init>(OutputStreamWriter.java:111)
at java.io.PrintStream.<init>(PrintStream.java:117)
at java.lang.System.initializeSystemClass(System.java:1075)

Если просто в консоли делать: scala hello.scala, то все работает.
Это проблема плагина? Или настроек вима? Как лечить?

PS: set fileencoding=utf-8

 ,

kovrik
()

Равномерное распределение нагрузки

Форум — Development

Здравствуйте!
Есть N объектов, для каждого нужно посчитать статистику.
Сейчас статистика считается скриптами по крону.
Проблема в том, как распределить нагрузку равномерно по времени в зависимости от N.
Сейчас тупо есть скрипт, которому передается аргумент - число S (шаг) - а он запускает C скриптов для объектов [C*S, C*S+M], где M - константа, указанная в скрипте.
Т.е. у нас есть 10 объектов, M = 4, например, мы запускаем скрипт c шагом 0:

script 0

И он запускает скрипты для объектов с 0 по 4. В другое время - для объектов с 5 по 8, в другое - для остальных.
Проблем несколько:

1. Нагрузка не распределяется по времени в зависимости от количества объектов. Т.е. если у нас 100 объектов, а M = 50, то за 1ую итерацию обрабатываться будут 50 объектов, за вторую - остальные 50.
Если у нас 50 объектов - то они абсолютно так же будут обрабатываться за 1 итерацию.
Т.е. надо как-то динамически менять параметр M в зависимости от кол-ва объектов. Как это лучше делать? И если менять динамически, то возникает проблема:

2. Все делается по сути вручную правкой кронтаб. Как это все лучше автоматизировать?

PS: Прошу прощения за некоторую сумбурность и абстрактность.

kovrik
()

Вопрос по Oracle 11g R2 SQL

Форум — Development

Здравствуйте!
Раньше приходилось работать только с мускулом и постгресом.
Oracle Database - ORDBMS, а мускул - RDBMS.
Тяжело ли будет пересесть на сабж? Какие отличия? Какие особенности? Подводные камни?
Что посоветуете почитать для начала?

 , ,

kovrik
()

Java + JSON

Форум — Development

Задача: Есть текст в формате JSON. Нужно проверить, является ли он валидным, и если нет - сделать его таким (экранировать символы и тп.).

Пример:

String json = "{\"key\": \"Hello, \"world\" !\"}";
json = escapeJSON(json);
// теперь в json'е строка "{\"key\": \"Hello, \\\"world\\\" !\"}"
System.out.println(json); //выведет: {"key": "Hello, \"world\" !"}

Чем это лучше всего сделать? При этом, хотелось бы только метод escape, без создания кучи новых объектов и тп.

 ,

kovrik
()

Фриланс, вопросы

Форум — Talks

Здравствуйте!
Ни разу не фрилансил, думаю попробовать.
Посоветуйте, пожалуйста, платформы. Можно и русские, можно и зарубежные.

Хотелось бы:
1. Чтобы не очень муторно было с регистрацией, с платежами, с выводом стредств (например, если только через PayPal - не подходит. В идеале - напрямую с банковской картой).
2. Чтобы там было не полтора землекопа, а большая аудитория.
3. Чтобы был минимум мошенничества (как со стороны платформы, так и со стороны работодателей).

Если кто-то давно фрилансит - дайте совет, расскажите про процесс.
Спасибо!

 

kovrik
()

Квантовая механика

Форум — Talks

Здравствуйте!
Недавно закончил чтение книги Нила Стивенсона «Анафем». Книга очень понравилась, всем рекомендую (как и другие его работы). Так вот, в книге затрагивается множество идей из разных областей - математики, философии, психологии, физики и тд. В частности, например, приводится идея о сходстве работы нашего мозга и квантового компьюетра. Т.е. мозг в процессе мышления как бы 'воспринимает' и перебирает одновременно сразу множество вариантов (а точнее - их суперпозицию), а затем (просветление!) все эти варианты «схлопываются» до единственного варианта - результата процесса мышления.

Пример: мы стоим на улице и хотим пройти из точки А в точку B. Существует огромное множество решений данной задачи (с учетом препятствий и тп). Но мы практически мгновенно «видим» эффективное решение и сразу идем из точки A в точку B, обходя препятствия и тп. При этом мы не решаем задачу по шагам - сделали шаг вперед, огляделись, подумали, сделали еще один шаг и тд. Мозг как бы видит всю картину целиком, создает у себя внутри целую модель улицы и одновременно просматривает различные варианты решения, в итоге мы идем по пути, который получился в результате 'вычислений' мозга.

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

Выяснил, что существует множество интерпретаций квантовой механики. Самые популярные среди них:
- «никакая» («Заткнись, и считай!» - не нужно никак интерпретировать квантовую механику ибо это скорее область философии. А квантовая механика - раздел физики, поэтому, если она работает и дает результаты - то просто производите измерения, расчеты, да получайте нужные результаты и не забивайте голову всякой филосовской чепухой)

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

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

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

Так вот, интересует следующее:
1. Что конкретно понимается под 'коллапсом волновой функции'? Я воспринимаю эту функцию как чисто математический объект (хотя некоторые физики считают ее объектом реального мира). Что значит, что она коллапсирует? Ну да, мы заранее не знаем результата измерения, да, есть распределение вероятностей...ну и что? Не является ли это просто показателем того, что у нас не хватает знаний? Ну произвели мы измерение, получили результат. Как копенгагенская интерпретация может утверждать, что ДО измерения система находилась в неопределенном состоянии? Ведь тот факт, что МЫ не знаем параметров состояния системы не говорит о том, что сама система находится в неопределенном состоянии, и даже в суперпозиции состояний, а приходит к единому состоянию лишь БЛАГОДАРЯ акту измерения?

2. Каким образом все-таки квантовые эффекты влияют на работу нашего мозга? Что почитать на эту тему?

3. Как ныне физика рассматривает свет? Вроде как опыт Юнга доказал, что свет - волна. Но при этом, когда мы пытаемся 'поймать' свет - мы получаем отдельные частицы - фотоны. Корпускулярно-волновой дуализм? Как это проще всего понять?

 

kovrik
()

Вопросы по Xfce4 и tint2

Форум — General

1. Как в tint2 добавить индикатор раскладки клавиатуры?
2. Как в tint2 добавить Applications Menu?
3. Как в Xfce4 у xfwm4 у окон убрать title bar?

 ,

kovrik
()

not in the sudoers file

Форум — General

Всем привет
Ковырялся тут в xfwm4, пришлось ребутаться.
После ребута оказалось, что юзер, под которым я сижу (kovrik) пропал из /etc/sudoers
Ребутнулся в recovery mode -> root -> mount -o remount,rw /dev/sdaX -> добавил себя в /etc/sudoers
Теперь вроде все работает

Вопрос: почему такое произошло?
Как узнать, почему изменился /etc/sudoers?

 

kovrik
()

Вопросы по vimperator'у

Форум — General

Перешел с Хрома обратно на Огнелиса и поставил vimperator.
Штука очень крутая, постепенно допиливаю конфиг.

Возник ряд вопросов:

1. Как в новой версии заставить работать плагин buftabs? Чтобы выше статуслайна показывался ряд буферов (чтобы не использовать табы)? Скачал плагин (js-файл), но вимператор его не видит.

2. Как установить минимальный размер шрифта на странице (в Хроме такое можно было сделать)?

3. Как изменить размер шрифта в hint'ах? В цветовой схеме ставлю:

hi Hint font-size: 12px; ...

Эффекта нет.

[решено]4. Как в списках (закладок/буферов/вкладок), где vimperator предлагает варианты (например, добавил lor в закладки, делаю bmarks и пишу linux - он предлагает linux.org.ru) перемещаться по списку?

5. Что лучше - Vimperator или Pentadactyl? Последний так и не работает в FF15?

 ,

kovrik
()

Twitter OAuth

Форум — Web-development

Здравствуйте!
Вычитал тут новости, что в скором времени Твиттер вводит обязательную аутентификацию через OAuth.
Почитал доки - толком так и не понял как ей пользоваться.
Везде примеры с юзерами, которые дают моему приложению права на определенные данные и тп.
А если я просто отправляю GET-запросы вида:

https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&a...

То как мне нужно переделать запрос, чтобы он у меня работал и после введения новой версии Twitter API?

 ,

kovrik
()

vim+tmux

Форум — General

Здравствуйте!
Осваиваю tmux. Все нравится. Но возник вопрос:
Какой префикс использовать для tmux'а?
C-b - не удобно
C-a - перестает работать vim'овский key-binding (я его использую довольно часто)

Посоветуйте какой-нибудь удобный биндинг для tmux'овского префикса, чтобы не конфликтовал с vim'ом.

 ,

kovrik
()

yii-debug-toolbar

Форум — Web-development

Не работает yii-debug-toolbar на удаленном сервере.
Все делаю по инструкции.
Папку yii-debug-toolbar скопировал в /protected/extensions

В конфиге прописал:

'routes' => array(
    array(
        'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute',
        'ipFilters'=>array('*'),
),

В настройках подключения к БД добавил:

'enableProfiling'=>true,
'enableParamLogging'=>true,
Результата нет - никакие панели не отображаются, ничего нет.
В google chrome console никаких ошибок, js'ку он даже не пытается подгрузить.

ЧЯДНТ?

 ,

kovrik
()

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