LINUX.ORG.RU

Сообщения bvn13

 

Как в jython установить модуль?

Форум — Development
Request page: /admin/posts/6 raised exception : ImportError: Cannot import site module and its dependencies: No module named site

Determine if the following attributes are correct:
 * sys.path: [/home/bvn13/dev/proj1/SpringProj-2.4.jar!/BOOT-INF/lib/Lib, __classpath__, __pyclasspath__/]
   This attribute might be including the wrong directories, such as from CPython
 * sys.prefix: /home/bvn13/dev/proj1/SpringProj-2.4.jar!/BOOT-INF/lib
   This attribute is set by the system property python.home, although it can
   be often automatically determined by the location of the Jython jar file
You can use the -S option or python.import.site=false to not import the site module

Что он от меня хочет? Модуль site? Как его поставить?

 , ,

bvn13
()

Попилка леса

Форум — Talks

Модераторы, не сносите за лютый оффтоп, спросить не у кого, а тут могут быть спецы.

Можно ли в лесу попилить себе поленьев из упавших деревьев?

Поделитесь опытом, законами, статьями, ссылками, пожалуйста.

Зы. Искать буду на Arch.

 , ,

bvn13
()

Поиск допустимых интервалов

Форум — Development

Есть таблица дат - одна колонка с датой. Разные часы в дне, какой-то час может быть пропущен.
25.10.2017 9:00:00
25.10.2017 10:00:00
25.10.2017 12:00:00
25.10.2017 13:00:00
25.10.2017 14:00:00
25.10.2017 15:00:00
25.10.2017 16:00:00
26.10.2017 8:00:00
26.10.2017 9:00:00
26.10.2017 10:00:00
26.10.2017 11:00:00
26.10.2017 13:00:00
26.10.2017 14:00:00
26.10.2017 15:00:00
26.10.2017 16:00:00

Нужно найти конец и начало интервала в дне по двум условиям:
1) продолжительность интервала в часах
2) Максимально допустимое количество пропущенных часов, которые могут быть проигнорированы.

Т.е. если есть в таблице часы 9,10,12,13,14, нужно собрать интервал в 5 часов, но максимально допустимый пропуск - 2 часа, то этот интервал подходит.

Не могу придумать алгоритм, помогите мыслями.

 

bvn13
()

Деплоинг на tomcat ломает авторизацию SpringSecurity

Форум — Development

Тестовый проект SpringBoot.

protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/admin/**").authenticated()
                .anyRequest().permitAll()
                .and()
            .formLogin()
                .loginPage("/signin")
                .permitAll()
                .failureUrl("/signin?error=1")
                .loginProcessingUrl("/authenticate")
                .and()
            .logout()
                .logoutUrl("/logout")
                .permitAll()
                .logoutSuccessUrl("/signin?logout")
                .and()
            .rememberMe()
                .rememberMeServices(rememberMeServices())
                .key("remember-me-key");
    }

Т.е. при обращении к /admin должно перекинуть на /signin, где пользователь заполняет форму, а при проверка авторизации осуществляется спрингом по урл /authenticate.

Вот ровно так работает до деплоя на томкат. После деплоя - адрес проекта получается вида http://localhost:9080/project/, и теперь все эти урлы, участвующие в авторизации, должны работать относительно адреса проекта.

Но как бы не так. Форма авторизации отправляется на http://localhost:9080/authenticate, а не на http://localhost:9080/project/authenticate. Как это пофиксить? не прописывать же имя проекта в шаблоне формы?

 , ,

bvn13
()

Tux в кино

Форум — Talks

 , ,

bvn13
()

А тем временем вышла Django 2.0 beta 1

Форум — Development

пруф

Django 2.0 beta 1 is an opportunity for you to try out the assortment of new features in Django 2.0.

Only bugs in new features and regressions from earlier versions of Django will be fixed between now and 2.0 final (also, translations will be updated following the «string freeze» when the release candidate is issued). The current release schedule calls for a release candidate in a month from now with the final release to follow about two weeks after that around December 1. Early and often testing from the community will help minimize the number of bugs in the release. Updates on the release schedule schedule are available on the django-developers mailing list.

As with all alpha and beta packages, this is not for production use. But if you'd like to take some of the new features for a spin, or to help find and fix bugs (which should be reported to the issue tracker), you can grab a copy of the beta package from our downloads page or on PyPI.

 ,

bvn13
()

Расширение Хрома «Google переводчик» - у меня одного так?

Форум — General

Раньше иконка с inline-переводом возникала аккурат у указателя мыши, которым я выделял слово для перевода. Сейчас же эта дрянь возникает где хочет.

Например, тут: https://i.imgur.com/DgFH5DI.png
Или тут: https://i.imgur.com/ku0GL91.png

А зачастую вообще не возникает.

Понимаю, что виной тому неверно рассчитанная позиция div-а, но хочется знать: у меня одного так? Может быть, что-то на нее так негативно влияет?

 , ,

bvn13
()

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

Форум — Talks

Ноут Lenovo Yoga 710 15". К перелету есть ограничения по втч (ватт-час) для литий-ионных батарей. А моя какая?

Инфо с задней крышки: модель 80V5, 20V=3.25A

 ,

bvn13
()

Децентрализованный поисковик

Форум — Talks

Натолкнулся на YaCy. Сижу и думаю, зачем эта хрень может вообще понадобиться? Может только китайцам каким, чтоб их файрвол обходить?

И их use-case-ы тоже не впечатлили...

Предлагаю похоливарить.

 , , , ,

bvn13
()

По какому порту стучится встроенный VPN клиент в Android?

Форум — General

Вчера убил вечер пытаясь настроить себе ВПН-сервер для хождения с телефона. По локалке - подключается, извне - нет. Ошибок, соответственно, никаких нет в этом Андроиде, только «сбой».

Предполагаю, что нужен какой-то порт.

Сервер - SoftEtherVPN, порты слушает 992, 1194, 5555. Порты в роутере пробросил, есесна. Поэтому и непонятки.

Я в замешательстве...

Есть мысли? Как быть? Перепробовал с десяток каких-то смутных клиентов с ПлейМаркета. Ни в какую.

ЗЫ. ОС - Manjaro

 , , ,

bvn13
()

OpenSource ESB советов тред

Форум — General

Настало время подумать над апгрейдом Adroit Logic UltraESB... и понять, что нет желания платить 10k$ ежегодно. Но у них такова политика.

Поэтому хочу спросить совета аудитории. Кто что посоветует? Кто что использует, какие подводные камни?

 esb

bvn13
()

Как заставить SpringBoot не кешировать файлы в static?

Форум — Development

Два проекта в IDEA: один - SpringBoot как бэк, второй - ReactJS (сборка Webpack) как фронт. В конфиге webpack указан путь для сборки - в подпапку в static бэка.

Хочу при сборке фронта, чтобы запущенный бэк начинал отдавать на запросы bundle.js уже новый файл. Сейчас этого можно добиться только перезапуском бэка.

Код

@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS)
                .setCacheControl(CacheControl.maxAge(0, TimeUnit.SECONDS));
    }

}

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

 , ,

bvn13
()

JAX-WS. Как быть, если сервер требует авторизации для получения wsdl?

Форум — Development

Классы генерятся с помощью

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <executions>
    <execution>
<!-- ... -->
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Когда я держал wsdl локально, то тут проблем нет:

public static ExchangeMonitorPortType makeProxy_fromFile(Bases_1c base1c) throws Exception {
        // auth while getting wsdl
        // https://stackoverflow.com/questions/22407994/jax-ws-client-cannot-authenticate

        //URL url = new URL(base1c.getWsWsdl());
        URL url = new URL("classpath:wsdl/ExchangeMonitorWS.wsdl");

        QName qname = new QName(base1c.getWsUrl(), base1c.getWsService());
        Service service = Service.create(url, qname);
        ExchangeMonitorPortType proxy = service.getPort(ExchangeMonitorPortType.class);
        BindingProvider prov = (BindingProvider)proxy;
        prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, base1c.getWsUser());
        prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, base1c.getWsPass());

        return proxy;
    }

Но когда я поменял порт на сервере, то клиент (этот код) перестал коннектится.

Если включить URL url = new URL(base1c.getWsWsdl());, то Service service = Service.create(url, qname); ловит эксепшен 401 Not Authenticated.

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

Можно ли обойтись без сохранения wsdl в файлы, как описано в https://stackoverflow.com/questions/22407994/jax-ws-client-cannot-authenticate ?

 , , , jax-ws,

bvn13
()

ОС на Rikomagic MK802II

Форум — Linux-install

Господа, есть что-то свежее на сабжевую железяку-свисток? Это которая эта. Образы lubuntu лежат в сети аж 12.* релиза. Мне его не удалось обновить даже до 14.

Может, кто-то собирал сам? Или какие-нибудь bsd-системы?

PS. В тегах треш, но даже не знаю, как скастовать иначе нужную аудиторию.

 , , , ,

bvn13
()

как сменить шрифт в conky в Manjaro-i3?

Форум — Desktop

а то как-то непонятно https://i.imgur.com/6mxFhS4.png

 ,

bvn13
()

FlyWayDB - оно вообще живое?

Форум — Development

Пытаюсь разобраться в сабжевой утилите.

Настроил через Maven - все работает: создаю новый файл с изменениями структуры, mvn flyway:migrate, все хорошо.

Но вот захотелось мне на работающей таким образом базе сделать проверки при запуске приложения. И тут...


    public static void makeMigration(String folder, String jdbc, String username, String pass) {
        // Create the Flyway instance
        Flyway flyway = new Flyway();


        flyway.setLocations(String.format("filesystem:%s", folder));

        // Point it to the database
        flyway.setDataSource(jdbc, username, pass);

        //flyway.setBaselineOnMigrate(true);
        // Start the migration
        flyway.migrate();
    }

Если делаю flyway.migrate();, то:

org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.

Если включаю flyway.setBaselineOnMigrate(true); или делаю flyway.baseline();, то:

org.postgresql.util.PSQLException: ОШИБКА: отношение "schema_version" уже существует

Так что ему надо?

 , ,

bvn13
()

Специалистам WEB: Ищу глобальное событие document

Форум — Development

Есть ajax запрос, по результатам которого выполняется

//...
success: function(data) {
   $('#ajax-content').html(data);
},
//...

Вопрос: на это изменение DOM какое-нибудь событие генерится?

 , ,

bvn13
()

jOOQ + JPA в одном проекте - возможно ли?

Форум — Development

Есть проект с JPA. Сейчас его нужно хорошенько допилить. Желания дальше работать через JPA нет. Хочется jOOQ. Можно ли до момента полного замещения JPA на jOOQ использовать их совместно к одной БД (с транзакциями) в одном проекте?

Проект SpringBoot.

База для JPA и jOOQ будет одна и та же. На jOOQ уже используются новые таблицы (было реализовано в тестовом отдельном проекте, где нет JPA)

 , , , ,

bvn13
()

Java, чтение Excel-файлов - посоветуйте библу

Форум — Development

Сейчас использую


        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.16</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.16</version>
        </dependency>

вот такой класс-читальщик, который нашел на просторах инета

import org.apache.poi.ss.usermodel.*;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created by bvn13 on 01.07.2017.
 */
public class ExcelReader {

    public static List<List<String>> readSpreadSheet(InputStream inputStream, Integer sheetNum) {
        Workbook workBook = null;
        try {
            workBook = WorkbookFactory.create(inputStream);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        Sheet sheet = workBook.getSheetAt(sheetNum);
        List<List<String>> rowHolder = new ArrayList<List<String>>();
        int cellNum = sheet.getRow(1).getLastCellNum();

        for (int i = 0; i <= sheet.getLastRowNum(); i++) {
            Row row = sheet.getRow(i);
            List<String> cellHolder = new ArrayList<String>();

            for (int j = 0; j < row.getLastCellNum(); j++) {
                Cell cell = row.getCell(j);
                String cellValue = parseCellValue(workBook, cell);
                cellHolder.add(cellValue);
            }

            //add empty cells to the end if required
            while (cellHolder.size() < cellNum) {
                cellHolder.add(null);
            }
            rowHolder.add(cellHolder);
        }
        return rowHolder;
    }

    private static String parseCellValue(Workbook workBook, Cell cell) {
        FormulaEvaluator evaluator = workBook.getCreationHelper().createFormulaEvaluator();
        String cellValue = null;
        if (cell != null) {
            switch (cell.getCellTypeEnum()) {
                case STRING:
                    cellValue = cell.getRichStringCellValue().getString();
                    break;
                case NUMERIC:
                    if (DateUtil.isCellDateFormatted(cell)) {
                        cellValue = cell.getDateCellValue().toString();
                    } else {
                        cellValue = new Double(cell.getNumericCellValue()).toString();
                    }
                    break;
                case BOOLEAN:
                    cellValue = new Boolean(cell.getBooleanCellValue()).toString();
                    break;
                case FORMULA:
                    cellValue = evaluator.evaluate(cell).formatAsString();
                    break;
            }
        }
        return cellValue;
    }

    public static List<List<String>> readSpreadSheetWOnull(InputStream inputStream, Integer sheetNumber) {
        Workbook workBook = null;
        try {
            workBook = WorkbookFactory.create(inputStream);
            Sheet sheet = workBook.getSheetAt(sheetNumber);

            Iterator<Row> rowIter = sheet.rowIterator();

            List<List<String>> rowHolder = new ArrayList<List<String>>();
            while (rowIter.hasNext()) {
                Row row = (Row) rowIter.next();
                Iterator<Cell> cellIter = row.cellIterator();

                List<String> cellHolder = new ArrayList<String>();
                while (cellIter.hasNext()) {
                    Cell cell = (Cell) cellIter.next();
                    String cellValue = parseCellValue(workBook, cell);
                    cellHolder.add(cellValue);
                }
                rowHolder.add(cellHolder);
            }
            return rowHolder;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static List<List<String>> readSpreadSheetWOnull(InputStream inputStream) {
        return readSpreadSheetWOnull(inputStream, 0);
    }
    public static List<List<String>> readSpreadSheet(InputStream inputStream) {
        return readSpreadSheet(inputStream, 0);
    }
}

Если подсунуть 10-меговый файл, то даже на моем i7 8Gb вылетает с ошибкой:

Exception in thread "ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker" java.lang.OutOfMemoryError: GC overhead limit exceeded
	at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getNodeObject(DeferredDocumentImpl.java:1017)
	at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.synchronizeChildren(DeferredDocumentImpl.java:1755)
	at com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl.synchronizeChildren(DeferredElementNSImpl.java:158)
	at com.sun.org.apache.xerces.internal.dom.ParentNode.getFirstChild(ParentNode.java:229)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1402)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1385)
	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1370)
	at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:370)
	at org.apache.poi.POIXMLTypeLoader.parse(POIXMLTypeLoader.java:144)
	at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorksheetDocument$Factory.parse(Unknown Source)
	at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:183)
	at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:175)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.parseSheet(XSSFWorkbook.java:438)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:403)
	at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:190)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:266)
	at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:185)
	at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:144)
	at ru.bvn13.priceprocessor.utils.ExcelReader.readSpreadSheet(ExcelReader.java:18)
	at ru.bvn13.priceprocessor.utils.ExcelReader.readSpreadSheet(ExcelReader.java:102)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.readFileNewExcelFormat(PriceLoaderFromFileWorker.java:409)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.loadFile(PriceLoaderFromFileWorker.java:294)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.startLoadingFile(PriceLoaderFromFileWorker.java:206)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.job(PriceLoaderFromFileWorker.java:96)
	at ru.bvn13.priceprocessor.workers.AbstractWorker.run(AbstractWorker.java:52)

А есть что-то менее прожорливое, чтобы читать?

 ,

bvn13
()

PyBackuper. Бекапим на Yandex-Диск.

Новости — Open Source
Группа Open Source

Открываю проект в open-source

Тестируется и эксплуатируется в настоящий момент на Windows для MS SQL

Предназначение: хранение всех файлов бекапов на Yandex-диске в каталогах, названных согласно текущих (на момент отправки) даты и времени, автоматическая чистка старых файлов на Yandex-диске.

Утилита может работать в двух режимах:
1. Режим слежения
2. Режим ручного запуска

В режиме слежения утилита следит за изменениями файлов в указанных в настройках каталогах и отправляет их в Yandex-диск. Доступ к аккаунту Yandex-диск также указывается в настройках. Перед отправкой файла происходит чистка старых каталогов на Yandex-диске.

В режиме ручного запуска утилита копирует определенный пользователем бекап на Yandex-диск.

При появлении файла в одном из отслеживаемых каталогов утилита, запущенная службой в режиме backuper.py watcher -s с помощью nssm, происходит создание каталога вида YYYYMMDD / HHmm на Yandex-диске (корень возможно указать в настройках). В этот каталог копируется найденный файл. В настройках указано максимальное хранение файлов 250 дней. Перед копированием каждого файла происходит удаление каталогов YYYYMMDD старше 250 дней.

PS. Буду рад предложениям.

>>> GitHub

 , , ,

bvn13
()

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