2 Ответы
Как известно, ZFS не может быть уменьшена, но это не значит что ничего нельзя сделать.
Это краткий мануал, здесь не будет расписано что какая команда делает, документация к каждой команде идёт в комплекте с FreeBSD.



Структура диска:

Код:
# gpart show -p
=>      40  234441568    ada0  GPT  (112G)
        40    131072  ada0p1  efi  (64M)
    131112      1024  ada0p2  freebsd-boot  (512K)
    132136  234309472  ada0p3  freebsd-zfs  (112G)

Различия с исходным HDD на 500G только в размере ada0p3.



Грузимся в Live USB/CD/DVD FreeBSD (на которой заранее размечен дополнительный раздел в UFS2+SU: da0s4).

Код:
zpool import -R /mnt freebsd0
mkdir -p /tmp/backup
mount /dev/da0s4 /tmp/backup
zfs snap -r freebsd0@MOVE
// Если есть возможность воткнуть сразу два диска, то send|recv и dd можно совместить. В этом случае не понадобится временный раздел.
Код:
zfs send -Lwp freebsd0@MOVE >/tmp/backup/freebsd0.zfs
dd if=/dev/ada0p1 of=/tmp/backup/ada0p1.efi.img bs=8m
dd if=/dev/ada0p2 of=/tmp/backup/ada0p2.gptboot.img bs=512k
sync;sync;sync;reboot

Меняем диски…

Код:
gpart create -s gpt ada0
gpart add -t efi -s 64m -a 4k -l efiboot0 -i 1 ada0
gpart add -t freebsd-boot -s 512k -l gptboot0 -i 2 ada0
gpart add -t freebsd-zfs -l freebsd0 -i 3 ada0
zpool create -O compress=lz4 -O atime=off -m none -o failmode=continue -O utf8only=on freebsd0 /dev/gpt/freebsd0
mkdir -p /tmp/backup
mount /dev/da0s4 /tmp/backup
dd of=/dev/ada0p1 if=/tmp/backup/ada0p1.efi.img bs=8m
dd of=/dev/ada0p2 if=/tmp/backup/ada0p2.gptboot.img bs=512k
zfs recv -e freebsd0 </tmp/backup/freebsd0.zfs
zfs rename ... # перемещаем ВСЕ датасеты из freebsd0/freebsd0/* в freebsd0/*
zfs destroy freebsd0/freebsd0
zpool set bootfs=freebsd0/ROOT/13.1R freebsd0
gpart bootcode -b /boot/pmbr ada0
sync;sync;sync;reboot

Первая загрузка может быть с проблемами по ряду причин, ещё одна перезагрузка после полной загрузки ставит всё на свои места.
1 Ответы
8 сентября в сообществе BSD было принято решение включить ссылку на depenguin.me, которая описывает, способ установки BSD с использованием среды аварийной загрузки.

В ссылке описана процедура установки FreeBSD-13.1 на выделенный сервер из спасательной среды Linux. (rescue environment)
1 Ответы
Пока писал предыдущую статью понял, что несколько раз упомянул в ней такую штуку, как «сложность алгоритма». Спустя пару ночей пришел к выводу, что оно тянет на отдельную статью... В общем, так и получилось.

Как и в прошлый раз, чтобы не копировать тексты, вкратце расскажу, о чем там речь.

Сначала рассмотрена теория, что такое эта самая сложность алгоритма и для чего она нужна. Если вкратце — это время. Абстрактное время выполнения алгоритма. Зависит оно от реализации этого алгоритма (ну и от железа, на котором выполняется, но в силу абстрактности это можно опустить).

Обозначается она большой буквой О и может принимать разные значения. Например:
  • O(n) — линейное время;
  • O(log n) — логарифмическое время;
  • O(n * log n) — линейное, помноженное на логарифмическое для каждой итерации;
  • O(n2) — линейное в квадрате;
  • O(n!) — факториальное, стремящееся к бесконечности.


Далее практическая часть, в рамках которой я допилил в предыдущую программу функцию простого поиска по массиву перебором:

Код:
func simpleSearch(array *[]int, lookingFor int) (int, bool) {
    count := 0
    start := time.Now()
    for value := range *array {
        count++
        if value == lookingFor {
            duration := time.Since(start)
            fmt.Print("Simple search time: ")
            fmt.Println(duration)
                        fmt.Println("Steps: " + strconv.Itoa(count))
            return value, true
        }
    }
    duration := time.Since(start)
    fmt.Print("Simple search time: ")
    fmt.Println(duration)
        fmt.Println("Steps: " + strconv.Itoa(count))

    return 0, false
}

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

Сама табличка:

[Изображение: Screenshot_20220905_210402.png]
За подробностями и болтологией прошу сюда. Ну и как всегда рад любым комментам.
Нет ответов
Выпущены релизы безопасности matrix-js-sdk и matrix-react-sdk, чтобы исправить пару уязвимостей высокой степени серьезности (зарезервированных как CVE-2022-36059 для matrix-js-sdk и CVE-2022-36060 для matrix-react-sdk).

Затронуты клиенты, которые зависят от затронутых библиотек, такие как Element Web/Desktop и Cinny. Релизы затронутых клиентов появятся в ближайшее время. Пользователям этих клиентов рекомендуется выполнить обновление при первой же возможности.

Уязвимости дают злоумышленнику, с которым вы делите комнату, возможность провести атаку типа «отказ в обслуживании» против уязвимых клиентов, заставляя его не показывать все комнаты или пространства пользователя и/или вызывая незначительные временные повреждения.

Полная информация об уязвимости будет раскрыта позже, чтобы дать людям время на обновление, а авторам — провести более тщательный аудит кодовой базы.

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

Авторы благодарят Вэла Лоренца, который обнаружил уязвимость и сообщил о ней на выходных.

Новость на LOR

 >> Подробности
Нет ответов
В обновлении эмулятора Playstation 4 и 5 KyTy от 21.10.2022 впервые заработали сэмплы SDK от PS5. До этого разработчик демонстрировал работу игры Worms W.M.D от PS4. В будущем будет тестирование игр от PS5.

13 Ответы
Цитата:По данным Коммерсанта, уже к 12 декабря в России разработают специальную систему для анализа фото, видео и текстов в Сети на предмет нарушения российских законов.

Называться она будет «Окулус», а в её основу ляжет технология нейросетей. На данный момент стоимость проекта составляет 57,7 млн рублей — именно такую сумму Роскомнадзор выделил компании ООО «Эксикьюшн Эр Ди Си».

Судя по технической документации, «Окулус» сможет в режиме реального времени анализировать изображения и видео, а также переписки в чатах и материалы каналов мессенджеров, URL-адреса и прочие данные. Она будет выявлять в них запрещенную информацию.

Там же можно найти информацию о том, что «мощность» системы должна составить 200 тыс изображений в сутки. Таким образом, ежесекундно она будет анализировать два кадра или картинки.

Источник.
66 Ответы
FreeBSD 13.1-RELEASE-p0 (планирую собрать -STABLE ветку).

В основном использую Firefox, scrot, Telegram Desktop, Alacritty, feh, xcompmgr, CWM, xidle & xlock, catgirl, vi(m), tmux, aria2, mpv, mpg123, GIMP, LibreOffice, игрушечки через Wine, сериальчики на телевизор через HDMI.

Ранее в системе присутствовал /etc/src.conf для убирания "лишнего", но, как я понял, лишнее убрать всегда успеется, а нужное добавить - не всегда получится.

Запускаю окружение прямо xinit из консоли, DM #ненужон, DE #тоже.

По OpenBSD не особо скучаю, но симпатично их ПО.

BSD-шники всех версий, объединяйтесь!
Эскизы(ов)
   
3 Ответы
Недавно совершенно случайно приобрел в магазине книжку «Время UNIX» Брайана Кернигана. 

[Изображение: Brajan_Kernigan__Vremya_UNIX._A_History_...emoir.jpeg]

Книга захватывает, несмотря на свой небольшой размер. Написана очень классно, переносит тебя куда-то в те далекие 70е и ранее годы, когда только начинался UNIX (и не только), когда не было всех этих современных мощностей и тонн фреймворков, когда быть программистом означало понимать, как работает эта ваша шайтан-коробка, которую называют персональным компьютером. Когда запилить новую микросхему можно было просто на коленке, а на следующий день получить готовый отлитый экземпляр. Когда новый язык программирования или какую-то мега полезную утилитку (LEX, grep и остальные) мог создать чуть ли не на коленке один человек за несколько недель усиленного кодинга. И накрывает какой-то ностальгической тоской от осознания того, что такого уже не будет.

Обратил внимание на разницу в подходах к работе. Меня приятно удивило описание их процесса работы в Bell Labs, где можно было делать все, что угодно, и делать это хорошо. То есть реально человек мог сам выбрать себе занятие и в свое удовольствие пилить свой проект, получая при этом зарплату, не выслушивая тонн говна от начальства про сроки, ненужность оптимизаций и так далее. Именно так, кстати, и появился UNIX, как наколенный проект одного из сотрудником компании. И, к слову, получать нормальную зарплату, позволяющую жить, а не существовать (будете читать если, обратите внимание на пару строк про описание полетов на обед).

Вспоминаю годы своей работы в нашенском научно исследовательском институте, который, по идее, должен был бы выполнять схожие задачи с Bell Labs тех лет — исследовать что-то новое — и вижу совершенно другой подход. У нас основной задачей было распилить бабло, спущенное сверху, потратив на это как можно меньше... всего — и сил, и денег, и ресурсов, и времени. Оптимизация — да ну его нахрен. Сделать хорошо — да пошло оно, покупать еще лист стали, вон там валяется ржавый кусок толщиной 10мм. И вот так было во всем. Когда я читал про подход к работе в компании, где разработали UNIX, и сравнив его с нашенским в моем НИИ, я сразу осознал ту пропасть между нами, и понял, почему «там» все так круто, а мы не смогли ничего за те же прошедшие уже 50 лет.

В общем, советую прочитать всем, кто так или иначе имеет взаимоотношения с UNIX в любом из его проявлений (да и не только, ибо первым все же был именно UNIX). Книга реально огонь!
10 Ответы
Я наконец закончил первую статью из своего планируемого цикла статей для погромистов и не только. 

В ней я подробно разобрал, что такое «бинарный поиск» и как оно работает — с картинками, блок-схемами и так далее, а также написал пример его реализации на Golang.

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


[Изображение: binary_poisk_block-scheme.png]
А его полная реализация на Go так:

Код:
package main

import (
    "fmt"
    "strconv"
)

func main() {
    var elems, lookingFor int

    fmt.Print("Number of elements? ")
    fmt.Scan(&elems)

    var array = make([]int, elems)

    fmt.Print("Generated array: ")
    for i := 0; i < elems; i++ {
        array[i] = i
        fmt.Print(strconv.Itoa(i) + " ")
    }
    fmt.Println()

    fmt.Println("What are we looking for:")
    fmt.Scan(&lookingFor)

    var assumption, result = binarySearch(&array, lookingFor)
    if result {
        fmt.Println("Found: " + strconv.Itoa(assumption))
    } else {
        fmt.Println("Nothing found!")
    }
}

func binarySearch(array *[]int, lookingFor int) (int, bool) {
    fmt.Println("Looking for...")
    var mid, assumption int

    min := 0
    high := len(*array) - 1

    for min <= high {
        mid = (min + high) / 2
        assumption = mid
        if assumption == lookingFor {
            return assumption, true
        }
        if assumption > lookingFor {
            high = mid - 1
        } else {
            min = mid + 1
        }
    }
    return 0, false
}

В статье подробно рассмотрен принцип действия этого алгоритма и обоснована его необходимость как такового. За подробностями добро пожаловать на страничку статьи на моем блоге. Комментариям и прочему буду рад и там, и тут.
5 Ответы
Данная статья расскажет о методах и инструментах для поиска информации о человеке в открытых и не очень источниках.

Пост будет дополняться по мере появления информации.

Статья носит ознакомительный характер и предназначена для обучения. Автор не несёт ответственности за любой причинённый вред при использовании изложенной информации в реальных случаях.

Цитата из Википедии о том, что такое OSINT:
Цитата:Разве́дка по откры́тым исто́чникам (англ. Open source intelligence, OSINT) — разведывательная дисциплина, включающая в себя поиск, выбор и сбор разведывательной информации из общедоступных источников, а также её анализ. В разведывательном сообществе термин «открытый источник разведывательных данных» (англ. open information source), который указывает на общедоступность источника (в отличие от секретных источников и источников с ограниченным использованием), но он не связан с понятиями «просто источник информации» (англ. open source information; OSIF), означающий любую находящуюся в пространстве СМИ информацию.

Поиск информации возможен как самостоятельно, вручную, так и с помощью различных вспомогательных инструментов. Где и как применять эту информацию - зависит уже от вас.

Где может находиться информация о человеке

Практически везде. ФИО, уникальные адреса страниц в соцсетях, никнеймы, фото, видео, записи в соцсетях, утёкшие пароли, ID в сервисах/играх/сайтах, домены... На самом деле всё может представлять интерес. Самое важное - научиться сопоставлять информацию.

Не вся информация открытая, но она может присутствовать в различных утечках. Будем считать это поиском в открытых источниках. =)

Список сайтов и инструментов

Большинство сайтов и ботов работают только по России.

Приложения:
Telegram-боты:
Многие боты были забанены, продались ("Глаз Бога", например) или умерли своей смертью. Их сейчас очень мало.

Сайты:
Социальные сети

В социальных сетях можно найти такую полезную информацию, как:
  • ФИО
  • Фото
  • Возраст
  • Примерное место проживания
  • Место работы
  • Телефон (редко)
  • Ссылки на другие соцсети
  • Образование
  • Увлечения
  • Уникальный адрес страницы (может быть никнеймом)
  • Контакты для связи

Часто можно подобрать год рождения, если он скрыт. В ВК для аккаунтов с галочкой это не сработает.

Во ВКонтакте можно найти упоминания пользователя:
  • https://vk.com/feed?obj=[id]&section=mentions, где [id] - ID пользователя без "id" (только цифры)

Поиск возможного владельца группы ВКонтакте, если он скрыт

Если в группе публикуются гифки, то иногда можно узнать владельца группы. Откройте ссылку на гифку. В ней будет кусок вида doc1005001337_11223344. Первая часть (1005001337) - ID пользователя. Вторая - ID документа.


Получение информации из GitLab и Gitea

Требуется редко, тем не менее возможность есть. Узнать информацию о пользователях (даже на приватных серверах) в GitLab и Gitea можно следующим образом:
  • К домену, на котором содержится экземпляр GitLab, подставьте следующий URL: /api/v4/users/[id]. [id] - это число, ID пользователя. GitLab содержит такие данные, как ФИО, ник, аватар, биографию, локацию, публичный EMail, Skype, Linkedin, Twitter, сайт, организацию.
  • К домену, на котором содержится экземпляр Gitea, подставьте следующий URL: /api/v1/users/[username]. [username] - логин в Gitea.

Поисковики

Обычные поисковики тоже очень полезны. Можно поискать по номеру телефона, почте или другим данным, ведь можно найти упоминания на каких-либо сайтах. А ещё Google очень хорошо умеет распознавать документы. Например, введя запрос:
Код:
site:сайт_учебного_заведения.домен filetype:pdf | filetype:doc | filetype:docx | filetype:xls | filetype:xslx

Можно найти закэшированные поисковиком документы этих типов. Ещё можно добавить ФИО:
Код:
site:сайт_учебного_заведения.домен filetype:pdf | filetype:doc | filetype:docx | filetype:xls | filetype:xslx Боширов Руслан


Если поискать по ссылке в ВК (типа vk.com/id88005553535) в Google, то можно найти различные сайты, которые парсят соцсеть. Иногда в них можно найти старую аватарку, историю смены имени, старую анкету профиля.

Яндекс очень хорошо ищет по изображениям.


Поиск по номеру телефона

Поиск по номеру телефона можно произвести, скормив его различным сервисам:
  • TrueCaller (ссылка есть выше)
  • Мессенеджерам (ВКонтакте, Telegram, WhatsApp и другие). Требуется синхронизация контактов с приложением - пользуйтесь песочницами!
  • Банковским приложениям (например, Сбербанк показывает ФИО при переводе денег по номеру телефона)
  • Ботам в Telegram (некоторые из них есть выше)

Формы восстановления пароля

Часто можно узнать данные (частично или полностью) при попытке восстановить пароль в каком-либо сервисе. Номер телефона, EMail, ФИО, никнейм...

Утечки информации

Часто данные можно найти в различных утечках информации. Например, в свободном доступе можно найти архив под названием BreachCompilation со списком утёкших паролей, хоть и старых. Тем не менее в паролях тоже может содержаться полезная информация.

Открыть спойлер

Или же недавние утечки из Яндекса, Wildberries, Beeline, СДЭК и т.д. Искать по запросу saverudata.

За утечками информации можно следить на канале Утечки информации в Telegram.

Телефонные справочники

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