LINUX.ORG.RU

Избранные сообщения chkalov

Блокировка разблокировка экрана RFID

Форум — Desktop

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

Блокировать/разблокировать вводом пароля утомляет.

Есть идея чтобы экран блокировался разблокировался по какой нито rfid метке которую я буду носить с собой например под крышкой мобильного телефона. Т.е. я встаю ухожу экран блокируется, возвращаюсь на место экран разблокируется. Ктото реализовывал такое?

Думал с bluetooth сделать но телефон быстро разряжается.

 

Sergey1988
()

Перевод средств на счёт в зарубежном банке

Форум — Talks

в тред призываются спв

ситуация такая: у моего друга есть счёт в зарубежном банке. по закону он может сколько угодно переводить на этот счёт, если он уведомил налоговые органы по месту регистрации, и предъявил банку, в котором будет совершать перевод — эту справку, без этого — нит.

однако, вроде бы есть возможность на этот счёт переводить близкими родственниками, при этом банк не имеет права с родственника требовать справку.
вопрос: кто-то этим пользовался? работает?

и еще — что нужно, чтобы перевести рубли в банк, счёт в котором открыт в евро? нужно ли менять валюту?
из реквизитов есть номер счёта (IBAN) и SWIFT банка.

с меня как обычно :3

 

snoopcat
()

Консольный словарь/переводчик

Форум — General

Хочется нечто подобное:

$ echo "<some word>" | translate
и на выходе получить перевод слова, полноценный переводчик в принципе не нужен, но тоже сойдет. Важное условие: работа offline.

 , ,

Deleted
()

Принцип социальной справедливости

Форум — Talks

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

Да, после периода передела собственности, далеко не всем досталось ништяков. Условным детям и внукам Сердюкова никогда не придется беспокоиться о заработке на жизнь. Но, условный Вася, если он целеустремлен, не глуп, и не ленив, вполне может добиться немалых успехов. Работая больше - можно больше зарабатывать, создавая прибыльный бизнес\производство - можно больше зарабатывать. Вообще вариантов для заработка весьма много, и они совершенно не обязательно должны быть связаны с попилами гос.бюджета.

Пострадали больше многих условные Пети. Те, что считаю себя весьма умными, несмотря на то, что их ум почему-то никто не ценит. Те, что считают, что им должны. Должны просто за факт их существования, из какой-то мифической всемирной справедливости, из соображений «делиться надо». При этом таковые Пети нередко всех считают «тупыми быдлом\мажорами».

Но... в конкуренции Пети сливают. Ну не хватаем им их ума на то, чтоб найти свое место под солнцем.

Ура возможностям и отсутствию уравниловки!

Да, svobodka_fighter?

Прежде чем обвинять меня в черно-белой картине мира, прочтите оригинал: Принцип социальной несправедливости

 , ,

dk-
()

Производительность; илитный запил оптимальных реализаций и основы матчасти.

Форум — Development

Поглядел я тут на пацанов и увидел прогресс в их глазах. Поэтому я решил вести тут свой бложик, в котором я буду толкать матчасть, разбирать/разрушать всякие мифы и легенды, а так же их обсуждать с пацанами. Банить меня не надо - тут всё будет очень культурно.

Это будет формат для самых маленьких, где я буду показывать как что-то пилится по-пацаночке. Его задача - на примерах пересказать штеудмануал тем, кому лень его читать, но кто очень любит спорить про код, перфоманс и матчасть. Ну и просто интересные наблюдения.

Изначально я хотел написать про то: что такое бесплатные вычисления на примере is_range() + сумма елементов массива, но тут выявилась смешная особенность, поэтому пока без is_range().

Начнём с простого - сумма елементов(float) массива. Как написать её быстро? Обычный крестопоц сделает так:

auto summ = accumulate(begin(vec), end(vec), 0.)

Этот код выдаёт 5.6GB/s(мы всё бенчим в л1д 32килобайта массив). Казалось бы, если бы мы слушали всяких «гуру», которые нам говорят: accumulate() - оптимизирован, «ты что умнее создатели stl"а?», «конпелятор умнее тебе - сам всё делает оптимально», «руками что-то делать слишком сложно и не нужно» - то мы бы там и остались с этими 5.6ГБ, но мы пойдём дальше и поймём почему так, и является ли это тем, что намн ужно.

Но посмотрев на код - он не векторизован:

	addq	$4, %rdx
	vcvtss2sd	-4(%rdx), %xmm2, %xmm2
	vaddsd	%xmm2, %xmm1, %xmm1

Почему? Патамучто это основная флоатпроблема: Он не ассоциативен - флоат не имеет в себе точных представлений всех чисел входящих в диапазон его «представления» т.е. порядкопроблемы.

Поэтому конпелятор НЕ ВЕКТОРИЗУЕТ флоат по умолчанию, ну никак. Даже такую банальщину.

Для решения этих проблем - есть ключик -funsafe-math-optimizations, который входит в -ffast-math, который кладёт на точность при вычислениях. Добавив его мы получаем уже 44.9GB/s.

Но теперь мы получаем ещё одну проблему - надо думать: «как бэ сунуть эту ключик не повредив там, где этот ключик не нужен».

Поэтому ноцанам, которые хотят быстро и не хоятт рандомных жоп из-за тупости конпелятора - пишут всё руками. Допустим на той же сишке это пишется так:

double memadd_autovec(buf_t buf) { //5.609465GB/s, либо 44.969652GB/s с ffast-math
  float * it = buf_begin(buf), * end = buf_end(buf), summ = 0.;
  do {
    summ += *it++;
  } while(it != end);
  return summ;
}

double hsumf(__v8sf v) {
  return (v[0] + v[1] + v[2] + v[3] + v[4] + v[5] + v[6] + v[7]);
}

double memadd_vec(buf_t buf) { //45.652002GB/s и класть на ffast-math
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ += *it++;
  } while(it != end);
  return hsumf(summ);
}

Т.е. разницы никакой нет, кроме нужной нам реализации горизантального сложение вектора. Когда я говорил пацану: «векторную сишку для написания быстрого кода юзать намного проще, чем плюсы» - поцан нипонимэ, да и любые пацаны скажут - ну дак с -ffast-math оба выдают по 45гигов - нахрен эта сишка нужна?

А вот зачем:

double memadd(buf_t buf) { //132.878440GB/s
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ += *it++;summ += *it++;summ += *it++;summ += *it++;
  } while(it != end);
  return hsumf(summ);
}

Это называется пацанский анролл копипастой, а вот заставить конпелятор нормально что-то разанролить очень сложно.

Если бы мы слушали всяких «гуру», которые нам вещают: «анрол говно и не нужен» - мы бы так и седели с 45-ю гигами, а так мы сидим с 132.878440GB/s. Т.е. анролл нам дал немного не мало ~300%.

Но основная мысль, которую толкают всякие «гуру» - это не надо следить за тактами/считать такты и прочее. Но мы о5 сделаем наоборот и посмотрим что будет.

Т.к. наш юзкейс упирается на 99% в throughput и дёргается одна инструкция, то нам достаточно просто считать теоретическую производительность для моего камня. 4.5(частота камня)*8(т.е. у нас камень с avx, то там вектор 32байта, либо 8флоатов.)*1(throughput нашей инструкции - в данном случае vpaddps из интел мануала). Т.е. 36гигафлопс, либо ~144гига. Т.е. мы сняли овер 90% теоретической производительности - остальные 10% у нас ушли в наши циклы, всякие горизонтальные суммы вектора и прочее, ну и конечно же чтение данных из кеша.

Но самое смешное - на моём хасвеле умножение имеет throughput 0.5 - т.е. на хасвеле умножение быстрее сложения. Это новая забористая трава у интела.

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

Поэтому очень смешно слушать, когда какие-то пацаны говорят: «float point имеет такую же производительность как и инты» - нет, оно имеет такоу же производительность лишь по причине того, что на штеуде инты тормазят так же, как и float.

И чтобы окончательно в этом убедится - мы взглянем на fma(вариации умножения со сложением/вычитанем), которые имеют throughput 0.5 - да, да - на хасвеле умножение+сложение в 2раза быстрее просто сложения. Это уже не просто трава - это что-то принципиально новое.

У целочисленного сложения же throughput 0.5 и казалось бы, если мы поменяем в нашей функции float на int - у нас будет сложение работать в 2раза быстрее, но это не так. Оно выдаёт те же 130гигов, а почему?

Вообще у камня есть такая фича, допустим у нас:

add $1, %reg0//вот тут инструкция add залочит регистр reg0
add $1, %reg0//а эта инструкция уйдёт в лок до особождения предыдущей инструкцией регистра reg0

Чтобы такой жопы небыло - есть специальная фича:

add $1, %reg0//lock reg0
add $1, %reg0//И тут вместо того, чтобы уйти в лок - камень вместо reg0 даёт инструкции любой свободный регистр.

Эта фича называется прееименование регистров, либо как-то так - мне лень гуглить.

Дак вот штука в том, что фича работает через жопу. Мне лень читать мануал и искать почему так, но штука в том, что она ограничивает throughput. На умножении и целочисленном сложении она огранивает throughput c 0.5 до 1.

И вот я решил заюзать сложении через fma:

__v8sf fmaadd(__v8sf a, __v8sf b) {
  return _mm256_fmadd_ps(_mm256_set1_ps(1.), a, b);// a + b * 1. == a + b.
}

double memadd_fma(buf_t buf) {
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = {};
  do {
    summ = fmaadd(summ, *it++);
  } while(it != end);
  return hsumf(summ);
}

Но меня ждала жопа: 27.347290GB/s, причем не анролл и ничего не помогал. Я уж подумал, что мануал наврал, но позже до меня допёрло: у неё latency 5тактов и ((4.5×8)÷5)×4 ~= 29гигов - т.е. я получаю производительность с её latency, но какой жопой оно так?

Потом я вспомнил, что гцц гинерит анрольный код вида:

add $1, %reg0
add $1, %reg0
//а не
add $1, %reg0
add $1, %reg1

Т.е. на неё вообще не работает переименовывание регистров - и инструкции постоянно в локе. Я это проверил и оказался прав. Ну и я написал такой мемадд:


__v8sf fmaadd(__v8sf a, __v8sf b) {
  return _mm256_fmadd_ps(_mm256_set1_ps(1.), a, b);
}

inline void fma_10way_finality(__v8sf * cache, __v8sf * it, __v8sf * end) {
  switch(end - it) {
    case 8:
      *(cache + 7) = fmaadd(*(cache + 7), *(it + 7));
      *(cache + 6) = fmaadd(*(cache + 6), *(it + 6));
    case 6:
      *(cache + 5) = fmaadd(*(cache + 5), *(it + 5));
      *(cache + 4) = fmaadd(*(cache + 4), *(it + 4));
    case 4:
      *(cache + 3) = fmaadd(*(cache + 3), *(it + 3));
      *(cache + 2) = fmaadd(*(cache + 2), *(it + 2));
    case 2:
      *(cache + 1) = fmaadd(*(cache + 1), *(it + 1));
      *(cache + 0) = fmaadd(*(cache + 0), *(it + 0));
    case 0:
      break;
    default: error_at_line(-1, 0, __FILE__, __LINE__, "bad_aligned");
  }
}

double memaddfma_10way(buf_t buf) {
  __v8sf * it = buf_begin(buf), * end = buf_end(buf), summ = (__v8sf){};
  __v8sf * cache = (__v8sf[10]){{}};
  uint64_t i = 0;
  while((it += 10) <= end) {
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    *(cache + i) = fmaadd(*(cache + i), *(it - i - 1));++i;
    i = 0;
  }
  fma_10way_finality(cache, (it - 10), end);
  summ = (*(cache + 0) + *(cache + 1) + *(cache + 2) + *(cache + 3) +
	  *(cache + 4) + *(cache + 5) + *(cache + 6) + *(cache + 7) +
	  *(cache + 8) + *(cache + 9));
  return hsumf(summ);
}

Пришлось хреначить финалити, ибо тут «анролл» на 10, а почему на 10 - для максимального throughput"а - надо, чтобы каждый каждый регистр юзался через 5тактов - т.е. 10регистров.

И вся эта порятнка нужна для борьбы с тупостью конпелятора.

Это уже: 214.167252GB/s(раельно там в районе 250 - просто мой бенч говно). 107 гигафлопс на ведро. Из теоретических 144, но тут уже влияние кеша. Причем 50+ из которых выкидываются и просто бесплатные.

Теперь вопрос к пацанам - что нам дадут эти гагфлопсы, когда у нас будет массив не 32килобайта, а 32мегабайта? Зачем нужно выживать максимум, когда скорость памяти отсилы 20-30гигабайт и нам хватит даже С++ кода с ffast-math?

Ну и призываются упомянутые мною пацаны: mv - этот тот експерт, что вещал про «руками переименовывать регистры не надо» и «анрол ваще ненужен», emulek вещал про ненужность счёта тактов, и не понимал что такое «беслпатно», AIv - не понимал в чем проблема плюсов, ck114 - так же не понимал в чем проблема плюсов.

Бенчи: https://gist.github.com/superhackkiller1997/606be26fa158ef75501d - вроде я там ничего не напутал.

P.S. - не выпиливайте пж, пусть пацаны «нужно» или «не нужно». Мне интеерсно. Ну и там рекомендации пацанов.

 , , ,

Carb_blog
()

С каких это пор личная неприязнь модератора стала поводом к удалению сообщений?

Форум — Linux-org-ru

или я плохо читал правила?

Или я их гдето нарушил? А то я пока вижу только нарушения со стороны одного модератора.

ps. смотрим удаленные

wfrr
()

где фрактал?

Форум — Linux-org-ru

Где Фрактал? Я об ём скучаю. Есть на других форумах, бложиках, другие контакты? Сорри, что в /lor, но не в толксы же

stevejobs
()

Прогнувшиеся модераторы

Форум — Linux-org-ru

JB, что за дела? Если тупняк и был, то только в комментах. Или ты повинуясь указке сверху решил «не раскачивать лодку»?

Ссылка на драму: www.linux.org.ru/forum/talks/11481481

 

StReLoK
()

За справедливость (!*ВИМ)

Форум — Linux-org-ru

Mono, ты зря удалил тред в этом разделе: www.linux.org.ru/forum/linux-org-ru/9810599, не дождавшись пришествия Макскома. Так что я считаю необходимым восстановить справедливость: sudo cast maxcom, mono, tazhate, UVV, Nataly. И да, ни разу не Offtopic.

 ,

Mr_Gentoo
()

Помогите вычислить сопротивление

Форум — Science & Engineering

Всем привет.

Помню в школе вычисляли сопростивление цепи описанной ниже. Но никак не могу вспонить как. Мучает уже который год. Помогите, пожалуйста!

  --------| R4 |---------
  |                     |
--+--| R1 |--+--| R2 |--+--| R3 |--+--
             |                     |  
             --------| R5 |---------

 , , ,

Kroz
()

кошерное рабочее место в кущах

Галерея — Рабочие места

по причине праздника кущщей, или Суккот, передбрался на надельку жить в шалаше, где и обосновал свое рабочее место.как сказанно в Торе «в кущах сидите 7 дней..». я так понял, что шалаши называютс кущами, из вики)

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

sudoer
()

Закосил под Windows NT/2000

Галерея — Скриншоты

Недавно на свой ноутбук поставил Q4os, попутно задумал сделать закос под Windows NT/2000 (опережая вопросы, скажу, что так сделал потому, чтобы на работе коллеги не задавали лишних вопросов, но случилось на оборот, все коллеги теперь советуют обновиться...). Использую шрифты Tahoma 8, без сглаживания.

На первом скрине открыт браузер, файловый менеджер и консоль, показывающая потребления ресурсов ПК.

На втором скрине, опять же, консоль, и маленькая программка, под названием XPQ4...

 

Odalist
()

Linux 3.11 for Workgroups

Галерея — Скриншоты

Так как иконки из Win 3.1 я, увы, не нашел, пришлось их выкорчевывать из виндовых бинарей и совмещать с иконками из Win 95. Из виндовых приложений в вайне запущен PaintBrush. Приложения из Win 3.1 в вайне имеют свойство глючить и вылетать, но в целом работают вполне сносно.

  • Тема GTK и Xfwm: Win3x-White
  • Шрифты: DejaVu Sans Bold без антиалиасинга
  • Иконки: Classic95

Пара виндовых приложений. 640КБ для всех не хватило.

 

Unicode4all
()

Lego Universe закрыли из-за расходов на цензуру.

Форум — Talks

Для Ъ:
Компания LEGO Universe прикрыла свою ММО-стройку, потому как непомерные деньги уходили на модераторов, сносивших построенные игроками здания в виде МПХ.

Драма в подробностях: http://secretmag.ru/news/2015/06/01/lego-zakrilos-iz-za-censure/

 , , , ,

Hurenweibel
()

удаление социально значимых тем

Форум — Linux-org-ru

Здесь: www.linux.org.ru/forum/talks/11636041 юзером Axon поднята одна из социально значимых и интереснейших тем современности. Предлагаю подобные темы не удалять, а переносить в Клуб.

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

mono

 

newpunkies
()

Вернется ли Эдуард?

Форум — Talks

Настолько погрузился в дела, что пропустил момент, когда Эдди забанили. Печально, блин! Да, он часто вбрасывал, но все-таки и годным специалистом является. Конечно, без него не так хреново, как без Sun-ch, но все равно скучно, как в болоте каком-то. Очень хотелось бы, чтобы он вернулся.

 

Meyer
()

Есть ли в мире чистый рандом?

Форум — Science & Engineering

Мельчайшие частицы в мире взаимодействуют. Соответственно, ни одно событие нельзя считать случайным, ведь взаимодействие частиц определяется законами физики вполне однозначно. Грубо говоря, если 1000 лет назад каждая частица была как-то определённо расположена, обладала определёнными параметрами (скорость, энергия, все дела), то из этого можно (теоретически) рассчитать состояние мира через лет 50, обладая достаточными знаниями и вычислительными мощностями. Или это не так и в мире есть где-то источник чистого рандома, который вносит тот самый элемент случайности, который сделает бессмысленными такие расчёты? Просветите, пожалуйста

 ,

Valdor
()

Transas: как работается, что за компания?

Форум — Talks

Привет.
Накидайте, пожалуйста, опыта и контактов людей, работающих или работавших в Transas, СПб. Интересует мнение инженеров об этой компании.
В сети отзывов совсем немного, и отзывы резко полярные. Причём отзывы ещё и анонимные.
Спасибо.

 

taker
()

Пользуясь моментом, хочу передать привет 178.248.233.6

Форум — Talks

Утилита ping доступна в любой системе, всегда можно отправить ICMP-запрос на любой хост, поэтому самый простой вариант «общения» между хостами — использовать протокол ICMP, в том числе и для получения звуковых уведомлений о важных системных событиях.

Отлавливать пакеты ICMP можно при помощи iptables.

# iptables -A INPUT -p icmp --icmp-type echo-request \
  -m conntrack --ctstate NEW \
  -m limit --limit 1/day --limit-burst 1 \
  -m length --length $((31337 + 28)) \
  -j LOG --log-prefix "PING? PONG! "

Теперь все ICMP-запросы размером 31337 байт (плюс 28 байт на заголовок) будут сохраняться в логах системы и о них можно узнать при помощи утилиты dmesg, далее нужно следить за лог-файлом /var/log/kernel и при наличии PING? PONG! и воспроизводить звуковое уведомление.

Скрипт одной командой.

#!/bin/bash

(
tail -f /var/log/kernel | awk '/PING\? PONG!/ { system("aplay -q \"/var/tmp/EVE Online - Notification Ping.wav\" &") }'
) &

Скачать EVE Online - Notification Ping.wav (0.6M)

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

Передать привет:

# ping -c 1 -s 31337 spfng.com

Здесь не идёт речи о безопасности, её здесь нет и быть не должно: во-первых, установлен лимит на количество запросов, во-вторых на успешность запроса влияют заданные параметры пакета — перебрать все возможные варианты затратно и не принесёт никакого результата, в третьих, даже если и пройдет десяток-другой звуковых уведомлений от посторонних хостов — нет ничего страшного, но ICMP это пожалуй самый «естественный» способ создания подобных уведомлений.

Аналогичный способ для оповещения при подключении к SSH.

Спасибо, извините.

 , ,

Spoofing
()

Зализняку 80 лет

Форум — Science & Engineering

http://trv-science.ru/2015/05/05/rycar-lingvistiki/ — реально живой классик и человечище!

Кому хочется почитать что-нибудь от мастера, настоятельно рекомендую вот это: http://elementy.ru/lib/430463/430464 — просто гимн во славу разума.

Можно отлить в граните:

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

Результаты профессиональной деятельности Зализняка (безусловно не только его, но его текстов там довольно много) в открытом доступе: http://gramoty.ru/ (Древнерусские берестяные грамоты)

P.S. И да, это тред-детектор.

 

Evgueni
()