LINUX.ORG.RU

Сообщения aarexer

 

Закрытие приложения Swing+JavaFX

 , ,

Привет! Столкнулся с такой проблемой.

Есть приложение, написано на JavaFX, но при этом есть кусок Swing-а, которое прикручено через SwingNode. Exit сделан так:

Platform.exit()
Т.е закрывается только FX треды всякие, а свинг продолжает жить, что логично - он же в EDT вроде как. В связи с этим вопрос, а как мне Правильно закрывать этот самый SwingNode? В самом SwingNode у меня лежит GLJPanel. Про вариант
System.exit(0)
знаю. Есть какой-нибудь способ другой? Знаю, что можно поставить
node.setDefaultCloseOperation(WindowClosingProtocol.WindowClosingMode.DISPOSE_ON_CLOSE);
Но это не помогает, все равно при закрытии приложения что-то висит в фоне. Прошу совета, так как сам не слишком разбираюсь в том, как с Swing правильно работать) Заранее спасибо за советы.

aarexer
()

Scala и строки

 , ,

Привет всем! Есть такая мини-задача. Есть сервис, который должен отправлять строку-ответ. Так вот, по задаче у меня генерится крайне много этих строк-ответов, поэтому я задумался о том, как бы мне делать этот ответ, при этом не слишком много теряя в расходах памяти.

В Scala, как и в java, строка имутабл, а значит генерится каждый раз новый объект, плюс у меня еще используется интерполяция(с условиями и подстановкой значений). Тут я задумался, а как работает мультистринг(который типа heredoc)?

В целом я склонился к использованию старого-доброго StringBuilder-а, но мне не слишком нравится делать постоянно append. Но мультистринг мне тоже в принципе подойдет, но я хочу понять как он работает. Заранее спасибо!

aarexer
()

Xterm настройка

 ,

Привет! Перешел тут на днях на Arch. До этого сидел на Debian и использовал xterm. Поставил тут тоже xterm, но столкнулся с проблемой - он никак не хочет включить подсветку директорий и т.д. Мой конфиг:

XTerm*faceName: Bitstream Vera Serif Mono
xterm*faceSize: 11
xterm*vt100*geometry: 80x60
xterm*saveLines: 16384
xterm*loginShell: true
xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
xterm*termName: xterm-color
xterm*eightBitInput: false

!BLK Cursor
#define _color0        #000d18
#define _color8        #000d18
!RED Tag
#define _color1        #e89393
#define _color9        #e89393
!GRN SpecialKey
#define _color2        #9ece9e
#define _color10       #9ece9e
!YEL Keyword
#define _color3        #f0dfaf
#define _color11       #f0dfaf
!BLU Number
#define _color4        #8cd0d3
#define _color12       #8cd0d3
!MAG Precondit
#define _color5        #c0bed1
#define _color13       #c0bed1
!CYN Float
#define _color6        #dfaf8f
#define _color14       #dfaf8f
!WHT Search
#define _color7        #efefef
#define _color15       #efefef
!FMT Include, StatusLine, ErrorMsg
#define _colorBD       #ffcfaf
#define _colorUL       #ccdc90
#define _colorIT       #80d4aa
!TXT Normal, Normal, Cursor
#define _foreground    #dcdccc
#define _background    #1f1f1f
#define _cursorColor   #8faf9f
URxvt*color0         : _color0
URxvt*color1         : _color1
URxvt*color2         : _color2
URxvt*color3         : _color3
URxvt*color4         : _color4
URxvt*color5         : _color5
URxvt*color6         : _color6
URxvt*color7         : _color7
URxvt*color8         : _color8
URxvt*color9         : _color9
URxvt*color10        : _color10
URxvt*color11        : _color11
URxvt*color12        : _color12
URxvt*color13        : _color13
URxvt*color14        : _color14
URxvt*color15        : _color15
URxvt*colorBD        : _colorBD
URxvt*colorIT        : _colorIT
URxvt*colorUL        : _colorUL
URxvt*foreground     : _foreground
URxvt*background     : _background
URxvt*cursorColor    : _cursorColor
XTerm*color0         : _color0
XTerm*color1         : _color1
XTerm*color2         : _color2
XTerm*color3         : _color3
XTerm*color4         : _color4
XTerm*color5         : _color5
XTerm*color6         : _color6
XTerm*color7         : _color7
XTerm*color8         : _color8
XTerm*color9         : _color9
XTerm*color10        : _color10
XTerm*color11        : _color11
XTerm*color12        : _color12
XTerm*color13        : _color13
XTerm*color14        : _color14
XTerm*color15        : _color15
XTerm*colorBD        : _colorBD
XTerm*colorIT        : _colorIT
XTerm*colorUL        : _colorUL
XTerm*foreground     : _foreground
XTerm*background     : _background
XTerm*cursorColor    : _cursorColor

Понять не могу, почему так. Фон, цвет курсора - он подхватывает, а подсветку - нет. Прошу мне подсказать, что не так.

aarexer
()

Монитор в 2016 году!

 ,

Всем привет! Задумался тут над покупкой монитора нового. До этого пользовался AOC e2350Sh, но у него выгорела небольшая часть пикселей в левом углу, этот небольшой островок, в виде итальянского сапога начал немного раздражать меня.

В виду того, что я нуб в выборе техники(редко что покупаю) - хочу спросить: что можно взять?

Требования:

  • 24 дюйма
  • Регулировка по высоте/наклону
  • Ценовая категория до 20 т.р

Заранее спасибо за помощь!

aarexer
()

Тестирование методов класса

 ,

Привет всем!

В общем, есть у меня класс. В нем есть методы, какие-то из методов - закрытые(private), какие-то открытые(public). Хочу написать на методы класса тесты. Но! Как мне достучаться до private методов? С одной стороны, наверное, это и не нужно, хватит и тестов для public, если они отрабатывают верно - значит все ок. Но хочется мне узнать, возможно ли протестировать все методы класса, не взирая на ограничения.

Тесты пишу на ScalaTest, использую FlatSpec. Знаю, что можно сделать

private[package] def method
Но что-то мне не хочется юзать это в моем проблемном классе..

А может я вообще просто тупо загоняюсь и лучше забить?

В общем, хочется узнать, а как вы тестируетесь)

Всем заранее спасибо за участие!

aarexer
()

Bash for windows

 , ,

Привет всем! Так вышло, что есть машина с виндой, админских прав нет на нее. Мне нужна консоль и окружение, portable желательно. А то невозможно сидеть с виндовой консолью + иногда оттуда надо по ssh подключаться. Есть какие-нибудь варианты? CyGwin не предлагайте, так как ее устанавливать надо.

aarexer
()

Покупка ноутбука с рук.

 , ,

Всем привет! Хочу купить с рук ноутбук Lenovo Thinkpad x220. С рук - потому что дешевле будет, до 20т. Понимаю, что за такие деньги можно взять и новый ноутбук другой фирмы, но хочется именно из линейки Thinkpad + слышал, что x220 хорошая модель, по характеристикам он тоже неплох.

Подскажите, стоит ли?

Или не надо?

Также подскажите владельцы, нормально ли он будет работать под Debian или Arch?

Спасибо!

aarexer
()

Примеры кода

 

Всем привет, господа! Обращаюсь вот с каким вопросом. Не могли бы вы подсказать/накидать/ткнуть носом в репозитории или примеры хорошего кода на scala. Чтобы посмотреть как писать правильно. В идеале было бы что-то типа сборника с задачами с решениями. Не встречалось? Заранее спасибо!

aarexer
()

Странное поведение с работой с файлом.

 

Доброго времени суток. Столкнулся с интересным поведением программы. Задача: Заменить символы табуляции в файле на 4 пробела.И записать все обратно в файл. Решение:

val file = new File("test.txt")
val answArr = Source.fromFile(file).getLines().map(_.replace("\t", "    "))
val pw = new PrintWriter(new FileOutputStream(file))
    for (x <- answArr.toArray)   pw.write(x)
 
pw.flush()
pw.close()
Или вот так:
val file = new File("test.txt")
val pw = new PrintWriter(new FileOutputStream(file))
val answArr = Source.fromFile(file).getLines().map(_.replace("\t", "    ")).forEach(str => pw.write(str))
 
pw.flush()
pw.close()
Однако на выходе получаю пустой свой файл. В обоих случаях. При этом, если распечатать в первом случае asnwArr(приведя его к листу), то получаю вроде бы верный ответ(т.е лист не пустой и с заменами табов) Но распечатав его еще раз - уже получаю пустой лист! Как так?

Пример:

val answ = Source.fromFile(file).getLines().map(_.replace("\t", " space "))
    println(answ.length)
    println(answ.length)
 
>> 2 
>> 0

Растолкуйте, пожалуйста, почему так? Очень благодарен всем за помощь!

aarexer
()

JavaFX fxml или все в коде писать?

 ,

Всем привет! Собственно, вопрос в заголовке. Как я понимаю, на JavaFX можно писать либо fxml, с контроллером и вью, либо отказаться от fxml и писать все в коде, т.е создавать все эти Pane-ы, CheckBox-ы и прочее используя new и писать все в коде.

Какой путь есть правильный? Видел просто на одном из проектов, что там пишется все в fxml, в другом проекте все как описал выше делалось. Хочется узнать, как правильно, как пишите вы?

aarexer
()

Ноутбук для Java/Python

 ,

Всем привет друзья! Решил тут купить себе ноутбук для работы. Работаю в основном с Java(Idea) и Python(Sublime, PyCharm). Посоветуйте ноутбук, который можно прикупить себе и не было проблем с работой в каком-нибудь Arch или Debian дистрибутиве. Диагональ предпочтительно до 13.9, нужен не слишком большой ноутбук, так как использую дома и на работе большой монитор, а в дороге и в отпуске не нужен здоровый. Основные требования - не слишком большой, качественный и без проблем с линуксами. Посоветуйте что можно взять?

aarexer
()

Различный хеш-код у двух jar-ников

 , , ,

Всем привет! Столкнулся с такой проблемой. Есть проект, который я собираю в Idea, получаю jar-ник. Также этот же проект я собираю в Jenkins, тоже получаю jar-ник. Мне необходимо, чтобы то, что я собираю Idea и то, что собирает Jenkins имело одинаковую md5-сумму. Чтобы это было так, то я добавляю

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
Т.е я подкладываю один MANIFEST.MF, с фиксированными строками:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: SomeUser
Created-By: Apache Maven
Build-Jdk: 1.8.0_60
И выпиливаю из jar-ника всякие pom-ы. Все было бы отлично, но jar-ники все равно различаются. Почему-то после сборки Jenkins-ом я получаю на выходе
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver

Built-By: SomeUser
Created-By: Apache Maven
Build-Jdk: 1.8.0_60
Т.е он меняет строки местами и добавляет пустую в середину. При этом даже бинарные файлы некоторые различны(не все, в моем случае - два). Соответственно, хешы различны у джарников.А мне крайне необходимо, чтобы они были одинаковы, если src-код не изменялся. Посоветуйте что делать, господа!

aarexer
()

Как правильно сделать в Python

 ,

Всем привет! Есть файлик, с него надо прочитать строку и все, больше он не нужен. Так вот, правильно ли вот так сделать:

def get_hostname():
	return open("/proc/sys/kernel/hostname", "r").read().replace("\n", "")
Т.е если мы вот так открыли его, то закроется ли дескриптор после ретурна? Или он так и останется висеть? Вообще как правильней делать, если надо просто один раз прочитать из файла строку и забыть о нем?

aarexer
()

Настройка xterm

 

Всем привет! Возникла такая проблема. Настраиваю я себе xterm. Прописал:

xterm*VT100.Translations: #override \
                    Shift <Key>Up:              scroll-back(1) \n\
                    Shift <Key>Down:            scroll-forw(1) \n\
                    ~Meta Shift Ctrl <Key>V:    insert-selection(CLIPBOARD) \n\
                    ~Meta Shift Ctrl <Key>C:    copy-selection(CLIPBOARD) \n\

Т.е по нажатию Shift + Ctrl + C копирую в Clipboard-буфер, по нажатию на Shift + Ctrl + V - вставляю из него. Мышью же стандартно при выделении кидается в Primary-буфер все. Вставка колесиком.

Все норм. Но! Если я в самом терминале выделяю что-нибудь, копирую в Clipboard, а после мышью выделяю что-нибудь другое, то выделенное мышью кидается сразу в оба буфера. Если не в терминале, то все работает стандартно. А тут почему-то перезатирается при выделении в консоли clipboard, хотя они же не связаны.. Что не так? Заранее спасибо!

aarexer
()

WP site on 8080 port

 ,

Всем привет! Есть у меня сайт на вордпрессе, стоит phpmyadmin. Хочу перекинуть сайт на другой порт, например, 8080. Для этого:

ports.conf

Listen 8080
#Listen 80

site-avaible/000-default.conf

<VirtualHost *:8080>

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Порт 8080 открыт. Сайт не открывается. Как я понял, это из-за того, что в wordpress в настройках прописан именно site.com мой абстрактный. Заменять все в бд на site.com:8080 как-то не вариант. Есть ли еще способы?

aarexer
()

Обо всем и по порядку.

 ,

Всем привет! Не так давно я случайно наткнулся в интернете на интересную статью из блога, где подробно расписывалось, что происходит, когда мы хотим открыть какой-нибудь интернет-ресурс. Описывалось подробно, что, куда и почему посылаем, как отрабатывает тот или иной компонент. Но потерял данную статью и найти не могу, а я не дочитал ее. В связи с чем два вопроса:

1) Может кто тоже натыкался и скинет ссылку на статью?

2) Какие еще подобные материалы есть?Где подробно описывается как работает что-то. Например, почитал бы подобный материал про SystemD.

aarexer
()

Grub4Dos и мультизагрузочная флешка

 ,

Всем привет! Решил я тут сделать себе мультизагрузочную флешку, как раз появилось немного времени. В общем поставил я Grub4Dos на флешку еще на работе, залил туда дистрибутивы, отредактировал menu.lst, небольшие дистрибутивы типа victoria, mhdd, memtest, udpcast - работают. А вот при попытке установить/загрузить дистрибутив - возникают проблемы. При загрузке finnix-а получается так, что он не может примонтироваться. А вот при установке linux-а(debian-а): Все загружается, идем по шагам установки и когда доходим до монтирования устройства - получаем ошибку. Конфиг:

title Debian-frimware 8.0 Jessie x64
kernel /boot/linux/debian/x64/vmlinuz
initrd /boot/linux/debian/x64/initrd.gz

title Download finnix-111.iso - Finnix [Finnix]
map /boot/finnix-111.iso (hd32) || map --mem /boot/finnix-111.iso (hd32)
map --hook root (hd32)
chainloader (hd32)
boot

title Download firmware-8.0.0-i386-netinst.iso - firmware-8.0.0-i386 [firmware-8.0.0-i386]
map /boot/firmware-8.0.0-i386-netinst.iso (hd32) || map --mem /boot/ffirmware-8.0.0-i386-netinst.iso (hd32)
map --hook root (hd32)
chainloader (hd32)
boot

Может есть какие мысли почему так происходит?

aarexer
()

JavaFX Button

 ,

Всем привет! Возник такой вопрос. Есть у меня панель с кнопками, на UI. Хочу реализовать такую штуку, чтобы по нажатию на нее появлялось меню(рядом). А при повторном нажатии на нее меню исчезало. Реализовал панель с кнопками через HBox, туда добавил все, повесил EventHandler-ы. Вопрос вот в чем, как отследить, что кнопка уже была нажата?Т.е нужен какой-то счетчик наверное, каждое второе нажатие - убирает меню, остальные - его добавляют. Либо мой второй вариант это создать новый класс кнопки, отнаследоваться от него и добавить атрибут boolean active = false; При нажатии проверять, этот флаг. Но ради флага городить такие костыли.. В общем, подкиньте, пжлст, идею, ребяты!

aarexer
()

JavaFX pretty GUI

 , ,

Всем привет! Возник вопрос, в связи с написанием десктопного приложения, а именно, как написать красивый и функциональный GUI. Как пишется GUI типа как в Idea от JetBrains(С выезжающими окошками/меню)? Буду рад любым примерам красивого интерфейса, который вас заинтересовал/привлек внимание.

aarexer
()

Безопасное обновление Debian 7

 ,

Всем привет! У меня на сервере стоит Debian 7. Также на нем крутится Apache, svn, redmine(2.4.1) и т.д Решил я обновиться, но встал такой вопрос, что можно безбоязненно обновлять?Что гарантировано не сломает работу сервисов. Насколько часто надо обновляться? Заранее спасибо за ответы.

Пакеты, которые будут обновлены:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common apt apt-utils base-files bind9-host
  binutils bsd-mailx comerr-dev cpio curl dbus debian-archive-keyring dnsutils dpkg dpkg-dev e2fslibs e2fsprogs file
  gnupg gpgv host krb5-locales krb5-multidev ldap-utils libapache2-svn libapt-inst1.5 libapt-pkg4.12 libbind9-80
  libc-bin libc-dev-bin libc6 libc6-dev libcdt4 libcgraph5 libcomerr2 libcups2 libcupsimage2 libcurl3 libcurl3-gnutls
  libcurl4-openssl-dev libdbus-1-3 libdns88 libdpkg-perl libevent-2.0-5 libfreetype6 libfreetype6-dev libgcrypt11
  libgcrypt11-dev libgd2-noxpm libgnutls-dev libgnutls-openssl27 libgnutls26 libgnutlsxx27 libgraph4 libgraphviz-dev
  libgssapi-krb5-2 libgssrpc4 libgvc5 libgvpr1 libicu48 libisc84 libisccc80 libisccfg82 libjasper-dev libjasper1
  libjs-jquery-ui libk5crypto3 libkadm5clnt-mit8 libkadm5srv-mit8 libkdb5-6 libkrb5-3 libkrb5-dev libkrb5support0
  libldap-2.4-2 libldap2-dev liblwres80 libmagic1 libnss-winbind libpam-winbind libpathplan4 libpq-dev libpq5
  libruby1.8 libruby1.9.1 libss2 libssh2-1 libssh2-1-dev libssl-dev libssl1.0.0 libsvn-perl libsvn1 libtasn1-3
  libtasn1-3-dev libwbclient0 libx11-6 libx11-data libx11-dev libx11-doc libxdot4 libxml2 libxml2-dev libxrender-dev
  libxrender1 libyaml-0-2 libyaml-dev libyaml-libyaml-perl linux-headers-3.2.0-4-amd64 linux-headers-3.2.0-4-common
  linux-image-3.2.0-4-amd64 linux-libc-dev locales mime-support multiarch-support mutt ntp ntpdate open-vm-dkms
  open-vm-tools openssl postgresql-9.1 postgresql-client-9.1 ruby1.8 ruby1.8-dev ruby1.9.1 ruby1.9.1-dev samba-common
  samba-common-bin slapd subversion sudo unzip winbind
aarexer
()

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