Активность: все открытые посты по тегу
я нИ прагромист
(новые снизу)

1
2 3 4 5 6 7

Инструменты - что я использую при создании блог сервиса

Чем я создавал\создаю этот блог сервис
1 книги всякие разные + желание, +упрямство, +на всё и на всех наплевательство. Не хочу объяснять конкретно что и как. 2 самая шустряковатая %:) система
3 netbeans
4 https://staruml.io/
5 FCEditor - на ранних этапах очень помогла. 6 записная книжка
Некоторые заметки можно глянуть тут

2018-08-17 прилетело обновление

Переконопатил код, перешел на sef-url, исправил страшные %:)) ошибки,
нашел в коде коней %)...
... но такого обновления пользователи не заметят. А новые темы, наверное, заметят все(?). Добавил несколько цветовых тем. Если у вас Firefox, гляньте сюда. В связи с переходом на sef-url, возможны ошибки - если что-то не так, прошу сообщать мне на tbs-mbs.net # ukr точка net или в комментариях.

Меня чуток задолбал спам. Как блокировать спам, гигиена почтового ящика

Когда-то я в соцсети, в личной переписке, "похвастался" что я зимой чуток приморозил ноги. И после этого аж в начале весны/в конце зимы у меня началось восстановление обмороженных участков. Каждый вечер я "сходил с ума". Сначала я подумал что это какой-то микоз (или микакоз, не помню как правильно называется) - ну типа грибок на ногах. Но это оказалось не так. Происходило заживление обмороженных участков. воот, пишем далее: после того как я "похвалился" этим в соцсети, мне стал приходить спам. И даже до сих пор иногда прорывается. Я блокирую всё это говно. Если бы не блокировал - завалило бы полностью.
Как правильно блокировать спам
В почтовом сервисе (в большинстве сервисов) есть така штука
Нажимаем
Создать фильтр
От - удаляем всё что c левой стороны до @. Действие - Не принимать. Так нужно поступать с каждым спамсообщением. Но не перестарайтесь! Если вы в поле От ошибетесь (или по приколу оставите там только символ
@
), то ВСЕ письма не будут приниматься.

Зачем я переписываю код сайта?

Приведу простые и понятные аналогии: Взяв пару досок, пилу, гвозди и молоток можно сделать полочку, скварешник..., но многоэтажный дом построить не получится. А если получится то ЧТО это будет? Применительно к коду сайта, можно сказать, что я из досок, орудуя пилой, молотком построил многоэтажный дом. Еще один пример: в книге с тысячами страниц текста без абзацев, без знаков пунктуации, без оглавления сложно что-то исправить, дописать\переписать, изменить сюжет. Даже грамматические ошибки трудно находить\исправлять. Я написал такую книгу. И сам с трудом понимаю что и как, и зачем. А как другой человек сможет понять о чём эта книга?

Проверка жесткий диск ошибка Линукс whdd smartmontools тест бэд-блоки тестировать hdd-sda-ssd linux

Если вы нашли этот пост, значит вы уже знаете что такое жесткий диск, сектора, головки, цилиндры, а также, надеюсь, знаете что такое badblocks. Не хочу рассказывать основы всего этого. Сразу переходим к делу. Вы можете скачивать устанавливать всякие виктории и ей подобные программы, но для из запуска, кажись, ?нужен? ДОС. Не знаю как и чё нужно записывать, из каких флешек или сд\двд-дисков загружаться... Если вам нужна программа для низкоуровневой проверки\тестирования жесткого диска, я рекомендую установить
whdd
. --- Проверка жесткий диск ошибка Линукс whdd smartmontools тест бэд-блоки тестировать hdd-sda-ssd linux --- Переходим на сайт программы, скачиваем (!!! при скачивании внимательно смотрите на разрядность 32 или 64 и на формат пакета) нужный пакет (для слэка, для бубунты, для джентухи), устанавливаем....
dpkg -i whdd_2.2+20160129-1~eugenesan~xenial1_amd64.deb 
Выбор ранее не выбранного пакета whdd.
(Чтение базы данных … на данный момент установлено 257678 файлов и каталогов.)
Подготовка к распаковке whdd_2.2+20160129-1~eugenesan~xenial1_amd64.deb …
Распаковывается whdd (2.2+20160129-1~eugenesan~xenial1) …
dpkg: зависимости пакетов не позволяют настроить пакет whdd:
 whdd зависит от smartmontools, однако:
  Пакет smartmontools не установлен.

dpkg: ошибка при обработке пакета whdd (--install):
 проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
 whdd
... получаем ошибку. Доустанавливаем не достаюшие компоненты...
apt install smartmontools
Чтение списков пакетов… Готово
Построение дерева зависимостей 
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
 gsmartcontrol smart-notifier 
Следующие НОВЫЕ пакеты будут установлены: 
 smartmontools 
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено. 
Установлено или удалено не до конца 1 пакетов. 
Необходимо скачать 464 kB архивов. 
После данной операции объём занятого дискового пространства возрастёт на 1.774 kB. 
Пол:1 http://ua.archive.ubuntu.com/ubuntu bionic/main amd64 smartmontools amd64 6.5+svn4324-1 [464 kB] 
Получено 464 kB за 1с (472 kB/s) 
Выбор ранее не выбранного пакета smartmontools. 
(Чтение базы данных … на данный момент установлено 257682 файла и каталога.) 
Подготовка к распаковке …/smartmontools_6.5+svn4324-1_amd64.deb … 
Распаковывается smartmontools (6.5+svn4324-1) … 
Обрабатываются триггеры для ureadahead (0.100.0-21) … 
Настраивается пакет smartmontools (6.5+svn4324-1) … 
Created symlink /etc/systemd/system/multi-user.target.wants/smartd.service → /lib/systemd/system/smartd.service. 
Обрабатываются триггеры для systemd (237-3ubuntu10.24) …
Обрабатываются триггеры для man-db (2.8.3-2ubuntu0.1) …
Настраивается пакет whdd (2.2+20160129-1~eugenesan~xenial1) …
Обрабатываются триггеры для ureadahead (0.100.0-21) …
Ну в принципе и всё. Можно эту программу установить на загрузочную флешку и загрузившись с флешки поверять диски. Но для установки на флешку, вам необходимо иметь загрузочную флешку с Линуксом. Загрузившись с флешки так же само устанавливаете эту програмулину.
 
Пример работы: У меня есть полуживой старичок на 500 гб...
Только не вздумайте случайно забить диск нулями
Вот программа в работе
хм-м, прям какое-то зашифрованное послание кто-то передает %:))

Подключить флешку виртуальной машине Линукс virtualbox виртуалбокс не видит флешку подключить линукс

Если вы установили virtualbox , он у вас работает, никаких особых проблем нет, но почему-то вы не можете подключить флешку (или другую юсб-приблуду) к виртуалке, то эта статья может вам помочь в решении этой «проблемы». Что нужно сделать? Нужно добавить пользователя в группу vboxusers. Выйти из системы и снова зайти. Всё. Почему так: В некоторых дистрибутивах при установке virtualbox, выдается запрос «Хотите ли вы добавить пользователя в группу vboxusers ?», в некоторых этот запрос не задается… И даже возможно в некоторых дистрибутивах даже сама группа не создается(?), но я в этом сомневаюсь. Это раньше были ужасы Линукса, над которыми приходилось чуток помучиться. Например, в Слэке для того чтобы появилась музыка, нужно было добавить пользователя в группу audio (я точно уже не помню. Уже давно ушёл из\от этого истинно-юниксового Линукс-дистрибутива). Вот в каких группах пользователь сейчас:

xuser@mbs:~$ id
uid=1000(xuser) gid=1000(xuser) группы=1000(xuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
xuser@mbs:~$

Вот что показыватся в виртуалбоксе, в окне настройки юсб:
Решаем "проблему" командой

usermod -aG vboxusers  xuser

После этого нужно выйти из системы и снова зайти. НЕ ПЕРЕЗАГРУЗИТЬ комп, а
завершить сеанс, и снова залогиниться
. Кто хочет перезагрузиться - можете перезагрузиться, но это не обязательно. Пользователь уже в группе vboxusers
xuser@mbs:~$ id
uid=1000(xuser) gid=1000(xuser) группы=1000(xuser),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare),129(vboxusers)
xuser@mbs:~$ 
Запускаем virtualbox, смотрим в настройки юсб... и видим
Теперь есть и юсб-флешка, и юсб-клавиатура, и юсб-мышка. Запускаем виртуальную машину и проверяем...
ВИДЕО УЖЕ НЕТ
Зачем подключать флешку к виртуальной машине, если для обмена файлами можно настроить Общие папки??? Ну если вам это нужно, значить есть причины. Лично мне надо было записать руфусом образ винды на флешку. Та я знаю что это можно сделать и в линуксе, и намного проще, но на данный момент у меня стоит писалка в линуксе, которая записывает на флешку только Линукс-образы. О команде dd я знаю, но мне хотелось вспомнить как я раньше записывал образ из виртуалки. До обновления у меня все было настроено. После того как я сделал чистую установку линукса, я виртуалку еще не настраивал. Вот пару дней назад пришлось вспоминать как и что. Вот за это я и не долюбливаю Линукс. Один раз настроишь и он будет работать вечно. И если потом вдруг придётся что-то заново настраивать, то так сразу и не вспомнишь что к чему.

.local share baloo занимает много места baloofileextractor сильно грузит процессор baloofile

Каталог /home/user/.local/share/baloo/ занимает много гигабайт? Вы его постоянно удаляете, но он снова-и-снова появляется. Что делать? Без художественных вступлений(!), рассказываю Пакет baloo (в него входит несколько программ) предназначен для индексирования (или индексации?) файлов. Зачем индексация нужна? Ну хотя бы для быстрого поиска файлов, если вы задаете в графической программе, расширенные параметры поиска (по содержимому, по дате, по размеру).
В Убунте (или Убунту) есть два очень схожих (почти одинаковых пакета): baloo4 и baloo-kf5. Какая разница между ними я детально не интересовался. В этих пакетах есть такие программы\команды:
balooctl — управляет всем индексированием

baloo_file_extractor — каким то хандибубером
извлекает метаданные из файлов

baloosearch — для поиска файлов по всему индексу,
или в конкретной директории

baloo_file — наверное используется для обработки одного файла.
Детально не вникал. Но в сети полно жалобливых жалоб,
на тему того что этот процесс грузит систему на 100%.

balooshow — какая-то хрень, которая выводит какую-то
информацию о наличии каталогов и файлов в индексе
(количество строк, какой-то номер и еще что-то)

Афигенно я опьясняю, да?
Вы также можете заметить файл baloo_filemetadata_temp_extractor, но он, НАВЕРНОЕ, предназначен для показа метанформации на панели файлового менеджера.
Этот файл не из этого пакета. Далее… Стоить обратить внимание на balooctl. Запустив команду с параметром -h мы увидим:
balooctl -h
Использование: balooctl [параметры] command status enable disable start stop restart
suspend resume check index clear config monitor indexSize

Параметры:
  -f, --format <format>  Output format <json|simple|multiline (default)>.
                         Only applies to "balooctl status <file>"
  -v, --version          Отобразить информацию о версии.
  -h, --help             Отобразить эту справку.

Аргументы:
  command                Команда для выполнения.
  status                 Вывести состояние программы индексирования файлов.
  enable                 Включить индексирование файлов.
  disable                Выключить индексирование файлов.
  start                  Запустить индексирование файлов.
  stop                   Остановить индексирование файлов.
  restart                Перезапустить индексирование файлов.
  suspend                Приостановить индексирование файлов.
  resume                 Возобновить индексирование файлов.
  check                  Найти непроиндексированные файлы и проиндексировать
                         их.
  index                  Проиндексировать указанные файлы.
  clear                  Забыть указанные файлы.
  config                 Изменить настройку Baloo.
  monitor                Наблюдать за индексированием файлов.
  indexSize              Показать объём дискового пространства, используемого
                         индексом.
Не знаю стоит ли мне повторять то что так должно быть понятно(?) Остановлюсь лишь на некоторых важных вещах: Чтобы остановить индексирование (!!!ЕСЛИ ПРОГРАММА АКТИВНО РАБОТАЕТ!!!), сначала выполните команду

balooctl suspend

и только потом

balooctl stop

Почему так? Потому что при balooctl stop (!!!ЕСЛИ ПРОГРАММА АКТИВНО РАБОТАЕТ!!!), процессы продолжают работать.Потом приходится искать процесс в памяти и убивакивать его или просто без поиска процесса стрельнуть командой killall baloo_file. Для наблюдения за текущим индексированием выполните команду
balooctl monitor
Для полного запрета автоматического старта индексирования можете выполнить
balooctl disable
Все это хорошо, но как решить проблему с большой и не нужной папкой /home/user/.local/share/baloo/ ??? Щас еще чуток теории, а потом всё станет понятно. Обратим внимание на опцЫю config. А точнее на
balooctl config list
Список параметров конфигурации, которые можно просмотреть:

  hidden                   Следует ли Baloo индексировать скрытые файлы и папки
  contentIndexing          Следует ли Baloo индексировать содержимое файлов.
  includeFolders           Список папок, которые Baloo должен индексировать
  excludeFolders           Список папок, которые Baloo не должен индексировать
  excludeFilters           Список фильтров, используемых для исключения файлов из процесса индексирования
  excludeMimetypes         Список типов файлов, используемых для исключения файлов из процесса индексирования.
Ну вот в принципе и всё. Дальше можете без подсказок понять что к чему и зачем, но… Да, есть еще одно но: Индексировать скрытые файлы\папки оно не хочет (по состоянию на конец июля 2019), а также имеются некоторые баги-непонятки. В итоге отрываем файл конфигурации
/home/user/.config/baloofilerc
и указываем что нужно индексировать, а что не нужно. Думаю, вы сумеете разобраться в 10 строках этого файла. У меня из индекса исключены такие директории:
balooctl config ls excludeFolders 
/home/user/.cache 
/home/user/.local/share/baloo 
/home/user/.mozilla 

хотя конечно это наверное тупо, запрещать индексирование в скрытых директориях
если оно и так не работает (в скрытых!)

/home/user/NB_8.2 
/home/user/VirtualBox VMs 
/home/user/books 
/home/user/dnl 
/home/user/netbeans-8.2
А индексируется вот это:
balooctl config ls includeFolders 
/home/user 
/var/www 
При этом если вы запретили индексацию монтируемого раздела диска, но хотите включить в индекс какую-то директорию на этом разделе, то добавив путь к директории в конфигфайле, она будет индексироваться. Ну и понятное дело, ненужные картинки, медиафайлы можно
(нужно!)
исключать из индекса. Глянуть что исключено
balooctl config ls excludeFilters
Все настройки удобнее задавать, редактируя конфигфайл. У меня размер папки с структурированными данными
уменьшился
с 1,7 ГБ до 45 МБ
. И напоследок пару слов о поиске по индексу. Обратите внимание на параметр
-d
baloosearch 
Использование: baloosearch [параметры] запрос

Параметры:
  -l, --limit <ограничение>   Максимальное число результатов поиска.
  -o, --offset <смещение>     Смещение в списке результатов поиска.
  -t, --type <название_типа>  Тип данных для поиска
  -d, --directory <каталог>   Ограничить поиск указанным каталогом.
  -h, --help                  Отобразить эту справку.
  -v, --version               Отобразить информацию о версии.

Аргументы:
  запрос                      Список слов, которые следует искать.
Ааа, и еще одно: Если когда-то индексация будет применима к скрытым файлам\папкам, то наверное стоит исключить путь ~/.local/share/baloo/ из индексации. Почему так не хочу объяснять :). И напоследок: команда считающая занимаемое место
du -hs /бла-бла
.
user@mbs:~$ du -hsc .local/share/baloo/*
45M     .local/share/baloo/index
4,0K    .local/share/baloo/index-lock
45M     итого
user@mbs:~$ 
Ну и еще рекомендую познакомиться с
ncdu
.
--- /media/user/466/MEDIA
                         /
   56,4 GiB [##########] /FILMS
   40,1 GiB [#######   ] /Video
    3,0 GiB [          ] /Music
    2,1 GiB [          ] /unsort
Эта консольная программа позволяет быстро оценить кто\что сколько занимает места в файловой системе. Есть еще какая-то фигня тоже шототипа связанная с индексированием, но собирает она данные об установленных программах(?), называется xappian или xcapitan. Я ее убрал уже давно-давно, сразу же после установки. И сейчас я точно не помню что я делал. Для примера показываю свой конфигфайл (обратите внимание на
exclude filters=
):
[Basic Settings]
Indexing-Enabled=true

[General]
dbVersion=2
exclude filters=CMakeFiles,CVS,.obj,*.rej,*.gmo,.xsession-errors*,_darcs,lost+found,moc_*.cpp,*.vm*,lzo,*.swap,.uic,.moc,*.loT,autom4te,libtool,litmain.sh,*.o,__pycache__,*.m4,.hg,*.orig,*~,CTestTestfile.cmake,*.nvram,*.pyc,*.pc,*.tmp,.histfile.*,core-dumps,*.rcore,CMakeCache.txt,*.part,*.la,qrc_*.cpp,ui_*.h,*.omf,po,CMakeTmpQmake,.git,*.po,*.elc,.svn,cmake_install.cmake,conftest,.bzr,.pch,*.aux,*.class,*.lo,*.moc,*.csproj,confdefs.h,CMakeTmp,config.status,confstat,Makefile.am,*.mp3,*.mp4,*.avi,*.png,*.gif,*.jpg,*.jpeg
exclude filters version=2
exclude folders[$e]=/media/user/60/,/media/user/466/,$HOME/dnl/,$HOME/books/,$HOME/NB_8.2/,$HOME/netbeans-8.2/,$HOME/.local/share/baloo/,$HOME/VirtualBox VMs/,$HOME/.cache/,$HOME/.mozilla/
first run=false
folders[$e]=$HOME/,/var/www/
index hidden folders=false
only basic indexing=false

Нет пердела совершенству

Позавчера написал:
class EndPageRndContent {

    private $rnd;
    private $rnd_obj;

    public function __construct() {
        $this->rnd = rand(1, 6);
        switch ($this->rnd) {
            case 1:             //пользователи
                $this->rnd_obj = new RndUsers(4);
                break;
            case 2:             //посты
                $this->rnd_obj = new RndPosts(2);
                break;
            case 3:             //посткоменты
                $this->rnd_obj = new RndPostComs(1);
                break;
            case 4:             //картинки
                $this->rnd_obj = new RndFotos(4);
                break;
            case 5:             //фотокоменты
                $this->rnd_obj = new RndFotoComs(1);
                break;
            case 6:             //фотоалбомы
                $this->rnd_obj = new RndAlbums(4);
                break;
            default:            //ВСЕГДА В КЕЙСАХ ...!!!
                echo 'rnd_err def exit';
                $e = new Err();
                $e->logerr_exit('rnd_err def exit ' . __METHOD__ . ' in ' . __FILE__ . ' on ' . __LINE__);
                break;
        }
    }
}
Вчера переписал:
class RndContentEndPage {

    private $rnd;               //какой нужно выбирать
    private $cou_rnd_obj;       //количество в масссиве -1 (нум с нуля)
    private $selected_rnd_obj;  //выбран из массива
    private $how_show_rnd_cont; //сколько элементов показывать
    private $rnd_obj;
    private $tmp_wsh;
    private $rnd_ar = ['RndUsers', 'RndPosts','RndPostComs','RndFotos','RndFotoComs',
      'RndAlbums','RndComPics'];

    public function __construct() {
        $this->cou_rnd_obj = count($this->rnd_ar) - 1;
        $this->rnd = rand(0, $this->cou_rnd_obj);   //нумерац с 0
        $this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
        $this->how_show_rnd_cont = rand(1, 4);
        $this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
   }
}
Сегодня еще раз переписываю...
class RndContentEndPage {

    private $rnd;               //какой нужно выбирать
    private $cou_rnd_obj;       //количество в масссиве -1 (нум с нуля)
    private $selected_rnd_obj;  //выбран из массива
    private $how_show_rnd_cont; //сколько элементов показывать
    private $rnd_obj;
    private $tmp_wsh;
    private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
      'RndAlbums', 'RndFotos', 'RndComPics'];

    public function __construct() {
        $this->cou_rnd_obj = count($this->rnd_ar) - 1;
        $this->rnd = rand(0, $this->cou_rnd_obj);   //нумерац с 0
        $this->selected_rnd_obj = $this->rnd_ar[$this->rnd];
        $this->set_how_show_rnd_cont();
        $this->rnd_obj = new $this->selected_rnd_obj($this->how_show_rnd_cont);
    }

    private function set_how_show_rnd_cont() {  //лучше несколько прсостых условий, чем какая-то хрень
        if ($this->rnd < 2) {
            $this->how_show_rnd_cont = 1;
        }
        if ($this->rnd == 2 ) {
            $this->how_show_rnd_cont = 2;
        }
        if ($this->rnd > 2 ) {
            $this->how_show_rnd_cont = 4;
        }
    }
}
Добавил я
$this->set_how_show_rnd_cont(); //в зависимости от того какой случайный контент показывать
этой строчкой устанавливается количество случайного контента для вывода

БЫЛО
$this->how_show_rnd_cont = rand(1, 4); //от 1 до 4 элементов
Если вывод 4 картинок или 4 фотоальбомов смотрится более-менее, то вывод 4 постов или 4 комментов выглядит уже не очень красиво (один коммент может быть на две(!) страницы монитора). Раньше в скобках было указано сколько нужно случайного контента выводить.
          case 1:             //пользователи
                $this->rnd_obj = new RndUsers(4);
                break;
            case 2:             //посты
                $this->rnd_obj = new RndPosts(2);
                break;
            case 3:             //посткоменты
                $this->rnd_obj = new RndPostComs(1);
                break;
            case 4:             //картинки
                $this->rnd_obj = new RndFotos(4);
                break;
            case 5:             //фотокоменты
                $this->rnd_obj = new RndFotoComs(1);
                break;
            case 6:             //фотоалбомы
                $this->rnd_obj = new RndAlbums(4);
                break;
Зачем всё это запердельн... запредельное совершенствование?
Теперь если нужно будет добавить еще какой-то случайный контент, то я вписываю класс

    private $rnd_ar = ['RndPostComs', 'RndFotoComs', 'RndPosts', 'RndUsers',
      'RndAlbums', 'RndFotos', 'RndComPics', 'СлучайныйНовыйКонетен'];

Всё!
Ну и возможно чуток условие изменю в set_how_show_rnd_cont() - ребята, которые в теме, поймут.
И так постоянно со всем кодом.

Взадметки нИпрагромиста

Кажись у меня шото с краткосрочной памятью не так, наверное, профф болезня всех программистов и нИпрагргомистов. Бывает такое: забываю что происходило одну, две, три минуты назад. Я использую программку для записи идей, проблем, задач и всего такого... Можете взглянуть на мои взадметки, жописки, заметки, записки. Но там такое... Я и сам уже не всё помню, и не всё понимаю что тама понаписювано :;). Идею, проблему, ошибку, задачу ЗАПИСАЛ, РЕШИЛ И ЗАБЫЛ, "пошел" далее.
1
2 3 4 5 6 7