LINUX.ORG.RU

Сообщения r0ck3r

 

Отказавшегося разблокировать свой мобильный лондонца осудили за терроризм

Форум — Talks

https://lenta.ru/news/2017/09/26/no_cooperation_with_police/

А вы тут диски LUKS'ом шифруете! Еще и пароли, небось, сложные используете?

 , , ,

r0ck3r
()

Хайзенбаг в действии или как починить нечинимое

Форум — Linux-hardware

Имею ноутбук DNS C17A (да, знаю, сам виноват)

Проблема следующего характера: сразу после включения все работает хорошо, но недолго: стоит загрузить тяжелую страницу или выполнить операцию, нагружающую ЦП, происходит ЭТО: кулер начинает активно вращаться и появляются тормоза...Ну вот серьезные тормоза.

ПЕРЕГРЕВ скажите вы и будете неправы, ибо:

1) перегрева нет судя по sensors;

2) по прошествии времени проблема не исчезает;

3) кулер работает не на всю мощь;

Что удалось выяснить:

1) повторяя одни и те же операции после включения, данный баг проявлятся не в одно и то же время, а то и вовсе может не проявиться (вероятность его словить в первые пять минут - 80%)

2) Если отправить ноут в спящий режим и пробудить проблема исчезает, но вскоре возвращается

3) lscpu после появления проблемы показывает частоту не ниже 2.7 GHz, хотя до проявления проц ее спокойно скидывает, даже под легкой нагрузкой, до 1.2 - 1.6 и ничего не тормозит

4) И самое странное - с момента проявления этого бага htop показывает загрузку одного ядра в районе 83-85% и показывает ее красным цветом (как нагрузка от потока ядра) - . Никто кроме htop этого не видит! Использование CPU kworker'ами по нулям!

5) Дабы исключить проблему в своей системе - попробовал загрузиться с LiveUSB - баг также имеет место (скрин htop: http://imgur.com/a/sKFa5)

6) Не зная нормальных утилит для бенчмарка - поставил WinRAR в Wine и он показывает следующие цифры: ~ 2900 до бага, ~1800 после

Лог dmesg, когда проблема не проявилась: https://pastebin.com/CfSNutvt

Он же, после проявления (другое включение, если что): https://pastebin.com/v9rH6Xvt

Похоже, что проблема аппаратная. Есть ли возможность решить ее программными средствами? Что можно попробовать?

 , , , ,

r0ck3r
()

Виртуальный монитор

Форум — Desktop

Не думаю, что такое придумали, но все-таки спрошу - надежда умирает последней

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

 ,

r0ck3r
()

Состряпал конструктор SQL на Java

Форум — Development

Несколько лет назад при разработке одного крупного проекта на PHP, который только и делал что писал, читал и обновлял тонны данных в SQL, я решил написать для этого проекта конструктор SQL-запросов, который тогда сильно облегчил мне жизнь и по сей день помогает мне и мои коллегам в ежедневной работе. Дело в том, что выложить этот конструктор в общественный доступ я не могу, так как проект принадлежит не мне, да и сильно завязан этот конструктор на наш фреймворк.

В связи с чем я решил разработать его аналог на Java: https://github.com/r0ck3r/IQL

Документация доступна там же, а вот некоторые примеры использования:

Connection con = DriverManager.getConnection("jdbc:mysql://server/database", properties);

Вставка данных:

IQL iql = new IQL(con);  
iql.addTable("mytable");  
iql.setInsertRows("name %s", "register_date %d", "level %i");  
iql.insert("User1", "17.05.2017", 4);  
iql.insert("User2", "12.03.2016", 5);  
Statement st = iql.getStatement();

Сгенерирует следующее:

INSERT INTO `mytable`(`name`, `register_date`, `level`) VALUES ('User1', 1494968400, 4), ('User2', 1457730000, 5)

Обновление данных:

IQL iql = new IQL(con);  
iql.addTable("organisations");  
iql.setUpdateRows("name %s", "address %s");  
iql.update("New orgname", "New address");  
iql.whereId(112);  
PreparedStatement ps = iql.getStatement();
Сгенерирует следующее:
UPDATE `organisations` SET `name` = 'New orgname', `address` = 'New address' WHERE `organisations`.`id` = 112
при этом, если для операций обновления или удаления не указан where, то будет сгенерировано исключение

Пример выборки:

IQL iql = new IQL(con);
iql.addTable("domains").select("subdomain subdomain", "domain domain").where("domain %s", IQL.ISNTNULL);
iql.addTable("orgs").select("org_name name", "org_address address").where("org_name %s", IQL.LIKE, "%организация%");
iql.join(2, "id", 1, "org_id"); //присоединить к таблице №2 (orgs) таблицу №1 domains по полям id из orgs к org_id из domains
String SQL = iql.getSQL();

Создаст следующий SQL-код:

SELECT 
`domains`.`subdomain` AS `subdomain`, 
`domains`.`domain` AS `domain`, 
`orgs`.`org_name` AS `name`, 
`orgs`.`org_address` AS `address` 
FROM `orgs` 
JOIN `domains` ON `orgs`.`id` = `domains`.`org_id` 
WHERE 
`domains`.`domain` IS NOT NULL AND 
`orgs`.`org_name` LIKE '%организация%'

В общем, кому надо - используйте

 , , , ,

r0ck3r
()

Держите мой HelloWorld на Java

Форум — Development

Собственно вот - мое первое приложение на Java и первый проект на GitHub (до этого писал только Web и гитхабом не пользовался)

Приложение - гуевый Wake-On-Lan, который умеет сохранять список компьютеров и позволяет выбрать сетевой интерфейс для отправки «магического» пакета

Почему я решил написать это приложение

Дело в том, что:

1) Я, являясь обладателем вендопланшета (не арм), не нашел приложений для WakeOnLan, которые бы корректно работали под офтопиком, а точнее нормально слали бы пакет, если в винде больше одного сетевого интерфейса

2) Хотел попрактиковаться в разработке на Java и получить комментарии многоуважаемых лоровцев, так как, повторюсь, это моя первая не Web разработка и я хотел бы выслушать критику насчет правильности реализации и понимания мной принципов построения графических приложения

Скриншот приложения: https://imgur.com/a/TyCxu

Репозиторий Github: https://github.com/r0ck3r/WoL

 , ,

r0ck3r
()

tcp p2p за NAT при помощи внешнего сервера. Реально?

Форум — Development

Заинтересовался сабжем. Дабы проверить - написал такой быдлокод, который делает (должен делать) следующее:

1) Сервер ждет соединений на порту 10222

2) Клиент подключается к серверу, узнает порт своего исходящего соединения и поднимает на этом порту свой сервер

3) Сервер пытается установить соединение с IP и портом создавшим это соединение (здесь IP и порт вашего провайдера, который, теоретически, должен нисмотря ни на что ссылаться на ваш внутренний IP и порт, это соединение открывший)

К сожалению, при запуске клиента за NAT получаю Connection Refused

Часть 1 - серверная сторона:

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;


public class SimpleServer {
    ServerSocket ss;
    
    public void startServer() throws IOException{
        ss = new ServerSocket(10222);
        System.out.println("Сервер запущен по адресу: " + ss.getLocalSocketAddress());
    }
    
    public void stopServer() throws IOException{
        ss.close();
    }
    
    public void waitConnection() throws IOException, InterruptedException{
            Socket s = ss.accept();
            
            int remotePort = s.getPort();
            InetAddress host = s.getInetAddress();

            System.out.println("Пытаюсь установить соедиение с " + host.getHostAddress() + " на порт: " + remotePort);
            
            //попытка установления соединения с клиентом, который в этот момент ожидает соединения
            Thread.sleep(1000);
            Socket socket = new Socket(host, remotePort);
            System.out.println("Соединение установлено, отправляем тестовые данные");
            
            //Отправка данных
            OutputStream os = socket.getOutputStream();
            os.write("Hello, client!".getBytes());
            
            s.close();

    }
    
    public static void main(String[] args) throws InterruptedException, IOException{
        SimpleServer ss = new SimpleServer();
        ss.startServer();
        ss.waitConnection();
        ss.stopServer();
    }
}

Часть 2 - сторона клиента:

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class SimpleClient implements Runnable{
    SimpleClient(){}
    
    //
    SimpleClient(Socket socket){
        this.socket = socket;
        Thread t = new Thread(this);
        t.start();
    }
    Socket socket;
    
    String server = "192.168.10.10";
    int port;
    public void connect(){
        try {
            //Подключаемся к серверу
            Socket socket = new Socket(server, 10222);
            port = socket.getLocalPort();
            
            System.out.println("Обнаружен локальный порт: " + port);
            socket.setReuseAddress(true);
            
            //Создаем свой сервер на порту, использованному при исходящем соединении
            ServerSocket serverSocket = new ServerSocket(port);
            
            //Ждем соединений с созданного сервера
            while(true){
                System.out.println("Ожидание соединения на порту: " + port);
                Socket gotSocket = serverSocket.accept();
                System.out.println("Получено соединение");
                new SimpleClient(gotSocket); //Запустить поток, который будет читать сокет
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //Чтение данных из сокета
    @Override
    public void run() {
        try {
            InputStream is = socket.getInputStream();
            int c;
            while( (c = is.read()) != -1 ){
                System.out.print((char) c);
            }
        } catch (IOException e) {
            System.err.println("Ошибка ввода вывода");
        }
    }
    
    public static void main(String[] args){
        new SimpleClient().connect();
    }
}

 , , ,

r0ck3r
()

Моя уютная Plasma 5

Галерея — Скриншоты

Вот уже почти год как переполз на пятые кеды

Что имеем:

  • Тема плазмы: стоковый Breeze Dark
  • Иконки: KFaenza
  • Док: Cairo-Dock

Использую два монитора, но в скриншот включил один, так как на втором смотреть особо нечего

Кнопка меню в кедах спрятана в левом верхнем углу - такая малоприметная кнопочка

Проигрыватель audacious со шкуркой Winamp Toolskin. Именно таким я впервые увидел музыкальный проигрыватель, любезно установленный продавцами, в далеком теперь уже две тысячи третьем году. Вот так и пользуюсь до сих пор

Тема Firefox - fxchrome

В NetBeans виден код моего велосипедного кэширователя SQL-запросов в одном из моих проектов

Большой виджет справа - отображение каталога примонтированного как tmpfs и используемого в качестве каталога загрузок в браузере ну и для всякого временного хлама, который если не помещать сразу в tmpfs то будет очень страшно однажды разбирать

Ругайте

 ,

r0ck3r
()

Восстановление таблицы разделов с флеш-накопителя

Форум — General

Здравствуй, ЛОР!

Есть флешка с, предположительно, убитой таблицей разделов. Я снял образ через dd и подцепив его через losetup попытался прогнать по нему TestDisk и gpart, но безрезультатно.

Флешка не моя, а моей матери. Она жаловалась, что ее телефон (китайфон с Android 4.4) стал адски глючить: то приложения закрываются с ошибкой, то зависает намертво, то батарейку не видит, то сим-карту. Я предполагаю, что причиной такого поведения может быть мертвая ОЗУ, которая, в свою очередь, и послужила причиной смерти ФС

Каким еще софтом попробовать выкорчевать данные?

 , , , ,

r0ck3r
()

Возможно тупой вопрос по обобщениям в Java

Форум — Development

Учу понемногу Java и напоролся на такое:

public class Main {
    public static class MyTestClass<T>{
        private T[] myAr;
        private int curItem=0;
        private int count=10;

        MyTestClass(){
            myAr = (T[]) new Object[count]; //Этот код работает
            for(int i=0; i<myAr.length; i++){
                myAr[i] = (T) new Object(); //Этот код работает
            }
        }

        void set(T value){
            if(curItem<count) {
                myAr[curItem++] = value;
            }
        }

        T get(int index){
            return myAr[index];
        }
    }

    public static void main(String[] args){
        MyTestClass<Integer> myTestClass = new MyTestClass<Integer>();
        myTestClass.set(12);
        System.out.println(myTestClass.get(0));

        String[] str = (String[]) new Object[10]; //Этот код не работает, хотя, как мне кажется, делает тоже самое
    }

}

Внимание, вопрос!

myAr = (T[]) new Object[count];
...
myAr[i] = (T) new Object();

Почему это работает? Почему он может скастовать Object до дочерних классов внутри обобщенных классов? хотя при явном указании типов как здесь:

 String[] str = (String[]) new Object[10];
возникает Exception in thread «main» java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

 , ,

r0ck3r
()

История о ненависти к Canon или как я стал ССЗБ

Форум — Talks

Заказал я на OZON.RU принтер Canon PIXMA G3400 Принтер пришел - я его подключил к своей Wi-Fi сети через телефон, напечатал с него фоточки - красота! Но, как оказалось, драйверов для этого принтера для Linux НЕТ, хотя для всех предыдущих принтеров Canon, которыми мне приходилось пользоваться - даже для самых старых - Canon S200 (принтер 2003 года) с дровами проблем не было (собственно в связи с этим и не думал проверять перед покупкой наличие драйверов под Linux). На официальном сайте драйвера только для Windows и Mac OS X. Казалось бы, есть драйвер для Mac OS - выложите и для Linux - и там и там используется CUPS и дрова ПОЧТИ идентичные Я написал в тех. поддержку с вопросом о плане выхода дров под Linux на что мне ответили, что не планируем и выслали ссылку на комплект разработчика для Linux - пиши дрова сам! Я не отчаялся и решил подключить принтер к Google Cloud Print и подключить его в CUPS - подключил - все хорошо, но через некоторое время принтер без ведомых причин перешел в состояние offline в Google Print, при этом в локальной сети он есть, его веб-интерфейс загружается. Перезагрузив принтер он перешел в состояние online, но через некоторое время опять offline. Написав об этом в тех. поддержку - ответа НЕ ПОЛУЧИЛ. При этом в Google нашел много жалоб на уход в offline разных моделей принтеров Canon. Теперь сижу: могу пользоваться принтером только с телефона и планшета

 , ,

r0ck3r
()

Linux 4.6

Новости — Ядро Linux
Группа Ядро Linux

Линус Торвальдс анонсировал версию 4.6 ядра Linux, которая принесла много нового. Самые заметные изменения:

  • Добавлена поддержка новых системных плат и ARM SoC.
  • Улучшения в открытом драйвере видеокарт AMD.
  • Поддержка NVIDIA GTX 900 «Maxwell» в открытом драйвере. Теперь есть поддержка 3D-ускорения при использовании закрытой прошивки.
  • Улучшения в энергопотреблении AHCI.
  • Улучшена поддержка ноутбуков Dell и Alienware.

( А также: )

>>> Подробности

 ,

r0ck3r
()

Прошу замолвить слово за Power over Ethernet

Форум — Linux-hardware

Хочу прикупить такую штуку для своего роутера, дабы запихнуть его в такие закрома, где розеток нет, а курочить провод питания желания нет, во имя всемирного равновесия и сохранения первозданного вида устройства. Планируемая дистанция передачи питания по ethernet ~10-15м, к роутеру также подключен HDD. Питается от 12 в.

Вопрос: будет ли это работать?

Линукс при том, что на роутере установлена OpenWRT и обслуживает роутер только девайсы с ядром линукс (1xPC, 1xNotebook, 1xTV, 3xAndroid)

 , , ,

r0ck3r
()

Можно ли узнать как включили компьютер?

Форум — Linux-hardware

Здравствуй ЛОР!

Есть ли возможность прочитать метод включения компьютера? То есть был он включен кнопкой, по Wake-On-Lan, либо AC-Back?

Очень нужно, ибо моя материнская плата не умеет в Wake-On-Lan после сбоя питания. Вот так.

 , ,

r0ck3r
()

Как они это делают?

Форум — Talks

http://lenta.ru/news/2015/09/10/navalnyyoutube/

Информацию о внесении ряда страниц YouTube подтвердил в интервью «Ведомостям» пресс-секретарь Роскомнадзора Вадим Ампелонский. «Есть более двух десятков роликов на YouTube, которые признаны экстремистскими и блокируются на основании требования Генеральной прокуратуры. Пул IP-адресов, который использует YouTube, позволяет ограничить доступ к противоправному контенту точечно», — сообщил он.

Собственно вопрос: как? Там же https

 ,

r0ck3r
()

HTTPS now everywhere

Форум — Web-development

Здравствуй, ЛОР!

В связи с наметившимся отказом производителей браузеров от HTTP в пользу HTTPS у меня родился вопрос.

Есть сервер, на котором крутится сайт с несколькими доменами. Сейчас домена 3, но это число будет расти и постепенно достигнет ~30. Каждый домен - отдельный сайт.

На каждом домене имеется по несколько поддоменов, являющиеся сайтами дочерних организаций. Каждая дочерняя организация может по желанию привязать свой домен и сайт этой организации станет доступен по поддомену основного домена и по привязанному домену.

Все работает без Apache VirtualHost и находится в одном DocumentRoot. Все это дело обрабатывает некоторый единый для всех доменов и поддоменов самописный движок, который определяет какой домен/поддомен запрошен и выполняет соответствующие этому домену действия.

Внимаение вопрос: как к этому добру прикрутить HTTPS?

 , , ,

r0ck3r
()

Counter-Strike GO доступна!

Форум — Games

Пока не закачал, но в библиотеке доступна:
http://i66.fastpic.ru/big/2014/0923/10/b978ddd20f2a37d97c1a51b64f2cb410.png

r0ck3r
()

Безопасность безопасности

Форум — Security

Я храню на своем ноутбуке свои интим фоточки. Мой старший брат хочет получить к ним доступ, чтобы меня шантажировать тем, что расскажет все моей маме.
Предположим, что для пущей секурности я шифровал корень, но тогда grub2 просится вынести его раздел подальше от шифрования.
Внимание вопрос: Какова вероятность того, что мой старший брат проникнет ночью в мою комнату и изменит initramfs таким образом, что cryptsetup сохранит мой пароль куда-нибудь на HDD?

 , , ,

r0ck3r
()

Dead Island теперь скоро в Linux

Форум — Talks

Инфа взята тут: http://steamdb.info/depot/91319/
Подробности об игре тут: http://store.steampowered.com/app/91310/

r0ck3r
()

Wargame Red Dragon теперь и для GNU/Linux

Новости — Игры
Группа Игры

Серию игр для GNU/Linux от Eugen Systems продолжает Wargame Red Dragon. В этой игре Вам предлагается руководить отрядами, принимающими участие в крупномасштабном конфликте между западом и коммунистическим блоком.

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

В Wargame Red Dragon предлагается на выбор одиночная игра с динамичной системой кампаний и многопользовательский режим, в котором на поле боя могут сойтись до 20 игроков

>>> Подробности

 , ,

r0ck3r
()

Fail > Success story

Форум — Linux-hardware

В общем недавно случилась такая беда, что сгорела моя затычка GeForce GT 440, на которой я комфортно играл в Metro Last Light, L4D 2 и ждал выхода The Witcher 2.
А случилось это так: в один прекрасный день система не загрузилась. Точнее загрузилась, но ни на одном из двух мониторов изображение не появилось. Я, расстроившись, вынул затычку и завелся на встроенном Intel, на котором тормозит даже CS:Source.
Спустя некоторое время пришла идея включить в биос встроенную видюху как основную и поставить затычку на место, дабы увидеть выхлоп lspci.
Система загрузилась, а в выхлопе я увидел строчку:

01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 440] (rev a1)
и решил попробовать погуглить про bumblebee. Перейдя по ссылке на федоравики про bumblebee я проделал описанное и, вуаля, игрушки забегали почти как раньше (жаль второй монитор воткнуть некуда)
В триальной Windows 8.1, которую я поставил, чтобы иногда поиграть в f1 2013 codemasters и Battlefield Bad Company 2 NVIDIA работать не захотела, хотя видна в диспетчере. Не пускает в панель управления - быть может делал что-то не так. Но не проблема - если припрет попробую замутить KVM с пробросом карточки - может быть заработает

 , ,

r0ck3r
()

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