LINUX.ORG.RU

Сообщения vega

 

Java bridge for Nim

Форум — Development

Давно я ничего не писал на LOR. И давно ничего про Nim не было. Итак, представляю библиотеку для работы с Java из Nim через JNI. И не надо говорить что не надо :-) У нас допустим есть пользователи, которые сидят на КриптоПро JCP и не хотят переходить на CSP. Вот и приходится в нативе пользовать джавовские библиотеки.

Библиотека позволяет работать как с low level, используя тонкую прослойку, так и high level, используя метапрограммирование по полной.

Ссылка на библиотеку: https://github.com/vegansk/jnim

Пример импорта коллекций из Java: https://github.com/vegansk/jnim/blob/master/src/javaapi/containers.nim, а их использование тут: https://github.com/vegansk/jnim/blob/master/tests/test_javaapi_containers.nim

Для тру, пример использования high level:

import jnim

# Import a couple of classes
jclass java.io.PrintStream of JVMObject:
  proc println(s: string)
jclass java.lang.System of JVMObject:
  proc `out`: PrintStream {.prop, final, `static`.}

# Initialize JVM
initJNI()
# Call!
System.`out`.println("This string is printed with System.out.println!")

 ,

vega
()

Интересная статья про Nim

Форум — Talks

http://rnduja.github.io/2015/10/21/scientific-nim/

Scala developer пишет про Nim вообще и конкретно для научных вычислений

 

vega
()

Nim lang

Форум — Development

Народ, кто-нибудь балуется Nim-ом? Надо популяризировать язык, скоро уже 1-я версия выйдет. А то что все про Rust :-)

Я тут just for fun, решил реализовать упражнения из «Functional programming in Scala» на Nim-е: https://github.com/vegansk/nimtests/tree/master/fpinnim. Язык пока справляется, хотя баг репорты бывают и пишутся. Надеюсь, в дальнейшем это перерастет в написание функциональной версии stdlib-а для него. А язык ох как хорош. Тут тебе и отсутствие требования наличия vm, в отличии от Scala, и нормального размера бинарники, в отличии от Haskell, и для JS бэкэнд пишется. И ffi не только с сями, но и с плюсами. В общем компилируемый, мультипарадигменный, опциональный GC, имеет effect system, macroprogramming, etc. А в devel сейчас еще и кроссплатформенное скриптование на нем добавили.

 ,

vega
()

Требуется Scala программист в Новосибирске

Форум — Job

В компанию требуется Scala (или Java, но готовый выучить Scala) разработчик с опытом работы от одного года в проект, связанный с автоматизацией документооборота. В обязанности будет входить разработка серверного ПО с использованием следующих языков, инструментов и технологий:

  • Scala
  • sbt
  • Apache Tomcat
  • spray
  • PostgreSQL

Требования:

  • Знание Scala или Java
  • В случае отсутствия знаний Scala, крайне желательно знание любого другого функционального языка.
  • Знание SQL, желательно опыт работы с PostgreSQL
  • Желательно знание протокола HTTP

Условия:

  • Белая зарплата, 50.000 - 80.000 на руки, соц. пакет.
  • Работа в центре Новосибирска, полный рабочий день.
  • Удалёнка не рассматривается.
  • Уютный светлый офис, дружный коллектив, чай, кофе :)
  • Испытательный срок до 3-х месяцев.
  • На испытательном сроке зарплата по результатам собеседования.

Связь: vega@eldis.ru, Анатолий

 , ,

vega
()

Java-разработчик в Новосибирске

Форум — Job

В новосибирскую компанию требуется Java разработчик в проект, связанный с электронным документооборотом.

Вкратце о проекте: удаленное информационное обслуживание клиентов, система электронного документооборота. Серверная часть, изначально подразумевающая кластеризацию. Desktop клиенты, распространяемые по технологии Java Web Start, взаимодействующие с сервером через web сервисы.

Ваша роль:

  • Участие в разработке серверной стороны
  • Участие в принятии архитектурных решений. Объем участия зависит от навыков соискателя

В проекте используются следующие языки, технологии и продукты:

  • Java*
  • Scala
  • Spring Framework*
  • Hessian
  • SQL*
  • JAXB*
  • JDBC*
  • JPA*
  • Apache Tomcat
  • PostgreSQL
  • Swing
  • Java Web Start

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

Про главное :-) Зарплата 50000 - 70000 руб. Испытательный срок до 3-х месяцев. На испытательном сроке зарплата 40000 - 55000 руб.

Работа в центре Новосибирска, полный рабочий день. Удаленка не рассматривается.

Связаться можно по адресу vega at eldis dot ru или 335-88-44 доп. 0204, Анатолий.

vega
()

Нужен java разработчик в Новосибирске

Форум — Job

Я не из агентства, разработчик нужен в контору, где я работаю.

Продукт на который требуется разработчик: http://eldis.ru/products/portal/

Требования:

  • Технологии: Spring, JPA, JDBC.
  • Опыт работы от 2-х лет
  • Знание scala не обязательно, но изучать в последствии придется, так как часть системы пишется на ней

Работа на полный день. С 9.00 до 18.00. На испытательный срок в зависимости от человека: 30.000 - 40.000, после испытательного опять же в зависимости от того как зарекомендовать себя: 35.000 - 50.000. Это то, что начислено, т.е. на руки - отнимаем 13%.

Если заинтересовало, пишите на vega `at` eldis.ru

vega
()

[java content repository] Состояние загрузки/выгрузки в Apache Jackrabbit

Форум — Development

Потестировал Apache Jackrabbit в качестве хранилища данных. Система понравилась. Но есть одно НО. В хранилище изредка будут закачиваться данные объемом порядка 500МБ-1ГБ. Соответственно когда вызываешь Session.save(), все хорошо так подвисает.

Пошарил в доках и в гугле, так и не наткнулся: есть ли возможность без патча реализовать получение текущего состояния загрузки/выгрузки? Не в смысле работает/закончили, а в текущем объеме переданных или принятых данных. Нужно это для того, чтобы показать на клиенте прогресс. Можно конечно и патч наложить, но тогда это уже будет нарушение совместимости с JCR API.

vega
()

Связь в Крыму

Форум — Talks

Доброго времени суток.

Собираюсь в ближайшее время в отпуск в Витино, рядом с Евпаторией. Кто нибудь может подсказать, симку какого оператора лучше взять для звонков местных и в Россию. Ну и как дела обстоят с мобильным инетом? Нужна связь с рабочим сервером по ssh, ну и доступ к SVN. Думаю, что на все про все уйдет метров 200. В какую сумму это дело может влететь?

vega
()

Spring Framework + EclipseLink: Одновременное использование JPA и JDBC

Форум — Development

Доброго времени суток.

Есть приложение, в котором используется Spring + EclipseLink. Структура БД (postgresql) имеет особенность: в схеме public лежат пустые таблицы + есть куча схем в которых таблицы наследуются от public.*. Для работы с отдельными сущностями используется JPA, для работы со списками - JDBC. Для JPA и JDBC используется общий пул коннектов C3P0.

Сделал аннотацию @EmitentRequired для пометки метода как требующего переключения на конкретную схему. Есть аспект, который обрабатывает эту аннотацию. Бин аспекта, используя JPA, вызывает

entityManager.createNativeQuery("set search_path to ...").executeUpdate();
При этом нужная схема берется из данных сессии. Сам бин с аспектом имеет облать действия «request».

В бине, у которого область действия тоже «request» и который работает с JDBC, используется такой код:

@Autowired
public void setDataSource(DataSource dataSource) {
    this.jdbcTemplate = new JdbcTemplate(dataSource, true);
}

@Transactional(readOnly=true)
@EmitentRequired
public ListPortion getAccountList(...) {
   // Здесь идет код, который должен выполняться с уже установленной схемой
}
Но при этом получается, что соединение с БД отдается другое. Соответственно какая там в прошлый раз использовалась схема, пес его знает. То есть переключение не работает.

Проблему можно решить, обработав все переключения внутри методов, используя либо entityManager, либо jdbcTemplate в каждом конкретном случае, но хотелось бы чтобы переключение происходило автоматически.

Можно ли как-то настроить C3P0 в Spring Framework таким образом, чтобы при обработке запроса он всегда отдавал то же самое соединение?

vega
()

Bad blocks на винте

Форум — General

Доброго времени суток.

Ситуация такая: после очередной смерти винды на работе, решил загнать ее в виртуалку. Взял внешний винт, сделал на него бэкап нужных данных. Поставил бубунту, начал восстанавливать бэкап. На копировании одного из архивов возникла ошибка чтения. Полез в статистику SMART и офигел: винту приходит неумолимый и беспощадный звездец.

Чем можно воспользоваться, чтобы попробовать вытащить именно этот архив? Не хочется пользоваться dd для вытаскивания образа (320ГБ, а размер архива 300МБ), сложить его просто некуда.

vega
()

[java] Spring AOP + scoped-proxy

Форум — Development

Есть объект UserInfo у которого scope=«session». Хочется получить к нему доступ из адвайса. Добавил к нему аттрибут <aop:scoped-proxy/>. Все равно, адвайс судя по дебагу получает объект не из сессии, а фиг знает откуда.

Вот код адвайса:

public class LogonRequiredChecker {

	private UserInfo userInfo;
	
	@Autowired
	public void setUserInfo(UserInfo userInfo) {
		this.userInfo = userInfo;
	}
	
	public void checkLoggedUser() throws ServerBeanException {
		if(!userInfo.isLoggedIn())
			throw new ServerBeanException("Попытка обратиться к серверу без авторизации");
	}
}

Вот код конфигурации:

<bean id="userInfo" class="ru.eldis.xdividend.regserver.beans.UserInfo" scope="session">
	<aop:scoped-proxy/>
</bean>
<bean id="logonRequiredChecker" class="ru.eldis.xdividend.regserver.security.LogonRequiredChecker"/>

<aop:config proxy-target-class="true">
	<aop:pointcut
		expression="(@within(ru.eldis.xdividend.regserver.security.LogonRequired) or @annotation(ru.eldis.xdividend.regserver.security.LogonRequired)) and !@annotation(org.springframework.beans.factory.annotation.Autowired)"
		id="logonRequiredMethod"/>
	<aop:aspect id="logonRequired" ref="logonRequiredChecker">
		<aop:before method="checkLoggedUser" pointcut-ref="logonRequiredMethod"/>
	</aop:aspect>
</aop:config>

Как в адвайсе можно получить session объект?

 

vega
()

Планшет для GIMPа

Форум — Talks

Приветствую.

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

PS: Сам их никогда не щупал, поэтому полный профан в этом вопросе.

vega
()

Haskell и хвостовая рекурсия

Форум — Development

Задачка из SICP по вычислению числа pi с заданной точностью. Как-то странно ведет себя такой код на Haskell, такое впечатление будто хвостовая рекурсия не используется:

prod term a step b = prod' 1 a where
    prod' res curr | curr > b  = res
                   | otherwise = prod' (res * term curr) (step curr)

getPi acc = 8 * (prod (\x -> (x+1)/x) 3 (+2) (2*acc+1))^2 / (2*acc+2)

GHC говорит про переполнение стека при вызове getPi 1000000. Аналогичный код на Scheme ведет себя так как надо, разворачивая вычисления в цикл (судя по дебагу).

Пробовал реализовывать prod через foldl, та же самая фигня. В какую сторону копать?

 

vega
()

Haskell - ошибка в описании типа

Форум — Development

Доброго времени суток.

Создаю вот такой тип данных и класс типов:

data (Integral a, Integral b, Integral c) => FractionType a b c = FractionType
  {
    intPart   :: a,
    nomPart   :: b,
    denomPart :: c
  } deriving (Eq, Show)

class (Num a) => NaturalFraction a where
  normalize :: a -> a

instance (Integral a, Integral b, Integral c) => NaturalFraction (FractionType a b c)

GHC начинает материться, что не может вывести (Num (FractionType a b c)) из контекста и что нужно добавить это дело туда.

Не понимаю зачем, но меняю последнюю строку на:

instance (Num (FractionType a b c), Integral a, Integral b, Integral c) => NaturalFraction (FractionType a b c)

Тогда код начинает компилироваться, но только после указания ключа -XUndecidableInstances. Вопрос: зачем приходится указывать в контексте Num (...), если NaturalFraction итак производный от него?

vega
()

QtJambi - практическое использование

Форум — Development

Назревает задача, в которой клиентская часть должна быть реализована на java, деплоймент через JWS. Изначально планировалось интерфейс делать на Swing, но тут попробовал QtJambi - очень понравилось. Посему вопрос: кто нибудь пользовал это чудо в реальных задачах? Какие впечатления от фреймворка? Может были какие-то подводные камни?

Что Nokia прекращает поддержку биндинга для java - это я в курсе, думаю что коммьюнити неплохо с ним справится. Если будет использоваться, можно тоже к этому делу подключиться.

vega
()

А что ты сделал для opensource!!!

Форум — Talks

В своей конторе пробил такие изменения (уложились в 2 года):

1. Перевел систему генерации отчетности с MS Office на OpenOffice (вражина к сожалению остался, но теперь есть возможность выбирать)

2. Перевел GUI с MFC на wxWidgets

3. Система доставки сообщений м/у подразделениями теперь работает там где работает python.

Вроде получилось. Буду продолжать дальше :-)

vega
()

Rhythmbox + equalizer: решение

Форум — Desktop

Всем привет.

Хороший менеджер аудио коллекций для GNOME, только эквалайзера не хватает. Искал решение, нашел плагин некоего Teemu Kallio. Все хорошо, только для применения параметров, необходимо рестартовать плагин или rhythmbox. Офигенное решение :-))

В общем, подпатчил я это дело. Теперь открывая настройки плагина и меняя параметры, они применяются тут же. Кому надо, пользуйтесь:

http://eldis.ru/equalizer.tar.bz2

Распаковать в ~/.gnome2/rhythmbox/plugins/, зайти в Правка--Модули, включить Equalizer и жать "Настроить".

PS: отправил патч этому товарищу, но он похоже давно забил на это дело. Молчит как рыба об лед.

vega
()

Postfix - используемые сетевые интерфейсы

Форум — Admin

Добрый день.

На сервере есть два сетевых интерфейса c IPшниками: A.A.A.A и B.B.B.B, оба видны с наружи. Postfix-у сказано использовать A.A.A.A. Но при этом, когда он коннектится к другому SMTP серверу, соединение идет с интерфейса B.B.B.B.

В итоге, не проходит проверка по DNSу (по имени хоста чужой SMTP получает адрес A.A.A.A).

Подскажите плиз куда копать? В гугле ничего не нашел, может вопрос неправильно задавал.

>>>

vega
()

[django] Форма для модели

Форум — Web-development

Доброго времени суток.

Начал изучать django. Столкнулся с такой проблемой: есть модель, у которой char поле кодируется с помощью choices. Соответственно, form_for_model генерирует простое поле ввода, а хочется чтобы было ChoiceField. Пока обошел это заменой поля в созданном экземпляре на ModelChoicesField с присвоением ему choices. При чем это делаю только для вывода формы, так как save на такой хак ругается. Но такое решение не нравится, чуток сменят api и перестанет работать. Да и form_for_model приходится на каждый запрос вызывать.

Есть какие-то другие способы, кроме написания формы ручками?

>>>

 

vega
()

Neverwinter Nights

Форум — Games

Всем привет.

Проблема такая: есть ключ от Акеллы к NWN. Скачал линуксового клиента с офф сайта. Матюгается на то, что ключ не подходит. Это кто нибудь борол или Акелловские ключи к linux версии не подходят?

ЗЫ: Гуглил - ничего, тех. поддержка Акеллы - ждемсссс ответа...

>>>

vega
()

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