Архив рубрики ‘Новости’

Тренинг по решению проблем

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

IMG_20200218_195126_238

Например, диаграмма направленности антенны ассоциируется у меня с хуем. Если положить этот хуй на любую проблему – то и решать ее не придется!

Ничего не скажешь – работает психологический подход, прекрасно работает!

Шедевры контекстной рекламы, продолжение

Сказал в фейсбучной дискуссии что-то вроде “ежика родить” и теперь мне показывает рекламу пренатального скрининга.

Про гиперболы

Идет разговор про обработку текста, машинное обучение и все такое. Наши ихним:

- А вы умеете обнаруживать метафоры?
- А что такое метафоры?

(тут возникает понимание, что дальнейшая беседа клеиться не будет, но может, виноват языковой барьер и русский акцент?)

- Ну… это что-то вроде гиперболы, но…
- (они услышали знакомое слово!) Да, мы умеем обнаруживать гиперболы! И эллипсы! (тут внутренне напрягаешься – сказали они ellipsis или ellipses) И даже параболы!

Дальше их недоматематики объясняют нашим филологам сложности классификации кривых второго порядка, но тебе уже все равно, ты делаешь facepalm.

В порядке бреда

Интересно, а можно ли на жирном ARM Cortex M4 крутить “полноценную” математическую модель какого-нибудь теплого лампового гитарного усилителя? Вот навскидку – предположим, что тактовая частота у нас около 100 МГц, частота оцифровки – ну, 100 кГц за глаза. Можно ли в 1000 инструкций на отсчет АЦП засунуть какую-то полноценную обработку оцифрованного сигнала? Мне кажется, что хватит с большим запасом.

Раз уж про ЕСПД и прочие ГОСТы вспомнил

В режиме “идея для стартапа” – взять OpenUP, перевести на русский, скрестив с ГОСТ-ами 34 серии (он на них довольно хорошо ложится), добавить шаблоны документов. Кто сделает – может произвести себя в ранг общероссийского гуру и собирать вокруг себя секту наподобие ТРИЗопоклонников.

ЕСПД и программисты

Напишу-ка я очередную проповедь про программистов – точнее, об их взаимодействии с внешним миром. Глупый и наивный программист думает, что конечный результат его работы – это код программы. Программист, побитый жизнью, обычно догадывается, что код этот сам по себе малоинтересен, и к нему нужна еще какая-то документация. Если это удается сочетать с живительными пиздюлями менеджмента – то к проекту прикручивается какой-нибудь Doxygen или Javadoc, и на выходе получается автоматически сгенерированная портянка рафинированной чуши.

От следующего столкновения с реальным миром кодомакака обычно хорошо изолирована – так что она может и не подозревать, что в конечном итоге и код, и документация должны превратиться в что-то материальное. Даже веб-приложение, крутящееся в каком-нибудь AWS – так или иначе записано на материальный носитель, выполняется на вполне себе физическом сервере, взаимодействует с пользователями через каналы связи и пользовательские же устройства.

Примерно тут возникает еще одна проблема – “код и документация” нужны заказчику в удобоваримом для него виде. Скажем, “код валяется в разных местах на диске у Васи, документация – в виде обрывков бумажек в столе у Пети” ни одного заказчика не устроит; “исходники и Javadoc лежат на гитхабе там-то и там-то” – приемлемый вариант для “технарей”; “все документы по проекту находятся в CVS-системе фирмы, а также записаны на компакт-диски и находятся в двух разных помещениях архивов” – вариант повышенной энтерпрайзности, ну и так далее.

И тут мы приходим к одной поучительной истории – про ЕСПД. Идея 19 и 34 серии ГОСТов, если вдуматься – это решение проблемы, описанной в предыдущем абзаце. Если говорить на языке более современных подходов к разработке ПО – типа RUP или OpenUP – то они описывают “артефакты”, которые должны возникнуть в ходе разработки программы или автоматизированной системы, и требования к содержанию и оформлению этих “артефактов”, позволяя заказчику, разработчику и потребителю ПО говорить “на одном языке”.

Проблем с ЕСПД две – откровенный саботаж всякого процесса документирования своего творчества со стороны программистов и (как позже увидим, непосредственно вытекающая из этого) устарелость стандартов. Но начнем мы все же с саботажа. Давайте попробуем “изготовить” полагающийся по ГОСТ 19.401-78 “Текст программы”. Поймайте программиста и попросите у него “текст программы”. Ответом вам будет либо набор файлов (хорошо, если он сопровождается каким-нибудь Makefile), либо, если вы используете много “чужого” кода – долгая дискуссия, где заканчивается ядро Linux и начинаются ваши доработки. Дальше вы смотрите на ГОСТовские требования и понимаете, что распечатка ядра Linux или какого-нибудь веб-фреймворка на бумаге – это, конечно, прикольно – но отдел технической документации у вас это не примет.

Дальше выясняется – со слов коллег, сдававших сделанную по ЕСПД документацию раньше – что архив и нормоконтроль удовлетворятся сделанным в Word документом, содержащим что-то, похожее на исходники программы. Не вопрос! – думаете вы, и лихим Ctrl+C – Ctrl+V набиваете вордовский шаблон неработающими исходниками. Собственно, где-то на этом этапе в 1937 году вас бы ждал расстрел за подлог документов и саботаж (кстати, вы никогда не задумывались, что сокращение ИТР обозначает одновременно инженерно-технических работников и иностранные технические разведки?) – но сейчас времена более вегетарианские. и за такое очковтирательство никому ничего не будет.

Маленькое отступление – если бы вы не слушали “более опытных” коллег, а пошли бы в архив с тортиком, то вы смогли бы выяснить, что записанный на компакт-диск zip-архив с исходниками тоже сойдет. Впрочем, особо красноречивые товарищи могут попробовать научить работающих в архиве девушек пользоваться TortoiseHg.

Примерно так же происходит подготовка любых других документов “по ГОСТ” – вместо минимально читаемого Javadoc “Руководство программиста” будет куцей компиляцией форменного бреда; “Руководство системного программиста” будет описывать все, кроме того, что действительно нужно. В конечном итоге на написание документации будет посажена “девочка”, совершенно не задумывающаяся о сути производимой работы, но неплохо умеющая писать формально удовлетворяющую требованиям нормоконтроля документацию.

priplyli

Поздравляю, вы окончательно приплыли! Через некоторое время процесс очковтирательства при подготовке документации будет отлит в граните зафиксирован не только в “организационной памяти”, но и в стандарте предприятия, и из необходимого этапа в жизни программного продукта превратится в бессмысленную и неприятную повинность (впрочем, “девочка” для этого у вас уже есть).

В принципе, с чем-то подобным столкнулись и обычные инженеры, конструктора и так далее – но в отличие от программистов, там довольно быстро осознали, что стоит привести ГОСТы в соответствие с реальностью XXI века – поэтому в ЕСКД где-то в начале 2010-х легализовали, к примеру, “электронный документ” (собственно, ГОСТ 2.051-2006 приняли еще раньше, как несложно догадаться – в 2006). Технически продвинутые программисты – наоборот, предпочитают оставаться в реалиях 1970-х годов по причине полной неспособности взаимодействовать с “нехорошими бюрократами”. Остается их с этим поздравить.

PS Написано по мотивам личного опыта автора, your mileage may vary.

За телеком, не чокаясь?

Почитал тут телеграм-канал “За телеком”, тесно связанный с “Обществом защиты интернета” (кстати, квест! Найдите на сайте, кто же, собственно, входит в это самое “общество”). Вот вроде бы ребята изображают какую-то организацию, радеющую за права российских айтишников – но при этом демонстративно ссорятся с любыми государственными органами, обзывают всех мудаками и так далее. А потом еще удивляемся – что это из российского околайти в Кремле знают только старика Касперского, а всех остальных считают какими-то недопанками-анархистами?

На фоне этого, конечно, заявленные “Обществом…” цели (почему-то размещенные на страничке сайта “Кто мы“) просто шедевральны. Впрочем, это может оказаться и хитрым планом – ведь и отвечать за их достижение тоже не придется.

Про метро

Не знаю даже, любить или нет станцию Беговая за совершенно шедевральное объявление:

Чендж хиа ту диван! Следующая станция Полежаевская!

Вроде и хочется на диван и полежать, а с другой стороны – на следующей выходить :(

Про модные V2V communications

Наткнулся тут на ролик, где показывают, как некие студенты слепили на ардуинах и неизвестных радиомодулях прототип системы связи между транспортными средствами (V2V communications):

Говорят, что этот проект занял в проводимом фирмой Valeo конкурсе инноваций второе место (а авторы получили денежный приз в 10 000 $) – но вообще я не углядел здесь ничего особо инновационного. Безо всяких “инноваций” в ралли-рейдах уже давно, с 2005 года, используют приборчик под названием Sentinel – делающий практически все, что с большой помпой представлено в ролике, причем это не творчество кружка “Умелые руки”, а вполне себе серийно выпускающееся устройство.

Патч брамина

Почти как патч Бармина, но в переводе на хинди.

Немного жопоголизма

В комментах у [info]sanches обнаружил некий не лишенный логики прогноз смертности от китайского коронавируса (опубликован 31 января, так что можно сравнить с фактической смертностью):

31 января – 215 (факт – 213)
1 февраля – 250 (факт – 259)
2 февраля – 300 (факт – 304)
3 февраля – 400 (факт – 361)
4 февраля – 570 (факт – 427)
5 февраля – 780 (факт – 492)
6 февраля – 1350 (факт – 565)
7 февраля – 1770 (факт – 638)
8 февраля – 2250 (факт – 724)
9 февраля – 3190 (факт – 813)

https://trueview.livejournal.com/219857.html

Поделюсь лайфхаком

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

Интересно, как это называется?

Смотрю тут один опенсорсный проектик на гитхабе и понимаю, что в Cisco работают такие же индусы, как и везде (хотя нет, кое-где за такое могут и уебать):

https://github.com/cisco/ns3-802.11ax-simulator/blob/master/ns-3.26/src/wifi/model/rrm-wifi-manager.cc

Совершенно шикарны строки со 149 по 155, да и все их многочисленные копипасты. Поневоле задумываешься, как же в принципе может более-менее стабильно работать современный софт и тем более железо, разработанное “клоунами под руководством мартышек”.

PS Посмотрел профили указанных в заголовке индусов на линкедине. Сильно опечалился.

Вещизм, или про релевантность

Случайно набрал в поиске Яндекса “theSchism of 1387” и немножко офигел от вылезших в правой части страницы предложений некоего нового сервиса “Яндекс.Коллекции”:

theschism

Давайте, расскажите мне про релевантность.

Ще не вмерла Java (но вже смердит)

Интересно, а автор этого Java 8 Tutorial понимает, насколько смешной он взял эпиграф?

https://winterbe.com/posts/2014/03/16/java-8-tutorial/

Так вот он какой, лох чилийский!

loh-chile

Тем временем отличился Госдеп США

Официальный русскоязычный аккаунт Госдепа в пятницу вечером выложил в твиттере антирекламу Huawei:

https://mobile.twitter.com/USApoRusski/status/1218127103402684416

Если в понедельник редакция аккаунта проспится и удалит – то видео из твита уже перезалили на Ютуб:

Интересно, конечно, а как такое мочилово конкурентов соотносится с “этичной и прозрачной деловой практикой”?

Маленький домашний Роскомнадзор

Не спрашивайте, как, но я набрел на настройки DNS-сервера для блокировки “неонацистских и гомофобных” сайтов:

https://git-01.md.hardenedbsd.org/shawn.webb/dnspinning-for-human-rights/

Удивительно, что борцы “за права человека” непременно изобретают собственную цензуру, в надежде, что она будет белой и пушистой, не то что у этих нехороших роскомнадзоровцев.

Кто все эти люди?

Увидел на Stackoverflow шедевральный вопрос – как на питоне посчитать коэффициент корреляции Пирсона:

http://stackoverflow.com/questions/3949226/calculating-pearson-correlation-and-significance-in-python/5713856

Ответы типа “используй SciPy/NumPy/WhateverPy” в принципе понятны – но кто поставил 12 “лайков” ответу пользователя compski?

import math

# calculates the mean
def mean(x):
    sum = 0.0
    for i in x:
         sum += i
    return sum / len(x) 

# calculates the sample standard deviation
def sampleStandardDeviation(x):
    sumv = 0.0
    for i in x:
         sumv += (i - mean(x))**2
    return math.sqrt(sumv/(len(x)-1))

# calculates the PCC using both the 2 functions above
def pearson(x,y):
    scorex = []
    scorey = []

    for i in x:
        scorex.append((i - mean(x))/sampleStandardDeviation(x)) 

    for j in y:
        scorey.append((j - mean(y))/sampleStandardDeviation(y))

# multiplies both lists together into 1 list (hence zip) and sums the whole list
    return (sum([i*j for i,j in zip(scorex,scorey)]))/(len(x)-1)

И прошло целых три года, прежде чем Николай Фоминых сподобился написать крайне токсичный по нынешним понятиям комментарий “ты мудак, тебе надо оторвать руки, а клавиатуру засунуть в жопу, чтобы ты больше не мог написать ни одной строчки кода” “У этого способа ужасающая сложность и низкая производительность на списках из 500+ элементов”.

Так вот – ладно, я не регистрируюсь на SO, потому что влом – но кто-то же проходил мимо этого образца говнокода, и за несколько лет так никто и не обложил хуями автора. Почему?

Еще один сборник задач по программированию

Наткнулся на опубликованные на сайте 57 школы “листочки” с задачами по программированию для математических и биологических классов:

https://prog.sch57.ru/

Это подборка из достаточно большого количества задач, укладывающихся в содержание хорошего школьного курса информатики “с программированием” (Python, основные алгоритмы, немного разной экзотики от machine learning до представления о веб-программировании) – к сожалению, на сайте она разбита по годам и классам, поэтому собрать курс целиком (или даже несколько – кажется, у “математиков” и “биологов” программа слегка отличается) в более-менее адекватном порядке может быть слегка затруднительно. По сложности – где-то между Pythontutor и книжкой Шеня. Из достоинств – задач больше, чем на Pythontutor, и в отличие от книжки, здесь есть задачи на “элементарные” темы. Есть критерии оценок – например, из листочка “Строки” на тройку надо решить 5 задач из 12, на четверку – 8, на пятерку – 10. Пользоваться для переворота строки всякими дебильными способами в явном виде запрещено, что не может не радовать.