Best viewed with LeechCraft on Microsoft Linux. Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Wed Jul 29 2020 22:55:23 GMT+0200 (Central European Summer Time) Posted as new post Clubs: Tags: *it *развитие *коучинг *обучение *programming Хочется осветить один важный, но часто незаметный и упускаемый из виду аспект разработки кода ( на самом деле работает и вне кода, но с кодом будет нагляднее ). Многие энтузиасты программирования, в основном конечно джуниоры, но встречается и среди системных архитекторов ( я видел ), начиная разработку очередного продукта как то не задумываются о его lifecycle ( как долго будет разрабатываться? как долго будет востребован? известно ли его "конечное состояние" или можно будет развивать бесконечно? ... ), в итоге на архитектуру конечно не забивают, но стараются не слишком ей заморачиваться на ранних этапах, стремясь побыстрее получить результат или как то балансировать между результатом и проработкой архитектуры ( этому чем-то способствует философия Agile, особенно если человек неправильно её понимает ). Сразу скажу, что здесь речь пойдёт о проектах, которые: 1) технически сложные 2) не имеют ограничений по срокам ( либо сроки очень большие ) 3) потенциально могут стать продуктом, который можно продолжать развивать бесконечно и сейчас не ясно где развитие продукта закончится В самом начале такого проекта нужно понимать, что результаты - не цель ( как парадоксально бы это не звучало ), цель - ускорение/упрощение получения результатов в будущем. Будущем, да. Про настоящее здесь нужно забыть, и расставляя приоритеты - не думать "какой результат это принесёт", а "каким образом это облегчит дальнейшее получение результатов". При этом облегчение получения результатов само по себе является результатом, так что выходит как бы бесконечная рекурсия, но каждый следующий виток упрощает следующие ( да-да, и может наступить момент, когда уже просто нечего оптимизировать/упрощать и вот тогда это самые "результаты" и начинаются, как бы сами собой, быстро, легко и экспоненциально ). Но не будем забегать вперёд. Вот, нарисовал небольшую инфографику для наглядности - https://tinystash.undef.im/il/5BUy29qSa7HaGuKJt6KgbjZ565uaMJMdDghgCNkYswNZiyFZBpEkxjuNd6Ft9HA3mVgMBjZ6hWugK8SQckth8JFz.png , кстати, основано на реальных событиях, конкретные проекты упомянуть пока не буду но оба находятся в начале пути, и, как вы уже наверно догадались, один из них уже имеет _видимый_ прогресс, а во втором пока вообще непонятно что происходит и происходит ли ( да ещё и код закрыт ). Почему так, почему людям так хочется гнаться за результатами? Если это не внешнее ограничение, например, сроки полученные от инвестора ( кстати, одна из причин, почему многие стартап-компании делают продукт "на отьебись", нет нет они не обманывают инвестора умышленно, но он им даёт требования и сжатые сроки и у них нет выбора, а заработать хочется, вот и получается, что инвестор вовремя получает продукт, который он хотел, но чуть позже выясняется, что одно нужно исправлять, другое переписывать, а через какое то время - что выгоднее уже вообще всё переписать, чем платить за постоянный мэйнтенанс ( при этом если первоначальный продукт был достаточно успешен и принёс прибыль то это происходит и дальше всё идёт гладко, но чаще конец печален ) ), то вторая по распространённости причина - неуверенности в себе как программиста. Начиная непривычный, или просто более сложный, чем обычно, проект ( особенно если это проект одного разработчика ( или маленькой команды ) ), человек постоянно ощущает сомнения - а получится ли? а смогу ли?, и чтобы их преодолеть ему нужно регулярно видеть _видимый_ прогресс, а это значит, что первым делом он пытается пробиться к ( если это игра ) геймплею, как к глотку свежего воздуха. Когда это происходит ( если происходит ), выделяется дофамин, человек радуется ( "у меня всё получается!" ), и потом пытается как то "натянуть" на то что есть ( что часто является 'Proof of Concept' и в принципе дальше развиваться не может без переписывания большей части кода ) какую-то архитектуру. Но, вот незадача, дофамин возвращается на место, человек замечает, что вроде работает, тратит время, силы, а визуально ( геймплей ) ничего не меняется, ничего нового не добавляется. Становится грустно и неприятно заниматься архитектурой, а приятно - добавлять больше и больше геймплея или чего-то видимого. И возникает порочный круг - те сопли ( архитектурой это не назвать ), на которых сейчас всё держится, могут выдерживать добавление новых фич только ценой роста технического долга ( который уже и так немаленький ), но если начать заниматься техническим долгом - портится настроение, снижается энтузиазм ( "я не этим скучным переливанием из пустого в порожнее хотел заниматься!" ) и рано или поздно желание продолжать проект заканчивается ( да, это результат 99%, если не 100%, таких проектов основанных на энтузиазме от _видимого_ прогресса ). Некоторые бросают сразу ( иногда начиная новый проект и наступая на те же грабли ), некоторые пытаются выжать из того что есть всё, что можно, ценой многочисленных хаков и прочих отвратительных практик ( а иногда потом ещё и продать ), но результат один. Что делает грамотный системный архитектор? Системный архитектор не спешит. Он _уже_ видит результаты в будущем, потому что понимает, что грамотно и вовремя спроектированная архитектура позволит ускорять скорость дальнейшей разработки экспоненциально ( или близко к этому ). Какая разница, что уже месяц нет видимых результатов? Постоянное улучшение архитектуры ускоряет дальнейшее её улучшение, а также облегчает добавление фич и тех самых результатов, за которыми гонятся неуверенные в себе джуниоры в самом начале проекта. Единственное, что интересно на ранних стадиях проекта - ускоряется ли ускорение разработки? Если ускоряется - всё в порядке. Но когда же начинать добавлять сами результаты? Здесь два способа - либо когда это становится уже настолько легко и быстро, что почти не занимает времени, либо использовать формулу вида "чем ближе архитектура находится к состоянию, в котором она сможет поддерживать добавление всех фич, запланнированных в проекте, тем больше внимания можно уделять добавлению этих самых фич по сравнению с улучшением архитектуры". Второй способ является более сбалансированным и часто оптимальным, но если у проекта нет видимого конца жизни ( или он ещё неизвестен, или выглядит, что проект можно будет развивать бесконечно ) то первый предпочтительнее чтобы такой вот "конец жизни" проекту не создать самому. Конечно, есть здесь и подводные камни. Во-первых, может возникнуть over-engineering архитектуры, вплоть до состояния когда сам автор не в состоянии разобраться, что делает какой-то элегантный, но уж очень хитросплетённый код. Решение - балансировать техническую сложность частей кода, и не давать ей концентрироваться в одном месте, вовремя разделяя на более простые компоненты ( даже ценой потери некоторой элегантности ). Во-вторых, может возникнуть другая крайность - когда код настолько сильно фрагментирован, что изменения приходится делать во многих файлах ( которые ещё надо найти ). Решение - наоборот 'концентрировать' какие-то разрозненные части кода в ключевых местах, желательно там, где возможно какое-то элегантное решение, позволяющее уменьшить общий объём кода. Умение балансировать между этими двумя крайностями приходит только с опытом, здесь нет универсальной формулы. Иногда можно ориентироваться по ощущениям - если ощущается неудобство от постоянных поисков по коду - можно сконцентрировать, если ощущается дискомфорт от необходимости напрягаться, чтобы разобрать хитросплетённый шедевр - можно разбить на более простые части. Есть ещё зависимости от IQ, опыта программирования в целом и в конкретном языке, или в конкретной сфере ( например геймдев или веб ) - чем они выше, тем код продукта может быть сложнее, а, следовательно, элегантнее и его объём будет меньше. Нужно также учитывать других разработчиков, если имеются или если планируется подключить в будущем. Чем сложнее код - тем сложнее будет найти разработчиков ( кстати, вопреки распространённому мнению говнокод - самый простой для понимания вариант кода и разобраться в нём может практически любой ( другое дело что его архитектура ( точнее, её отсутствие ) постоянно способствует появлению багов от любого, казалось бы, несвязанного с этим, изменения ) , просто по ощущениям это как в говне копаться, хотя тут тоже зависит от разницы между уровнем говнокодности и например IQ человека, которому нужно будет с этим возиться, совсем зелёный джуниор может даже и не догадаться, что с кодом что-то не так ). В общем, надеюсь эти небольшие мысли вслух направят начинающих джуниоров-энтузиастов на правильный путь и позволят удасться тем их проектам, которые иначе провалились бы про причинам, описанным выше. ! protected by SuperBnW ( https://github.com/afwbkbc/superbnw ) ! Public key: https://github.com/afwbkbc/gpg/blob/master/5122E95DCC3CF31CE9F75D956AF7D685006F5088.asc -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEUSLpXcw88xzp912VavfWhQBvUIgFAl8h4jsACgkQavfWhQBv UIjYEgv/QnMfp3EY0oEyzgmxpEwHZZ75+MULMpUAZC9ey6QMsNYckK5eHcDJ1pki 7J9eZ6Y/6sLuAP0j7GfZhrpPOE8XmigGDsJcvLXvDmWx6LQ3tvWDda4Q0Tzcv3DA 4O+ehwCKafS5z93zHCO1Wlo2gaKyLGvpxGwPSF/yTMBjePcRJ0ibPlp87Il6H2gA 321Y1AcbMf6dmppmHL85jhpM9kA28UjqZSLjWVlELeVBcMzuYJjzQoTIi0k3gu+D Ms8xgCbDc7Hm+Sa6HVko2qIeWdh3TrCD7aYzqWjIlHvTjcP4ahQjY2YFcY9TFX2Z xwblPpoMD06sFmDQ5uY2mOKb+rAKfHaqjFho2iHlRDtFZYZZ8+KA6tFC5jYtXIHA gmk2aP1DaYQKNsIRj3dPYfujGGd+not7SazCEawBz5YvqD15twvn0VkNyzU2XRbE cipsbC7bYj01UNn7w+eBAjwwzI4rMP0dqeeJSyC88G62+yy6DXzIAPWVHyphB6Jy O/a4D0cu =x8Uc -----END PGP SIGNATURE-----
#YFXPYP (0) / @n / 11 дней назад
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Sat Jul 25 2020 21:07:02 GMT+0200 (Central European Summer Time) Posted as new post Clubs: Tags: *bnw *it *javascript *opensource *security В общем, как некоторые наверно уже догадались, сегодня релиз моего нового open-source проекта SuperBnW. Описание +/- можно почитать на https://github.com/afwbkbc/superbnw, там же есть все инструкции. Здесь же мы можем конструктивно обсудить - в каком направлении лучше этот проект развивать, что добавить, что убрать, что поменять. Также не откажусь от контрибуторов, желающих поучаствовать в проекте ( например, прикрутить redeye интерфейс, он довольно сильно востребован но мне им заниматься лень ). SuperBnW будет первым шагом в наведении здесь порядка и постепенном возвращении bnw.im в его лучшие времена - когда он был сообществом умных и талантливых людей, обсуждающих интересные темы. ! protected by SuperBnW ( https://github.com/afwbkbc/superbnw ) ! Public key: https://github.com/afwbkbc/gpg/blob/master/5122E95DCC3CF31CE9F75D956AF7D685006F5088.asc -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEUSLpXcw88xzp912VavfWhQBvUIgFAl8cgtYACgkQavfWhQBv UIikDwv/YD/qpd+9gDp4Yd7HHtgoxmRv22y/B+7jNCmcpIrqumCGOMfIMKYWwPSy kNXITuNGIICETePO4VY8zQh4m5nemV2Ba+Djc75NgIZzcPmzufD8+fKMYdWJKQfR ihQoiRA+Od9ISI74Qn2DePSDKwf6s3gE0pnPqB7oBQIEkeclQbZaWJu8NgotW615 bdcHYrwwTR/ZhSG8F73pf1x65QcnvnSpcW1k4QA67Hx32NJg/TI91au2Fnuro896 Jkmj7o8ffLwKYwVyg3tudhTvFHBDDqSlkiMmcTYFwwvQdcFopYokIIGLfn2J0svs lQ9HTsk7cDkRHN+3LKE98RTFTdv5CdR3YpvV6ag2+e3sFzRqGhZ73xp7swrS1tc9 V41QibSx3q30/Ruhe2+v6Ag9FVJljZvVXbbOGCFXstqVRskoSBRfAoCQ8q7MzIW/ 4awu37dz4v7exeCTEmt+TutrKL0QcX8VfznzQcqFgO9RK2IRJUeS8PlDU52A1/ph XbjCCjAU =5Wsm -----END PGP SIGNATURE-----
#ZTYIEX (0) / @n / 15 дней назад
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Sun Nov 10 2019 16:47:42 GMT+0200 (Eastern European Standard Time) Posted as new post Tags: *btc *bitcoin *трейдинг *торговые-сигналы *0day Binance has halted trading and announced that it is now in liquidation. In May, the exchange suffered a security breach in which millions of dollars were stolen. Despite the loss, management believed it could reduce costs and return the business to profitability. Before the announcement, the exchange was down for hours where the site posted a notice, “Don’t Panic! We are currently in maintenance. Thank you for your patience, and we apologize for the inconvenience.” Appointed liquidators, David Ruscoe, and Russell Moore from Grant Thornton New Zealand, are now in the process of securing the assets for stakeholders. The press release noted that customers and suppliers would be contacted shortly within the next few days. However, it may be a while until there is much clarity. “Given the complexities involved we expect the investigation to take months rather than weeks." // posted with bnwpgp ( https://github.com/afwbkbc/bnwpgp ) -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEUSLpXcw88xzp912VavfWhQBvUIgFAl3IIxIACgkQavfWhQBv UIg7AQwAmOEWX8Yy9fOOGjUYd3AIidWZUMpYB8tpqLw6Wa35Im7nlIaZrp1qRW2h 7S3I1pLhGGmd5L22l/PTyGk9RI7LLm75cTVbQl41d2oiRwDS1EpOlqYAS9o8+KQ6 Yi6Y/O+j3isjJcGkt70v5kIBW1jxByC4ADAYpKTmw9n/JFuqZFJBmA2oxSUo48hu Bi9bsJ2bKph/0jqqkZHFsucY1AXSzW3KHfWzFRQJU60M2vnRxNg2qKA7MEvx7TTe 5dQU8nz7js4+LdTLrGV8L7YdodeNk4Gv7+iS9eBJ8OiwBZ/du5Uza7m22/c7e5Fe 7Ei3vAWUdYQweMj7I2aZEj/wJTYdhpDRyPtvfo2IXLL2lz5G/mr9GU5oICI67FZW M0s10VuygPaAlI9sOWVL0jF2hmSzRhv/lzN9x4/ILcVMcWC/nGiWB08SsE39KrbZ LmlRDay6hOhgtAyLriAwTKIcpeMEMd+bQRVIjLHPwyj0IaI96wdAvhNg6G0aUJ6p 5Wtc3KWd =niqj -----END PGP SIGNATURE-----
#PSIYOO (1) / @n / 274 дня назад
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Fri Nov 01 2019 05:44:22 GMT+0200 (Eastern European Standard Time) Posted as new post Tags: *it *ue4 *gamedev *c++ *glsl пробую в общем заимплементить 4D мир в unreal engine 4. с рендерингом вроде разобрался, можно кастомные шэйдеры заинжектить и ротировать/трансформировать всё по W-оси в них. а как быть с колизиями, физикой, например? ну то есть например хочу если игрок перемещается по W-оси и натыкается на какой-то объект чтобы дальше перемещаться он не мог, пока не обойдёт объект по другим осям. и хорошо бы сделать возможность стрелять и по W-оси тоже, а не только по трём ( как отрендерить цели с W-координатами отличными от W-координаты игрока более менее понятно, с этим проблем не будет ). можно ли как то расширять физический движок unreal engine 4 без правки его сорцов? ну и со звуком та же проблема - позиционный звук работает в 3D мире, но нужно и в 4D, например чтобы если с двух сторон по оси W от игрока находятся сущности то при повороте игрока в W-оси позиционироваться звуки от них должны соответствующим образом. куда копать, что гуглить на эту тему? // posted with bnwpgp ( https://github.com/afwbkbc/bnwpgp ) -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEUSLpXcw88xzp912VavfWhQBvUIgFAl27qhsACgkQavfWhQBv UIiBFwv6ArEmxbCs9Yh0uUVR+o5nAwxc9BbDmRMOhPKyvh3DVMVU14RLc8+Jhl9M AoWmV/pfniJtqDcrMkrQ7RbDszuY5N1wsBnFMpUCC1aVPFvcdcN7lXTLoFLIqoKa 0/L5CHnZarsp5YpuZECRX1JyYtwCVTKp4GklLA6u3M7J/HooZlMMqeXRFLLlNkLu 4NTStzbzAuJO/7CWHJXCoCHXHrtsCJ0mcYM8LcVD1c6yCeKLVFS3/bjyN4GwkR3P hFMGNeUJfTfw16JY7Af8dKjAuhAVDbCM5WYEUTWWh2qI3i3Bfc3QOGP7zgUXn6fB YNmMFhB+ybxIPr5FWrd7Llu1T2/oL1dEWeVOI7odFavL4xhowGoyUMdy4CqxnUnO ZC+s+ZF/DOYNxL8dzWPPoPtKYUTVfMAkGQmSbH6VnmYDAPNe1hg6BdheQdq/P5dc V2G65M5GWpCJU25gCPYlSj6XEeQxubxbpxm6WuBm5DGFHNp0kBriBjVt8pGCBqk0 zzhZ6W7i =aPR3 -----END PGP SIGNATURE-----
#CB1HRV (16) / @n / 283 дня назад
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Sat Oct 26 2019 01:50:35 GMT+0300 (Eastern European Summer Time) Posted as new post Tags: *bitmex *трейдинг *успех *развитие *сноуболинг всем привет. мечтали ли вы когда-нибудь научиться трейдить на bitmex стабильно в плюс? я могу помочь вам осуществить эту мечту! разработав и используя свою уникальную стратегию, в этом году мне удалось уже дважды заработать 1000EUR, вложив всего 20EUR, и успешно вывести! сейчас пробую третий раз, и стратегия работает всё так же безотказно - http://dump.bitcheese.net/files/gasyfeh/uspeh.png ! с удовольствием передам свои знания в хорошие руки, обучу и объясню любые нюансы трейдинга на bitmex, всего за 0.005btc в день! если интересно, просто оставьте контактную информацию в этом треде, и, возможно, уже в следующем году вы сможете жить так, как всегда мечтали! // posted with bnwpgp ( https://github.com/afwbkbc/bnwpgp ) -----BEGIN PGP SIGNATURE----- iQGzBAEBCAAdFiEEUSLpXcw88xzp912VavfWhQBvUIgFAl2zfD8ACgkQavfWhQBv UIjopgwAw7pG1SkuwXR1VYKK6w3uAFrlJGtIMUfbJ3ycHecbJ7RUcyWKt4tR6+kg Gmu08E97ysvJ7V1Tqkx/IO4lUx5+evd9tFsLB9LQ2I/YbKnSuIPvqF6NVTCxgyvY vJqB8TfHYLSBQHBc35TRjrl+xViHgNR8kKmRWkD5ipa+gZGiIztQyqRE+rg+j4xr zTZrn+kbS7SY38Epwx+KCnqSL8gxO73rMq4dH4beGE2WUP0AUw/aWs9pyDD2C/Hb 3jcH3FaHqp5soSOEsRYsu3+cBDKrLiiJfTDuahSaG6mGUiLJ97Qgb9E2wOnu9ETC MCTVADcF2ndp7vix+3JDOTeSonnw3cvkjg7Ty9f+8xJJFsZjUE3Q8LMdKvpbatSG eSkgYuS7xIaB+Wd9AjEzjmw4N90iBQt0CpWo/bH4MTqRRLR5yOYFLUS0yYWw87/c cc4pZTOtVmo+c94TNMuGLtg0NP3gVFkymXHWOhu8tMarwhCn/STSUKy73i9tr1eT G9iNU4PD =wYch -----END PGP SIGNATURE-----
#278YG3 (11+1) / @n / 289 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.