wifi
Двухдиапазонное ускорение сети
И вот, спустя одиннадцать лет, обнаружил в своём смартфоне похожую функцию.
Моя идея была в том, чтобы цепляться сразу к двум точкам и использовать их обе для распределения соединений. Тут, насколько я понимаю, точка одна, зато могут использоваться два диапазона — более дальнобойный и медленный на 2,4 ГГц и 5 ГГц — более скоростной, но с меньшим покрытием.
Моне и Мане
Вот уже уже больше десяти лет я завожу дома две отдельные точки — на частотах 2,4 ГГц и 5 ГГц. Так меньше проблем — эмпирически выяснилось, что некоторые модели ноутбуков и смартфонов (включая современные) неправильно оценивают на какой частоте им лучше работать. Если точки назвать
На прежней квартире точки назывались Вилларибо и Виллабаджо в честь конкурентов из известной в то время рекламы, но время идёт, и всё меньше людей знают в чём тут шутка.
При переезде образовалась хорошая возможность сменить точку. Решил на этот раз взять в название
Гостевую сеть, естественно, назвал «Le déjeuner sur l’herbe» («Завтрак на траве») — картина с таким названием есть и у Моне, и у Мане.
WiFi и Macbook
Ещё перед «самоизоляцией» я подготовился — купил новый роутер, чтобы улучшить дома ситуацию с вайфайными сетями. До этого была эпловская «Тайм Капсула» и она уже не справлялась — с трудом пробивалась через зашумлённый соседями эфир и толстые стены, да и количество подключенных устройств уже превысило её возможности — одних только гаджетов «умного дома» у нас больше 30.
Первое время сеть работала действительно получше или я себя в этом убедил —
У МакОСи есть неприятный недостаток — при подключении к вайфаю, она смотрит текущую страну через устаревший протокол 802.11d и, в зависимости от того какую страну она увидит на первом попавшемся роутере (возможно соседском), принимается решение какие каналы вайфая должны ловится, а какие нет.
Мои соседи светят в эфир кодами России, Великобритании, Китая и Германии. В этой «русской рулетке» то везло, то нет, и видимо чаще попадались «неудачные» коды, потому что ноутбуки цеплялись к перегруженной сети 2,4, вместо почти пустой пятигигагерцовой, которую они временами вообще не видели.
На эту тему много и подробно написано в интернете, поэтому я рисую проблему лишь общими мазками.
Чаще всего предлагаются три решения разной степени выполнимости — либо выставить на своём роутере нужный код страны, повесить его на канал №1 и молиться, чтобы он находился первым, либо договориться с соседями и дружно установить всем один и тот же требуемый код, либо пропатчить операционную систему (последнее надо делать регулярно при каждом обновлении).
Это решение чудесным образом лечит все проблемы, нужно только установить в «системных настройках», в списке предпочтительных сетей пятигигагерцовую сетку первой или вообще не подключаться к сети 2,4 ГГц.
Подпилил переподсоединялку вайфая
Чуть поменял «переподсоединялку вайфая» для Мака — теперь пингуется не 8.8.8.8 (это ДНС Гугла), а адрес гейта, что более надёжно. Правда с конца октября, когда я её написал много воды утекло — вайфай у меня отваливается теперь очень редко, уж не знаю что изменилось.
Переподсоединялка вайфая

Вышло очередное обноление «Эль Капитана» на «Маке», а проблема с вайфаем на «Макбуках Про» так никуда и не делась. Я планирую
В общем, сделал себе на «Баше» утилиту переподключающую вайфай при пропадании пингов до 8.8.8.8 (это ДНС «Гугла»). Сегодня уже целый день её использую, так гораздо комфортнее.
Две Wi-Fi-карты
У вас не было такого, вы сидите в аэропорту, ещё три часа до вылета, делать нечего, доступно несколько открытый сетей вайфай, а скорость на той, к которой вы подключены всё время скачет? Приходится время от времени проверять как дела у «соседей», не лучше ли скорость на них?
Вот я очень хочу, чтобы в моём ноуте было две карты вайфай. Одна — для текущих соединений и чтобы вторая сканировала сети в поисках лучшей жизни. Если вторая карта такую сеть находит, то теперь она становится основной, роли меняются.
Наверное был бы интересен и другой сценарий. Например, доступно две
Жаль, что производители ноутов до этого не додумались.
Занятость каналов WiFi

Что делать перед днём программиста как не программировать? Я настраивал точку доступа дома и пытался выбрать более свободный канал. Быстро найти подходящую утилиту под Mac OS X я не смог, поэтому начал её писать на bash. До конца не дописал (хотел ещё обозначить сколько устройств на одном канале висит), то что есть выкладываю — не пропадать же добру! Дальше.
#!/bin/bash
declare -a dots
TEMP=$(mktemp -t `basename "$0"`)
trap "/bin/rm -f $TEMP" EXIT
if [ -z $1 ]; then
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s > $TEMP
else
/bin/cp "$1" $TEMP
fi
# Если название точки содержит пробел, у нас всё поедет, надо избавиться от названия
# для этого мы меряем с каким отступом идёт первая строка (6 — это длина слова SSID, плюс пробелы)
cutname=`awk 'NR==1 {l=length; gsub(/^ +/, ""); print l-length+6}' $TEMP`
# Название будет отрезано командой cut
while read line; do
line=($line)
chs=(${line[2]//,+/ })
# Берём только каналы 2,4ГГц
if [ ${chs[0]} -gt 13 ]; then
continue
fi
# Округляем уровень сигнала
let lvl="(100 + ${line[1]} + 9) / 10"
# Уровень прозрачности верхней линии
let alpha="$lvl*10 - (100 + ${line[1]})"
# Номера каналов
let start="${chs[0]}-2+1"
let end="${chs[0]}+2+${chs[1]:-0}*5+1"
# Набор точек для рисования прямоугольника wifi-точки
for x in $(seq $start $end); do
# Прямоугольник закрашивается сплошным…
for y in $(seq 0 $(($lvl - 1)) ); do
dots[$x+$y*100]=10
done
# Кроме верхней границы, она закрашивается значением
# наибольшей насыщенности
let xy="$x+($y+1)*100"
if [[ -z ${dots[$xy]} || ${dots[$xy]} -lt $alpha ]]; then
dots[$xy]=$alpha
fi
done
# отрезаем заголовок, отрезаем название точки, сортируем по уровню сигнала
done < <(tail -n +2 $TEMP | cut -b${cutname}- | sort -rgk2)
# Блоки по насыщенности границы
blocks=(_ ░ ░ ░ ▒ ▒ ▒ ▒ ▒ ▒ █)
# Цвета вертикальной оси
colors=(32 32 32 32 32 33 33 31 31 31 31)
# Счётчик вертикальной оси
lvl=0
declare -i alpha
# Отрисовка шкалы и данных точек
for y in {10..0}; do
printf "\033[${colors[-$lvl/10]}m% 4d " $lvl
let lvl="$lvl - 10"
for x in {0..15}; do
alpha=${dots[$x+100*$y]}
if [ $alpha -le 0 ]; then
echo -n ' '
else
b=${blocks[$alpha]}
echo -ne "\033[37m$b$b$b"
fi
done
echo
done
# Горизонтальная ось
echo -e "\033[30m -- -- 01 02 03 04 05 06 07 08 09 10 11 12 13"
echo -e "\033[0m"