Search
Write a publication
Pull to refresh
52
0
Андрей Кравчук @prefrontalCortex

Software Engineer

Send message

Для чего идут изучать язык С?

Reading time4 min
Views26K

Привет, хабровчане! Наши преподаватели — Виктор Коробков, эксперт с 15-летним стажем в IT, и Андрей Кравчук, разработчик в RavenPack International, рассказали, почему язык C до сих пор актуален, и зачем его осваивать тем, кто занимается разработкой на других языках. Статья подготовлена специально в преддверии старта нового практического онлайн-курса «Программист C», чтобы помочь разобраться, пригодятся ли эти навыки вам.

Читать далее

Тариф «100к+», или как вельми зело огорчить спамера

Level of difficultyEasy
Reading time12 min
Views67K

Уже не впервые сталкиваюсь, что читатели Хабра не все поголовно умеют правильно бороться со спамом. И я не про SpamAssasin, «Ктозвонил» и прочие приложения для фильтрации информационного мусора, а про несложную, но весьма доставляющую всем сторонам процесса подачу жалобы в ФАС.

После публикации на Хабре появилась статья с более лучшим раскрытием темы.

Давайте расскажу, как буквально за 15 минут не отрываясь от любимого компьютера подключить спамеру задораздирающий тариф линейки «Административный»: «Административный 100к», «Административный 150к» и вплоть до «Административный 500к» – как повезет.
Читать дальше →

Лучшие практики при написании безопасного Dockerfile

Reading time9 min
Views32K

В данной статье мы рассмотрим небезопасные варианты написания собственного Dockerfile, а также лучшие практики, включая работу с секретами и встраивание инструментов статического анализа. Тем не менее для написания безопасного Dockerfile наличия документа с лучшими практиками мало. В первую очередь требуется организовать культуру написания кода. К ней, например, относятся формализация и контроль процесса использования сторонних компонентов, организация собственных Software Bill-of-Materials (SBOM), выстраивание принципов при написании собственных базовых образов, согласованное использование безопасных функций, и так далее. В данном случае отправной точкой для организации процессов может служить модель оценки зрелости BSIMM. Однако в этой статьей пойдет речь именно о технических аспектах.

Читать далее

В поисках искусственного здравого смысла

Reading time5 min
Views11K
19 июля 2020 года была опубликована запись в блоге под названием «Чувствуете себя непродуктивным? Может, стоит перестать задумываться». В этой статье о самосовершенствовании в 1000 слов объясняется, что чрезмерное обдумывание — враг творчества, и даётся совет быть внимательнее:

«Чтобы что-то сделать, возможно, нам нужно меньше думать. Это кажется нелогичным, но я считаю, что иногда наши мысли могут мешать творческому процессу. Иногда мы можем работать лучше, когда «отключаемся» от внешнего мира, сосредотачиваясь на том, что перед нами».

Пост был написан GPT-3, огромной нейронной сетью Open AI с 175 миллиардами параметров, обученной почти полутриллиону слов. Студент Калифорнийского университета в Беркли Лиам Порр просто написал заголовок и позволил алгоритму написать текст. «Забавный эксперимент», чтобы посмотреть, сможет ли ИИ обмануть людей. Действительно, GPT-3 ударил по нервам: этот пост достиг первого места на Hacker News.

Итак, с сегодняшним ИИ есть парадокс. Хотя некоторые из работ GPT-3, возможно, удовлетворяют критерию теста Тьюринга, убеждая людей в том, что с ними общается человек, но он явно терпит неудачу на простейших заданиях. Исследователь искусственного интеллекта Гэри Маркус попросил GPT-2, предшественника GPT-3, закончить такое предложение:

«Что происходит, когда вы складываете растопку и поленья в камин, а затем бросаете несколько спичек? Обычно начнётся…»

«Огонь» — вот что немедленно закричит любой ребёнок. Но ответ GPT-2: «Ick»

Эксперимент не удался. Дело закрыто?


Приятного чтения!

Создание процедурной анимации смерти при помощи автоматов падающего песка

Reading time2 min
Views10K
В этом посте я покажу, как использовал автоматы падающего песка для генерации анимаций смерти монстров в моей игре Vagabond.



Автоматы падающего песка


Автомат падающего песка — это клеточный автомат, симулирующий перемещение песчинок и создание куч песка под действием гравитации.

Правила просты:

  • Если ячейка под песчинкой пуста, то песчинка движется в пустую ячейку (см. (a)).
  • Если ячейка под песчинкой заполнена, но свободна ячейка внизу слева или внизу справа, то песчинка движется туда (см. (b)). Если свободны обе, то одна из них выбирается случайным образом.
  • В остальных случаях песчинка не движется.
Читать дальше →

Здравствуй, дорогой я двадцать лет назад

Reading time18 min
Views48K


Жаль, что вряд ли смогу отправить это письмо. А тебе, наверное, было бы интересно узнать, что жизнь и работа у тебя сложились неплохо. А если бы ты это прочитал вовремя, то могли бы сложиться еще лучше. Что касается работы — ты стал вполне приличным специалистом, сегодня тебя уважают, с тобой советуются и некоторые даже благодарны за науку. Очень хочется дать тебе тогдашнему несколько советов. Кое о чем из письма ты и так уже догадываешься, но сегодня я могу точно сказать — оно помогает.

Читать дальше →

Листовые материалы в корпусостроении — обзор и технологии

Reading time11 min
Views26K
В очередной раз наткнувшись на картинку прекрасного электронного поделия в адском корпусе из соплеметного клея и картона я понял что держаться нету больше сил: надо пилить статью про корпуса, доступные всем. И немедленно выпил начал. Но быстро устал, ибо нельзя объять необъятное, особенно разом в одной статье. Так мгновенный импульс преобразовался в замысел цикла статей по домашним и околодомашним корпусам, доступным если не всем, то многим. И начать я решил с листовых материалов — как с ними работать, какие они бывают, что с ними можно и чего нельзя, ну и немножко — как из полученного добра сложить корпус.


Источник

Кого заинтересовало, прошу под кат.
Читать дальше →

Руководство по плодотворному общению

Reading time7 min
Views4K
image

Не так давно на Хабре была новость про принятие «Руководства по приятному общению GNU». Многое в этом кодексе верно, но многие пункты, на мой взгляд, не вполне отвечают духу командной работы и ущемляют права участников.

Давайте попробуем, в рамках вечера пятницы, сформулировать своё «Руководство по плодотворному общению при совместной работе». Как вы видите – разница с руководством GNU начинается даже на этапе целеполагания – на мой взгляд, приятность общения в рамках проекта не самоцель. В рамках проекта мы общаемся для достижения определенной цели – выполнения работы по проекту. Приятно общаться мы будем за чаем с булками.

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

Почему? По определению. Повторюсь: главная цель – эффективная работа над проектом. Общение – это инструмент, который служит для достижения этой цели. Не наоборот.

Дисклеймер:

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

Не все пункты одинаково серьезны – в конце концов, у нас вечер пятницы, не так ли?

Итак:
Читать дальше →

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

Reading time34 min
Views7.7K

epam


Грубо говоря, очевидно, что некоторые виды форматирования лучше других.
— Стив Макконелл, Совершенный код.


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

Читать дальше →

Можно ли сложить N чисел типа double наиболее точно?

Reading time13 min
Views29K

В предыдущих сериях…


Прошлая статья рассказала о двух способах сложения двух двоичных чисел с плавающей запятой без потери точности. Чтобы добиться этого, мы представили сумму c=a+b в виде двух чисел (s,t)=a+b, причём таких, что s — наиболее близкое к a+b точно-представимое число, а t=(a+b)-s — это отсекаемая в результате округления часть, составляющая точную погрешность. У читателей был вопрос: а можно ли достаточно точно сложить массив чисел типа double? Оказывается, можно! Но только, вероятно, не всегда и не абсолютно… и не алгоритмом Кэхэна, который тогда вспоминали в комментариях. За подробностями прошу под кат, где мы и найдём приложение тому, о чём я рассказал в прошлый раз.


Сложение двух чисел с плавающей запятой без потери точности

Reading time9 min
Views83K
Здравствуйте, друзья, как вы думаете, если мы напишем такой код:

s = a+b;
z = s-a;
t = b-z;

то не кажется ли вам, что в результате его выполнения получится, что t=0? С точки зрения привычной математики действительных чисел это и правда так, а вот с точки зрения двоичной арифметики с плавающей запятой в переменной t будет кое-что другое. Там будет то, что спасает нас от потери точности при сложении чисел $a$ и $b$. Кого интересует данная тема, прошу под кат.

Как нарисовать звезду (и не только) в полярных координатах

Reading time6 min
Views36K
Вопрос о формуле для многоугольника в полярных координатах регулярно возникает на тематических ресурсах — и так же регулярно остаётся без внятного ответа. В лучшем случае попадается решение через функцию остатка от деления — что не является «чистым» с математической точки зрения, поскольку не позволяет производить над функцией аналитические преобразования. Видимо, настоящие математики слишком заняты решением проблем тысячелетия и поисками простого доказательства теоремы Ферма, чтобы обращать внимание на подобные банальные задачи. К счастью, в этом вопросе воображение важнее знания, и для решения этой задачи не нужно быть профессором топологических наук — достаточно знания школьного уровня.
Дальше больше картинок

Реализуем простые кооперативные потоки на C

Reading time13 min
Views5.5K
Привет, Хабр!

Спасибо вам за внимание, проявленное к нашей предыдущей переводной публикации о REST. Сегодня мы предлагаем взглянуть на тему проектирования систем несколько с другой стороны и публикуем перевод статьи Стивена Бреннана, корифея Linux, который рассказывает о собственной реализации многозадачности в userspace и о том, какая может быть от этого польза.
Читать дальше →

[Фреймворк формирования полезных привычек] и максимального вовлечения юзеров на примере изучения английского языка

Reading time14 min
Views14K
Возможно, вам знакомо чувство (особенно, если вы разработчик), когда на глаза попадается отличная статья/идея с интересной теорией, которую непременно хочется протестировать на практике. К сожалению, часто рутинные обязанности и задачи отвлекают от внедрения самых интересных фич.

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

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

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


Всего 5 минут в день

Reading time11 min
Views26K

Спортивный блоггер из YouTube: "Делай это упражнение всего 5 минут в день и у тебя будет стальной пресс"
Твой менеджер проекта: "Чтобы пройти этот опрос нужно 2 минуты, неужели так сложно?"
Онлайн-школа английского языка: "В изучении английского языка - главное регулярность!"
Тренинг по тайм-менеджменту: "Просто заносите все в список задач и проводите еженедельные обзоры."


Часто вам приходится слышать такое, а иногда и говорить другим? Почему сколько бы раз мы не повторяли подобные мантры мы так редко переходим от слов к делу? Как все просто в формулировках… от этого чувство вины от очередного похода к холодильнику вместо пробежки еще сильнее. А помните как хорошо все начиналось? Как плавно шел новый язык программирования, с каким энтузиазмом мы оповещали окружающих о начале здорового образа жизни и утренних пробежек? Методично, но не без усилий, мы разберемся в этом вопросе и сформируем практические советы в ситуации, когда очень хочется начать что-то новое (свой проект, привычку и т.п.), но мы соответствуем этому желанию и сбиваемся с пути. Будет много полезных ссылок, без изучения которых, опыт от прочтения статьи не будет полным.

Читать дальше →

Проблемы научных публикаций

Reading time16 min
Views46K
Для людей, не знакомых близко с научным процессом, может быть не очень понятна важность научных статей. Публикация — это не только распространение информации, но и верификация результатов исследований, а еще самая главная мера эффективности научной работы.

Важность публикаций для ученых описывается выражением «Publish or perish» — «Публикуйся или сдохни». Именно всевозможные библиометрические показатели являются основой для получения грантов, подъема по карьерной лестнице и, в конечном итоге, научного успеха. И поэтому проблемы научных публикаций негативно влияют на всю науку в целом.


Читать дальше →

Об оценках сроков в разработке ПО

Reading time8 min
Views44K
В течение всей истории разработки ПО мы искали надежные способы оценки времени на реализацию задач и проектов. Но и спустя более чем 60 лет существования отрасли наши прогнозы все еще оставляют желать лучшего. Может быть, дело не в том, как именно мы пытаемся оценивать, а в том, что мы вообще опираемся на оценки?

К примеру, возьмите методологию Scrum, по которой сегодня работают многие компании. Центральная идея Scrum — брать в спринт не больше задач, чем ваша команда способна за это время выполнить. На первый взгляд, звучит разумно. К сожалению, слишком часто на практике этот подход приводит к замедлению работы команды в обмен на иллюзию планирования. Позвольте объяснить, почему.
Читать дальше →

[Перевод] Смыть

Reading time18 min
Views27K
Привет, Хабр! Представляю вашему вниманию перевод статьи «To Wash It All Away» автора James Mickens.



Когда я учился в аспирантуре в Анн-Арбор, у меня был друг, глубоко увлеченный движением защитников окружающей среды. Он покупал еду у местных фермеров, ездил на велосипеде вместо машины, желая уменьшить выбросы, и держал жуткое компостное ведро, которое, вероятно, будет источником следующей пандемии гриппа. Однажды он сказал мне, что собирается неделю пожить на ферме. Я спросил зачем, и он ответил, что хочет «побыть ближе к земле» — фраза, которую вы можете произнести с серьёзным лицом, только комментируя документальный фильм о древних южноамериканских племенах. Я сказал моему другу, что земля не хочет побыть ближе к нему и что если бы он действительно присмотрелся к земле, то увидел бы не молочные реки и кисельные берега, а голод, стервятников, непосильный труд с использованием тачек и в целом неприемлемые количества насекомых. Он разразился продолжительной лекцией об экологической ответственности, которую я тут же выбросил из головы, потому что понял, что мой наивный друг даст дуба на этой ферме, и посоветовал ему без колебаний возвращаться, если вдруг ему там будет недостаточно хорошо. Он улыбнулся мне так, как улыбаются люди в фильмах ужасов за минуту до встречи с топором, и отчалил.
Читать дальше →

Как перестать запоем смотреть сериалы и начать жить

Reading time13 min
Views79K
Фотография Пабло Гарсия Залдана с Ансплэша Фотография Пабло Гарсия Залдана с Анспэша

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

Статья бережно перенесена из блога бегущего редактора. Кстати, следить за анонсами новых статей можно в моём телеграм-канале. Подписывайтесь, чтобы ничего не пропустить!
Читать дальше →

Денормализация баз данных ERP-систем и ее влияние на развитие ПО: открываем таверну на Тортуге

Reading time10 min
Views4.2K
Привет! Меня зовут Андрей Семенов, я старший аналитик в Спортмастер. В этом посте я хочу поднять вопрос денормализации баз данных ERP-систем. Мы рассмотрим общие условия, а также конкретный пример — скажем, это будет прекрасная таверна-монополист для пиратов и моряков. В которой пиратов и моряков надо обслуживать по-разному, ибо представления о прекрасном и потребительские паттерны у этих добрых господ существенно отличаются.

Как сделать так, чтобы все были довольны? Как не сойти с ума, проектируя и поддерживая такую систему? Что делать, если в таверну начинают приходить не только привычные пираты и моряки?



Всё под катом. Но пойдем по порядку.
Читать дальше →

Information

Rating
10,352-nd
Location
Подгорица, Подгорица, Черногория
Works in
Date of birth
Registered
Activity

Specialization

Software Developer, Fullstack Developer
Senior
From 5,000 €
Lisp
Clojure
Unix
Linux
Docker