Pull to refresh
4
0
Вячеслав @Drac013

Пользователь

Send message

Как я портировал DOS игру

Reading time22 min
Views35K

Решил портировать одну старую давно забытую игрушку с DOS на современную платформу. Эта игра, в своё время, привлекала ураганным геймплеем, неплохой разрушаемостью, возможностью включить всё оружие одновременно и устроить настоящий бедлам. В 2021 году играть в такое всё ещё интересно, но делать это в родном разрешении 640х480, как-то не очень. Поэтому решил портировать игру и накатить хай-рез патч. Получилось!

Читать далее
Total votes 235: ↑235 and ↓0+235
Comments40

Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

Reading time11 min
Views238K

Разбираемся, как на самом деле считаются суммы и проценты в клиентском приложении.

Собираем все данные по портфелю и по всем операциям через Tinkoff API.

Строим огромную Excel таблицу со всеми данными.

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

Пытаемся понять, что нам с этим делать.

Read more
Total votes 158: ↑155 and ↓3+152
Comments112

Проект, который сжег меня дотла

Reading time7 min
Views58K

Сейчас 3 часа ночи 10 августа 2013 года. Бесконечный приступ паники не дает мне сомкнуть глаз. Как сумасшедший, я раз за разом прокручиваю только что написанный код в голове. Внезапно я осознаю, что в архитектуре приложения есть серьезная проблема. Я вскрикиваю и скатываюсь с кровати, спотыкаясь о свою девушку, я бегу как сумасшедший к своему компьютеру, чтобы все исправить. 

Я знаю, что этот день будет прекрасной солнечной субботой. Я снова буду работать 12 часов подряд. А стресс и горящий дедлайн снова не дадут мне уснуть. Как я докатился до всего этого?

Читать далее
Total votes 93: ↑84 and ↓9+75
Comments76

Уважаемые рекрутеры, а вы не офигели?

Reading time3 min
Views196K

Ловите мое никому неинтересное мнение по поводу проблемы, от которой у меня уже знатно подгорает.

Нахожусь в поиске работы. Но думаю свое резюме убрать с сайта соискателей, ибо достало.

99% моего времени отнимает прочтение рекрутерского спама, ответы на по определению неподходящие вакансии и прохождение технических интервью, в которых я не пройду, потому что у меня ИЗНАЧАЛЬНО нерелевантный опыт. Это мы вместе с техническим интервьюером понимаем уже в процессе разговора.

Читать далее
Total votes 398: ↑333 and ↓65+268
Comments411

Отменим ли мы Web?

Reading time16 min
Views30K

Этот пост написан Ханной Вулфман-Джонс, но включает ответ эксперта по гражданским правам Надин Строссен, экс-президента ACLU

Рождение движения

Ричард Столлман и идеи свободного программного обеспечения, которые он разработал, зародились в те времена, когда компьютеры еще не стали неотъемлемой частью жизни обычных людей, то есть в 70-е годы. За много десятилетий до того, как наши сотовые телефоны отслеживали каждое наше движение, до того, как умные дома принесли массовое наблюдение в наши жилые комнаты, идея компьютеров как серьезных инструментов угнетения казалась явно абсурдной.

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

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

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

Читать далее
Total votes 150: ↑140 and ↓10+130
Comments95

Почему lsFusion, а не 1С?

Reading time32 min
Views27K


Предыдущая статья “Почему не 1С?” вышла больше года назад и вызвала достаточно живой интерес (совсем немного не дотянула до 100к просмотров и 2к комментариев). Впрочем, как и ожидалось, у многих возник резонный вопрос: “Если не он, то кто?” Безусловно, как многие поняли, та статья писалась не просто так, а чтобы вслед за ней выпустить еще одну, где было бы рассказано, как описанные в первой статье проблемы можно и нужно решать. Однако, по различным причинам, выпуск этой “ответной” статьи был отложен на весьма долгое время. Но, как говорится, лучше поздно, чем никогда.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments362

Разработка должна ориентироваться на продакшен, всё остальное — чушь

Reading time9 min
Views15K


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

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

Эта мысль, а также все связанные с ней подразумеваемые действия, может показаться контринтуитивной или спорной, поэтому я хочу раскрыть её немного глубже. Ниже представлен перечень практик и принципов, которые я считаю правильными, исходя из моего мнения о том, что единственное, что важно — это код в продакшене.
Читать дальше →
Total votes 59: ↑45 and ↓14+31
Comments47

Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

Reading time8 min
Views540K
{UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
Под катом мои комментарии на некоторые тезисы.
{/UPD}

Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



Видимо, только этот котэ добросовестно охраняет вокзал.

Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
Читать дальше →
Total votes 1453: ↑1450 and ↓3+1447
Comments990

Не решают ли программисты противоречащие задачи (архитектура кода)

Reading time3 min
Views12K

Меня всегда волновал вопрос: можно ли писать код единственно правильным образом. В данной статье я через противоречие доказываю, что при изменении бизнес требований написать код так, чтобы он всегда работал без ошибок - невозможно. По-этому правильного способа написания кода - не существует. Отсюда и каждый код превращается в говнокод. Потому что программист решает логически противоречащие друг другу задачи, а значит написать правильно код - невозможно. UPD: в комментариях нашли способ! Указан в UPD в конце статьи. Но все равно может статья будет кому-то полезна (проблема и ее решение).

Читать далее
Total votes 37: ↑27 and ↓10+17
Comments292

Теорема Гёделя о неполноте за 20 минут

Reading time8 min
Views184K


Теореме Гёделя о неполноте, одной из самых известных теорем математической логики, повезло и не повезло одновременно. В этом она похожа на специальную теорию относительности Эйнштейна. С одной стороны, почти все о них что-то слышали. С другой — в народной интерпретации теория Эйнштейна, как известно, «говорит, что всё в мире относительно». А теорема Гёделя о неполноте (далее просто ТГН), в примерно столь же вольной фолк-формулировке, «доказывает, что есть вещи, непостижимые для человеческого разума». И вот одни пытаются приспособить её в качестве аргумента против материализма, а другие, напротив, доказывают с её помощью, что бога нет. Забавно не только то, что обе стороны не могут оказаться правыми одновременно, но и то, что ни те, ни другие не удосуживаются разобраться, что же, собственно, эта теорема утверждает.

Итак, что же? Ниже я попытаюсь «на пальцах» рассказать об этом. Изложение моё будет, разумеется нестрогим и интуитивным, но я попрошу математиков не судить меня строго. Возможно, что для нематематиков (к которым, вообще-то, отношусь и я), в рассказанном ниже будет что-то новое и полезное.

Математическая логика — наука действительно довольно сложная, а главное — не очень привычная. Она требует аккуратных и строгих манёвров, при которых важно не перепутать реально доказанное с тем, что «и так понятно». Тем не менее, я надеюсь, что для понимания следующего ниже «наброска доказательства ТГН» читателю понадобится только знание школьной математики/информатики, навыки логического мышления и 15-20 минут времени.

Читать дальше →
Total votes 64: ↑62 and ↓2+60
Comments138

Google Public DNS тихо включили поддержку DNS over TLS

Reading time4 min
Views94K


Внезапно, без предварительного анонса, на 8.8.8.8 заработал DNS over TLS. Ранее Google анонсировал только поддержку DNS over HTTPS.

Публичный резолвер от компании CloudFlare с IP-адресом 1.1.1.1 поддерживает DNS over TLS с момента запуска проекта.

Зачем это нужно


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

C DNS over TLS/HTTPS запросы посылаются внутри зашифрованного тоннеля так, что провайдер не может подменить или просмотреть запрос.

А с приходом шифрования имени домена в сертификатах X.509 (ESNI) станут невозможны блокировки через DPI по SNI (Server Name Indication, специальное поле, в котором передается имя домена в первом TLS-пакете), которые сейчас применяются у некоторых крупных провайдеров.

Как это работает


На порт TCP:853 выполняется TLS-подключение, при этом проверка сертификата резолвера происходит с использованием системных корневых сертификатов, точно так же, как HTTPS в браузере. Это избавляет от необходимости добавлять какие-либо ключи вручную. Внутри тоннеля выполняется обычный DNS-запрос. Это создает меньше накладных расходов по сравнению с DNS over HTTPS, который добавляет HTTP-заголовки к запросу и ответу.

К сожалению, на текущий момент только в Android 9 (Pie) поддержка DNS over TLS встроена в системный резолвер. Инструкция по настройке для Android 9.

Для остальных систем предлагается использовать сторонний демон, а системный резолвер направлять на localhost (127.0.0.1).

Настройка на macOS


Разберем настройку DNS over TLS на последней версии macOS, на примере резолвера knot
Читать дальше →
Total votes 105: ↑101 and ↓4+97
Comments147

Сколько зарабатывает Хабр + инструкция как узнать сколько зарабатывают другие компании

Reading time3 min
Views75K
Предыстория: после того, как мы с командой в прошлом году закрыли компанию и еще не начали работу над новой, мы решили обновить наш старый, но довольно большой сайт с кулинарными рецептами. Чтобы понять насколько серьезно стоит углубляться в работу над ним, я проанализировал данные по выручке сайтов, которые тоже зарабатывают на рекламе.

В этом году уже вышли новые данные, которыми тоже решил поделиться. Доходы, расходы и прибыль приведены в миллионах рублей.

image
Читать дальше →
Total votes 103: ↑100 and ↓3+97
Comments66

Программисты своими руками лишают себя работы

Reading time9 min
Views96K

Когда работникам удаётся автоматизировать свои обязанности, кто должен пожинать плоды?




В 2016 году на Reddit появилось анонимное признание: «Уже где-то лет шесть я ничего не делаю на работе». Вроде бы ничего особенного, если дело касается офисной работы. Но этот программист, скрывавшийся под ником FiletOFish1066, сказал, что он работал на известную технокомпанию, и он реально совсем ничего не делал. Он написал, что после того, как восемь месяцев проработал в отделе обеспечения качества, сумел полностью автоматизировать всю свою работу. «Я не шучу. 40 часов в неделю я хожу на работу, играю в League of Legends, читаю Reddit, занимаюсь, чем хочу. За последние шесть лет я проработал часов 50». Когда его боссы поняли, что за половину десятилетия он проработал меньше, чем большая часть программистов Кремниевой долины за неделю, они его уволили.

Эта история быстро распространилась по технологическим уголкам веба, из-за чего её герою в итоге пришлось удалить и сам пост, и даже учётную запись.
Читать дальше →
Total votes 77: ↑70 and ↓7+63
Comments382

Демпинг Маска: миф или реальность

Reading time5 min
Views86K


В Роскосмосе распространено мнение, что коммерческие успехи компании SpaceX объясняются исключительно господдержкой и искусственно заниженной ценой на ракеты — демпингом. Компания Илона Маска оставила Роскосмос практически полностью без коммерческих заказов на тяжелые ракеты, поэтому оправдание приходится искать в происках Пентагона, Госдепа или ЦРУ. Пора отделить факты от домыслов и узнать в чем секрет коммерческого успеха SpaceX.
Читать дальше →
Total votes 164: ↑156 and ↓8+148
Comments547

Как защититься от переполнения стека (на Cortex M)?

Reading time8 min
Views27K
Если вы программируете на «большом» компьютере, то у вас такой вопрос, скорее всего, вообще не возникает. Стека много, чтобы его переполнить, нужно постараться. В худшем случае вы нажмёте ОК на окошке вроде этого и пойдете разбираться, в чем дело.

image

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

В этой статье я расскажу о собственных изысканиях на эту тему. Поскольку я программирую в основном под STM32 и под Миландр 1986 — на них я и фокусировался.
Читать дальше →
Total votes 61: ↑60 and ↓1+59
Comments66

Зачем изучать непопулярные языки. Пример сообщества F#

Reading time8 min
Views30K


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

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

Я попытался узнать, в чем причина. И вообще — кто те люди, которые на нем пишут, и зачем они это делают, если язык не нужен бизнесу? Для этого я постучался поговорить в русскоязычное сообщество F# в «Телеграме». Здесь — наш круглый стол.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments164

Администрирование 1С для самых маленьких. Часть первая — разделяй и властвуй

Reading time11 min
Views118K

Дисклеймер


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


Предисловие


Сначала я просто хотел написать небольшую статью о том, как мы разносили базы по службам, но в ходе углубления в этот процесс мы добавляли всякие разные штуки (мониторинг служб, потом мониторинг пользователей внутри 1С, потом прикрутили заббикс, и, наконец, пришли к CI/CD на базе 1С). В итоге я понимаю что пихать это в одну статью будет слишком — решил разделить на несколько. Ну а название навеяно циклом статей "сети для самых маленьких", которые принесли мне много приятных минут и к которым я отсылаю всех, кто "хочет изучить сети". Итак, мы приступаем!

Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments281

Импортозамещение, глас вопиющего в пустыне

Reading time8 min
Views35K
Казусы Российского законодательства связанного с закупками по 44-ФЗ, в которых с недавних пор стало конкретно указано на приоритет Российских товаров (Товаров, работ, услуг-ТРУ), т.е. оборудования и программного обеспечения (если есть аналоги в Реестре Минкомсвязи).

Как законопослушный гражданин РФ, работающий в государственных (муниципальных) организациях, я начал изучать вопрос -как выполнить требования законодательства или их обойти безнаказанно или с минимальными потерями. В процессе проработки вопроса выяснил некоторые моменты и подводные камни данного процесса, с которыми и решил поделиться с сообществом.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments122

В чём важность 196 884 = 196 883 + 1? Как это объяснить на пальцах?

Reading time8 min
Views42K
Автор ответа на Quora — Майкл Гриффин, постдок по математике

Сения Шейдвассер дал очень хороший, простой ответ на этот вопрос, рекомендую прочитать эту краткую версию. Но есть гораздо более удивительная история гипотезы чудовищного вздора (Monstrous Moonshine), смешанной с уравнением Маккея: от виски Jack Daniel’s до чёрных дыр и квантовой гравитации.

В этой истории часто упоминаются симметрии и математические «группы», поэтому начнём с того, что понимается под группой в математике. Группу можно представить как способ переупорядочить набор объектов, сохраняя определённую структуру. Операции в группе должны следовать определённым правилам, например, всегда должна быть возможность отменить операцию, а если вы выполняете одну операцию, а затем другую, то получаете третью операцию в группе.
Читать дальше →
Total votes 70: ↑61 and ↓9+52
Comments141
1
23 ...

Information

Rating
Does not participate
Registered
Activity