LINUX.ORG.RU

Сообщения Weres

 

Автокомплит в Emacs отображается не в попапе, а в отдельном буфере

Выглядит это так. Если запускаю имакс без конфига (через -q), работает аналогично. Очень хочется нормальный попап. Как это починить? GNU Emacs 24.5.1. Использую semantic, автодополняю через (semantic-analyze-possible-completions).

 

Weres
()

Хакеры слили в интернет данные о жителях Турции

В свободном доступе на этом сайте размещен торрент с дампом БД, содержащей данные о жителях Турции. В базе 49,611,709 человек. В открытый доступ выложены данные о родителях, месте и дате рождения, полный адрес и номер национального идентификатора.

Хакеры дают несколько технических советов по поводу хранения данных и обслуживания БД, призывают позаботиться об Эрдогане, а так же не голосовать за Трампа.

 , , ,

Weres
()

Некорректные зависимости при добавлении deb пакетов на загрузочную флешку

Ставлю 32-ух битную ubuntu 14.04.3 на планшет с UEFI. Из коробки у 32-ух битной ubuntu нет UEFI в образе, я добавил нужный файл и загрузился в режиме live usb. Wif-fi не подхватывается, установку нужно проводить в оффлайн режиме. Проблема в том, что в образе нет grub-efi. Я скачал нужные deb файлы отсюда. Добавил на флешку таким образом:

cp ~/project/ubuntu/*.deb /media/anton/ARCH/pool/extras/
apt-ftparchive packages /media/anton/ARCH/pool/extras/ > /media/anton/ARCH/dists/stable/extras/binary-i386/Packages
gzip -c /media/anton/ARCH/dists/stable/extras/binary-i386/Packages | tee /media/anton/ARCH/dists/stable/extras/binary-i386/Packages.gz > /dev/null
Теперь система находит grub-efi и даже пытается его поставить. Но получается вот это. Для Ъ: пакет grub-efi-ia32 зависит от grub2-common. Нужна версия 2.02~beta2-9, а установлена 2.02~beta2-9ubuntu1.3.

Казалось бы, перепутал версию системы, взял не те пакеты. Однако:

anton@desktop:~/project/ubuntu$ dpkg -I grub-efi-ia32_2.02-beta2-9ubuntu1.3_i386.deb 
 новый пакет debian, версия 2.0.
...          
 Package: grub-efi-ia32
 Source: grub2
 Version: 2.02~beta2-9ubuntu1.3
 Architecture: i386
 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
 Installed-Size: 186
 Depends: debconf (>= 0.5) | debconf-2.0, grub-common, grub2-common (= 2.02~beta2-9ubuntu1.3), grub-efi-ia32-bin (= 2.02~beta2-9ubuntu1.3), ucf
 Conflicts: elilo, grub (<< 0.97-54), grub-coreboot, grub-efi-amd64, grub-ieee1275, grub-legacy, grub-pc, grub-xen
 Replaces: grub, grub-common (<= 1.97~beta2-1), grub-coreboot, grub-efi, grub-efi-amd64, grub-ieee1275, grub-legacy, grub-pc, grub2 (<< 2.02~beta2-9ubuntu1.3)
Вроде бы пакет правильный и зависимости у него тоже правильные. Что не так? Как поправить?

 , ,

Weres
()

Выполнить код в главном потоке на языке Rust

Добрый вечер.

В java я могу написать что-то подобное:

new Handler(Looper.getMainLooper()).post(runnable);
чтобы runnable выполнился в главном потоке. Можно ли сделать подобное в rust?

Есть фоновый поток, который производит какую-то работу и периодически отдаёт структуру, которую нужно запихнуть в GTK таблицу. GTK, как известно, не потокобезопасен и запихивание нужно производить в главном потоке. Не силён в GTK, использовал вот такой код:

glib::idle_add(move || {
  match rx.try_recv() {
    Ok(link) => process_link(&mut rows_iter, &mut store, link),
    Err(_) => { },
  }
  Continue(true)
});
Биндинги здесь. Но само собой он не годится, ибо выжирает cpu. Помогут ли мне события, ведь я не смогу безопасно инициировать их в фоновом потоке? Как это делается в реальных программах?

 ,

Weres
()

Чтение из UTF-8 файла в массив на языке Rust

Господа, имеется такой код:

use std::fs::File;
use std::io::BufReader;
use std::io::prelude::*;

fn main() {
    let args : Vec<String> = std::env::args().collect();
    if args.len() < 2 {
        println!("Wrong! Use: {} filename", args[0]);
        return;
    }
    
    let file_name = args[1].to_string();
    let input_file = match File::open(&file_name) {
        Ok(file) => file,
        Err(_) => {
            println!("File {} not found.", file_name);
            return;
        }
    };

    let mut reader = BufReader::new(input_file);

    let mut buf = [0u8; 512];
    loop {
        let length = reader.read(&mut buf).ok().unwrap();
        if length == 0 {
            break;
        }
        let _s = match std::str::from_utf8(&buf[0..length]) {
            Ok(string) => string,
            Err(e) => panic!("{}", e),
        };  
    }

}

Проблема в том, что в файлах вперемешку идут символы разной ширины (ASCII и кириллица), поэтому иногда в буфер знак целиком не влезает и я получаю что-то вроде:

thread '<main>' panicked at 'invalid utf-8: invalid byte near index 511'

Собственно вопрос: как эффективно разрулить эту ситуацию? Дочитывать по байту, пока декодирование не пройдёт успешно? Или использовать что-то ещё?

Решение такого типа:

let mut s = std::string::String::new();
    loop {
        let length = reader.read_to_string(&mut s).ok().unwrap();
        if length == 0 {
            break;
        }
    }
не подходит, файл может быть очень большой, нужно экономить память. То же самое касается и read_line.

 ,

Weres
()

Ищу библиотеку для Node.js со сжатием файлов в один и перезагрузке при изменении исходных

Нужна библиотека для Node.js, позволяющая указать директорию со скриптами и получить на выходе буфер с минимизированным содержимым всех файлов из указанной директории и её поддиректорий.

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

Для полного счастья хочется просто указать, вот по этому урлу доступна вот эта директория, а всё остальное делается само.

В сети искал, но там в основном о компрессии при деплое.

 ,

Weres
()

Ищу планировщик вкупе с каталогизатором

У меня скопилось очень много тех. литературы, которую я бы хотел прочитать, а так же ссылок на курсы и видео, которые хотел бы послушать. Всё это богатство мне нужно привести в структурированный вид. Я смотрел каталогизаторы (tellico, datacrow), но полностью моим условиям они не удовлетворяют.

Мне нужна программа, которая сможет пройтись по директории рекурсивно и собрать все файлы, по возможности расставив им теги на основании того, в каких директориях они лежат. Теги для каждой записи должны легко добавляться, удаляться, по ним можно фильтровать. Помимо файлов с диска, в коллекцию на равных условиях нужно добавлять ссылки на интернет-ресурсы. Некоторые книги и курсы, объединенные общей темой, следует читать/слушать в определенном порядке, поэтому мне бы хотелось иметь возможность ранжировать записи внутри тега. Так же хочется, чтобы теги могли иметь разные категории/приоритеты (одно дело тег C++, другое - список книг, которые нужны как теория для X). Прочитанные книги и завершенные ресурсы хотелось бы отмечать. Хочется видеть облако/список тегов. Совсем здорово было бы иметь возможность проставлять даты для записей (курс идет с такого-то по такое-то), иметь с этого уведомления и видеть список литературы на ближайшее будущее.

Джва года жду.

Сдается мне, что мои мои вкусы очень специфичны, и я готов начать подвиг быдлокодения во имя опенсорса на крестхк с куятми, но прежде чем порождать недопрограмму хотел бы узнать, вдруг она уже есть?

 ,

Weres
()

Покритикуйте Java код

Господа, я тут в рамках изучения Java написал очень простой парсер для HTML. Всё, что он может, это искать теги, их атрибуты и значения этих атрибутов. Писал используя паттерн State. Вообще, парсер был мне нужен для учебного проекта, в котором я сейчас использую JSoup. Но суп медленный, поэтому я хотел написать что-то максимально быстрое и простое.

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

Код парсера: https://gist.github.com/koniahin/0eeee57c14f04bb1af9c

Тесты: https://gist.github.com/koniahin/6b7274333e65cc134dc8

 

Weres
()

Поехала верстка блока рекламы на главной

Сабж. Вот скриншот: http://i.imgur.com/mUP6qiv.png Под линуксом такое и в хромиуме, и в файрфоксе.

Weres
()

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