LINUX.ORG.RU

Сообщения hlamotron

 

Почему у хостера KVM-виртуалок возможны большие сетевые задержки и резкое сужение канала, которое лечится ребутом виртуалки?

Форум — Talks

Почему такое может быть возможно? Когда перезагрузка лечит такую болезнь: повысились пинги туда-сюда (на виртуалку и с неё), сузился канал связи (до 25кбпс например), загрузка проца на виртуалке всё время не превышает 10%, мониторинг трафика не говорит о том, что валится куча пакетов или идёт какой-то ддос. И тут раз и перезагрузка всё волшебно излечивает. В чём может быть прикол? Перезагрузка перетащила виртуалку на другое железо с исправным трансмиттером или «забиндила» на другую сетевуху? Интересна природа такого лечащегося ребутом сетевого прикола.

 

hlamotron
()

Где почитать «всё о перекодировании видео ютубом»? Как ютуб перекодирует видео?

Форум — Talks

1. Есть FullHD 30fps видео, снятое samsung note 4, которое визуально не вызывало подозрений в низком битрейте, хотя конечно это не 28 mbps которое пишет panasonic tm900 и не более конские битрейты от профессиональной техники (ещё есть адские моды для смартфонов, которые фигачат по 100mbps — https://forum.xda-developers.com/note-4/themes-apps/galaxy-note-4-n910c-ultra... ).

$> mplayer -vo null -ao null -identify -frames 0 FILE.mp4| grep kbps
VIDEO:  [H264]  1920x1080  24bpp  30.000 fps  16997.8 kbps


$>ffprobe FILE.mp4 2>&1 | grep kb  
  Duration: 00:05:39.37, start: 0.000000, bitrate: 17252 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 16997 kb/s, 29.83 fps, 30 tbr, 90k tbn, 180k tbc (default)
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 255 kb/s (default)
В общем, битрейт наверное был адаптивный, но при просмотре глазами FullHD файла было ощущение адекватного битрейта, никакого мыла видно не было.

2) При заливе на ютуб, ютуб породил среди прочих 480p - версию видоса. Зазыр 480p версии обнаружил кучу мыла. Как так надо было сделать даунскейл оригинального годного материала, чтобы получилось мыло? Почему при съёмке в более конские битрейты, такого не происходит, хотя визуальных отличий при просмотре обоих версий в FullHD мыла не обнаруживают? Ютуб просто смотрит на формальное значение битрейта и перекодирует в более низкий битрейт, задавая значение выходного битрейта ПРОПОРЦИОНАЛЬНО определённому «входящему»? Скажем, если снять статический кадр на 100 mbps и на 5 mbps, то ютубная 480p-версия этого видоса будет в первом случае например с 20 mbps, а во втором 1 mbps? А нафига? Вдруг 100mbps было избыточным, а 5 - самое то для данного кадра? Ютуб как-бы не в курсе, что иногда надо оставить исходный битрейт, а не снижать его втупую? Вообще является ли бредом описанная тут «гипотеза о пропорциональности» и всё не так, или написанное тут близко к правде?

Мнения «ютуб говняет картинку» не интересны, нужна инфа от кого-то, кто реально пытался «мерять» ютуб или что-то серьёзное о нём читал.

Просто слегка непонятно, почему мои адекватные 17 mbps привели к херне, а у других людей получаются прекрасные 480p-версии видоса без мыла. Они что, снимают с конскими НЕНУЖНЫМИ запасами битрейта? Или ютуб выковыривает из файла метаинфу и говорит «ага, это снято сраным самсунгом, он нам не проплатил, поэтому обосрём этот видос, а это прекрасным айфоном - подтянем битрейт».

 

hlamotron
()

Как кодить и запускать App на Android без ATD Plugin и без Android Studio?

Форум — Development

(Ответы в конце поста!)

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

Т.е.

1) Беру свой редактор: eclipse, vim, gedit и т.п. Пишу в этих редакторах манифесты, .java файлы и т.п. Что и как писать, чтобы запилить простую софтину?

2) Запускаю сборку проекта в консоли, получаю некий .apk или что там.

3) Запускаю некую консольную тулзу, которая фигачит сборку на живой девайс по USB, запускает его там.

Хочется набора не связанных операций, а не некую студию с кнопкой «build + run».

Можно ли так? Как? При этом чтобы в производственной цепочке не было официально призираемых гуглом тулзов.

Опишите как будет устроен каждый пункт физически. Что за тулзы запускать, как компилить, как собирать сборку, в какой последовательности, от чего что зависит и т.п. Дайте мануал.

Т.е. я хочу максимально консольной жизни, при этом официально поддерживаемой и совместимой со всеми топовыми фичами. Я хочу писать манифесты руками, понимая каждый символ, а не таскать кнопочки в студиях.


_____________________________________
Кусок ответов.
_____________________________________

1. Что и как писать — ответ in progress.

2. Чем собирать — в комплекте Android Studio есть билдер Gradle. Пишем ему build.gradle, запускаем в консоли. Дальше гуглить. https://stackoverflow.com/a/32643466/749515

Не работает нихрена.

Скачал sdk-tools-linux-3859397.zip отсюда https://developer.android.com/studio/index.html ( В САМОМ НИЗУ СТРАНИЦЫ ). Распаковал .zip, положил в:
/ar/bin/tools

Берём вот этот сэмпл-пример-проект:
https://github.com/googlesamples/android-Camera2Basic
клонируем сюда:
/ar/src/android_examples/android-Camera2Basic

Идём куда склонировали, запускаем:

ANDROID_HOME=/ar/bin/tools /ar/bin/android-studio/gradle/gradle-3.2/bin/gradle .

Оно говорит:

You have not accepted the license agreements of the following SDK components:
  [Android SDK Build-Tools 25.0.3, Android SDK Platform 25].
  Before building your project, you need to accept the license agreements and complete the installation of the missing components using the Android Studio SDK Manager.
Что делать - непонятно. Пробовал:
/ar/bin/tools/bin/sdkmanager --update
Не помогло.

3. Консольная тулза — adb. Позволяет многое, даже коннект через wi-fi, установку APK, запуск софтины, копирование файлов туда-сюда, выполнение шелл комманд. Официально поддерживается.

adb pull /mnt/extSdCard/DCIM/Camera/20170606_172501.jpg /tmp/1.jpg
adb shell ifconfig wlan0

 

hlamotron
()

Почему header добавляют в конец блока в B-Tree / SSTable и прочие.

Форум — Development

Часто замечаю, что в блок B-Tree или в какой-то там файл SSTable добавляют некий индекс или контрольный header в конец файла/блока.

В SSTable (не помню в каком там именно месте), есть такая история, что сначала грузится индекс из файла, а потом в этом индексе мы смотрим какой блок из этого файла надо загрузить. Так вот эта хрень, которая грузится вначале, лежит в конце файла. Нахренища?

Почему? Хоть одна причина таких решений где?

 ,

hlamotron
()

Как в leveldb реализована memtable? Это хеш-таблица или B-tree?

Форум — Development

Сабжеваторство. Обсудите.

Мда, я тупой. Там ключи сортируются, значит в памяти какое-то дерево, наверное мелкое btree. Да и помню на презенташках про LSM сказано, что в памяти btree обычно.

 

hlamotron
()

Как «вкомпилить» произвольный файл в C++ софтину в виде некой секции данных?

Форум — Development

Сделать что-то типа создания ELF-секции данных, куда вкомпиливается произвольный файл. Только как содержимое этой секции запамить на абстракцию высокого уровня, типа struct { char *p; size_t size; }?

 

hlamotron
()

Ищется хостинг.

Форум — Talks

Надо где-то перезахостить https://fintank.ru Ему надо 1 гиг ОЗУ, неск. гигов диска, стабильный низколатентный (в масштабах МСК-СПб) инет, белый IP. Это может быть чей-то системник под столом (можно падать на день в месяц, остальное время идеально работать). Нужны гарантии наличия процессорного времени у виртуалки, гарантии свободного канала. Чтобы всплеск трафика до 500кбпс не упёрся в чьи-то торренты, чтобы куча других процессов и виртуалок не отжали ни миллисекунды у моего.

Год хостился у добровольца с лора на его системнике под столом, но он решил уехать жить на северный полюс и подарить квартиру вместе с компом в фонд развития таганрогского опенсурса!

Либо дайте совет, где есть слабенькие и недорогие dedicated ксеончики в московском дата-центре.

VPS/VDS — кстати в чём разница, кроме названия? Как мне определить, что заказанная виртуалка не запущена на одном 24-ядерном серваке с 100 другими виртуалками? Такой расклад меня не устроит, ибо вероятность что пожрут моё время.

 

hlamotron
()

Посоветуйте dedicated-сервако-интернето-провайдера.

Форум — Talks

Хочу dedicated, но мне много не надо. Не intel atom, но хотя-бы простенький Xeon.

Тут есть E3-1230 за 3500 руб. Но непонятно чё там с интернетом. Ну вот прям там рядом нигде явно не написано, прилагается ли хотя-бы dual-up интернет в комплекте.

https://selectel.ru/promo/dedicated-sale/

Тут https://hosting.reg.ru/dedicated/ почти то же самое уже за 5 тыров. Но там явно указано, что даётся. Какой канал и т.п. И даже анти-DDoS есть.

Что брать-то? Критично 10 ms до среднестатистического московского домашнего проводного компа юзверя. Геймдев. Или где-то дешевле бывает?

 

hlamotron
()

Почему micro-USB разъём не работает с некоторыми зарядниками?

Форум — Talks

В телефоне micro-USB интерфейс для зарядника. После супер-разрядки аккума, он перестал заряжаться штатными средствами. В одном сервис-центре ткнули питалово в аккум на прямую, он «пнулся». Но заряжаться при этом через разъём не стал. Во втором сказали, что надо менять разъём. Возможно обманули. Поменяли разъём. Втыкают свой кабель - зарядка идёт. Втыкаю 3 разных своих рабочих кабеля - нихрена.

В чём может быть техническая магия? У них свой хитрый кабель с перепутанными плюсами, которым они торгуют под соусом замены разъёмов? )

https://images-na.ssl-images-amazon.com/images/I/51djySNYPcL._SX522_.jpg

 

hlamotron
()

ldd - вопрос по линковке.

Форум — Development

На 2 разных машинах ldd показывает разное для либы с одним именем.

(1)

[vvv@xen02 DIR]$ ldd /usr/lib/libc++.so
/usr/lib/libc++.so:
	libthr.so.3 => /lib/libthr.so.3 (0x8013a1000)
	libc.so.7 => /lib/libc.so.7 (0x80081b000)
	librt.so.1 => /usr/lib/librt.so.1 (0x8015c4000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8017c9000)

(2)

[ccc@zuzu DIR]$ ldd /usr/lib/libc++.so
/usr/lib/libc++.so:
	libcxxrt.so => /usr/lib/libcxxrt.so (0x8012b8000)
	libthr.so.3 => /lib/libthr.so.3 (0x8014d5000)
	libc.so.7 => /lib/libc.so.7 (0x80081b000)
	librt.so.1 => /usr/lib/librt.so.1 (0x8016f8000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x8018fd000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x801b0b000)
	libm.so.5 => /lib/libm.so.5 (0x801e21000)

Что означает тот факт, что у второй больше строк? Первая собрана с флагами, урезающими функционал? Или ldd выводит только строки для либ, которые смогла найти, а не все зависимости?

Ниже пишут, что вторая либа - для шланга, а первая для gcc. Но я думал у gcc вообще нет такой либы как -lc++, это только шланговая фича. Я кусок дебилоида?

 

hlamotron
()

Осоветуйте andrpod-телефон за 7-10 тыров (за новый).

Форум — Talks

Ну или за неновый, авитный.

1. Ведроед
2. Более-менее свежая ось
3. Хорошая камера
4. Не ломучий

P.S.

Короче склоняюсь к тому, чтобы за 12 тыр взять samsung note 4 на авите в отл. состоянии. Профит: камера с оптическим стабом, ваком перо, 3 гига озы, сменная батарея, карта памяти...

 

hlamotron
()

HBase / Cassandra - как физически данные лежат на диске?

Форум — Development

Сам вопрос можно найти наверное в последнем абзаце этого сумбурного поста.

Как в системах, моделирующих BigTable данные лежат на диске? Что с чем лежит ближе?

Например имеем табличку:

                 a:a       a:b      zz:a    zz:b
"com.cnn.news"   zuzuzu    sobaka   foo     -
"ru.mail"        -         -        -       murmur
"ru.mail.foto"   -         -        -       bububu

Тут у нас 2 column family: a, zz. Прочерк - данных нет.

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

Сканировать все строки какого-то столбца в BigTable — это так же быстро, как в column-oriented DB? Или одна column family может рассматриваться как таблица, похожая на InnoDB где ряд колонок пакуется в одну запись и строки лежат целиком друг за другом?

В гугловой бумаге https://static.googleusercontent.com/media/research.google.com/en//archive/bi... написано, что одна column family держит свои данные отдельно от других column family. Значит ли это, что я могу создать column family из 1 колонки и получить таким образом column-oriented СУБД поведение с точки зрени хранения? У меня эта колонка будет лежать на диске отдельно, храня данные всех своих ячеек последовательно друг за другом и обеспечивая быстрый скан по этой колонке?

Но там ещё есть версии (timestamp) на каждую ячейку. Где это timestamp хранится и как? При сохранении колонки, сохраняются последовательно все её версии? Т.е. если мы сканируем колонку, то если в какой-то из них было 1000 значений, то мы «запнёмся» об это, т.е. пока не проскипаем 999 версий, не получим нашу?

Короче, я так понял BigTable-подобные решения (типа HBase) строят на чём-то типа LevelDB — это тупо key=value LSM хранилка. Неважно, что она LSM, важно что key=value. Правильно я понимаю, что BigTable в самом низком уровне имеет просто key=value систему? Так вот, мой вопрос и касается того, какие именно ключи будут лежать в системе для моей вышеприведённой таблички. Если можно ткните в конкретный сырец, который реализует интерфейс между «row» -> «column» -> timestamp и ключом. Я предположу, что ключ для key=value вычисляется так:

(псевдо PHP-код)

$key = $row_key + $column_family + ":" + $column_key + $timestamp;

 

hlamotron
()

Google BitTable: как на диске оно хранится?

Форум — Development

Что с чем лежит вместе? 2 разных версии одной ячейки (для разных timestamp)?

Т.е. условно говоря, как выглядит составной ключ? Так?

(row_key, column_family, column, timestamp)
//порядок важен

 

hlamotron
()

СУБД оптимальная для форумов/чатов?

Форум — Development

По сути нужен движок, оптимизированный под хранение «очередей». Топик/чат/дискуссия - это всегда очередь/list/vector. Элементы часто тупо не удаляются, а помечаются «deleted».

Не хочется ваять традиционную табличку в реляционке, где есть:
(это абстрактный псевдо-SQL)

create table posts (
      topic_id INT,
      message_id INT autoincrement,
      msg VARCHAR
) INDEX (topic_id, message_id);

куда потом пойдут селекты вида:

SELECT .. from posts where topic_id = 555 ORDER BY message_id offset ..;

Хочется чего-то проще, менее общего назначения, более специфичное. Пускай не SQL - пофиг вообще.

1. Топик/тред - всегда последовательность событий (древовидные не смотрим пока). Это должно «осознаваться» самим движком, а не приложением: движок должен понимать что он добавляет событие В КОНЕЦ очереди и присваивать ему нужные для этого атрибуты сам (номер в последовательности, например). Конечно традиционный автоинкремент имеет то преимущество, что можно дропнуть строку и значения автоинкрементных полей сохранятся какие были, а не съедут назад на 1, но мы не будем в нашем движке ничего дропать.

2. В списке тредов часто делают авто-всплытие свежих тредов наверх. Пускай наш движок хранения очередей тупо имеет timestamp пополнения каждой из очередей и мы это можем (а можем и НЕ) использовать для этих целей.

3. Как хранят древовидные системы срачевания (комментирования) - вообще слабо представляю, по-моему никак; это всегда тяжело и ненужно; в нормальных заведениях рубят уровень комментирования очень рано, на ютубе например лесенка вообще только до 2 уровня идёт.

Короче, какие системы для реализации форумов/комментариев в виде такого вот «хранения очередей» существуют?

 

hlamotron
()

Где SSL-сертификаты бесплатные щас раздаются?

Форум — Talks

Сабжевание.

Ответ: lets encrypt, походу.

 

hlamotron
()

Как найти ThinkPad с нормальной LED-матрицей.

Форум — Talks

Есть IPS, есть не-IPS. У самого было несколько T60 и T60p с IPS-матрицами. Когда смотрел в «обычные», плохо понимал как это люди едят. Но потом заметил у народа «обычные» матрицы, с которыми жить можно. Может они не IPS, но без явного эффекта «негатива», когда картинка уходит в негатив при отклонении крышки ноута.

Так вот, у каких моделей IBM / Lenovo не сильно древних (с процами core i3 / core i5) вменяемые матрицы, пусть даже не IPS? Обязательным условием для меня является LED, чтобы жрало поменьше батарейки, было плоским, меньше грелось и не имело риска убиения лампы подсветки.

 

hlamotron
()

Кто-то говорил, что ThinkPad X230 хуже X220.

Форум — Talks

Типа X220 наиболее оптимален из-за какого-то аппаратного вопроса. Из-за клавы что-ли? В X220 она ещё старорежимная, царская, а в x230 уже хипстерская.

Или там какой-то другой косяк в X230, типа там память припаяна или убунта не ставицца?

 

hlamotron
()

Как сделано такое в протоколe X11?

Форум — Development

Наверняка в X11 окна организованы в иерархию (так быстрее найти куда кликнули).

Когда клиент говорит X11-серваку, что надо создать кнопочку, он указывает просто ID родительского окна, а X11-сервак имеет map[ID]->window или клиент указывает некий полный путь ID->ID->ID (окно, в этом окне окно, в том окне окно)?

Спасибченко.

 

hlamotron
()

Какой на Avito ноут до 10 тыр поискать, чтобы современные интернеты тянуло?

Форум — Talks

Задачи: зырить ютуб, учиться кодить на JavaScript (в хромной консоли запускать всякое). Гига 4 оперативы-то надо наверное.

Убунту туда вхрячить.

Ну если не 10, то 15 тыр.

Хорошо бы какой-нибудь IBM ThinkPad на базе не совсем древнючего проца. У меня был проц T5600 в T60, но HD с ютуба - это был его предел.

Core i3-2310M — это относительно зачёт или совсем низачот?

 

hlamotron
()

Как рисовать в WebGL всякие анимационные плавные круги, волнистые линии и т.п.?

Форум — Development

Шейдерами только?

Вот например андроид. Всё что мы видим на экране - это некий OpenGL. Ну то есть вся картинка выведена набором текстурированных или шейдернутых треугольников. Даже видос в приложении YouTube - это 2 треугольника, куда на 60fps фигачат новую текстуру.

Или я гоню и путь картинки в андроидах может быть каким-то иным, кроме как через треугольники?

А как например физически рисуется (на низком уровне, т.е. на уровне треугольников) какой-нибудь пульсирующий круг, какой-нибудь там волнистый эффект и прочая плавнота? Шейдерами что-ли?

Объясните пожалуйста для дебилов.

 

hlamotron
()

RSS подписка на новые темы