LINUX.ORG.RU

Сообщения bvn13

 

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

 ,

пруф

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 переводчик» - у меня одного так?

 , ,

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

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

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

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

bvn13
()

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

 ,

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

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

bvn13
()

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

 , , , ,

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

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

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

bvn13
()

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

 , , ,

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

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

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

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

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

ЗЫ. ОС - Manjaro

bvn13
()

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

 esb

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

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

bvn13
()

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

 , ,

Два проекта в 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?

 , , , jax-ws,

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

<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 ?

bvn13
()

ОС на Rikomagic MK802II

 , , , ,

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

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

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

bvn13
()

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

 ,

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

bvn13
()

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

 , ,

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

Настроил через 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

 , ,

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

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

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

bvn13
()

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

 , , , ,

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

Проект SpringBoot.

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

bvn13
()

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

 ,

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


        <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

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

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

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

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

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

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

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

>>> GitHub (github.com)

bvn13
()

Вьюхи с материализацией

 

Создал сабж.

CREATE MATERIALIZED VIEW public.ping_pong_state AS 
 SELECT pp1.base_1c_id,
    pp1.maxdatetime AS datetime,
    pp2.ping,
    pp2.pong,
    pp2.total
   FROM ( SELECT ping_pong.base_1c_id,
            max(ping_pong.datetime) AS maxdatetime
           FROM ping_pong
          GROUP BY ping_pong.base_1c_id) pp1
     JOIN ping_pong pp2 ON pp1.base_1c_id = pp2.base_1c_id AND pp1.maxdatetime = pp2.datetime
WITH DATA;

При выдергивании данных из этой вьюхи, такое ощущение, что она отдает не срез последних, а какие-то старые данные.

Кто может прокомментировать? ЧЯДНТ?

bvn13
()

Добавляю тег

 

bvn13
()

ActiveMQ, JMX API - повторная отправка сообщений в очередь

 , ,

Други! Пытаюсь понять что с чем едят, читая маны.
Правильно ли я понимаю, что можно только повторно отправить сообщение в очередь, указав id сообщения, но нельзя «просто отправить сообщение в очередь», используя JMX?

bvn13
()

Странная проблема при старте JavaFX8

 ,

>java -Xmx1024m -jar PriceProcessor-1.6.5-jar-with-dependencies.jar
log4j:WARN Continuable parsing error 2 and column 22
log4j:WARN Document root element "log4j:configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 2 and column 22
log4j:WARN Document is invalid: no grammar found.
ru_RU
Done
WorkerManager: start workers
WorkerManager: 3 workers started
Worker ru.bvn13.priceprocessor.workers.UploadStatusesCheckerWorker@959709, initial delay 15 sec.
Exception in Application start method java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.ArrayList.elementData(Unknown Source)
        at java.util.ArrayList.get(Unknown Source)
        at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
        at com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:306)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.layoutChildren(TextAreaSkin.java:276)
        at javafx.scene.Parent.layout(Parent.java:1087)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Scene.doLayoutPass(Scene.java:552)
        at javafx.scene.Scene.preferredSize(Scene.java:1646)
        at javafx.scene.Scene.impl_preferredSize(Scene.java:1720)
        at javafx.stage.Window$9.invalidated(Window.java:846)
        at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
        at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
        at javafx.stage.Window.setShowing(Window.java:922)
        at javafx.stage.Window.show(Window.java:937)
        at javafx.stage.Stage.show(Stage.java:259)
        at ru.bvn13.priceprocessor.MainApp.initRootLayout(MainApp.java:291)
        at ru.bvn13.priceprocessor.MainApp.start(MainApp.java:227)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        ... 1 more
Exception running application ru.bvn13.priceprocessor.MainApp

Возникает очень часто (но не каждый раз) при стартре с ключом -Xmx1024m. Без этого ключа - не встречал.

Как понять, с чем связана ошибка? Как пофиксить?

bvn13
()

Осваиваю SpringBoot. Почему url не разрешен?

 , ,

Нашел в где-то конфигурацию Security:

http//.csrf().disable()
                .authorizeRequests()
                .antMatchers("/", "/api/**").permitAll()
                .antMatchers("/api/register", "/api/register/**").permitAll()
                .antMatchers("/admin/**").hasAnyRole("ADMIN")
                .antMatchers("/user/**").hasAnyRole("USER")
                .antMatchers("/403").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll()
                .and()
                .exceptionHandling().accessDeniedHandler(accessDeniedHandler);

Делаю POST запрос к /api/register/check, оно редиректит на /403. Почему?

ЗЫ. Немного обновил инфу.

bvn13
()