Monday, December 21, 2020

Wifi wont work after suspend in AntiX

My MSI Wind u90x laptop with Antix 19.3 installed has a Wi-Fi problem. Wifi does not reconnect after hibernate/sleep. Generally, Wi-Fi works fine, except for resuming from suspension. To be honest, earlier when I used Lubuntu 18.04, I had the same problem.

Solution #1

I found out that wifi works well if I shut off networking BEFORE suspend and shut on AFTER resume.
The terminal-command to do this: `sudo ifconfig wlan0 [down|up]`.
(In Ubuntu-based distros - `nmcli networking [on|off]`)

Solution #2

The previous solution can be automated using a shell script located in the /etc/pm/sleep.d/ directory.
I created /etc/pm/sleep.d/wifi-fix.sh with the following content:
#!/bin/bash

case "$1" in
suspend|hibernate)
    ifconfig wlan0 down
    ;;
resume|thaw)
    ifconfig wlan0 up
    ;;
esac

 

In case you want to know which device provides wireless capability on my laptop:
$ inxi -N
Network:   Device-1: Realtek RTL8101/2/6E PCI Express Fast/Gigabit Ethernet driver: r8169
           Device-2: Realtek RTL8187SE Wireless LAN driver: rtl818x_pci

Sunday, July 5, 2020

Problems with the Raspberry Pi USB drive

I use my RPI4 with an SSD drive via a USB 3.0 adapter. Usually, the drive works well until I find that all my USB devices are unmounted and I can't access the system. My USB keyboard didn't work and my USB drive was unmounted. And everything is fine after restarting the system until I start accessing the hard drive intensively.
I started researching this issue because I'm not sure about my no-name USB case, as well as the no-name SSD drive. I have collected all the information that will be useful for solving this problem with other devices.

How to investigate an incident

First of all, you should check the logs. The files /var/log/messages/var/log/syslog and /var/log/kern.log will return pretty much every event you could ever need to know to figure out what happened.

In my case all these files contained these messages:
Jul  4 14:48:10 microbox kernel: [ 1667.732392] xhci_hcd 0000:01:00.0: WARNING: Host System Error
Jul  4 14:48:15 microbox kernel: [ 1672.752064] xhci_hcd 0000:01:00.0: xHCI host not responding to stop endpoint command.
Jul  4 14:48:15 microbox kernel: [ 1672.752114] xhci_hcd 0000:01:00.0: xHCI host controller not responding, assume dead
Jul  4 14:48:15 microbox kernel: [ 1672.752462] xhci_hcd 0000:01:00.0: HC died; cleaning up
...
Jul  4 14:48:15 microbox kernel: [ 1672.753142] usb 1-1: USB disconnect, device number 2
Jul  4 14:48:15 microbox kernel: [ 1672.753162] usb 1-1.4: USB disconnect, device number 3
Jul  4 14:48:15 microbox kernel: [ 1672.754724] usb 2-2: USB disconnect, device number 2
Jul  4 14:48:15 microbox kernel: [ 1672.802164] sd 0:0:0:0: Device offlined - not ready after error recovery
...
Jul  4 14:48:15 microbox kernel: [ 1672.852093] print_req_error: I/O error, dev sda, sector 53777216
Jul  4 14:48:15 microbox kernel: [ 1672.852110] Buffer I/O error on dev sda, logical block 53777216, lost async page write
...
Jul  4 14:48:16 microbox kernel: [ 1672.886164] FAT-fs (sda): error, corrupted directory (invalid entries)
...
Jul  4 14:48:16 microbox kernel: [ 1672.887784] FAT-fs (sda): FAT read failed (blocknr 6640)
Jul  4 14:48:16 microbox udisksd[369]: Cleaning up mount point /media/pi/estorage (device 8:0 no longer exists)

All these messages told me that the xHCI host controller was not responding.

Cause of problems

I found that there are two possible reasons:
  • The power issue. The drive should be plugged into a USB hub with external power;
  • The drive does not support UAS commands. The user must disable the UAS for the device.
"Perhaps the on-board voltage is a marginal - try adding `over_voltage=1` to config.txt and rebooting."
"Just FYI, this issue is no longer occurring after disabling uas." (source)
"in certain situations the Linux "uas" driver disables SAT transfers, which prevents smartmontools (and other tools, e.g. hdparm) from communicating properly with the attached SATA device. " (source)
RPI4 uses UAS by default for all USB devices. I believe that UAS support was the cause of the problem in my case because the Linux kernel does not know whether the USB drive supports UAS or not, and relies on a blacklist of devices.

What is the UAS

"USB Attached SCSI (UAS) is an upgraded transport protocol compared to USB mass-storage - commands and data are separated into different queues and multiple outstanding commands can be in flight at the same time, as opposed to USB mass-storage's lock-step relationship between commands and data. This allows better saturation of the 4GBps USB3.0 transport as there can be a continuous stream of data to and from a device.
Prior to Pi 4, the USB host controller software did not support DMA scatter-gather operations. As a result of this limitation, the USB Attached SCSI (UAS) driver was not enabled. With Pi 4, as the xHCI driver does support scatter-gather and to get the most performance out of a USB3.0 attached SSD/disk we enabled UAS by default.
These errors may also appear due to poor power quality or overloading the Pi's maximum 1.2A downstream USB port current, but if they persist when using a powered hub then they are genuine UAS issues." (source).

Disabling UAS

To disable UAS support, users must specify idVendor and idProduct devices. The lsusb utility returns this information:
pi@microbox:~ $ lsusb
Bus 002 Device 002: ID 152d:0578 JMicron Technology Corp. / JMicron USA Technology Corp. JMS567 SATA 6Gb/s bridge
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

For my USB drive, idVendor and idProduct are 152d:0578

Then the user must add the list of idVendor and idProduct pairs to the command in the /boot/cmdline.txt file:

pi@microbox:~ $ cat /boot/cmdline.txt
usb-storage.quirks=152d:0578:u dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p7 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

After restarting, the dmesg command should show that the UAS is disabled for the device:

[    1.208487] usb 2-2: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
[    1.249773] usb 2-2: New USB device found, idVendor=152d, idProduct=0578, bcdDevice= 2.04
[    1.251726] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    1.252750] usb 2-2: Product: External USB 3.0
[    1.253780] usb 2-2: Manufacturer: JMicron
[    1.254797] usb 2-2: SerialNumber: 201703310007F
[    1.259165] usb 2-2: UAS is blacklisted for this device, using usb-storage instead
[    1.261360] usb 2-2: UAS is blacklisted for this device, using usb-storage instead
[    1.263519] usb-storage 2-2:1.0: USB Mass Storage device detected
[    1.265101] usb-storage 2-2:1.0: Quirks match for vid 152d pid 0578: 1800000
[    1.266408] scsi host0: usb-storage 2-2:1.0



Sunday, March 29, 2020

Citrix configuration issues on Linux

I have to use Citrix Workspace to launch a remote VM on my devices Windows and Linux. Unfortunately, I have some difficulties with starting VMs on Linux devices. I collected troubleshooting guides that help to configure the Citrix Workspace App on Ubuntu and Raspbian distributives. All of these environments have problems with certificates.

The error message "unknown error 1000119 verify your connection settings and try again" means that you need to update certificates of Workspace application.
You have to remove cacerts and link to /etc/ssl/certs by the following commands:
cd /opt/Citrix/ICAClient/keystore/
sudo rm -rf cacerts
sudo ln -s /etc/ssl/certs cacerts  
Taken from here

The error message "USERTrust RSA Certificate Authority SSL error 61" means that you have to share the certificate of the host used for connection with your Citrix installation. Because the application can not connect to the https resource due to the lack of the required certificates.
To fix this issue the user should follow this guideline.
(copy the certificate file to /opt/Citrix/ICAClient/keystore/cacerts and then execute command /opt/Citrix/ICAClient/util/ctx_rehash)

The dialog box for exporting the host certificate
Context menu to access the data of the host certificate


Sunday, January 12, 2020

Браузер для устаревших версий Windows

Пост на заметку. В контексте прекращения поддержки ОС Windows 7 компанией Microsoft встает вопрос какие браузеры можно использовать на этой версии ОС (Да и на других тоже). Chrome на Windows 7 будет поддерживаться только до июня 2021 года. С MacOS X до версии 10.10 понятнее, актуальные версии браузеров для этих версий ОС никто не выпускает.

360 Extreme Explorer (wikipedia) - единственный известный мне браузер поддерживающий линейку ОС виндовс от XP до Win10 (Windows XP / Vista / 7 / 8 / 8.1 / 10)

Friday, June 14, 2019

Installation of netsurf

Net-surf  is a lightweight browser with support of HTML4 and CSS2.1.
It is impossible to install net-surf from packages. So, the only way to use it on Ubuntu 18.04 is a compilation from sources. You need to download and extract the latest tar-ball from official web site .

I left here a short overview of the installation process.

Prepare your system:
sudo apt-get update
sudo apt-get upgrade

Install dependencies:
sudo apt-get install build-essential bison flex gperf libgtk2.0-dev libcurl4-openssl-dev libssl-dev libpng-dev libjpeg-dev libgtk2.0-dev

I have installed libcurl4-openssl-dev because I need in libcurl-dev which is shipping with packets:

  1. libcurl4-openssl-dev 7.58.0-2ubuntu3.7
  2. libcurl4-nss-dev 7.58.0-2ubuntu3.7
  3. libcurl4-gnutls-dev 7.58.0-2ubuntu3.7

List of dependencies.

Now the system is ready for installation:
cd netsurf-all-3.8
make
sudo make install

The application will be installed as /bin/netsurf-gtk . To execute you need to run netsurf-gtk.

By default javascript is disabled

Friday, May 31, 2019

Подборка статей прочитанных в мае

Data Science && ML

Почему каждый Data Scientist должен знать Dask
Описание python библиотеки для работы с массивами большого объема. Главная особенность данные могут свопится на диске. Пригодится когда требуется работать с датасетом значительно большим чем объем имеющейся оперативной памяти.

Clouds

Облачные сервисы для игры на слабых ПК, актуальные в 2019 году

Thursday, April 11, 2019

Terminal commands tips and tricks

Run the code in python or node.js

#: python -c "print 2+3"
#: nodejs -e "console.log(2+3)"

Launching a static web server in the current folder

#: python -m SimpleHTTPServer 8000

Work with the system clipboard

I use xsel utility to copy text in the system clipboard.
Copying the path of current folder with xsel:
#: pwd | xsel -b

To copy specific line and range of lines from a file:
#: sed -n '180p' file.txt | xsel -b
#: sed -n '180,182p' file.txt | xsel -b

Download collection of links

I use wget utility with i flag to download resources from the file one by one:
#: wget i <filepath>

Opening a image viewer from the console

#: gpicview <file path>
Where GPicView is a default image viewer in Lubuntu.

Terminal hot keys:

[Ctrl A] move to the beggining of the line

[Ctrl E] move to the end of the line

Tuesday, March 19, 2019

Sharing the internet connection in Ubuntu

My laptop is connected to wireless wifi and wired LAN networks. And I have internet connection on wifi network. So I wanted to share the internet from wifi connection to the computer connected to the laptop by LAN.
I have found some challange to do it on Ubuntu 18.04 so this is a reason why  I wanted to share my experience. I hope it will be usefull.

[Internet] <=> [wifi] <=[Laptop] => [lan] <=> [Wired network]

To open connections widget execute:
#: nm-connection-editor

My network interface in LAN network connected to 192.168.137.1

Lan connection settings

Wifi connection settings

Thursday, February 28, 2019

Python virtual environment in Ubuntu

Installation in ubuntu 18.04
sudo apt-get install virtualenv
Installation in ubuntu 14.04
sudo apt-get install python-virtualenv
Examples
Create new virtual environment with python version 2.7
#: virtualenv venv
Activate virtual environment
#: source venv/bin/activate
or
#: source venv/Scripts/activate

Use command deactivate to deactivate environment.

Sunday, August 20, 2017

Crouton на хромбуке

Решил поднять планку решаемых задач на моем хромбуке Acer C720P. Для этого поставил Ubuntu 16.04 через Сrouton, чтобы иметь возможность периодически запускать различный Linux софт.
CromeBook - идеальный хак девайс, бросающий вызов своему владельцу:

  • В следующем году Google перестанет обновлять ChromeOS для моей модели - надо думать, как что с ним делать;
  • Прикладного софта очень мало - приходится искать любую возможность что бы им пользоваться;
  • Портативеен, включается за 10 секнд - это делает его очень удобным;
  • Можно получить доступ к Linux начинке - это уже решение основных проблем.

Crouton

Это решение которое позволяет запустить окружение Linux дистрибутива на хромбуке в режиме разработчика.
Проект на гитхабе снабжен хорошей инструкцией https://github.com/dnschneid/crouton. Так же есть описание на хабре .

Теперь хромбук в режиме разработчика при загрузке требует для старта комбинацию [Ctrl + D]. Для запуска надо перейти в терминал crosh [Ctrl + Alt + T] выполнить команду shell, которая откроет доступ к обычному терминалу.

Вход к chroot по команде:
# sudo enter-chroot
запуск Xfce (если установлен)
# sudo startxfce4
Переключение в ChromeOS [Ctrl + Alt + Back] (Back - клавиша назад на функциональной панели клавиатуры)
Переключение в Crouton [Ctrl + Alt + Forward] (Forward - клавиша вперед)



Некоторые мысли по настройке окружения LXDE http://oldmachinery.blogspot.ru/2015/03/the-chromebook-strikes-back.html

Saturday, August 19, 2017

Доступ к файловой системе в Termux

Все устанавливаемые приложения и сохраняемые данные хранятся в собственном разделе termux, из которого нет доступа к остальной файловой системе.
Доступ к файловой системе телефона превращает устройство на Android в портативный ПК с консольным интерфейсом. Только надо подключить Bluetooth клавиатуру и привыкнуть к размеру экрана.
С ходу можно установить python, node.js, mc, nano, openssh (управление пакетами).

Storage. Доступ к главному хранилищу

Для этого пользователь должен делегировать приложению Termux к своим данным.
Делается это следующим это в несколько шагов.
Обновляем пакеты
#: apt update && apt upgrade
Запускаем установку
#: termux-setup-storage
После этого в домашней папке должно появится папка /storage
#: cd ~/storage

Несколько полезных ссылок

Описание на официальном сайте: https://termux.com/storage.html
Отличительные особенности конфигурации https://termux.com/linux.html
FTP: https://termux.com/ftp.html
Установка openssh: https://oliverse.ch/tech/2015/11/06/run-an-ssh-server-on-your-android-with-termux.html
Подключение по usb через проброс портов: https://oliverse.ch/technology/2016/09/20/access-termux-via-usb.html

Wednesday, August 9, 2017

Xiaomi Redmi 4

Уже два месяца, как обзавелся Xiaomi Redmi 4. Поэтому могу уже могу сделать вывод о данном телефоне. И он положительный.
При выборе я отталкивался от негативного опыта использования предыдущего телефона - LG Leon, который был приобретен 2-мя годами ранее.

В LG Leon в 2017 году мне не нравилось:
  • 768 Mb оперативной памяти;
  • 4 Gb ROM, который делился равными долями для приложений и данными;
  • 3G и отсутствие 4G - интернет был не шустер;
  • A-GPS - и невозможность определить координаты при отсутствии мобильной сети;
  • не удовлетворительное качество фотоснимков;
Малый объем ROM приводил к сильному дискомфорту, потому что большое число приложение занимало более 100Mb на флеш памяти. Такие приложения как Telegram, Instagram кешировали весь медиа контент на основной flash памяти (а не на sd карте), чем вызывали дикие лаги через несколько месяцев интенсивного общения. Место для других приложений не было.

В Xiaomi Redmi 4 пропало поддержка радио (не критично). Встроенная батарея как компромисс. Sim карту можно менять не выключая телефон. Скриншоты экрана можно делать свайпом 3-х пальцев в низ.

Обнаружил несколько багов:
  • c Sim картой Ростелекома, иногда не возможно восстановить подключение к сети если некоторое время был в не зоны действия сети (ехал в метро, был в другой стране). Наблюдал 3 раза. Иногда помогал рестарт телефона, иногда связь восстанавливалась через пару часов. Есть подозрения, что это было связано с слабым покрытием мобильной сети Ростелекома в месте моих попыток подключится к сети.
  • автоматическое переключение часового пояса в часах. Устанавливался часовой пояс собеседника в телеграмме. Вероятно это связано с настройками оболочки MIUI, потому что поиграв с настройками, оно прекратилось.
Из любимых приложений:
  • maps.me - оффлайн карты;
  • ColorNote - для заметок;
  • termux - эмулятор терминала.

Моя оценка телефона - положительная :)

Saturday, October 17, 2015

Настройка Mac Os X после установки

После того как El Capitan стал доступен для загрузки, он образ системы записан на флешку, что бы заменить собой Mavericks на Mac mini. Сразу после установки приступил к настройке новой системы.

Настройка раскладки
В OS X по умолчанию в системе не назначен шорткат на смену Mac-раскладки клавиатурыСмена раскладки происходит при помощи сочетании клавиш Cmd + Пробел, но этот шорткат был закреплен за вызовом строки поиска Spotlight. Чтобы исправить ситуацию, надо зайдти в Системные настройкиКлавиатураСочетания клавиш и отключить два шортката для Spotlite.
Теперь в меню "Клавиатуры/ввод" надо активировать эти же шорткаты для смены раскладки Mac.

Настройка направления скрола
Как в других ОСПереходим в "Системные настройки/Мышь" и снимаем галочку у "Направление прокрутки: обычное"

Отключаем [CapsLock]
"Системные настройки/Клавиатура" перейдите в раздел "Клавиши модификации"
Для выбранной клавиатуры выберите в выпадающем списке "Клавиша CapsLock" - никакое действие.

Включаем функциональные клавиши
"Системные настройки/Клавиатура" Ставим галочку у "Использовать клавиши F1, F2 ..."

Настройка учетной записи App Store
Я предполагаю, что пользователь будет платить только за тот софт, который ему знаком. Поэтому в App Store, с целью ознакомления будет устанавливать только бесплатный софт. Поэтому в настройках можно добавить опцию сохранить  пароль от App Store для временно бесплатных установок.
Переходим в раздел "Системные настройки/App Store". В самом низу выбираем в чек боксе Покупки и встроенные покупки - Запрашивать всегда, Бесплатные загрузки - Сохранить пароль
За скидками я слежу на http://appshopper.com/ .

Устанавливаем свободный софт
Chrome - google:chrome
Keka - http://www.kekaosx.com/ru/
Vlc - http://www.videolan.org/vlc/download-macosx.html
Android File Transfer - https://www.android.com/filetransfer/
Програмка для передачи файлов с Android старше 5.0.
Если Андроиды 2.х и 4.х монтировались к файловой системе, как сменные носители, то файлы с Android 5.0 приходится доставать через такую программку.
XnView - Для просмотра картинок
Если хочется антивирус, можно попробовать установить Avira
CleanMyMac - http://macpaw.com/ru/cleanmymac
Набор утилит для очистки системы
Софт для кодера
sublimetext http://www.sublimetext.com/3
node.js https://nodejs.org/en/

П. С. буду признателен, если кто-то подскажет свободную альтернативу itunes. Простой mp3 плеер с плейлистами, без магазина, библио/медиатек, адаптера телефона и т. п.
Т.е. я его использую, как mp3 плеер, но подача всего остального функционала провоцирует рвотные позывы.

По этой причине вернулся с  iPhone на Android.

Памятка по хоткеям для Mac Os X

Когда у меня только появился mac mini, я подключил к нему свою старую виндос клавиатуру.
И получил дикий диссонанс из-за различий поведений на хоткеи (хотя знаю человека который за iMac-ом работает с виндовс клавиатурой).

Когда я докупил себе беспроводную apple клавиатуру (мышку оставил старую, проводную), то переучится на новые хоткеи довольно быстро. Проще было привыкнуть к новым комбинациям, когда не можешь найти пальцами старые.
Поэтому приведу как памятку сочетание клавиш.

Управление сессией
Ctrl + Shift + Eject - заблокировать экран с вводом пароля
Cmd + Alt + Eject - переход в спящий режим
Ctrl + Eject - окрыть диалог выключения
Eject - кнопка с иконкой в виде домика в правом верхнем углу клавиатуры

Переключение между окнами
Cmd + [~] - переключение к следуюзему окну текущего приложения (Одно приложение может иметь несколько открытых документов в разных окнах).
Cmd + Tab - переключение к окну другого приложения
Ctrl + [Top] или Fn + F3 - открыть Mission Control. Т.е. показать все открытые не свернутые окна в миниатюрах (с тем чтобы можно было перейти к одному из них)
Fn + F4 - открыть launchpad. Т.е. открыть список установленных приложений
Fn + Cmd + F4 - показать рабочий стол. Все открытые окна будут разогнаны в стороны

Хоткеи для текста
Cmd + [Right] - переход в конец строки
Cmd + [Left] - переход в начало строки
Cmd + [Top] - переход к первой строке
Cmd + [Bottom] - переход к последней строке
Alt + [Left] - перейти к началу слова
Alt + [Right] - перейти к концу слова
Fn + Backspace - удалить символ (Аналог копки Delete, которой здесь нету)

Переключение раскладки клавиатуры
Cmd + [Space]
И эту комбинацию можно менять только на ограниченный набор сочетаний. Так же между ними желательно делать небольшую паузу, потому что комбинация может не сработать из за "системы борьбы с залипанием клавиш".

Хоткеи для Finder
Cmd + [Top] - перейти к родительской папке
Cmd + [C] -  скопировать выбранные элементы файловой системы
Cmd + Alt + V - переместить выбранные элементы файловой системы

Хоткеи для создания скриншотов
Cmd + Shift + [3] - сделать скриншот всего экрана
Cmd + Shift + [4] -  сделать скриншот выбранной области
Скриншоты будут с расширением png и находится на рабочем столе
Если добавить к этм комбинациям пробел (Space) - сохранить скриншот в выбранное место
Если добавить Ctrl - сохранить скриншот в буфер обмена

Tuesday, September 22, 2015

Восcтановление ФС FreeBSD после ресета

Случился досадный фейл при попытке вставить флешку в системный блок на FreeBSD. Он подвис, и после перезагрузки пропал из списка DHCP клиентов - для терминальной системы это потеря признаков жизни.
В терминале обнаружил сообщение о проблемах с файловой системой "segmentation fail 11".

Поэтому собрал, что мне помогло оживить этот труп.
Первое что я нашел в интернете (но не помогло)
#: fsck -y /
#: mount -w /
Потом, по списку устройств из cat /stc/fstab
#: fsck -y -f /dev/ad0s2a
Где
'-y' - флаг, дающий право производить любые необходимые действия для восстановления
'-f' - в документации значилось, как "force check"

Так же нашел мудрый совет - добавить в стартовые скрипты проверку файловой системы fsck-ом.
#: echo 'fsck_y_enable="YES"' >> /etc/rc.conf
#: echo 'background_fsck="NO"' >> /etc/rc.conf

Saturday, September 5, 2015

Избавился от старых трубок

Благополучно избавился от 2-х мобильных трубок.
Аппараты остались после апгрейдов и лежали без дела. Поэтому чтобы они не превратились в мусор с умершими батареями я продал их через avito.
Пока продавал, вспомнил, про Yota. Вероятно этот оператор не подойдет по частотам, для этих трубок.

Выкладываю фотки на память.

Nokia 6030
  • Количество sim: 1
  • GSM: 900, 1800
  • Платформа: Series 40 2nd Edition
  • Вес: 90г
  • Емкость батареии: 900 mAh
  • Экран: TFT 128x128px 65 тыс. цветов
  • Дополнительно: Радио
  • Телефонная книга: 300 контактов

Samsung E1182 Duos
  • Количество sim: 2
  • GSM: 900, 1800
  • Вес: 68г
  • Экран: TFT 128x128px
  • Дополнительно: Радио
  • Емкость батареии: 1000 mAh
  • Телефонная книга: 500 контактов

Sunday, January 11, 2015

После новогодний пост

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

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

Обнаружил, что за последние годы мой почтовый ящик засветился в разных списках рассылок. И каждый более менее серьезный ресурс от твиттера и фейсбука до торент трекера ежедневно бомбит мой ящик свежей порцией спама. Отписываюсь, удаляю тонны накопившейся почты ( > 8000).

Осенью переехал на MacOs X и Mac Mini как на основную систему.
Подтолкнуло к такому шагу смена места работы и необходимость плотной работы с сафари и собственоручное тестирование.

Новый девайс - Mac Mini mid 2010 c 4 Gb Ram, производительность вполне удовлетворительная.
С непривычки больше месяца мучался с раскладками клавиатуры. Как бонус получил систему в которой есть фотошоп и могу открывать psd файлы без гемороя с gimp.
Теперь дома windows доступна на ноутбуке, ubuntu на другом системнике. Музыкальная коллекция, для удобства доступа, переехала на Android смартфон.

Из ново приобретенных привычек макавода - это просмотр списка бесплатных приложений. Само собой, соответствующая страница в закладках браузера, открываю раз в сутки, как прогноз погоды. Для этих целей пришлось даже заапрувить в App store дебетовую карту, без этого нельзя установить даже бесплатный софт.
Вообще для таких операций лучше использовать виртуальную предоплаченную карту с минимальной суммой 50 рублей. Потому что в моем случае, я использовал только реквизиты старой карты, и Apple удовлетворило их наличие. Но Apple может поменять условия в любой момент.

К положительному чертам мак оси и всего софта могу отнести слаженной стандартизированной организации горячих клавиш. Т.е. набор клавиатурных комбинаций идентичен между приложениями. Это положительно сказывается на персональной продуктивности. Что-то подобное реализовано в Ubuntu, но в других менее популярных дистрибутивах с этим хуже.

Стабильность работы системы и софта, нормальная. В том смысле, что в ребут система не уходит, но иногда чтобы убить вышедший из под контроля процесс приходится перезагружать систему. Что то подобное имеет место быть и на Windows 8.1 и на некоторых версиях Ubuntu.

Под Mac есть сборки для популярных свободных приложений, поэтому дискомфорта от перехода не было:
  • Sublime
  • Chrome
  • uTorrent
  • FileZilla
  • VLC
  • XnView (спорный кандидат в хорошие просмотрщики фоток)
Из appStore:
  • Keka - архиватор
  • ViewPic - просмотрщик картинок
Из Apple софта:
  • mail
  • itunes
Другое не распробовал. Если буду ставить офисный пакет, то это будет LibreOffice
В общем софт из AppStore не сильно богат по функциональности, поэтому приходится ориентироваться на межплатформенное свободное ПО.

В профессиональной стороне из того что вспомнилось пока набирал пост.
Перешел с Grunt на gulp, с SCSS на SASS (про LESS перестал думать).
В разаработке приложений подсел на паттерн MVP (Backbone.js). Да так что с мастерил самописный "облегченный" клон фреймворка заточенный на ES5, который использую в некоторых проектах (в том числе браузерных расширений)
B serverside больше делал на node.js/express.

Monday, August 11, 2014

Upgrade MSI Wind

В 2008 году приобрел MSI Wind u90x. Это был только что появившийся в продаже нетбук с процессоромAtom N2700 512 Mb оперативной памяти и 80 Gb Hdd.

Активно использовал пока учился в университете. Потом некоторое время пылился на полке. Безуспешно пытался его толкнуть на avito.

После последнего переустройство своего "рабочего" места дома нашел ему новое применение - как стационарный компьютер. По найденным в сети описаниям разборки произвел небольшой тюнинг.

Upgrade:
  • Подключил мышь, клавиатуру, монитор
  • Добавил памяти до 1.5Gb
  • Заменил hdd на 60 Gb SSD
  • Поставил Lubuntu
Profit:
  • Низкое электро потребление
  • Бесшумная работа
  • Прирост скорости при воспроизведении медиа контента
  • Комфортный серфинг в браузере
Технический бэкграунд
По объявлением в авито пришел к выводу что люди активно пытаются избавиться от того класса устройств. Выставляют ценик на уровне 3.5 - 4.5 тыс. рублей. Несмотря на устаревание, нетбук сделан на вполне удовлетворительной элементной базе.
Так жесткий диск имеет интерфейс sata поэтому ему легко удалось найти ssd замену (в отличие от ide). Интегрированное видео поддерживает максимальное разрешение экрана 1280 х 1024 пикселей на дисплей с vga разъемом.


Sunday, November 10, 2013

Шпаргалка по работе с портами FreeBSD

За несколько лет работы с FreeBSD 8/9 собрал множество заметок по работе с софтом в FreeBSD. Собрав их все в месте выкладываю в одном посте.

Содержание:
  1. Поиск портов;
  2. Установка и конфигурирование  порта;
  3. Аудит установленных портов и зависимостей между ними;
  4. Удаление портов;
  5. Обновление портов.
Поиск портов

Поиск порта можно осуществить четырьмя способами:
Поиск портов 1-й способ:
#: cd /usr/ports
#: make search name=<имя_порта>
Поиск портов 2-й способ:
#: cd /usr/ports
#: make search key= 
Поиск портов 3-й способ:
#: cd /usr/ports
#: locate <название_порта>
Поиск портов 4-й способ:
#: whereis <название_порта> 

Установка и конфигурирование  портов
Процедура установки
Рассмотрим процедуру инсталляции порта по этапам.
1. Конфигурирование порта:
#: make config
2. Конфигурирование и установка необходимых зависимостей порта
#: make configure
3. Сборка 
#: make
4. Установка
#: make install
5. Очистка созданных во время компиляции и конфигурирования файлов
#: make clean

Операции можно сократить:
#: make configure && make && make install && make clean

Полезные опции утилиты make
Просмотреть получившуюся конфигурацию (созданную командой make config) порта можно командой:
#: make showconfig
Загрузка всех зависимых портов:
#: make fetch-recursive
У каждого порта можно узнать список его  зависимостей:
#: make all-depends-list
#: make run-depends-list
#: make build-depends-list
Удаление файлов созданных во время сборки зависимых портов:
#: make clean-depends
Переустановка пакета:
#: make reinstall

Обновление установленного порта
Для поддержания системы в актуальном состоянии необходимо периодически производить обновление установленных пакетов. Это можно сделать с помощью утилиты portupgrade (/usr/ports/sysutils/portupgrade/)
Обновление порта:
#: portupgrade название_программы
Если вы хотите обновить только определенное приложение, но не полностью базу данных, используйте portupgrade pkgname, с флагом -r, если portupgrade должен отработать все пакеты, которые зависят от указанного, и использовать флаг -R для отработки всех пакетов, которые требуют указанные пакеты.
Так же можно обновить пакет перейдя в его директорию в папке /usr/ports/ и выполнив:
#: portupgrade 

Обновление дерева портов через portsnap 
Для первого запуска:
#: portsnap fetch
#: portsnap extract
Для всех последующих запусков:
#: portsnap fetch
#: portsnap update
Или
#: portsnap fetch update

Обновление портов с помощью portupgrade
#: portsnap fetch update
#: portupgrade -arR
Второй командой будут скачаны исходники всех портов, нуждающихся в обновлении, распакованы, скомпилированы и инсталлированы в порядке, определяемом зависимостями.
Ключи portupgrade:
-a - обновление всех портов, для которых portversion выявила "старение" по сравнению с текущим деревом;
-r - рекурсивное обновление всех портов, которые зависят от установленных и обновляемых;
-R - рекурсивное обновление всех портов, от которых зависят пакеты, установленные в системе.
Две последние опции могут показаться тавтологичными, но это не так: только их сочетание позволяет корректно обновить все установленные ранее пакеты (да и то не всегда - в некоторых случаях может потребоваться ручное вмешательство). 

Устранение возможных неполадок и пере конфигурирование собранного порта.
Варианты развития событий:
Вариант 1 — необходимо пере конфигурировать пакет.
Необходимо удалить собственную заданную с помощью make config конфигурацию:
#: make rmconfig
Затем можно начинать с начало всю процедуру инсталляции
Вариант2 — необходимо пересобрать порт с другим набором зависимостей или конфигурациями этих зависимостей.
Есть такой момент, что опции заданные через make configure задаются один раз. При последующих попытках пересбора порта могут появится сообщения вида:
… Found saved configuration for <имя пакета> …
Один раз заданные опции порта хранятся в /var/db/ports//options .
Для того чтобы иметь возможность заново переконфигурировать все зависимости пакета следует файл options удалить
Подробнее можно прочитать п. 5.11.2: http://www.freebsd.org/doc/ru_RU.KOI8-R/books/porters-handbook/makefile-options.html

Удаление портов
Удаление портов с помощью утилиты pkg_deinstall
Ключ -r
#: pkg_deinstall -r
Удалить все пакеты, которые от него не зависят без учета зависимостей от него других пакетов. Т. е. удаляет порт и все, что от него зависит — рекурсия к листьям.
Ключ -R
#: pkg_deinstall -R
Удалить пакеты и пакеты, которые от него зависят — рекурсия к корню. При этом пакеты используемые в других портах будут пропущены (если pkg_deinstall без ключа -f).

Аудит установленных портов и зависимостей между ними
Утилита pkg_tree
Утилита pkg_tree строит визуальное дерево пакетов и их зависимостей.
#: cd /usr/ports/ports-mgmt/pkg_tree ; make install clean
Используемые ключи:
  1. -v - зависимости зависимостей.
  2. -t - чтобы показывать только верхнего уровня пакетов.
  3. -b - чтобы показать только нижний уровень пакеты.
  4. -t -q - даст список верхнего уровня пакетов без их зависимостей, установка только этих пакетов должны установить всех установленных пакетов.
Список установленных пакетов и портов:
#: pkg_info
Поиск установленных пакетов по части названия
Для поиска пакета с помощью утилиты pkg_info необходимо ввести не только полное название, но и версию пакета, что иногда может вызвать трудность.
C ключом -x можно указать только первую часть названия пакета:
#: pkg_ingp -xc lynk

Как узнать какие файлы относятся к данному пакету:
#: pkg_info -xL имя_пакета

Как узнать какому пакету необходимо обновление:
#: pkg_version -v | grep «need»