LINUX.ORG.RU

Сообщения comp00

 

PostgreSQL. Группировка по временному интервалу

Сап, Лор! Есть поток данных с таймштампом:

        time         
---------------------
 2015-02-08 08:57:21 
 2015-03-23 05:22:42 
 2015-03-23 05:24:52 
 2015-03-23 05:25:14 
 2015-03-23 05:25:46 
 2015-04-03 13:00:28 
 2015-04-03 13:00:33 
 2015-04-03 13:00:38 
 2015-04-03 13:00:43 
 2015-04-03 13:00:48 

Нужно этот поток сгруппировать, таким образом, что бы в каждой группы образовались рекорды с разницей во времени не более X. Т.е. на выходе получить что то типа такого:

        time         | group_field 
---------------------+----------
 2015-02-08 08:57:21 |        1
 2015-03-23 05:22:42 |        2
 2015-03-23 05:24:52 |        2
 2015-03-23 05:25:14 |        2
 2015-03-23 05:25:46 |        2
 2015-04-03 13:00:28 |        3
 2015-04-03 13:00:33 |        3
 2015-04-03 13:00:38 |        3
 2015-04-03 13:00:43 |        3
 2015-04-03 13:00:48 |        3

Время хранится в UTC. Есть идеи как такое реализовать? Сейчас это реализовано через отдельную сущность (group_field - id сущности), что ОЧЕНЬ усложняет CRUD, т.к. объем данных велик. Поэтому было принято решение отказаться от сущности в пользу такой группы-фантома.

 , ,

comp00 ()

Правила образования семантических связей в русскоязычном запросе

Пишу семантико-синтаксический парсер для русского языка, основанный на правилах/шаблонах/фреймах. Получаю морфологическую информацию каждого токена в запросе, а затем к массиву этих данных применяю правила (фреймы), для определения семантических связей в запросе. Собственно, нужны эти правила, в любом доступном скрипту формате (xml, sql, etc..). Пример правил:
Глагол(личн., нв.з., действ.) -> Сущ. (им. п, ед.ч.)
Я ни разу не лингвист и даже не фиолог, но думаю что подобных правил будет несколько десятков, и написание их всех требует высокого уровня владения языком, кое у меня ограничено школьными знаниями, которые за 7 лет уже порядком подзабыты. Может кто делал похожее, и у кого то есть такие данные? Поделитесь, буду очень благодарен.

 , , ,

comp00 ()

Разметка контента

Привет Лор. Заинтересовал меня вопрос, как принято хранить форматируемый контент в 2016 году.
Сейчас у меня кастомизирован CKedit, который генерирует html, отправляет в бекенд (Rails), который вырезает нежелательные теги (реализовано с помощью стороннего гема+ собственные правила для всяких <script> и <style>). Собственно, результат записывается в бд, и во вьюшке это дело рендерится, кешируется. и показывается пользователю.
Собственно, нетрудно догадаться, что основная защита от всяких там инъекций это тот самый «фильтр», сканирующий контент перед сохранением. Но «фильтрует» он даже не по белому листу, а лишь по тем правилам, которые я описал. Понятное дело, что секурным такое решение назвать нельзя, особенно учитывая, что о всяких инъекциях я только с 3.5 статей знаю.
В общем, попробовал я поломать существующее решение, и таки получилось. При определенных обстоятельствах верстка таки съезжает и некоторый функционал становится недоступен. Меня это не устраивает, и вот, я здесь.
Собственно, как быть? Я знаю о bbcode, который позволит самому описать правила генерации выходного html, но его я не рассматриваю по 2м причинам. Во первых, сложное форматирование. Мне важны картинки в контенте, их расположение относительно текста и прочее. Кроме того - в контенте присутствует некоторый контент, сугубо индивидуальный, релизовываать который придется самостоятельно, что довольно затрудительно, учитывая сложную разметку контента. Во вторых, поигравшись некоторое время с гемом bb-ruby, а именно с инициализацией кастомных правил, я получил объемный файл с нечитабильными регулярками, поддерживать который стало невозможно, хоть это лишь реализация небольшой части желаемого. В третьих, отсутствие нормального редактора для этого bbcode, что в принципе не так критично, как п.1
Знаю про всякие Markdown, Textile, и т.п. но они не спасают от инъекций и полученный код все равно придется фильтровать.
Итого получается, что лучше html ничего и нет. Может есть какой то ман, как корректно настроить секурность html-контента от всяких инъекций и переопределения стилей? Или может вообще я параноик, и это не проблема вовсе.
Кстати говоря, то о чем сейчас идет речь, это не публичный интерфейс, а скорее интерфейс пользователя с привилегиями, и при нормальной работе доступа к нему рядовым пользователям не будет на уровне авторизации. Т.е. можно сказать, что автором этого контента буду только я.
Благодарю за внимание, проявленное к этой стене текста (объемно вышло как-то), и надеюсь на ваши советы.

 , , ,

comp00 ()

проблемы с Battle.net

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

This application failed to start because it could not find or load the Qt platform plugin «windows». Available platform plugins are: windows. Reinstalling the application may fix this problem.

Первоначально работало на Wine 1.9.1 в Fedora 23 (были в лаги интерфейса в DIII, но более чем играбельно), после пытался запустить в 1.7, 1.9.2 но все тщетно. Под PoL один раз английская версия один раз заработала, но ни одна игра так и не запустилась. Привычные решения, вроде изменения версии windows в winecfg и манипуляции с библиотеками к результатам не привели. Все Qt-шные либы в каталоге Battle.net в полном составе.
Кто-то может подтвердить баг или подсказать решение?

 , , , ,

comp00 ()

Порекомендуйте сервис комментирования для блога

Пишется время от времени бложик на рельсах для личного пользования, появилась необходимость добавить комментарии для статей. Требования такие:
1) Т.к. большинство читателей это мои друзья и знакомые, наличие авторизации от ВК обязательно.
2) Т.к. бложик изначально проектировался мультиязычным, с акцентом на англоязычную аудиторию (IT же), наличие авторизации от Facebook, так же обязательно. Сюда же приписываю G+.
3) Авторизация от GitHub.
4) Возможность комментирования без авторизации, с указанием e-mail и с вытягиванием gravatar.
5) Параноики, нежелающие указать даже мыло в пролете должны довольствоваться только содержимым блога без обсуждений.
6) Древовидная структура, т.е. возможность разводить флеймы между комментаторами.
7) Прикрепление картинок, ссылок как минимум. Лайки, сохранение комментария в избранное и прочие социальные составляющие ненужны необязательны.
8) Наличие вменяемого API, в т.ч. с уведомлениями об ответах. Причем, эти уведомления должны быть не где то там на стороне провайдера, а на таскбаре моего бложика. В идеале - наличие гема для Rails
9) Т.к. не для продакшена, а для личного пользования, на некоторые недочеты и перфоманс могу закрыть глаза.
10) Самое главное, единый сервис, дающий возможность Васи с контакта обсуждать с Джорджем из G+ в едином интерфейсе с минимальными телодвижениеми.

Про disqus в курсе, но увы, не умеет он ни github, ни vk.
Да, мне ничто не мешает запилить авторизацию по OAuth, самому выбрать провайдеров, запилить древовидные комментарии... но это все не нужно. В идеале, в этом приложении вообще не должно быть такой сущности как «пользователь».
Такие, вот, дела. Что посоветуете?

P.S. Да, я мог создать бложик на ЖЖ, или что там сейчас модно, или на Wordpress, но писать блоги о разработке на стронних сервисах, как-то не камильфо.
P.P.S. В критике и сторонних комментариях не нуждаюсь, делаю все осознано, и если делаю значит нужно. Зачем и для кого - дело уже десятой важности.

 , , ,

comp00 ()

(Steam) Jedi Academy on Linux

Привет лор. Решил на новогодних выходных побегать в Star Wars Jedi Knight: Jedi Academy, зная что она уже опен сорс а значит и на линукс портирована. На страничке в стиме красуется лейбл Steam Play, да и скидка в 70% в придачу.
В общем, взял большой пак. Каково же мое удивление было, что лишь одна игра «доступна к установке на моей платформе», хотя Steam Play почти на всех заявлен. Собсвенно, вопрос. Вроде как на JK сорцы открыты, SteamPlay заявлен, игры куплены. Почему я не могу их установить? Пусть даже с помощью костыля в виде OpenJK. Как мне взять игровые ресурсы, если стим меня посылает с моей платформой?
Есть и вайн, есть и виртуалка с виндой. не проблема достать ресурсы из виндовой версии... Но я купил только для того, что бы избежать всей этой возни с OpenJK, и установить одним кликом...
Кто сталкивался с подобным? Как решать, что делать?

 , ,

comp00 ()

Излечение фризов тачпада в убунте, переходом на XFCE. Возможно ли?

Дорого дня, господа. В общем после 1.5 недели на убунте(14.04, 15,04), я закалибался с проблемой неадекватного тачпада после выхода из ждущего режима. Багтрекеры подобной проблемой переполнены, предлагают костыли, различной степени степени извращенности, но сути дела это не меняет. Но погуглив, я не обнаружил подобных проблем нигде, кроме ванильной убунты с юнити, оттого интересует вопрос: встречается ли подобное на Xubuntu? Я бы с радостью поменял это богомерзкое юнити на XFCE, если там не будет подобных проблем.
P.S. Увы, но ноут адаптирован под прайм, и ничего кроме убунты не подходит. Так-то, давно уж федорку накатил.

 , , ,

comp00 ()

Совместимость ноутов MSI с сабжем

Для работы нужен ноут, спокойно себя чувствующий с запущенной IDE, браузером и несколькими виртуалками. Так как сейчас с ценами вообще все очень плохо, наилучшим выбором по соотношениям цена/производительность/качество являются игровые ноуты MSI.
Собственно, хотелось бы узнать, как совместимость с этим вашим линуксом. Пока глаз лег к MSI GP60 2QF-1062, покупать что-то дороже смысла не вижу (я лучше добавлю SSD и ОЗУ, получив тем самым машину мощнее стационарника, который с лихвой справляется с рабочими задачами).
Интересуют такие аспекты, как мультимедия (наличие и поддержка аудио-, видео- драйверов), WiFi, Ethernet, и рабочие функцианальные клавиши. В качестве дистрибутива будет новая федорка с XFCE.
В общем, жду истории успеха.
P.S. И да, я прекрасно понимаю что автономность будет низкая, но нужен именно мощный ноутбук, а не ультрабук за месячную мою зарплату, с околомобильным процессором.
P.S.S. И все же, хотелось бы узнать сколько оно будет в автономном режиме. Я так и не нашел никакой информацию, но думаю что максимум часа 3. А если поиграться с конфигами и настроить нормально энергосбережение может и 3.5
P.S.S. Из игр мне нужен только вайн с херстоуном. Ну и во всякие олдскульные игрушки иногда бегаю, типа брутал дума, третьего квейка, Мор.Утопия, Пенумбра, Амнезия и т.п. В общем, не прихотлив, да и не самое важное это.

 , , , ,

comp00 ()

Rails & WebSocket

Есть Rails-приложение с базой пользователей, нужно добавить возможность пользователю создавать «комнаты» и передавать JSON-ы всем участникам в реалтайме. Не совсем чат (совсем не чат), но смысл тот же. Естественное решение это использование вебсокетов, но, при поверхностном изучении проблемы, выяснилось что у Rails наблюдаются пробелы в этой области.
По крайней мере, существует два варианта готовой реализации - faye и socky. Я пробовал faye, но у него оказались какие то проблемы с авторизацией в каналах, на которые подписан пользователь. Грубо говоря, каждый канал биндится к конкретному контроллеру, и все пользователи, подписанные на канал спамят в этот канал. Иными словами, я так и не понял, как разделить этот канал на комнаты, что бы пользователь получал, только нужные ему JSON-ы. Единственный пример с faye, где допускается «приватная» передача, в обход основного канала, выглядит как костыль, и разруливается на уровне JS, а точнее регулярками, т.е. парсится на уровне сообщения. Понятное дело, что это вообще не вариант. Как самостоятельно разрулить это дело на уровне Rail, кроме как условного рендеринга партиалов, я так и не придумал.
Что может посоветовать LOR-сообщество?

 , ,

comp00 ()

Apache падает после загрузки mod_ssl

Имеется развернутый апач, нужно прикрутить для поддомена SSL. Сгенерировал на StartSSL сертификат и ключ, скопировал все это дело в соответствующие категории, прописал пути в /etc/httpd/conf.d/ssl.conf

...
<VirtualHost _default_:443>
...
  SSLCertificateFile /path/to/apache/conf/ssl.crt 
  SSLCertificateKeyFile /path/to/apache/conf/ssl.key 
  SSLCertificateChainFile /path/to/apache/conf/sub.class1.server.ca.pem
...
</VirtualHost>
...

Проблема в том, что апач не запускается. Мало того что не запускается, так и информации о причине 0. Вот логи запуска:

[Sat May 30 08:55:30 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[ 2015-05-30 08:55:30.3639 6814/7fda8f00f720 agents/Watchdog/Main.cpp:538 ]: Options: { 'analytics_log_user' => 'nobody', 'default_group' => 'nobody', 'default_python' => 'python', 'default_ruby' => '/usr/local/rvm/gems/ruby-2.0.0-p481/wrappers/ruby', 'default_user' => 'nobody', 'log_level' => '0', 'max_pool_size' => '6', 'passenger_root' => '/usr/local/rvm/gems/ruby-2.0.0-p481/gems/passenger-4.0.46', 'passenger_version' => '4.0.46', 'pool_idle_time' => '300', 'temp_dir' => '/tmp', 'union_station_gateway_address' => 'gateway.unionstationapp.com', 'union_station_gateway_port' => '443', 'user_switching' => 'true', 'web_server_passenger_version' => '4.0.46', 'web_server_pid' => '6813', 'web_server_type' => 'apache', 'web_server_worker_gid' => '48', 'web_server_worker_uid' => '48' }
[ 2015-05-30 08:55:30.3774 6817/7f7724013720 agents/HelperAgent/Main.cpp:649 ]: PassengerHelperAgent online, listening at unix:/tmp/passenger.1.0.6813/generation-0/request
[ 2015-05-30 08:55:30.3906 6822/7ff57b4b67e0 agents/LoggingAgent/Main.cpp:321 ]: PassengerLoggingAgent online, listening at unix:/tmp/passenger.1.0.6813/generation-0/logging
[ 2015-05-30 08:55:30.3910 6814/7fda8f00f720 agents/Watchdog/Main.cpp:728 ]: All Phusion Passenger agents started!
[Sat May 30 08:55:30 2015] [info] Init: Seeding PRNG with 256 bytes of entropy
[Sat May 30 08:55:36 2015] [info] Init: Wiped out the queried pass phrases from memory
[Sat May 30 08:55:36 2015] [info] Init: Initializing (virtual) servers for SSL
[ 2015-05-30 08:55:36.4372 6822/7ff57b4b67e0 agents/LoggingAgent/Main.cpp:289 ]: Caught signal, exiting...
Т.е. на сколько я понимаю, запускает себе спокойно модули, и ни с того ни с сего завершается после mod_ssl.

Подозревал на неправильную пару сертификата и ключа - 10 раз перепроверил, эффекта 0.
Что делать, куда копать?

 , ,

comp00 ()

Rails кеширование геоданных

Доброго вечера, я вновь за советом.

Я проектирую приложение на Ruby on Rails и не знаю как лучше организовать хранение временных геоданных.

С мобильных клиентов на сервер отправляются данные (публичный ключ (хранится в соответствующей модели Rails приложения), и геоданные (longlat)). Частота отправки от 1 до 3 сек (для каждого клиента разная). Клиентов ожидается на первое время сотня, но тестироваться будет на больших объемах: 700-3000 одновременно подключенных клиентов.

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

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

Я в курсе про Redis, но я не знаю как заставить его создавать транзакцию и делать коммит в бд. Если лучшим выбором будет отказаться от коммитов в базу данных, и ограничиться только лишь кешем, то возникает сложность получения этих данных из Rails (получить нужно все данные, а они, очевидно, с различными ключами). Кроме того, после получения этих данных они должны остаться так же доступными для последующих подключений клиентов web-приложения.

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

P.S. Успокойтесь, ни за кем следить не собираюсь, приложение пишется для коммерческих целей для мониторинга движения служебного транспорта. Похождение простых смертных линуксоидов заказчику не интересны. :)

 , , , ,

comp00 ()

Rails and Web-app for mobile device

День добрый, $USERNAME!
Заказали мне тут приложение — систему тестирования пользователей. Из требования нескучное оформление, поддержка актуальных мобильных систем (iphone, ipad, android), web-интерфейс для для администратора.
В голову пришла идея, раз уж все равно возиться с сайтом, то запилить полностью приложение на каком-нибудь HTML5 и запихнуть в нативные webView, таким образом обеспечить кроссплатформенность и единый интерфейс. Тем более, если под android я хотя бы программировал и размещал готовые продукты в googleStore, то как там в этих ваших айфонах и апллсторах я без понятия.
Бизнес-логику, рендеринг страниц и обращение к БД возьмет на себя rails, с этим у меня проблем нет, но вот как и чем верстать тот самый интерфейс я не знаю.
Прошу подсказать, какие удобные библиотеки можно использовать, ведь (как я понимаю) не на голом HTML5 пишут. Пока нагуглилось jQuery UI Touch Punch, но я хочу все же узнать мнение людей, кто делал такие вещи, как говориться из первых уст.
Из требований: сравнительно невысокий порог вхождения (я с JS на уровне активного использования совсем не давно), красивое оформление (на уровне bootstrap), ну и широкие возможности в плане интерфейса: обилие красивых формочек, круглые кнопочки, etc.
Заранее благодарен.
//P.S. помнится, stevejobs рассказывал про такой способ создания мобильных приложений: хотелось бы подробнее разузнать.
//P.P.S Ну и конечно, хотелось бы что бы у библиотеки была интеграция к Rails в виде гема.

 , , , ,

comp00 ()

Rails and maps API

Добрый день, товарищи.

Хочу написать одно приложение на rails, нужна помощь в выборе API для карт. Из пожеланий: высокая интеграция с Rails (на уровне gem), без самостоятельного js и т.п. Требования к картам: кастомные метки (добавление/изменение/удаление), умение PostgreSQL, небольшой объем данных в бд, построение маршрутов.
Кандидаты: Google maps, Yandex maps, OpenStreetMaps. У первых много экземплов, у вторых документация на русском, у OpenStreepMaps не будет траблов с лицензией.
Собственно, документации, даже на ужасном английском, не боюсь, но все же чем она будет компактнее (не в ущерб информативности) и проще, тем лучше, ибо не хочу особо вдаваться в топографические нюансы: хочу писать код.
Кто что посоветует?

 , , , ,

comp00 ()

Rails, ассоциации и магия.

Добрый день, username. Столкнулся с проблемой, пол дня уже клинит, хотя по сути ничего сложного и нет.
В общем, есть 2 модели: User и Posts, связаны они одним ко многим, т.е. каждый пост имеет пользователя user_id.

Хочу сделать следующее: что бы у класса Posts появился контейнер, типа PostInstance.replics_to со списком пользователей, которым адресовано это сообщение, и, естественно, UserInstance.replics_from со списком сообщений данному пользователю. Т.е. хочу еще одну связь many-to-many.

Собственно, вопрос не «как сделать ассоциацию многое-ко-многим», а как сделать, чтобы эта ассоциация удовлетворяла мое желание.

Прошу помощи, ибо, вроде как задание easy, но я не понимаю как его сделать. Я понимаю что должна быть связующая таблица replics_users с post_id и user_id, но я не понимаю как научить Rails ее использовать (имя не rails-way), как загрузить все это в rails-контейнеры, и что бы при программировании контроллера все было красиво и приятно.

Про ассоциации, естественно, читал. Про :join_table и :foreign_key, соответственно, тоже.

 , , ,

comp00 ()

Я туплю, или рельсы не едут?

Есть модель пользователя User с

has_secure_password();
При «Регистрации» т.е. при создании нового инстанса все ок: password и password_confirmation передаются в конструктор и все отлично выполняется:
irb(main):001:0> usr=User.create(name:"Anonimus", email: "other@domain.com", password:"qwerty12", password_confirmation:"qwerty12")
   (39.2ms)  BEGIN
  User Exists (40.5ms)  SELECT 1 AS one FROM "users" WHERE LOWER("users"."email") = LOWER('other@domain.com') LIMIT 1
  SQL (122.4ms)  INSERT INTO "users" ("created_at", "email", "name", "password_digest", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"  [["created_at", Thu, 26 Jun 2014 19:49:34 UTC +00:00], ["email", "other@domain.com"], ["name", "Anonimus"], ["password_digest", "$2a$10$UKiOPkggq9B.7guIsHloGepnew0mut8RNywqKH2YQOCiuVjQ1TZWC"], ["updated_at", Thu, 26 Jun 2014 19:49:34 UTC +00:00]]
   (39.4ms)  COMMIT
=> #<User id: 4, name: "Anonimus", email: "other@domain.com", created_at: "2014-06-26 19:49:34", updated_at: "2014-06-26 19:49:34", password_digest: "$2a$10$UKiOPkggq9B.7guIsHloGepnew0mut8RNywqKH2YQOCi...">
irb(main):002:0> usr

Но при загрузке из бд эти значения nil, что приводит к отмене транзакции:

irb(main):013:0> anon=User.find_by(name:"Anonimus")
  User Load (39.9ms)  SELECT "users".* FROM "users" WHERE "users"."name" = 'Anonimus' LIMIT 1
=> #<User id: 4, name: "Anonimus", email: "other@domain.com", created_at: "2014-06-26 19:49:34", updated_at: "2014-06-26 19:49:34", password_digest: "$2a$10$UKiOPkggq9B.7guIsHloGepnew0mut8RNywqKH2YQOCi...">
irb(main):014:0> anon.password
=> nil
irb(main):015:0> anon.password_confirmation
=> nil
irb(main):016:0> anon.update_attributes(name: "Anonim")
   (39.1ms)  BEGIN
  User Exists (39.5ms)  SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('other@domain.com') AND "users"."id" != 4) LIMIT 1
   (39.3ms)  ROLLBACK
=> false

И как же быть? Не хранить же пароль в куки

 , ,

comp00 ()

Перьевых ручек тред

Доброго времени суток, Лор. Еще со школы тяготел к перу, но все время пользовался шариком/капилляром. Сейчас таки решил перейти, и думаю с чего начать.

Во первых, ручка у меня уже есть, хоть и старая, но практически не пользованная. Марка Luxor, и модель даже не знаю, ей лет 8-10 наверно. Скорее всего недорогая, 500-1000р. Думаю, на первое время сойдет, но в дальнейшем планирую покупать. Собственно, какой бренд можете посоветовать? Пожалуй, не поскуплюсь на 5 000р.

Во-вторых, интересуют технические характеристики. Разные ли ручки по весу? Не люблю тяжелые ручки. На фотографиях вижу, что есть перья одно- и двухканальные: как это влияет на письмо? Под пером указан номер: что он значит и на что влияет?

В третьих, интересуют расходники. Что лучше чернила или картриджи, какой фирмы, и в чем кардинальные отличия.

Ну и вообще готов выслушать истории успеха.
P.S. Ручка выбирается как основная, соответственно должна и писать хорошо, и в руке лежать удобно. Род деятельности много писать рукой не требует — изредка что-то подписать, нарисовать и т.п.

P.P.S. И да, забыл, у меня есть проблема: я в процессе размышления кручу ручки всякими способами. Нередко они падают. Понятно что все это необходимо проводить с закрытым колпачком, во избежании брызга чернил и поломки пера. Но влияет ли это на систему подачи чернил?

 , ,

comp00 ()

Помогите побороть QGraphicsScene

Доброго времени суток вам, лорчане.
Решил тут на выходных потыкать графику в Qt (QT_MAJOR_VERSION, 4), и столкнулся со следующей проблемой.
В общем, есть окно с кнопочками и view-элементом, который унаследован от QGraphicsView и переопределяет:

void DrawArea::resizeEvent(QResizeEvent *evnt)
{
    if(scene()){
        scene()->setSceneRect(QRect(QPoint(-evnt->size().width()/2,-evnt->size().height()/2),evnt->size()));
    }
    fitInView(scene()->sceneRect(),Qt::KeepAspectRatio);
    QGraphicsView::resizeEvent(evnt);
}
К нему прикрепляется сцена с различными QGraphicsItem. Определяется все это так:
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),  ui(new Ui::MainWindow){
    ui->setupUi(this);
     scene= new QGraphicsScene(ui->area);
     ui->area->scale(1,-1);
     arc *obj1=new arc();
     obj1->setX(200);obj1->setY(200);
     obj1->setSize(11);
     obj1->setSpeed(1);
     obj1->setFlag(QGraphicsItem::ItemIsMovable);
     scene->addItem(obj1);
     ui -> area -> setRenderHints ( QPainter :: Antialiasing
             |  QPainter :: SmoothPixmapTransform
             |  QPainter :: TextAntialiasing );
     ui->area->setScene(scene);
     ui->area->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
     ui->area->setCacheMode(QGraphicsView::CacheBackground);
     ui->area->setInteractive(true);
}
Собственно, хочу сцену растянуть на весь view. И что бы при ресайзе сцена так же ресайзила свой scenRect.
Проблема в том, что размеры сцены не соответствуют размерам виджета: сцена по сути ограничена лишь объектами, как-будто setSceneRect() не выполняется, хотя это не так. Прошу помочь, сам уже не знаю в чем может быть дело... Заранее благодарен:)

 , ,

comp00 ()

cscope читаемая бд

Добрый день, мне нужно получить файл со списком функций проекта С++ и вызовов из этих функций. Cscope вроде это умеет, то бд, в котором хранится дерево вызовов, хранится в каком-то сжатом формате и нечитаема ни человеком, ни парсером. А хочется что бы можно было распарсить. Реально ли это сделать со cscope? И если нет, то как такое сделать в ctags?
БД генерируется так:

 find . -name "*.c" -o -name "*.cpp" -o -name "*.h" -o -name "*.hpp" > cscope.files
 cscope -q -R -b -i cscope.files

 , ,

comp00 ()

hibernate, правильное открытие сессии

Приветсвую, $USER. Начал тут знакомство с Hibernate, не могу никак разобраться, как правильно работать с сессиями.
Есть некоторое кол-во DAO классов, для управления сущностями ДБ, реализующие один интерфейс. Пример(source). Instance такого DAO создается один раз (при первом обращении), и живет при всем жизненном цикле приложения (на сервлетах). И все бы было бы хорошо, если бы это работало корректно, во всех случаях.
В ситуации, как в исходнике, когда на каждый DAO выделяется своя ссессия, возникает исключительная ситуация при update нескольких связанных объектов:

Illegal attempt to associate a collection with two open sessions


Если же для каждого обращения открывать свою сессию, тогда возникают проблемы с LAZY, коих у меня на самом деле больше, чем EAGER, т.к. в структуре много связей.
Если же создать общую сессию для всех DAO, и обращаться к ней через getCurrentSession(), но тогда каждый commit() закрывает сессию.

Еще пробовал ( чисто just for funs, дабы точно исключить эту глупую возможность) еще и общую транзакцию, с вызовом flush() после каждого обращения к бд, но тут проблема со вложенными транзакциями случается. Почему, не очень понятно.

nested transactions not supported

Больше идей нет. Что же я делаю не так? Где компромиссный вариант?

 , , ,

comp00 ()

ремонт свитчей

Привет лорчик, достались мне такие вот игрушки. Два нижних (к ним позже) вообще не подают признаков жизни — видно с БП что-то, а вот верхний (D-link des 1210-28 me) пытается что-то сказать, светя желтыми линками. Разобрав, не увидел ничего подозрительного - все чистенько, конденсаторы не вздуты, механических повреждений нет, контакты везде надежные. Хорошо бы было его сбросить, но hard reset не нашел. В google все посылают в web interface, который врят ли поднят на нем сейчас (а даже если и поднят — ip его не знаю). В общем хорошо бы его сбросить и/или перепрошить. Встает вопрос как? Может кто связывался с таким?
P.S.Ну да, Dlink. Но дареному коню, в зубы не смотрят, знаете ли.
P.P.S. а linux тут при том, что, наверное, он там есть.

 , , ,

comp00 ()

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