В свободном доступе на этом сайте размещен торрент с дампом БД, содержащей данные о жителях Турции. В базе 49,611,709 человек. В открытый доступ выложены данные о родителях, месте и дате рождения, полный адрес и номер национального идентификатора.
Хакеры дают несколько технических советов по поводу хранения данных и обслуживания БД, призывают позаботиться об Эрдогане, а так же не голосовать за Трампа.
Ставлю 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
Казалось бы, перепутал версию системы, взял не те пакеты. Однако:
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)
Добрый вечер.
В java я могу написать что-то подобное:
new Handler(Looper.getMainLooper()).post(runnable);
Есть фоновый поток, который производит какую-то работу и периодически отдаёт структуру, которую нужно запихнуть в GTK таблицу. GTK, как известно, не потокобезопасен и запихивание нужно производить в главном потоке. Не силён в GTK, использовал вот такой код:
glib::idle_add(move || {
match rx.try_recv() {
Ok(link) => process_link(&mut rows_iter, &mut store, link),
Err(_) => { },
}
Continue(true)
});
Господа, имеется такой код:
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;
}
}
Нужна библиотека для Node.js, позволяющая указать директорию со скриптами и получить на выходе буфер с минимизированным содержимым всех файлов из указанной директории и её поддиректорий.
Файлы в исходной директории будут меняться и мне бы хотелось, чтобы библиотека сама отлавливала момент, когда буфер потерял актуальность и нужно возвращать не мемоизированное значение, а новое - собранное из файлов.
Для полного счастья хочется просто указать, вот по этому урлу доступна вот эта директория, а всё остальное делается само.
В сети искал, но там в основном о компрессии при деплое.
У меня скопилось очень много тех. литературы, которую я бы хотел прочитать, а так же ссылок на курсы и видео, которые хотел бы послушать. Всё это богатство мне нужно привести в структурированный вид. Я смотрел каталогизаторы (tellico, datacrow), но полностью моим условиям они не удовлетворяют.
Мне нужна программа, которая сможет пройтись по директории рекурсивно и собрать все файлы, по возможности расставив им теги на основании того, в каких директориях они лежат. Теги для каждой записи должны легко добавляться, удаляться, по ним можно фильтровать. Помимо файлов с диска, в коллекцию на равных условиях нужно добавлять ссылки на интернет-ресурсы. Некоторые книги и курсы, объединенные общей темой, следует читать/слушать в определенном порядке, поэтому мне бы хотелось иметь возможность ранжировать записи внутри тега. Так же хочется, чтобы теги могли иметь разные категории/приоритеты (одно дело тег C++, другое - список книг, которые нужны как теория для X). Прочитанные книги и завершенные ресурсы хотелось бы отмечать. Хочется видеть облако/список тегов. Совсем здорово было бы иметь возможность проставлять даты для записей (курс идет с такого-то по такое-то), иметь с этого уведомления и видеть список литературы на ближайшее будущее.
Джва года жду.
Сдается мне, что мои мои вкусы очень специфичны, и я готов начать подвиг быдлокодения во имя опенсорса на крестхк с куятми, но прежде чем порождать недопрограмму хотел бы узнать, вдруг она уже есть?
Господа, я тут в рамках изучения Java написал очень простой парсер для HTML. Всё, что он может, это искать теги, их атрибуты и значения этих атрибутов. Писал используя паттерн State. Вообще, парсер был мне нужен для учебного проекта, в котором я сейчас использую JSoup. Но суп медленный, поэтому я хотел написать что-то максимально быстрое и простое.
В общем, буду благодарен за замечания. По поводу кода, его оформления, интерфейса класса и т.п. Да, ещё я пытался написать юнит тесты, но чую, что вышли они плохо. Так же буду рад критике.
Код парсера: https://gist.github.com/koniahin/0eeee57c14f04bb1af9c
Тесты: https://gist.github.com/koniahin/6b7274333e65cc134dc8
Сабж. Вот скриншот: http://i.imgur.com/mUP6qiv.png Под линуксом такое и в хромиуме, и в файрфоксе.