Pull to refresh
0
Каукин Игорь @Zanak

Backend и все что с ним связано. Немного — фронт.

Send message
Если бы вы хоть одно массовое мероприятие попытались организовать, вы бы знали, что люди, сами по себе могут организовываться в весьма ограниченных пределах, человек до 10, примерно.
Для большего количества всегда нужен кто — то, кто в курсе плана мероприятия, где собираемся, куда идем, когда идем, кто чего берет с собой, что еще лучше взять самому, для подстраховки, чтобы все прошло как задумано.
Навальный был выписан 23 сентября 2020, а вернулся в страну 18 января, собственно, в этом и заключается претензия ФСИН, что господин Навальный более 3-х месяцев прибывал в Германии без разрешения ФСИН после того, как его лечение закончилось.
Да, да. Слышал. За деятельность не отличимую от законной, или что — то в таком духе. Если все так замечательно, что же он в родной юрисдикции ни стал оспаривать приговор, а предпочел с ним согласится? А у нас в стране как, согласился, значит виновен.
Око за око зуб за зуб, так что ли? Или в УК где — то появился термин «обнуление»?
Осудил Навального суд. И только исполнение наказания, или другой суд это может «обнулить». До тех пор Навальный — ВОР.
Ну да, давить на психику людям, оказавшимся, из за пандемии, в сложной ситуации куда гуманнее. Нет уж, сначала лишить координаторов всего этого безобразия связи, потом зафиксировать всех, и дальше спокойно фильтровать, кто случайно попал под горячую руку, а кого нужно брать под особый надзор.
Ладно бы иконой всего этого безобразия был человек достойный. А так, дважды осужденный за экономические преступления, закоренелый провокатор, и просто нехороший человек.
Зачем так сложно. Наша страна, если не чемпион, то один из лидеров в вопросах РЭБ. На места возможных беспорядков, вместе с росгвардией, будет выдвигаться неброский автомобиль с антенкой, и в случае приказа, в одном отдельно взятом районе, пропадет wifi, а потребуется и gsm тоже.
Интересно, мне одному показалось, что автор перепутал взаимодействие с программой и получение результата? Интересно, как бы он описывал визуальное создание продуктов, которые изначально не подразумевают визуальность, например СУБД?
Большинство из перечисленного вне моих интересов, я не являюсь их клиентом и не собираюсь им быть, поэтому особых эмоций и не вызывает.
С nginx Рамблер чуданул. 20 лет не заявлял права, а тут вдруг вспомнил. В топку такие претензии.
Бывшие разрабы из Wargaming сами творцы своих проблем. И судя по тому, что противостояние они проигрывают, не все так однозначно.
Скриптовые языки для того и придумывались, чтобы на них было быстрее разрабатывать, вынося все тяжелые вещи на плечи, в первую очередь, С. Выступая клеем, который позволяет легко собирать и комбинировать реализацию необходимых алгоритмов на «серьезных» языках, скриптовые языки дают гибкость в реагировании на конечные требования.
Оглядываясь на обе статьи вместе, у меня сложилось впечатление, что автор просто неправильно выбрал инструмент, и теперь очень расстроен, что он оказался не достаточно, для него, универсален.

PS Всех с наступающим новым годом.
Нельзя сравнивать несравнимое, а тем более противопоставлять.
Бессмысленно превозносить компилируемые языки за то, что они выполняют проверку всего кода программы в процессе сборки. У скриптовых языков этот момент просто отсутствует.
Бессмысленно превозносить поддержку многопоточности в раст, она конечно круче питонячей, потому что питон изначально не создавался для потоков. Пока vm питона не научат атомарно исполнять его байткод и нормально масштабироваться по ядрам процессора его потоки так и останутся приделанным сбоку.
На счет функциональщины и замыканий — не убедили. Писать в функциональной манере можно, коли пришла такая охота, и кому это интересно, те знают про functools. Другое дело — это вопрос целесообразности. Питон, все таки ОО язык, и профит от чуждой парадигмы, лично для меня, не очевиден.

Финальная ремарка вообще убила: «Зачем-же питонисту Rust». Затем, зачем и все другие компилируемые языки, реализовать то, что сам питон делает плохо, например, распараллелить и/или ускорить какую нибудь задачу.
К питону меньше всего упреков.
Главное, при отборе материала, все последовательно, и очень аккуратно изложить.
Скользкие, на мой взгляд, темы:
— магические функции вида __mf_name__(). нужно аккуратно объяснить, что это инструмент взаимодействия со средой исполнения, но ни как не синтаксиса.
— декораторы. инструмент на сколько мощный, на столько и опасный для неокрепшего разума неофита (логика, реализуемая декораторами, может быть весьма раскиданной по пакетам, при всей лаконичности использования и реализации самой декорируемой функции, за декораторами может скрываться весьма нехилая работа).
— метапрограммирование. даже если вы не пишите метаклассы сами, достаточно, к примеру, подтянуть orm, чтобы сбить с толку новичка. необходимо добиваться четкого понимания, что является частью языка, а что реализовано в отдельном модуле программистом и будет исполняться в программе.
На начальном этапе эти темы следует избегать, максимально отодвигая разговор о них.

К JS как к первому языку программирования упреков больше.
Первым приходит на ум: распространенность практики на «чистом» js примерно такая же, как у ассемблера относительно высокоуровневых языков. Даже поклонники old school, как минимум, используют jquery+plugins. Да, без знания js не усвоить весь остальной арсенал, но, на мой взгляд, это hard way, если говорить о первоначальном обучении программированию, когда очень важно не отбить у неофита желание что либо изучать в принципе.
Начертание кода, его читаемость, на мой взгляд, даже если и удобна в написании, крайне не удобна в восприятии непрофессионалом. JS можно вменить тот же упрек, что, в свое время, любили относить к perl: код на этом языке сложно читать, а раз сложно читать, значит сложно и понимать.
JS для начинающего программирование — на мой взгляд, хуже не придумаешь. Начинать надо с любого языка, где нет не включенных в синтаксис добавок, например, разного рода препроцессоров, или магических функций вида __mf_name__. Новичку и так приходится вникать в новую для него область знаний, а вы ему еще и нюансы функционирования конкретной среды исполнения в мозг вваливаете.
Rust компилируемый язык. Его подход — проверил все что только можно и скомпилировал бинарь, которая, с определенными оговорками, самодостаточна.
С питоном такой финт не работает: питон компилирует модули по мере обращения к ним. Да, можно проверять модуль перед релизом, но это не то, потому что это не сработает. Стоит поменять api пакета, оставив иерархию классов прежней (это можете быть необязательно вы, за вас это может сделать один из авторов, творение которых вы помянули в депсах), и питон снова кувыркнется только при попытке вызова «поломанного» метода (Проверка typehint-а недостаточна).
Чем подход rust в обработке ошибок, например, отличается от питона, что его нужно тянуть в язык отдельно? Там на невосстановимые ошибки паникуем, на остальные возвращаем соответствующий результат, в питоне ни что не мешает делать так же, кидать эксепшн или возвращать результат, который не обязан быть простым по своему устройству.
Даже если rust подобный синтаксис подтянут в питон, его реализация должна будет нормально соседствовать с прежним подходом, учитывая размер существующей кодовой базы, смешивание 2 подходов, как минимум, не должно порождать ошибок, а то, что оно будет — это объективная реальность, а как максимум, данные изменения не должны приводить к просадке скорости существующего кода. Не факт, что это просто будет сделать.

В чем я наверное готов согласится с автором публикации — это в том, что, возможно, к инструментам проверки качества кода на питоне стоит присмотреться еще раз, в контексте идей привнесенных rust и изменений в самом python.
Не понимаю, зачем в питон тащить чуждые концепции.
Python любим как раз за низкий порог вхождения, в отличии от rust. Начните писать на питоне в манере rust, и вы получите другой язык. Который возможно найдет своих поклонников, но будет ли их так же много, сколько сейчас есть у питона? Сомневаюсь.
Пример perl6 должен заставить задуматься. Язык, в конце — то концов сделали, но успех пятерки ему даже и не сниться. Непродуманные изменения, не поддержанные сообществом, могут толкнуть питон на ту же дорожку.
Есть nim, который достаточно похож на питон, не один к одному, но все таки. Компилируемый, строго типизированный, с достаточно лаконичным синтаксисом. Сколько человек могут похвастаться его знанием?
В самом питоне есть многим, если не всем, известный пример не очень удачного заимствования — это django. Я пробовал писать на рельсах и джанго. Сравнения не в пользу последнего. Хотя отдаю должное, django появился к месту и ко времени, и не мало способствовал росту python — сообщества. Только, на мой взгляд, сейчас уже устарел и предпочтение лучше отдавать тому же flask, например.
Да и rust ни куда не денется, и питон так и останется подражателем.
В своем комментарии я имел ввиду что — то такое (псвдокод, максимально близкий к php):
# Запись такого вида (можно рассматривать как предложение синтаксиса)
enum Foo {
    Unit,
    SomeValue = 111,
    First(int),
    Text(string),
    Point(x: float, y: float),
}
# При разборе могла бы разворачиваться в такую реализацию
# Возможно, это будет существовать только в виде AST в памяти
enum Foo {
    private enum FooKind {
        Unit,
        SomeValue,
        ...
    } __kind,
    # Размер array фиксируется наибольшей длиной списка аргументов функций
    private array __value,

    public static function Unit(): Foo {...}
    public static function SomeValue(int v): Foo {...}
    ...
    public static function Point(x: float, y: float): Foo {...}
}
Я не большой знаток rust, но в нем элементами перечисления могут быть просто значения, кортежи и структуры (да поправят меня знатоки раст, если я ошибаюсь).
Самые близкие аналоги в пыхе это скаляры, индексированные и ассоциированные массивы.
Может стоит обернуть их, чтобы в коде можно было писать, например:
enum Foo {
    Unit,           // Единичный тип
    First(int),     // Целое 32-х разрядное число
    Second(int),    // Другое целое число
    Text(string),   // Строка
    Point(x: float, y: float),   // Тип-произведение (запись)
}

Foo $my_var=Foo::Point(x: 1, y: 2);
print($my_var.x);

и бросать ексепшн, если $my_var не содержит в текущем значении этого свойства?
Отдельный синтаксис, отдельная реализация, и точно ни какого влияния на текущую реализацию class-a.
> Каждый член enum — это отдельный класс.
Возможно ни чего такого ввиду не имелось, но для тех, кто мимо проходил может звучать странно:
— создаем какое — то перечисление SomeEnum
— указываем одним из значений SOME_VALUE
— раз SOME_VALUE класс, значит можно породить потомка?
Я о том, что политическая пропаганда не является свойством публикации, это скорее мотив работы с новостями в принципе.
Можно не писать ни слова лжи, и все равно заниматься пропагандой. Где — то коротко и обще, где — то наоборот, налить кучу воды, где — то мелким шрифтом и в самом низу ленты новостей, куда доходят единицы читателей, если подумать, можно придумать, ну или найти готовые, приемы по отвлечению внимания от нежелательных материалов, для этого не обязательно их совсем прятать.
Другая сторона медали — акцент на положительных материалах, максимальное привлечение внимания. Материалы могут быть самые разные. От информашки вроде «прошла благотворительная акция партии ЕР», до в целом нейтрального «атомный ледокол Арктика вступил в строй и будет выполнять проводку кораблей по севморпути».
Серединный вариант — интерпретация события. Мало первым получить информацию о событии, лидер получает шанс повлиять на отношение к происходящему.
То есть, даже не опускаясь до распространения слухов или откровенной лжи, влияние информации можно пытаться изменить, и подавать ее можно, как с положительным, так и с отрицательным эмоциональным зарядом.
И это я еще ни слова не сказал о блогерах. Они вообще ограничены только собственным пониманием норм морали и немного законом. При том, что аудитория некоторых из них сравнима с аудиторией приличного СМИ. И информация, которую выдают их источники иногда действительно потрясает. Как иногда потрясает и количество дезы, через них же сливаемой.
В общем, я не очень понимаю, как вы станете определять пропаганду, потому что она не является строго черным или белым, пропаганда — это полутона, цвет, насыщенность и яркость которых зависит от целей компании. В прочем, я все равно желаю вам удачи, и с удовольствием почитаю о вас еще раз, если вы достигните какого либо практического результата.
Большая Советская Энциклопедия определяет пропаганду как распространение политических, философских, научных, художественных и других взглядов и идей с целью их внедрения в общественное сознание и активизации массовой практической деятельности.
Энциклопедия Британника определяет пропаганду так: «Пропаганда, распространение информации — фактов, аргументов, слухов, полуправды, или лжи — чтобы повлиять на общественное мнение. Пропаганда — более или менее систематические усилия манипулировать убеждениями, отношениями или действиями других людей посредством символов (слов, жестов, плакатов, монументов, музыки, одежды, отличительных знаков, стилей причёсок, рисунков на монетах и почтовых марках и так далее).
Есть и другие определения.
Что именно вы собираетесь определять?
Допустим, вы приняли первое определение. Возьмем, для примера, пропаганду ЗОЖ. Звезды ТВ и сети говорят о необходимости следить за своим здоровьем, необходимости правильно питаться, заниматься спортом. Вроде все в порядке. Вы анализируете материалы, определяете, вот эти статьи являются пропагандой ЗОЖ. Означает ли, что вы собираетесь заниматься классификацией? А как быть с подчас бредовыми, и не всегда безопасными рекомендациями, типа едим только мясо, запиваем алкоголем и худеем? Это уже не столько классификация, сколько оценка качества, полноты и достоверности?
Допустим, вы приняли второе определение, подозреваю, что ради разговора о политике вы и затеяли ваш опус. Сейчас модно ругать государство, мол власти обманывают, не говорят всей правды или просто скрывают информацию. Означает ли, что все положительные материалы о государстве априори лживы, а все негативные соответствуют действительности? Думаю нет. Получается, у вас есть идеи, как бороться с fake news?
Не имею возможности ответить каждому собеседнику персонально, поэтому попробую ответить на максимальное количество комментариев из ветки.
Я скорее сторонник президента, но и мне далеко не все происходящее нравится.
По теме статьи, вспомните, с чего начался конфликт. Гугл не выполнил требования об обработке персональных данных наших граждан на территории России. Является это требование чем — то из ряда вон выходящим? Не думаю. Европа, Америка, Британия, Южная Корея, много кто еще пристально следит за сбором подобной информации о своих гражданах.
Является ли предложенная мера разумной и справедливой? Правильный ответ — нет. Во первых, коммерческие услуги компании, скорее всего, не являются основным источником трафика к ее серверам, а значит компания продолжит вести свой бизнес удобным для нее образом, почти или совсем не заметив введенных ограничений. Во вторых, могут пострадать интересы законопослушных приобретателей продуктов компании, а сюда запросто могут угодить все владельцы андроид устройств.
Следует ли отказаться от защиты национальных интересов? Правильный ответ — тоже нет.
На мой взгляд, ГД пытается заниматься несвойственным ей делом. Не должны законодатели лезть в технические вопросы, хотя бы потому, что законы принимаются не на один день, и за срок их жизни технологии могут успеть шагнуть далеко вперед.
Нельзя собирать персональные данные без ведома их владельца, все, точка.
Нельзя безнаказанно нарушать закон в сети, оскорблять, угрожать, вмешиваться в частную жизнь, распространять запрещенные вещества, склонять к нарушению закона, особенно малолетних, запятая. Для исполнения этой нормы должны существовать механизмы идентификации автора или распространителя любого материала, точка.
Строго по существу, и без технических деталей, в которых парламентарии не сильны.
Когда ГД станет заниматься именно тем, для чего ее избрали — критики в ее адрес станет гораздо меньше.
Для проработки именно технических моментов следует создать отраслевой институт, курировать который могут ФСБ вместе с минкомсвязи. Этот НИИ вполне мог бы быть оснащен по самому последнему слову техники, и заниматься подготовкой своих, или проверкой пригодности существующих, практических решений до их внедрения. Пилотные внедрения вполне могут обкатываться на базе того же Ростелекома. Далее, уже готовое решение, идет в народ.
Что касается законодательной власти, на мой взгляд, должно быть как — то так. Если совсем коротко.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Middle
From 120,000 ₽
Python
PHP
PostgreSQL
MySQL
Golang
Git
Docker
Nginx
Linux
Perl