LINUX.ORG.RU

Сообщения orm-i-auga

 

2 монитора через DisplayPort и VGA

Доброго дня, лор!

Никогда не пользовался двумя мониторами, сейчас вот пытаюсь подключить на работе. В наличии пк Dell OptiPlex 5050, дискретная карточка AMD Radeon R5 430 и debian stable с kde 5. Видеокарту я «вычислил» по наличию видео портов и официальному сайту dell, в системе же это показывается так:

root@indvd00m-office:~# inxi -Fxz
System:    Host: indvd00m-office Kernel: 4.9.0-6-amd64 x86_64 (64 bit gcc: 6.3.0) Desktop: N/A
           Distro: Debian GNU/Linux 9 (stretch)
Machine:   Device: desktop System: Dell product: OptiPlex 5050
           Mobo: Dell model: 0WWJRX v: A00 UEFI [Legacy]: Dell v: 1.6.5 date: 09/09/2017
CPU:       Quad core Intel Core i7-7700 (-HT-MCP-) cache: 8192 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 28800
           clock speeds: max: 4200 MHz 1: 899 MHz 2: 3706 MHz 3: 3389 MHz 4: 899 MHz 5: 2802 MHz 6: 4034 MHz
           7: 3409 MHz 8: 3441 MHz
Graphics:  Card-1: Intel Device 5912 bus-ID: 00:02.0
           Card-2: Advanced Micro Devices [AMD/ATI] Oland [Radeon HD 8570 / R7 240/340 OEM] bus-ID: 01:00.0
           Display Server: X.org 1.19.2 drivers: ati,vesa (unloaded: modesetting,fbdev,radeon)
           tty size: 151x50 Advanced Data: N/A for root
Audio:     Card-1 Intel Device a2f0 driver: snd_hda_intel bus-ID: 00:1f.3 Sound: ALSA v: k4.9.0-6-amd64
           Card-2 Advanced Micro Devices [AMD/ATI] Cape Verde/Pitcairn HDMI Audio [Radeon HD 7700/7800 Series]
           driver: snd_hda_intel bus-ID: 01:00.1
Network:   Card: Intel Ethernet Connection (5) I219-V driver: e1000e v: 3.2.6-k bus-ID: 00:1f.6
           IF: enp0s31f6 state: up speed: 100 Mbps duplex: full mac: <filter>
Drives:    HDD Total Size: 1000.2GB (4.6% used)
           ID-1: /dev/sda model: WDC_WD10EZEX size: 1000.2GB temp: 39C
Partition: ID-1: / size: 887G used: 15G (2%) fs: ext4 dev: /dev/sda2
           ID-2: swap-1 size: 32.00GB used: 0.00GB (0%) fs: swap dev: /dev/sda1
Sensors:   System Temperatures: cpu: 56.0C mobo: 27.8C
           Fan Speeds (in rpm): cpu: N/A
Info:      Processes: 252 Uptime: 28 min Memory: 2809.7/15915.3MB Init: systemd runlevel: 5 Gcc sys: 6.3.0
           Client: Shell (bash 4.4.121) inxi: 2.3.5
Так вот, у видеокарты есть лишь два выхода - display port и vga. Подключил на них 2 монитора, до старта иксов на оба выводится одно и то же, в kde в настройках лишь один монитор. Если подключить мониторы на интегрированную intel, то машина вообще не запускается, лишь сообщение что мол если подключена дискретная карта то интегрированную использовать нельзя, похоже это dell'овская фича.

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

 , , , ,

orm-i-auga
()

Wine - не вводится кириллица

Не вводится русский текст в wine. Запускаю через playonlinux. Вообще это мне понадобилось для стима, но проверил и в notepad и notepad++, то же самое, версии вайна пробовал 2.12-staging и 3.3. Копипаст на русском из линукса работает.

Потыкал настройки wine, но что-то наскоро ничего не помогло, а в интернете какие-то ссылки 10-летней давности. Можно это как-то пофиксить?

 , , ,

orm-i-auga
()

Изолированные интеграционные тесты

В проекте на мавене запускаются интеграционные тесты failsafe плагином. В pre-integration-test docker-maven-plugin запускает контейнер с базой данных, к которой потом подключаются тесты, в post-integration-test, соответственно, останавливает контейнер. Все тесты внутри одного модуля в итоге работают с одной БД и все изменения у них общие и видимы друг для друга. Хотелось бы изолировать их друг от друга.

Из вариантов пока вижу вручную чистить БД в каждом тесте перед его запуском либо каждый тест выносить в отдельный модуль. Может есть ещё какое-то решение?

 , integration-test, , ,

orm-i-auga
()

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

Набросал простую реализацию блокчейна и возник такой вопрос. Как в биткойне реализован перевод комиссий за транзакцию майнеру?

Например, вот транзакция:

https://blockexplorer.com/tx/25262a13cf21d58184faba73439a8b3c67fd681569dfaa80...

Один вход и один выход, комиссия 0.0010382 BTC. Как конкретно эти 0.0010382 BTC попадают к майнеру? Может после генерации блока в него включается дополнительная отдельная транзакция для перевода комиссий? Если так, то как её найти?

 ,

orm-i-auga
()

Полный аналог try-with-resources

Код на ява 1.7 (алгоритм не важен, интересен лишь блок с автозакрытием ресурса):

    private Future<IOException> startStreamPump(final InputStream errorStream) {
        return executor.submit(new Callable<IOException>() {
            @Override
            public IOException call() {
                try (BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream));) {
                    for (; ; ) {
                        String line = reader.readLine();
                        if (line == null) {
                            break;
                        }
                        synchronized (log) {
                            log.warn(line);
                        }
                    }
                    return null;
                } catch (IOException e) {
                    return e;
                }
            }
        });
    }
Метод reader.close() может бросать IOException.

Какой из этих вариантов будет полным аналогом без использования try with resources? Первый:

    private Future<IOException> startStreamPump(final InputStream errorStream) {
        return executor.submit(new Callable<IOException>() {
            @Override
            public IOException call() {
                BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream));
                try {
                    for (; ; ) {
                        String line = reader.readLine();
                        if (line == null) {
                            break;
                        }
                        synchronized (log) {
                            log.warn(line);
                        }
                    }
                    return null;
                } catch (IOException e) {
                    return e;
                } finally {
                    try {
                        reader.close();
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        });
    }
Второй:
    private Future<IOException> startStreamPump(final InputStream errorStream) {
        return executor.submit(new Callable<IOException>() {
            @Override
            public IOException call() {
                BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream));
                try {
                    for (; ; ) {
                        String line = reader.readLine();
                        if (line == null) {
                            break;
                        }
                        synchronized (log) {
                            log.warn(line);
                        }
                    }
                    return null;
                } catch (IOException e) {
                    return e;
                } finally {
                    try {
                        reader.close();
                    } catch (IOException e) {
                    }
                }
            }
        });
    }
Разница между вариантами лишь в одной строчке - throw new RuntimeException(e); в finally блоке. Или если оба неправильные, какой код будет полным аналогом?

 autocloseable, , java 6, try-with-resources

orm-i-auga
()

Каст сломался?

Почему-то я не вижу у себя уведомления после этого сообщения:

ты человек или машина? (комментарий)

 , , упоминания

orm-i-auga
()

Graphics2D.drawString рендерит разные результаты на разных машинах

Graphics2D.drawString без антиалиасинга даёт «попиксельно» разные результаты на разных машинах. С антиалиасингом так вообще разница огромная. Пример как рендерю текст:

import java.awt.Color;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;

public class Test {
    public static void main(String... args) throws FontFormatException, IOException {
        int x = 0;
        int y = 9;
        int width = 80;
        int height = 10;
        float fontSizeInPixels = 9f;
        String text = "PseudoText";

        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = image.createGraphics();
        graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
        graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);

        URL fontUrl = new URL(
                "https://github.com/indvd00m/graphics2d-drawstring-test/blob/master/src/test/resources/fonts/DejaVuSansMono/DejaVuSansMono.ttf?raw=true");
        Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
        font = font.deriveFont(fontSizeInPixels);

        Color fontColor = Color.BLACK;
        Color backgroundColor = Color.WHITE;

        graphics.setFont(font);
        graphics.setColor(backgroundColor);
        graphics.fillRect(0, 0, width, height);
        graphics.setColor(fontColor);
        graphics.drawString(text, x, y);

        ImageIO.write(image, "png", new File("/tmp/test.png"));
    }
}

Сделал проект для тестов:

https://github.com/indvd00m/graphics2d-drawstring-test

Вот пример сборки на TravisCI:

https://travis-ci.org/indvd00m/graphics2d-drawstring-test/builds/178672466

Из 7 конфигураций ОС/версия_явы на 2-х тест пройден, остальные провалились. Собственно и вопрос, можно ли это пофиксить и везде получать попиксельно одинаковый результат.

 , , , ,

orm-i-auga
()

А какие ещё есть игры с соревновательным режимом, как в CS GO?

Не обязательно шутеры, любые.

Кто не знает, в соревновательном режиме:

  • Оценивается скилл игроков на основе предыдущих выигранных твоей командой матчей.
  • На основе скилла подбираются две команды с одинаковым количеством игроков, примерно одинаковым уровнем игры и пингом.
  • Матч идёт 30 раундов, каждая команда играет 15 раундов за T, 15 за CT, либо если команда побеждает 16 раз, ей присваивается победа.
  • После начала матча за выход из игры бан на несколько то ли часов, то ли дней, точно не помню. Если игрок всё же покидает матч, его до конца матча заменяет бот (которым могут управлять умершие игроки). Повторные отмены матчей приводят к росту времени бана на порядки.
  • Ну и мелочи, вроде включенного friendlyfire (огонь по своим), увеличенный freeztime (закупка оружия).

Всё это в итоге приводит к относительно честной и равной игре. По крайней мере я уже года 2 вообще не играю на обычных серверах, чисто competitive mode. И я не могу припомнить, где ещё в сетевых играх есть такой подход.

 , , ,

orm-i-auga
()

Подтвердите баг Eclipse

При попытке в Display View выполнить evaluate строки с кириллицей, eclipse бросает эхэпшон. Например:

"testД".toString()
	Evaluation failed. Reason(s):
		String index out of range: 18
У меня на двух машинах не работает, на одной из них вчера обновлял eclipse.

 , , ,

orm-i-auga
()

Можно ли использовать lgpl/mpl js-код в закрытом коммерческом проекте?

Если кратко, можно ли эту js-библиотеку с тройной лицензий gpl/lgpl/mpl использовать в закрытом коммерческом проекте?

http://ckeditor.com/about/license

Более широкий вопрос, как вообще открытые лицензии отражаются на клиентском интерпретируемом коде? Ведь он и так всегда открыт и доступен пользователю? Влияет ли как-то серверная кодогенерация на это? Обфускация, сборка?

 , , , ,

orm-i-auga
()

Не везде работают cookies в iframe приложении

День добрый, лор.

Если кратко — почему-то не во всех браузерах работают cookie в https iframe. Веб-приложение запущено на сервере на своём домене, на этом же сервере есть ещё один домен (на том же ip). Nginx как проксирующий сервер, настроен sni, у каждого домена свой ssl. В остальном домены настроены одинаково, единственное что default_server прописан не для домена приложения, а для второго домена.

По обычному http/https всё работает нормально.

Это же приложение подключено в vk как iframe-приложение (и http, и https). И почему-то на каких-то браузерах в vk в нём работают куки, а на каких-то нет. Например, в chrome куки работают, в chromium той же версии — не работают. В firefox — похоже работает. В safari вроде бы, судя по логам, не работает, проверить негде. Другие не пробовал.

Если я перенастраиваю vk-приложение на второй домен, который default_server, то всё везде работает.

Т.к. изначально делал лишь для себя, то тогда оставил всё как есть. А сейчас смотрю, похоже у большей части пользователей куки так и не работают. В чём тут может быть дело?

Сайт приложения:

https://cooptimes.com

Страница vk-приложения:

https://vk.com/cooptimes

Второй домен:

https://indvd00m.com

 , , , ,

orm-i-auga
()

Почему в JPA Metamodel нет процессинга методов?

Попробовал я тут использовать сгенерированную метамодель из JPA не только при создании запросов к БД, но и вместо явашного рефлекшена со строками. И возник вопрос, почему в JPA Metamodel не сделали процессинг методов?

Аннотации полей БД в jpa можно задавать как на поля, так и на методы класса. Но в метамодели почему-то есть только поля.

 criteria api, , , ,

orm-i-auga
()

Derby SQL - обновить view от которой зависят другие

День добрый, ЛОР.

Есть view в derby, от которой зависит как минимум ещё одна view. В то же время в derby нет create or replace view. Т.е. надо вручную дропнуть и создать. Но дропнуть нельзя, т.к.

java.sql.SQLException: Operation 'DROP VIEW' cannot be performed on object 'VIEW_NAME' because VIEW 'OTHER_VIEW_NAME' is dependent on that object.
И что же делать в такой ситуации? set constraints all deferred не помогает.

PS Тег java, т.к. derby на java.

 , , ,

orm-i-auga
()

Нейронная Оборона

Нейронная Оборона - музыка стилизованная под Егора Летова, текст создан нейросетью в Yandex.

https://tjournal.ru/30467-neironnaya-oborona-s-pomoshu-neiroseti-v-yandekse-z...

Слушать:

https://music.yandex.ru/artist/4445922

https://play.google.com/music/listen?u=0#/album/Beiknbqy5dk37kjdm7u6jmvnnhm/Н...

 ,

orm-i-auga
()

Полноценная синхронизация фото/видео файлов между android и своим сервером в 2016 году

День добрый.

Решил я наконец-то сделать себе «персональное облако». На телефоне мне внезапно стало катастрофически не хватать места, т.к. из 30 ГБ половину уже стали занимать фото/видео. Поэтому подумал что надо их куда-то перенести и сохранить, лишнее на телефоне удалить.

Ок. Потратил несколько часов на сбор всех фото-видео файлов в отдельные директории и переименование по шаблону с датой создания в имени файла.

Поставил на домашний сервер seafile. Тут выясняется что android клиент у него — это не полноценный клиент, не может сам отслеживать изменения, надо вручную отсылать и забирать их. Дальше внезапно выясняется что он ещё и не отправляет дату создания/модификации файла.

https://github.com/haiwen/seadroid/issues/91

https://github.com/haiwen/seadroid/issues/330

https://github.com/haiwen/seafile/issues/1456

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

Начал искать дальше. Выясняется, что та же ситуация с owncloud.

https://github.com/owncloud/android/issues/761

Решил глянуть что по этой проблеме с проприетарщиной. Быстрый поиск по dropbox выдал тему, где человек пишет о той же проблеме.

http://forums.androidcentral.com/ask-question/577636-dropbox-date-stamps-my-p...

Кто-нибудь знает какое-то рабочее решение? Хочу синхронизацию фоток/видео на свой сервер без потери даты создания.

 , , , ,

orm-i-auga
()

Сравнение дат в postgre и timezone

Есть столбец column1, тип timestamp(6) WITHOUT time ZONE. Будет ли результат следующего запроса зависеть от текущего часового пояса сервера?

select * from table1 where date_trunc('day', column1) = date_trunc('day', current_timestamp);
Т.е. работает ли date_trunc в utc или местном времени?

 ,

orm-i-auga
()

Собрать единую страницу из нескольких html+js

Есть куча html+js файлов веб-клиента для RESTful-сервиса. Клиент статический (никакой серверной генерации). Как правильно из них собрать единое приложение? Сделал через jquery.load, но там свои проблемы, например повторные загрузки скриптов и стилей. Ладно, поборол это велосипедом:

function loadContent(url) {
	$('#content').empty();
	var container = $('<div></div>');
	container.load(url, function() {
		
		// remove existed script references
		$('script', container).each(function() {
			var script = $(this);
			var src = script.attr('src');
			if (src != null) {
				var existed = $('script[src="' + src + '"]').length > 0;
				if (existed)
					script.remove();
			}
		});
		
		// remove existed css references
		$('link', container).each(function() {
			var script = $(this);
			var href = script.attr('href');
			if (href != null) {
				var existed = $('link[href="' + href + '"]').length > 0;
				if (existed)
					script.remove();
			}
		});
		
		$('#content').html(container);
		$('.dropdown-toggle').dropdown();
	});
}
Теперь другая проблема, запросы по таймеру setInterval(function, 10000); продолжают в фоне работать и накапливаться если повторно загрузить страницу. Тоже в принципе можно решить, но может есть что-то готовое для такой задачи? Беглый обзор что-то не дал таких результатов.

 , , ,

orm-i-auga
()

Инструменты разработки на js

ЛОР, а какие инструменты сейчас используют профессионалы js-разработки? Понадобилось тут написать web-клиента для RESTful-сервиса, пишу в eclipse, отладка в браузере. Наверное есть более удобные средства?

UPD Если конкретнее, как минимум хотелось бы видеть список возможных методов у объектов, чтобы не сидеть постоянно в доках js-либ.

 ,

orm-i-auga
()

Signal messenger - кто-нибудь уже пользуется?

Не понял что там с desktop-версией, её видимо ещё не зарелизили и просто поставить никак нельзя? Из репы на гитхабе не вполне понятно как собирать.

https://whispersystems.org/blog/signal-desktop/

http://support.whispersystems.org/hc/en-us/articles/214507138-How-do-I-instal...

https://github.com/WhisperSystems/Signal-Desktop

Ъ:

Signal is a free and open-source encrypted voice calling and instant messaging application for iOS and Android. It uses advanced end-to-end encryption protocols to secure all communications to other Signal users. Signal can be used to send and receive encrypted instant messages, group messages, attachments and media messages. Users can independently verify the identity of their messaging correspondents by comparing key fingerprints out-of-band. During calls, users can check the integrity of the data channel by checking if two words match on both ends of the call.

В том же телеграме secure-чаты сейчас только в мобильных клиентах, с desktop-версией как-то всё мутно и не понятно.

https://github.com/telegramdesktop/tdesktop/issues/5

 , , ,

orm-i-auga
()

Ясновидцы в отпу^Wразведке

Как вам, а?

http://lenta.ru/articles/2015/12/12/sunstreak/

Ъ: 20 лет разведка в штатах опиралась в том числе на данные, полученные от экстрасенсов и дальновидцев.

Да они бомбы даже сбрасывали по их сведениям:

Однако известно, что они были одним из источников, использованных при подготовке воздушных ударов по Триполи 15 апреля 1986 года.

Линукс тут при том, что на этом форуме тоже пользуются услугами ясновидения.

 ,

orm-i-auga
()

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