LINUX.ORG.RU

Сообщения aidaho

 

Хроники пикирующего бомбардировщика

Чем дальше в лес... В общем, дежурный топик на тему KDE X.Y != KDE X

KDE5. Работаю, никого не трогаю.

На 35й день у трея случается эпилептический припадок: половина пиктограмм пропала, перезапуск программ из трея не помогает.
Перезапустил plasma, ноль эффекта. Дня через три не выдержал, перезапустил сеанс.

На 10й день после перезапуска намертво залипло изображение на экране, только курсор движется.
Подумал на интелодрайвер, но оказывается, месяц назад забытое Trinity нормально работает в соседнем терминале.
kwin_x11 и иксы жрут весь процессор. Плюнул, пошёл по делам. Вернулся — отлипло, само.

На 11й день с утра обнаружил, что больше не работают медиакнопки клавиатуры.

На утро 12го они заработали. Сами.
Но перестал работать Alt-Tab и Alt-`.

Сегодня к вечеру перестал работать буфер обмена.

kwin_x11 съел уже 969Mb RSS, но Alt-Tab всё ещё пока не работает, может нужно подождать, пока съест ещё.

Хотел идти плакать в багтрекер, но пока не придумал о чём.
Логи пусты, триггеры неизвестны.

А плазма действительно ни разу не упала.

 , ,

aidaho
()

Как из стабильного Debian'а сделать Gentoo

Совершенно случайно заметил в списке пакетов уютного дебиана такой себе apt-build.
Он в одну команду скачивает сорцы пакета, и всех зависимых от него, конпеляет их с выбранными флагами, пакует в пакеты, создаёт репозиторий, подключает в sources.list и устанавливает поверх системных.

Да, я тоже офигел.

Пошёл в гентувики за «самыми крутыми флагами gcc» и пересобрал p7zip-full с -O3 -march=native -mtune=native -ftree-vectorize.
И что мы имеем? '7z b', cтоковый пакет:

   7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
   p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9),ASM,AES-NI)

   Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9)
   CPU Freq:  1396  3192  3286  3281  3267  3267  3215  3238  3258

   RAM size:   32064 MB,  # CPU hardware threads:   4
   RAM usage:    882 MB,  # Benchmark threads:      4

                          Compressing  |                  Decompressing
   Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
            KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

   22:      12954   311   4046  12602  |     145071   391   3165  12377
   23:      13802   333   4226  14063  |     143024   390   3173  12375
   24:      12865   329   4209  13833  |     140539   389   3175  12337
   25:      12237   322   4335  13972  |     138840   390   3170  12356
   ----------------------------------  | ------------------------------
   Avr:             324   4204  13617  |              390   3171  12361
   Tot:             357   3687  12989


Окроплённый гентушной вики:
7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9),ASM,AES-NI)

Intel(R) Core(TM) i5-7500T CPU @ 2.70GHz (906E9)
CPU Freq:  2489  3034  3268  3290  3182  3247  3153  3231  3250

RAM size:   32064 MB,  # CPU hardware threads:   4
RAM usage:    882 MB,  # Benchmark threads:      4

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:      14104   320   4281  13721  |     141704   384   3152  12090
23:      14587   342   4349  14862  |     140406   384   3161  12149
24:      13383   329   4375  14390  |     137682   382   3164  12087
25:      12816   327   4471  14634  |     136030   383   3162  12106
----------------------------------  | ------------------------------
Avr:             330   4369  14402  |              383   3160  12108
Tot:             356   3764  13255


Я всегда подозревал в конпеляторщиках умственно отсталых.
Теперь диагноз надёжно подтверждён.

 , ,

aidaho
()

Владельцы Dell OptiPlex 5050MFF, у вас PCIe ASPM работает?

Хотел купить Lenovo M900/910 Tiny в комбинации с 960EVO, но тут в последнюю минуту вылез небольшой нюанс: Lenovo во всей серии ThinkCentre сломали PCIe ASPM, благодаря чему SSD и CPU греются сильнее чем должны бы, и вероятность выхода из строя этой конфигурации не радует.
Кроме того SSD под нагрузкой сразу падает в троттлинг и толку от его паспортных скоростей никакого.

https://forums.lenovo.com/t5/forums/v3_1/forumtopicpage/board-id/tc01_en/thre...

В связи с этим в тред приглашаются владельцы конкурирующих решений от Dell.
Покажите вывод от рута

lspci -vv | egrep "Lnk(Cap|Ctl)[^2]"

 , , optiplex, ,

aidaho
()

plasma-widget-cwp, отвалился gismeteo

С апдейтом интерфейса на gismeteo.ru, плазмовиджет ушёл в нирвану.
Вот слегка подрихтованный файл конфигурации для gismeteo.com, которого пока не коснулись покращення.

Перезаписать оригинал по адресу /usr/share/kde4/apps/plasma-cwp/www_gismeteo_com.xml, перезапустить сеанс.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<custom_weather>
	<xml_file_version type="cwp" version="2016-12-08" name="www.gismeteo.com" search_page="http://www.gismeteo.com" example_zip="4949" unit="C" />

	<locale_settings locale="utf-8" encoding="utf8" />

	<urlc urlc_prefix="http://gismeteo.com/city/daily/" urlc_suffix="" urlc_follow="" />

	<url1 url1_prefix="http://gismeteo.com/city/weekly/" url1_suffix="" url1_follow="" />

	<url2 url2_prefix="" url2_suffix="" url2_follow="" />

	<url3 url3_prefix="" url3_suffix="" url3_follow="" />

	<url4 url4_prefix="" url4_suffix="" url4_follow="" />

	<url5 url5_prefix="" url5_suffix="" url5_follow="" />

	<url6 url6_prefix="" url6_suffix="" url6_follow="" />

	<url7 url7_prefix="" url7_suffix="" url7_follow="" />

	<data_location url="urlc"
		location="grep v:title | sed -e &quot;s/v:title/\nv:title/g&quot; | grep v:title | head -n 1 | sed -e &quot;s/.*v:title\&quot;&gt;\([^&lt;]*\).*/\1/&quot;"
		country="grep v:title | sed -e &quot;s/v:title/\nv:title/g&quot; | grep v:title | tail -n 1 | sed -e &quot;s/.*v:title\&quot;&gt;\([^&lt;]*\).*/\1/&quot;"
		/>

	<data_sun url="urlc"
		sunrise="grep &apos;Sunrise&lt;&apos; | sed &apos;s/.*Восход&lt;[^&gt;]*&gt;\([^&lt;]*\).*/\1/&apos;"
		sunset="grep &apos;Sunset&apos; | sed &apos;s/.*Заход&lt;[^&gt;]*&gt;\([^&lt;]*\).*/\1/&apos;"
		/>

	<data_current_temperature url="urlc"
		update_time="grep icon\ date | sed -e &quot;s/.*icon date[^&gt;]*&gt;[^:]* \([0-9]\+:[0-9]\+\).*/\1/&quot; | awk &apos;{if ($1 ~ /^[0-9]+:[0-9]+$/) {print} else {print &quot;N.A.&quot;} ; }&apos;"
		temperature="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep &quot;temp c&quot; | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/&lt;[^&gt;]*&gt;//g&quot; | sed -e &quot;s/.*[^-0-9]\([-0-9]\+\)&amp;deg.*/\1/&quot;"
		temperature_felt="echo -n"
		/>

	<data_current_wind url="urlc"
		wind="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep -A 4 wicon | tr -d &apos;\r&apos; | tr -d &apos;\n&apos; | sed -e &quot;s/.*wind ms[^&gt;]*&gt;\([^&lt;]*\)&lt;[^&lt;]*class=.unit[^&gt;]&gt;\([^&lt;]*\)&lt;.*&lt;dt&gt;\([^&lt;]*\)&lt;.*/\3 - \1 \2/&quot;"
		wind_code="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep -A 4 wicon | tr -d &apos;\r&apos; | tr -d &apos;\n&apos; | sed -e &quot;s/.*wind ms[^&gt;]*&gt;\([^&lt;]*\)&lt;[^&lt;]*class=.unit[^&gt;]&gt;\([^&lt;]*\)&lt;.*&lt;dt&gt;\([^&lt;]*\)&lt;.*/\3/&quot;"
		wind_speed="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep &quot;wind ms&quot; | sed -e &quot;s/.*class=.value[^&gt;]*&gt;\([^&lt;]*\)&lt;.*class=.unit[^&gt;]*&gt;\([^&lt;]*\)&lt;.*/\1 \2/&quot;"
		/>

	<data_current_icon url="urlc"
		icon="grep -A 68 id=\&quot;weather\&quot; | tail -n 65 | grep background-image | sed -e &quot;s/.*\(http[^)]*\).*/\1/&quot;"
		icon_code="grep -A 68 id=\&quot;weather\&quot; | tail -n 65 | grep background-image | sed -e &quot;s/.*\(http[^)]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 68 id=\&quot;weather\&quot; | tail -n 65 | grep -A 1 background-image | tail -n 1 | sed -e &quot;s/&lt;[^&gt;]*&gt;//g&quot;"
		/>

	<data_current_additional url="urlc"
		humidity="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep hum | sed -e &quot;s/&lt;[^&gt;]*&gt;//g&quot; | sed -e &quot;s/&amp;nbsp;/ /&quot;"
		rain="echo -n"
		dew_point="echo -n"
		visibility="echo -n"
		pressure="grep -A 68 id=\&quot;weather\&quot; | tail -n 55 | grep &quot;press tor&quot; | sed -e &quot;s/&lt;[^&gt;]*&gt;//g&quot;"
		uv_index="echo -n"
		/>

	<data_day1 url="url1"
		name="grep -A 8 weekday | head -n 9 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 9 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 9 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 9 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 9 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 9 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day2 url="url1"
		name="grep -A 8 weekday | head -n 19 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 19 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 19 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 19 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 19 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 19 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day3 url="url1"
		name="grep -A 8 weekday | head -n 29 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 29 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 29 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 29 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 29 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 29 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day4 url="url1"
		name="grep -A 8 weekday | head -n 39 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 39 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 39 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 39 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 39 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 39 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day5 url="url1"
		name="grep -A 8 weekday | head -n 49 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 49 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 49 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 49 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 49 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 49 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day6 url="url1"
		name="grep -A 8 weekday | head -n 59 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 59 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 59 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 59 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 59 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 59 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>
	<data_day7 url="url1"
		name="grep -A 8 weekday | head -n 69 | tail -n 9 | grep weekday | sed -e &quot;s/.*weekday[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		temperature_low="grep -A 8 weekday | head -n 69 | tail -n 9 | grep temp | head -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		temperature_high="grep -A 8 weekday | head -n 69 | tail -n 9 | grep temp | tail -n 1 | sed -e &quot;s/&amp;minus;/-/&quot; | sed -e &quot;s/.*temp c[^&gt;]*&gt;+*\([-0-9]\+\).*/\1/&quot;"
		icon="grep -A 8 weekday | head -n 69 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot;"
		icon_code="grep -A 8 weekday | head -n 69 | tail -n 9 | grep png | tail -n 1 | sed -e &quot;s/.*\(http[^\&quot;]*\).*/\1/&quot; | sed &apos;s/.*new\/\(.*\)\.png.*/\1/&apos;"
		icon_text="grep -A 8 weekday | head -n 69 | tail -n 9 | grep cltext | tail -n 1 | sed -e &quot;s/.*cltext[^&gt;]*&gt;\([^&lt;]*\).*/\1/&quot;"
		/>

	<icon_transform
	i1="d.sun" o1="32"

	i2="d.sun.c1" o2="34"
	i3="d.sun.c2" o3="34"
	i4="d.sun.c3" o4="30"
	i5="d.sun.c4" o5="26"

	i6="d.sun.c1.s1" o6="41"
	i7="d.sun.c1.s2" o7="41"
	i8="d.sun.c1.s3" o8="41"
	i9="d.sun.c1.s4" o9="41"
	i10="d.sun.c2.s1" o10="41"
	i11="d.sun.c2.s2" o11="41"
	i12="d.sun.c2.s3" o12="41"
	i13="d.sun.c2.s4" o13="41"
	i14="d.sun.c3.s1" o14="41"
	i15="d.sun.c3.s2" o15="41"
	i16="d.sun.c3.s3" o16="41"
	i17="d.sun.c3.s4" o17="41"
	i18="d.sun.c4.s1" o18="43"
	i19="d.sun.c4.s2" o19="13"
	i20="d.sun.c4.s3" o20="13"
	i21="d.sun.c4.s4" o21="13"

	i22="d.sun.c1.r1" o22="39"
	i23="d.sun.c1.r2" o23="39"
	i24="d.sun.c1.r3" o24="39"
	i25="d.sun.c1.r4" o25="40"
	i26="d.sun.c2.r1" o26="39"
	i27="d.sun.c2.r2" o27="39"
	i28="d.sun.c2.r3" o28="39"
	i29="d.sun.c2.r4" o29="40"
	i30="d.sun.c3.r1" o30="39"
	i31="d.sun.c3.r2" o31="39"
	i32="d.sun.c3.r3" o32="39"
	i33="d.sun.c3.r4" o33="40"
	i34="d.sun.c4.r1" o34="11"
	i35="d.sun.c4.r2" o35="40"
	i36="d.sun.c4.r3" o36="40"
	i37="d.sun.c4.r4" o37="40"

	i38="d.sun.c1.r1.st" o38="38"
	i39="d.sun.c1.r2.st" o39="38"
	i40="d.sun.c1.r3.st" o40="38"
	i41="d.sun.c1.r4.st" o41="38"
	i42="d.sun.c2.r1.st" o42="38"
	i43="d.sun.c2.r2.st" o43="38"
	i44="d.sun.c2.r3.st" o44="38"
	i45="d.sun.c2.r4.st" o45="38"
	i46="d.sun.c3.r1.st" o46="38"
	i47="d.sun.c3.r2.st" o47="38"
	i48="d.sun.c3.r3.st" o48="38"
	i49="d.sun.c3.r4.st" o49="38"
	i50="d.sun.c4.r1.st" o50="35"
	i51="d.sun.c4.r2.st" o51="35"
	i52="d.sun.c4.r3.st" o52="35"
	i53="d.sun.c4.r4.st" o53="35"

	i54="d.sun.c1.s1.st" o54="38"
	i55="d.sun.c1.s2.st" o55="35"
	i56="d.sun.c1.s3.st" o56="35"
	i57="d.sun.c1.s4.st" o57="35"
	i58="d.sun.c2.s1.st" o58="38"
	i59="d.sun.c2.s2.st" o59="35"
	i60="d.sun.c2.s3.st" o60="35"
	i61="d.sun.c2.s4.st" o61="35"
	i62="d.sun.c3.s1.st" o62="38"
	i63="d.sun.c3.s2.st" o63="35"
	i64="d.sun.c3.s3.st" o64="35"
	i65="d.sun.c3.s4.st" o65="35"
	i66="d.sun.c4.s1.st" o66="35"
	i67="d.sun.c4.s2.st" o67="35"
	i68="d.sun.c4.s3.st" o68="35"
	i69="d.sun.c4.s4.st" o69="35"

	i70="n.moon" o70="31"
	i71="n.moon.c1" o71="33"
	i72="n.moon.c2" o72="33"
	i73="n.moon.c3" o73="29"
	i74="n.moon.c4" o74="26"

	i75="n.moon.c1.s1" o75="46"
	i76="n.moon.c1.s2" o76="46"
	i77="n.moon.c1.s3" o77="46"
	i78="n.moon.c1.s4" o78="46"
	i79="n.moon.c2.s1" o79="46"
	i80="n.moon.c2.s2" o80="46"
	i81="n.moon.c2.s3" o81="46"
	i82="n.moon.c2.s4" o82="46"
	i83="n.moon.c3.s1" o83="46"
	i84="n.moon.c3.s2" o84="46"
	i85="n.moon.c3.s3" o85="46"
	i86="n.moon.c3.s4" o86="46"
	i87="n.moon.c4.s1" o87="46"
	i88="n.moon.c4.s2" o88="13"
	i89="n.moon.c4.s3" o89="13"
	i90="n.moon.c4.s4" o90="13"

	i91="n.moon.c1.r1" o91="45"
	i92="n.moon.c1.r2" o92="45"
	i93="n.moon.c1.r3" o93="45"
	i94="n.moon.c1.r4" o94="45"
	i95="n.moon.c2.r1" o95="45"
	i96="n.moon.c2.r2" o96="45"
	i97="n.moon.c2.r3" o97="45"
	i98="n.moon.c2.r4" o98="45"
	i99="n.moon.c3.r1" o99="45"
	i100="n.moon.c3.r2" o100="45"
	i101="n.moon.c3.r3" o101="45"
	i102="n.moon.c3.r4" o102="45"
	i103="n.moon.c4.r1" o103="11"
	i104="n.moon.c4.r2" o104="40"
	i105="n.moon.c4.r3" o105="40"
	i106="n.moon.c4.r4" o106="40"

	i107="n.moon.c1.r1.st" o107="47"
	i108="n.moon.c1.r2.st" o108="47"
	i109="n.moon.c1.r3.st" o109="47"
	i110="n.moon.c1.r4.st" o110="47"
	i111="n.moon.c2.r1.st" o111="47"
	i112="n.moon.c2.r2.st" o112="47"
	i113="n.moon.c2.r3.st" o113="47"
	i114="n.moon.c2.r4.st" o114="47"
	i115="n.moon.c3.r1.st" o115="47"
	i116="n.moon.c3.r2.st" o116="47"
	i117="n.moon.c3.r3.st" o117="47"
	i118="n.moon.c3.r4.st" o118="47"
	i119="n.moon.c4.r1.st" o119="35"
	i120="n.moon.c4.r2.st" o120="35"
	i121="n.moon.c4.r3.st" o121="35"
	i122="n.moon.c4.r4.st" o122="35"

	i123="n.moon.c1.s1.st" o123="47"
	i124="n.moon.c1.s2.st" o124="47"
	i125="n.moon.c1.s3.st" o125="47"
	i126="n.moon.c1.s4.st" o126="47"
	i127="n.moon.c2.s1.st" o127="47"
	i128="n.moon.c2.s2.st" o128="47"
	i129="n.moon.c2.s3.st" o129="47"
	i130="n.moon.c2.s4.st" o130="47"
	i131="n.moon.c3.s1.st" o131="47"
	i132="n.moon.c3.s2.st" o132="47"
	i133="n.moon.c3.s3.st" o133="47"
	i134="n.moon.c3.s4.st" o134="47"
	i135="n.moon.c4.s1.st" o135="35"
	i136="n.moon.c4.s2.st" o136="35"
	i137="n.moon.c4.s3.st" o137="35"
	i138="n.moon.c4.s4.st" o138="35"
	
	i139="d.sun.c1.st" o139="38"
	i140="d.sun.c2.st" o140="38"
	i141="d.sun.c3.st" o141="38"
	i142="d.sun.c4.st" o142="35"
	/>

</custom_weather>


P.S. Более юниксвейной наркомании по разбору html ещё поискать.

 cwp, , ,

aidaho
()

Графики батареи как в Android

В бекпорты дебиана упала такая штука как https://github.com/petterreinholdtsen/battery-stats/

Демон пишет в лог состояние батареи. Настройки по умолчанию разумные, так что zero-configuration.

Потом любой юзер может дать команду `battery-graph` и посмотреть что там и как за последние часы.
Можно вывести на график произвольные промежутки времени и увидеть реальную скорость разряда батареи в своих юзкейсах.
http://i.imgur.com/rNLnfVh.png

Для хипстеров есть текстовый график, в котором ничего не понятно, но выглядит круто
http://i.imgur.com/YxATScZ.png

 battery-stats, ,

aidaho
()

Патч для работы nlinum в emacs daemon mode

Для тех кто в танке: стандартная нумерация строк в emacs представлена пакетом linum.
Он пересчитывает и перерисовывает все номера при каждом изменении буфера и от этого люто тормозит.

Альтернативный пакет nlinum пользуется преимуществами jit-фонтификации и обновляет только видимые номера (если их вообще надо обновлять) и не тормозит.
Проблема в том, что он не работает в daemon mode, багу два года уже.
Были разной кривизны воркараунды, но нафиг так жить?

В багтрекере spacemacs Stebalien выложил действительно рабочий патч https://github.com/syl20bnr/spacemacs/issues/6104#issuecomment-220733435
Накладывать на https://elpa.gnu.org/packages/nlinum-1.6.el

Несколько клиентов, запуск сервера клиентом, клиент в терминале, восстановление с desktop'а — проверил, всё работает.
Уже почти отвык от номеров строк, но раз дают, то надо брать :)

Бонус:

;;; включаем нумерацию везде, кроме всяких сгенерированных буферов
(add-hook 'text-mode-hook '(lambda () (nlinum-mode t)))
(add-hook 'prog-mode-hook '(lambda () (nlinum-mode t)))

 , , nlinum-mode

aidaho
()

Бенчмарк отзывчивости ведущих IDE в Linux/Windows

Не знаю, куда положить, наверное всё же в /development

Павел Фатин опубликовал отличную статью о задержках обратной связи клавиатурного ввода в популярных IDE на x86 платформе в ОС Windows и Linux (а так же Linux в виртуалке на Win хосте):
https://pavelfatin.com/typing-with-pleasure/

Тезисно для труЪ:
- IDEA в zero-latency mode испепелила конкурентов на обеих платформах;
- GVim показал отличный результат и занял везде второе место;
- Emacs тащится в хвосте каравана под Win и держится середнячком под Linux;
- Sublime так же хорошо себя показал под Win, как потом плохо под Linux;
- Atom и Eclipse медленные везде, но даже они не конкурируют по тормозам с IDEA в обычном режиме.

Перемещено tailgunner из development

 , , , ,

aidaho
()

Ускоряем emacs

Делюсь историей успеха.

С момента апгрейда до Jessie, когда емакс начали собирать с GTK3, раздражали тормоза на моём карманном третьепне (Atom Z520 1.33Ghz).
Встроенный профайлер ничего особенного не находил, но было видно, как тормозит отрисовка.

В принципе, редко с большими файлами на этой машинке работаю, но таки достало. Пересобрал с GTK2 и -march=native.
Получше, но всё равно кисло. Попробовал поставть emacs24-lucid и о чудо: внезапно всё стало гораздо резвее.

С Xaw3d не без проблем правда.

Из гафики у меня виден только скроллбар, он страшненький и очень нечитаемый.
Его можно перекрасить установкой ресурсов Emacs*verticalScrollBar.background и Emacs*verticalScrollBar.troughColor, но последний не имеет эффекта: похоже баг.
Второе: по периметру фрейма появляется однопиксельная рамка, которая убирается с помощью

Emacs.borderWidth: 0
Emacs.internalBorder: 0

Скроллбар я в конечном итоге спрятал и заменил на yascroll: https://github.com/m2ym/yascroll-el
Это не скроллбар в традиционном понимании, а индикатор, его напоминающий. Выглядит гораздо лучше любых тулкитных и не занимает дополнительного столбца.

Ну вот и всё: третьепень вновь комфортабельно тянет моё IDE образца 2016 года. Я доволен.

Скриншот: http://i.imgur.com/ia3iR8R.png

 , xaw3d, yascroll

aidaho
()

Посоветуйте микрокомпьютер

Ищу предельно компактное и дешёвое решение для погонять шифрованный трафик.

По железу: нужен ethernet порт и как можно более производительный цпу (на одном потоке, 8 ядер тут бесполезны).
Всё остальное (wi-fi, usb host, много памяти, видеовыходы) опционально: если есть то и ладно, если нет, то и не надо.

По софту: возможность безгеморройно поставить Debian Jessie, настроить unattended-upgrades и забыть о железке навечно.

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

openssl speed aes-256-cbc
openssl speed blowfish
openssl speed sha1

поможет примерно прикинуть скорость.

К сожалению, не в курсе прогресса вычислительных мощностей армовых одноплатников, может я от них сильно много хочу?

 , ,

aidaho
()

Не получается поднять NAT

Пилю себе тихо-мирно NAT для выхода в интернет через сторонний узел в сети Tinc VPN.

Для клиента написал несколько правил для iptables, которые маркируют пакеты для VPN,
после отсылаю их на сервер правилом для iproute. Судя по wireshark, тут проблем нет.

Однако, связи нет: не приходят ответы.

Конфигурация на сервере выглядит примерно так:

iptables -I FORWARD -i $INTERFACE -o eth0 -j ACCEPT
iptables -I FORWARD -i eth0 -o $INTERFACE -j ACCEPT
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

$INTERFACE — будет заменено на имя vpn-интерфейса.

Судя по дампу с eth0 сервера (1.2.3.4) обмен c лором выглядит так:
151	15.613006	1.2.3.4	178.248.233.6	TCP	74	43504→80 [SYN] Seq=0 Win=19200 Len=0 MSS=960 SACK_PERM=1 TSval=24783014 TSecr=0 WS=128
154	15.753552	178.248.233.6	1.2.3.4	TCP	74	80→43504 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=960 SACK_PERM=1 TSval=1903969879 TSecr=24783014 WS=512
161	16.611843	1.2.3.4	178.248.233.6	TCP	74	[TCP Spurious Retransmission] 43504→80 [SYN] Seq=0 Win=19200 Len=0 MSS=960 SACK_PERM=1 TSval=24783264 TSecr=0 WS=128
162	16.752465	178.248.233.6	1.2.3.4	TCP	74	[TCP Retransmission] 80→43504 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=960 SACK_PERM=1 TSval=1903970903 TSecr=24783264 WS=512
185	18.616522	1.2.3.4	178.248.233.6	TCP	74	[TCP Spurious Retransmission] 43504→80 [SYN] Seq=0 Win=19200 Len=0 MSS=960 SACK_PERM=1 TSval=24783765 TSecr=0 WS=128
186	18.757059	178.248.233.6	1.2.3.4	TCP	74	[TCP Retransmission] 80→43504 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=960 SACK_PERM=1 TSval=1903972887 TSecr=24783765 WS=512
...
И дальше они так и продолжают играть в пинг-понг

Адрес источника перезаписан, следовательно маскарад работает.
Связь непосредственно клиента с сервером через VPN-канал не прерывается, но ответов по установленным соединениям через сервер нет.

Гугл подсказывает, что проблема может быть в MTU. MTU VPN равен 1360. Остальные интерфейсы участников по 1500.
Пробовал на сервере iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:9000 -j TCPMSS -o eth0 --set-mss 1000
Без положительного результата.

Куда копать? В чём может быть причина?

 , ,

aidaho
()

Как запилить свой vpn?

Понадобилось воспользоваться сторонним vpn'ом, в смысле проксирования своего трафика в интернет через сторонний узел, и вот подумалось: у меня же уже есть своя vpn-сеть на базе tinc, почему бы не запрячь её?

Дано: некоторое количество машин, объединённых с помощью tinc.
tinc - это демон mesh-сети, который висит на 655м порту и прозрачно форвардит пакеты для узлов, которые не могут связаться напрямую.

Вывод ifconfig одного из узлов, для примера:

aidaho@thinkpad:~$ ifconfig 
eth0      Link encap:Ethernet  HWaddr f0:de:f1:da:c8:b0  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:f1500000-f1520000 

eth0:avahi Link encap:Ethernet  HWaddr f0:de:f1:da:c8:b0  
          inet addr:169.254.12.223  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          Interrupt:20 Memory:f1500000-f1520000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:563575 errors:0 dropped:0 overruns:0 frame:0
          TX packets:563575 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:54560287 (52.0 MiB)  TX bytes:54560287 (52.0 MiB)

vaultnet  Link encap:Ethernet  HWaddr 3a:5d:fd:3e:16:4d  
          inet6 addr: fe80::385d:fdff:fe3e:164d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:57199 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56872 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:6939512 (6.6 MiB)  TX bytes:5760002 (5.4 MiB)

vaultnet:avahi Link encap:Ethernet  HWaddr 3a:5d:fd:3e:16:4d  
          inet addr:169.254.200.2  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     Link encap:Ethernet  HWaddr 10:0b:a9:0c:db:0c  
          inet addr:192.168.1.6  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::120b:a9ff:fe0c:db0c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11658873 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7309803 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15756781321 (14.6 GiB)  TX bytes:921734312 (879.0 MiB)

vaultnet — имя vpn-интерфейса, одинаково для всех машин. Адреса узлов 169.254.200.*

Маршруты с поднятым vpn'ом:
aidaho@thinkpad:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    1024   0        0 wlan0
default         *               0.0.0.0         U     1052   0        0 eth0
default         *               0.0.0.0         U     1054   0        0 vaultnet
link-local      *               255.255.0.0     U     0      0        0 vaultnet
link-local      *               255.255.0.0     U     0      0        0 eth0
192.168.1.0     *               255.255.255.0   U     0      0        0 wlan0


Скрипт поднятия сети (выплняется единожды, при старте демона)
root@thinkpad:/home/aidaho# cat /etc/tinc/vaultnet/tinc-up                                                                  
#!/usr/bin/env bash

IP=169.254.200.2

#ifconfig $INTERFACE $IP netmask 255.255.255.0
iptables -I FORWARD -i $INTERFACE -j ACCEPT
ip6tables -I FORWARD -i $INTERFACE -j ACCEPT
iptables -I INPUT -p udp --dport 655 -j ACCEPT
iptables -I INPUT -p tcp --dport 655 -j ACCEPT
ip6tables -I INPUT -p udp --dport 655 -j ACCEPT
ip6tables -I INPUT -p tcp --dport 655 -j ACCEPT

avahi-autoipd -D $INTERFACE -S $IP

iptables -I INPUT -i $INTERFACE -j ACCEPT
ip6tables -I INPUT -i $INTERFACE -j ACCEPT


Что нужно сделать на «сервере», чтобы трафик из vaultnet форвардился наружу?
Что нужно сделать на «клиенте», чтобы завернуть весь интернет-трафик через «сервер»?

Всё в кавычках, поскольку в mesh-сети царит коммунизм и хочется решить задачу выхода в интернет «через» любой узел.

 , ,

aidaho
()

Google Earth 6 для Debian Jessie

После апгрейда на Jessie проапдейтил GE до семёрочки: фризы, падения, не показывает фотки. Ковырялся, но не вылечил.
А GE 6 не ставится из-за зависимостей.

Посмотрел, какие библиотеки ему действительно нужны, и переписал control:

Package: google-earth-stable
Version: 6.0.3.2197-r0-jessie1
Architecture: i386
Maintainer: Google Earth Team <google-earth-support@google.com>
Installed-Size: 96936
Pre-Depends: dpkg (>= 1.14.0)
Depends: libc6, libz1, libx11-6, libxrender1, libgl1, libstdc++6, libgcc1, libglib2.0-0, libaudio2, libpng12-0, libglib2.0-0, libsm6, libice6, libgl1-mesa-glx, libgstreamer-plugins-base1.0-0, libsqlite3-0, libqt4-xmlpatterns, libqt4-opengl, libpcre3, libxt6, libxau6, libffi6, libuuid1, libxdmcp6, liborc-0.4-0, libglib2.0-0
Section: net
Priority: optional
Description: Explore, search and discover the planet
 Google Earth lets you fly anywhere to see satellite imagery, 3D buildings, 3D trees, terrain, Street View, planets and much more.
 This is a package with modified dependencies for Debian Jessie+

Распаковывать/запаковывать так:

mkdir google
dpkg-deb -R google-earth-stable_6.0.3.2197-r0_i386.deb google
dpkg-deb -b google google-earth-stable_6.0.3.2197-r0-jessie1_i386.deb

Или забрать готовый пакет отсюда http://omicroneridani.com/public/google-earth-stable_6.0.3.2197-r0-jessie1_i3...

Не падает, фотки показывает.

 ,

aidaho
()

deb-src не собирается в пакет

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

apt-get build-dep libvdpau1
apt-get source libvdpau1
cd libvdpau-0.8
debuild -us -uc -b

Выхлоп:

...

Makefile:282: recipe for target 'install-am' failed
make[3]: *** [install-am] Error 2
make[3]: Leaving directory '/home/aidaho/Documents/projects/libvdpau/libvdpau-0.8/doc'
Makefile:316: recipe for target 'install-recursive' failed
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory '/home/aidaho/Documents/projects/libvdpau/libvdpau-0.8'
dh_auto_install: make -j1 install DESTDIR=/home/aidaho/Documents/projects/libvdpau/libvdpau-0.8/debian/tmp AM_UPDATE_INFO_DIR=no returne
d exit code 2
debian/rules:36: recipe for target 'override_dh_auto_install' failed
make[1]: *** [override_dh_auto_install] Error 2
make[1]: Leaving directory '/home/aidaho/Documents/projects/libvdpau/libvdpau-0.8'
debian/rules:19: recipe for target 'binary-indep' failed
make: *** [binary-indep] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -b failed

Это вообще как? Его же для Jessie из этого же исходника собрали. Что делать и кому жаловаться?

 , deb-src, libvdpau

aidaho
()

vaapi приехал в debian stable

По мотивам libvdpau-va-gl

i-rinat, большое тебе человеческое спасибо за libvdpau-va-gl!
История узбека: проапдейтился до Jessie, сделал apt-get install libvdpau-va-gl1, export VDPAU_DRIVER=va_gl, поменял вывод в smplayer на vdpau. Всё.

77% загрузки ЦПУ превратились в 7%. Железка: thinkpad x220 (intel HD3000).

 , ,

aidaho
()

Написал небольшой консольный индикатор батареи v0.0.3

Потыкал палочкой C для общего развития и в процессе сделал себе индикатор батареи для тмукса (раньше грепал вывод acpi).
Может кому понадобится.

Так как строки для индикации состояния вбиты в заголовки в utf-8, пользователям экзотических локалей придётся поправить tinybatt.h.

Один из юзкейсов, который у меня был, это индикация скорости разрядки, если она превышает некоторый порог, см. ключ -r.

https://github.com/aidaho/tinybatt

P.S. Не осилил autotools. Какой-то ком засохшего говна, честное слово.

Вторая версия. Запилил поддержку нескольких батарей.
Третья версия. Можно переопределить в рантайме свистелки.

 , tinybatt,

aidaho
()

Регистратор Name.com прощается с полуостровом

Только что упало на почту:


Dear Customer,

Name.com is a U.S.-based company and must comply with U.S. laws prohibiting
us from providing services to Crimea, Iran, Sudan, Syria, or certain other
countries or areas (each, a “Sanctioned Area”). As your registrar of
record, Name.com requests your immediate attention regarding your Name.com
account and/or associated domain name(s).

Based on the information available to us, some or all of your Name.com
account contact information and/or «WHOIS» contact information (billing,
registrant, administrative, technical, or auxiliary billing contact
information) for your domain name(s) refers to a location within a
Sanctioned Area. If such contact information incorrectly provides an
address in a Sanctioned Area, and you can confirm that you are not located
in a Sanctioned Area, please provide correct information by February 4,
2015; otherwise your account and/or domain name(s) may be suspended.

 name.com, ,

aidaho
()

Подскажите недорогой сервис для бекапа

Подскажите пожалуйста где сейчас недорого можно заначить 80-85Гб бекап?

Нужна подержка sshfs и никсовая фс на сервисе чтобы монтировать encfs поверх. Со связкой webdav+encfs у меня были какие-то проблемы с симлинками и именами зашифрованных файлов. Как вариант, возможно где-то для таких целей продают/раздают нище-vps с минимумом цпу и оперативки?

 

aidaho
()

Уведомления

20 Минут назад из криокамеры пришло уведомление на этот ответ:
Wheezy: Параметры системы->питание (комментарий)

К тегам это не имеет отношения: я не осилил подписку на них.

 

aidaho
()

Bluetooth наушники

Хочу беспроводные наушники.

Bluetooth сейчас есть везде (во всяком случае у меня): компьютеры, лаптопы, планшеты, телефоны. Не нужно возиться с перетыканием базовой станции, можно носить с собой.
Но мнения на счёт качества диаметрально противоположные, а цены в пределах госграницы тоже не радуют (самые дешёвые http://market.yandex.ua/model.xml?modelid=7146917&hid=90555 )
С одной стороны я не аудиофил, с другой — откровенным отстоем пользоваться желания тоже нет.

Есть среди нас пользователи?
Какой девайс, какие впечатления?
Как дела с поддержкой в онтопике (у меня стабильный дебиан)?
Есть ли способ в один клик переключать весь вывод из динамиков на уши и обратно?
Какая разница в поддерживаемых версиях Bluetooth (видел 2.0, 2.1, 3.0)?

Тема обзорная, поэтому в Talks.

P.S. На DX большой выбор по вкусным ценам http://dx.com/c/consumer-electronics-199/bluetooth-devices-105/bluetooth-head...

 ,

aidaho
()

Меня задолбал лоркод

Собственно, всё сказал заголовком и объяснил тегами.

Вношу предложение добавить markdown (без встраиваемого html, естественно).

 ,

aidaho
()

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