Обновить
195
0.9

Программист

Отправить сообщение

Может у меня был неправильные пластики, но разница заметна.
PLA более жёсткий и хрупкий, PETG более пружинистый. Даже если максимальная нагрузка схожа, вести себя перед разрушением они будут по-разному.
От модели PLA ощущения ближе к тому, что держишь модельку из дерева/кости.

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

Кстати, ещё забавный момент - есть моноколёса и там тоже нужно контрруление, хотя колесо только одно. И тоже как на мотоцикле траектория в повороте задаётся ускорением вперёд или назад - ускорение выпрямляет траекторию, замедление закручивает внутрь.
Мне резко стало проще на моноколесе учиться ездить, когда я эту аналогию с мотоциклом понял.
P.s. я ещё подозреваю, что с опытом моноколёса будет легче уницикл освоить, но пока не пробовал.

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

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

На колодки и бензин вообще пофиг, эффект расхода практически нулевой, потому что скорость низкая, а работа это сила на скорость и то что там сила типа сотни ньютонов тянет назад на скорости в 1 м/с - это жалкие 100 ватт и ни тормозам не двигателю хуже не станет.

Я понимаю, к Вам никаких претензий. Моё недовольство направлено в сторону хабра и сложившейся ситуации.

Читаю технические статьи и стараюсь игнорировать кликбейтные заголовки.

  • "Разработка высоконагруженных API: проблемы, решения, практические рекомендации" - сразу понятно, что там и захочу ли я читать (статья, кстати, топовая)

  • "Тебе не поступить на программиста. Всё кончено" - вижу кликбейт и в общем-то мне и уже и не нужно никуда поступать.

  • "Я ставлю датчик, иду на Авито и зарабатываю 2 млн в месяц на курьерах" - сразу понятно, что это Слава Рюмин и читать я это не хочу.

  • "Я 10 лет искал причину головной боли, оказалось — чипсы" - у меня такая же голова и она не болит, можно не тратить время

  • "Крах ИИ: Почему нейросети не пережили свою первую зиму" - не знаю кто там что не пережил, гоняю локально LLM и Stable diffusion, всё нравится. Возможно автор думает, что он провокационным заголовком заставит меня зайти. Ему не удалось.

  • "AGI математически невозможен, но хайп уже не остановить" - пока одни рукомахательно рассуждают что там невозможно, другие берут и делают. Тех кто реально что-то делает, читать на пару порядков интереснее.

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

У Питона очень низкий порог вхождения и это очень гибкий язык. Он не ограничивает программиста, и надо иметь очень много опыта и дисциплины, чтобы писать хорошо.

Сам язык ничего выдающегося из себя не представляет, но к нему есть много хороших библиотек, не всегда доступных для других языков. (Особенно если учить нейронки) По-факту питон это просто клей между такими библиотеками, описывающий какую-то высокоуровневую логику.

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

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

Да. Но я сам перед написанием сообщения его запустил и проверил. До этого просто помнил, что после цикла можно написать else и никогда ни сам не писал, ни в реальном коде не видел.

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

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

55 == True is True

Что вернёт выражение? Правильный ответ: ...

Правильный ответ: не надо так писать. Chain comparison придумали для того, чтобы записывать условия типа 1 < n < 10, а не для того чтобы запутывать программиста.

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

Замечательно. А теперь скажите честно - как часто Вы это используете в питоне? И ещё вопрос - а вы пробовали так сделать с классами, у которых в конструкторах есть разные аргументы? И в init в super() получить предыдущий тип в цепочке линеаризации и по этой цепочке попередавать аргументы? Вместо этих извращений намного проще и понятнее использовать композицию объектов, что все и делают.
В языках типа Scala такая же линеаризация, но компилятор всё проверяет в compile time, в питоне я такое просто не захочу писать. Неосторожное изменение в любом классе и всё это наследование в динамическом языке рассыпается как карточный домик.

{("a", [1, 2]): "value"}

Может ли такой код выполниться без ошибок?

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

def append_to_list(item, my_list=[]):
    my_list.append(item)
    return my_list

То есть my_list не создаётся заново при каждом вызове — вы каждый раз работаете с тем самым списком.

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

print((x for x in range(3))) # Вывод: <generator object ...> 

И что? Можно прекрасно писать код и никогда не использовать генераторы. Это не ключевая фича языка. То что они при итерировании ведут себя как одноразовый список, но при этом печатаются на экран как generator object - просто ещё одна особенность питона.

Вдобавок, в зависимости от того, что писал человек на питоне, его знания могут сильно отличаться. Например, для ML надо знать numpy и pythorch/tensorflow и можно годами не сталкиваться с асинхронными функциями, а можно писать на сайты и там буквально всё будет асинхронным.

Давайте, представьте что Вы сам на собеседовании и попробуйте скажите без запуска кода, что он выведет:

for i in range(2):
    print(i)
    break
else:
    print("end")

А это же "база", "основы синтакстиса языка", и не важно что в реальности так практически никто не пишет.

Напомнило песню "колхозный фронтенд": https://www.youtube.com/watch?v=AWXTIlwDRAM&list=RDAWXTIlwDRAM&start_radio=1

В качестве легализатора можно раздавать торренты

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

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

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

Происходит.

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

Например, в роскосмосе 170 тысяч сотрудников, в spaceX было в 6000 человек в 2018 году (примерно тогда же разработали и начали запускать falcon heavy), сейчас около 13000. При этом spaceX разработали и начали запускать возвращаемые ракеты. Роскосмос сидел на советстком наследии, говорил что возвращаемые ракеты невозможны/нерентабельны и уже потерял почти весь рынок запусков.

Или например можно почитать, что в WhatsApp когда-то было 32 разработчика, а потом его в 2014 году фейсбук купил за 19 миллиардов долларов: https://habr.com/ru/companies/ruvds/articles/758800/

Мах займёт нишу там-тама и icq перед закрытием - никому не нужный кривой мессенджер.

Монады не композируются, но есть интересное направление с алгебраическими эффектами, для которых такого ограничения вроде бы нет: https://en.m.wikipedia.org/wiki/Effect_system

Причём если посмотреть на язык Koka, то там эффектами выражаются штуки типа чистоты функций, возможности расходимости (незавершения), бросание исключений и т.п.: https://koka-lang.github.io/koka/doc/book.html#sec-effect-types
И эффекты позволяют выразить то же самое, что делают монады типа Try или Option.

Так вот, можно ли смотреть на алгебраические эффекты как на альтернативу монадам в общем случае?

Так rsync тоже так умеет, если ему указать директорию предыдущего снапшота. Он сам создаст жёсткие ссылки для неизменившихся файлов.
Зачем это делать через cp?

Вы написали про Cl(0, 0, 4) и я очень впечатлён, насколько оно похоже на Cl(3, 0, 1).

Но я бы ещё добавил, что в общем виде в уравнении точки в 3д четвёртый элемент тоже может быть отличным от единицы. Например, разностью двух точек будет вектор с четвёртым элементом-нулём и это валидная сущность.

Я надеюсь, вы как-нибудь потом напишете про Cl(3, 0, 1).
Там смысл weight и bulk более понятен - это элементы которые в квадрате равны единице и элементы котороые в квадрате равны нулю.
Причём, что интересно и красиво, и та и та нормализация (по bulk и по weight элементам) имеет смысл.

Например, для уравнения плоскости в общем виде можно либо привести к единице длину нормали, либо сделать "единичным" сдвиг от нуля координат)
Для линии нормализация сделает единичное направление. Для уравнения точки - уберёт четвёртый элемент в единицу. Либо не уберёт для случая идеальной точки, но тогда можно хотя бы сделать другую нормализацию, чтобы сумма квадратов остальных трёх элементов давала единицу.

А ещё про смысл weight - если сказать что четвёртый элемент точки это вес, то сумма таких точек с массой будет точкой-центром масс.

Ещё добавлю, что есть вектор атаки через приложения и прослушивание портов на localhost:
https://habr.com/ru/articles/915732/

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

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

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

Информация

В рейтинге
1 853-й
Откуда
Белград, Сербия
Зарегистрирован
Активность

Специализация

Software Developer, ML Engineer
Kotlin
Scala
Java
Python
Neural networks
Algorithms and data structures
Android development
OpenGL