Pull to refresh
2
0
Send message

Законы программирования

Reading time20 min
Views57K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

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

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

Законы


Закон Амдала


Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
Читать дальше →
Total votes 67: ↑65 and ↓2+80
Comments21

10 отличных Github репозиториев, которые должен знать каждый веб-разработчик

Reading time3 min
Views97K

Кроме огромных репозиториев с источниками для подготовки к интервью, здесь много чего интересного


Я собрал список из десяти отличных репозиториев на Github, которые помогут вам существенно расширить свои знания.


image


А я его перевел, т.к. показалось, что пост многим будет интересен. Перевод очень вольный: я опустил нерелевантные промо-ссылки и гипер эмоциональные похвалы автора оригинала, чтобы оставить только суть. Еще, обновил цифры, чтобы информация была более актуальной к моменту публикации этого перевода. Итак, перейдем к списку.
Читать дальше →
Total votes 63: ↑56 and ↓7+62
Comments8

Собеседование здорового человека

Reading time4 min
Views98K
Эта статья написана как ответ на статью «Собеседование в Додо Пиццу» со стороны разработчика с опытом синьора. Я не претендую на истинность суждений, мне хотелось бы выразить довольно популярное среди моих знакомых мнение о процессе найма в частности и жизни разработчика в целом.
Читать дальше →
Total votes 291: ↑277 and ↓14+327
Comments473

Подборка книг о кибербезопасности: как провести пентест и что противопоставить социальной инженерии

Reading time4 min
Views21K
Книги из списка вышли в 2018–2019 году. Их рекомендуют на Hacker News и Reddit. Под катом — рассказы о тонкостях работы хакеров, размышления президента Microsoft о перспективах и рисках в ИТ, а также советы по пентестированию от специалиста, работавшего с DARPA, NSA и DIA.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Что почитать в оставшийся выходной — книги о вирусах, хакерах и истории «цифрового» картеля

Reading time3 min
Views8.2K
В прошлый раз мы делали подборку литературы о тонкостях работы хакеров и рисках в ИТ. Сегодня продолжаем развивать эту тему. Под катом: история Cult of the Dead Cow — группировки из 80-х, которая теперь занимается вопросами защиты персональных данных, а также книги о криминальном гении Поле Ле Ру и Кевине Митнике, совершившем более 20 киберпреступлений.

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments4

Повелитель мух

Reading time6 min
Views61K
Поводом написать эту небольшую заметку явилась недавняя статья про открытие рейтинга пассажиров в Яндекс.Такси. Однако стоит заметить, что дело не только в Яндексе, не в сфере транспорта и даже не в российских реалиях. Мы как человечество, как цивилизация уже некоторое время стоим на краю пропасти. Или, может быть, перед огромной стеной. Но ведём себя как дети, которые совершенно не задумываются о последствиях. И кому, как ни нам, представителям IT-сообщества, тем, чьими руками делается цифровизация, начинать говорить об этом всерьёз.

image
Читать дальше →
Total votes 121: ↑99 and ↓22+110
Comments468

Помоги компилятору помочь тебе

Reading time18 min
Views49K

Предисловие


Современные компиляторы обладают огромным количеством диагностик. И удивительно, что очень малая их часть включена по умолчанию.


Огромное количество претензий, которые предъявляют к языку C++ в этих ваших интернетах, — про сложность, небезопасность, стрельбу по ногам и т.п., — относятся как раз к тем случаям, когда люди просто не знают о том, что можно решить эти проблемы лёгким движением пальцев по клавиатуре.


Давайте же исправим эту вопиющую несправедливость, и прольём свет истины на возможности компилятора по предотвращению ошибок.

Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments53

Assembler в авиапроме: Интервью с разработчиком автопилотов на ASM для самолётов и беспилотников

Reading time16 min
Views10K

Человек веками мечтал о небе. Братья Уилбур и Орвилл Райт, Альберто Сантос-Дюмон и братья Вуазен подарили его людям. И человек с каждым десятилетием поднимался всё выше и выше, увеличивал скорости, манёвренность, предельные перегрузки, преодолевал звуковой барьер, сталкивался раз за разом с труднейшими инженерными вызовами.


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


Но с ростом скоростей и расстояний повысились требования к управляющим системам летательных аппаратов — микроконтроллерам, прошивкам, автопилотам.


Мне повезло познакомиться с отечественным разработчиком Владом Гордеевым, который занимается как разработкой систем дистанционного управления полетом самолётов, так и систем автоматического управления полетом ЛА. Я задал ему несколько вопросов — и оказался на пару часов в мире, где всё решают миллисекунды, такты, алгоритмы и нет права на ошибку.


Читать дальше →
Total votes 21: ↑16 and ↓5+16
Comments25

Почему требования к ИИ объясниться могут только ухудшить ситуацию

Reading time7 min
Views6.8K

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




Апол Эсан однажды на пробу прокатился в робомобиле от Uber. Пассажирам, вместо того, чтобы волноваться по поводу пустого сиденья водителя, предлагалось наблюдать за «успокаивающим» экраном, на котором было показано, как видит дорогу автомобиль: опасности отрисовывались оранжевым и красным, безопасные зоны – тёмно-синим.

Для Эсана, изучающего взаимодействие людей с ИИ в Технологическом институте Джорджии в Атланте, сообщение, которое пытались донести до него, было понятным: «Не беспокойтесь – вот причины, по которым машина ведёт себя именно так». Однако что-то в чуждом изображении улицы не успокаивало, а наоборот, подчёркивало странность происходящего. Эсан задумался: что, если бы робомобиль мог по-настоящему объясниться?

Успех глубокого обучения основан на неуверенном ковырянии в коде: лучшие нейросети подстраивают и адаптируют, чтобы улучшать их дальше, а практические результаты обгоняют их теоретическое понимание. В итоге, подробности того, как работает обученная модель, обычно неизвестны. Мы уже привыкли считать ИИ чёрным ящиком.
Читать дальше →
Total votes 10: ↑7 and ↓3+8
Comments11

Программисты, давайте изучать исходники классических программ

Reading time2 min
Views54K
Современные программисты — счастливчики: мы живём в мире, в котором исторические и оказавшие существенное влияние программы имеют открытый код, доступный для изучения. Однако, многие программисты только учатся, и изучают те программы, над которыми работают сами. У нас редко находится время для изучения исторических работ, и курсы программирования редко тратят время на такие вещи.

Мы полагаем, что разработчикам следует изучать исходники программ, оказавших большое влияние, подобно тому, как архитекторы изучают здания, оказавшие влияние на архитектуру (и критикуют их). Чем повторять те же ошибки снова и снова, мы должны изучить большую работу, проделанную до нас, и вынести из неё уроки.
Читать дальше →
Total votes 58: ↑53 and ↓5+64
Comments68

Почему мы пишем программы такого низкого качества?

Reading time13 min
Views27K

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

Источник: XKCD, лицензия Creative Commons 2.5

Глюк мобильного приложения для подсчёта голосов на прошлой неделе добавил хаоса на Съезде фракций Демократической партии в Айове. Через несколько часов после открытия собраний по всему штату стало ясно: что-то пошло не так. Результаты неизвестны до сих пор. Появились сообщения с описанием технических проблем и недоразумений. Демократическая партия Айовы опубликовала заявление, в котором отрицает слухи о кибератаке, но подтверждает технические проблемы с мобильным приложением.
Читать дальше →
Total votes 25: ↑23 and ↓2+33
Comments92

Анимация схем в SCADA

Reading time4 min
Views9.7K
При создании HMI довольно часто встречается задача построить отображение сложной схемы связанных элементов. Это могут быть разветвленные трубопроводные схемы, электроснабжение и т.п.

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

image

В этой заметке рассказывается о раскраске элементов подобных схем, приводится описание способа решения для Simatic WinCC v7 и реализации в Simargl SCADA. Если Вам не приходится работать с WinCC, то можно смотреть сразу в конец статьи — там есть любопытное видео.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments37

Посоветуйте, что почитать. Часть 1

Reading time3 min
Views18K


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

Читать дальше →
Total votes 18: ↑16 and ↓2+18
Comments10

Поймать и наказать: как в России наказывают за незаконную торговлю данными

Reading time22 min
Views4.3K

Почти год назад я делал подборку сообщений из СМИ про то, как в России ловят и наказывают за незаконную торговлю персональными данными. Пришло время обновить этот дайджест.


Сколько ловят


Количество публикаций и новостей на тему «задержали и наказали» за последний год резко выросло. Наибольшее число правонарушений было выявлено и доведено до общественности после известных событий с утечками данных в Сбербанке – т.е. сразу после октября 2019 года.


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


Кого ловят


Львиная доля пойманных – сотрудники сотовых операторов и салонов мобильной связи, а также представители банков, включая тот же Сбербанк.

Как видно, к концу года выросла доля пойманных «пробивщиков», предоставляющих услуги в банковской сфере и особенно операторах связи, на которых в начале года силовые органы практически не обращали внимания, концентрируя внимание на правонарушителях, продающих данные из государственных баз.

Читать дальше →
Total votes 7: ↑5 and ↓2+6
Comments8

Запрещая распознавание лиц, мы упускаем суть

Reading time5 min
Views35K

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


Автор эссе — Брюс Шнайер, американский криптограф, писатель и специалист по информационной безопасности. Член совета директоров Международной ассоциации криптологических исследований и член консультативного совета Информационного центра электронной приватности. Эссе опубликовано 20 января 2020 года в блоге автора и в газете The New York Times.

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

Эти усилия продиктованы благими намерениями, но запрет на распознавание лиц — неверный ответ на проблему современной слежки. Внимание к одному конкретному методу идентификации отвлекает от природы того общества наблюдения, которое мы строим, где повсеместная массовая слежка становится нормой. В странах вроде Китая правительство создаёт инфраструктуру тотального наблюдения для контроля над обществом. В странах вроде США она создаётся корпорациями, чтобы влиять на покупательское поведение, и попутно используется правительством.
Читать дальше →
Total votes 47: ↑44 and ↓3+53
Comments58

Обманы в интернете не исчезнут – что нам с этим делать?

Reading time7 min
Views4K

Подложные подписчики, ложные новости, иностранное влияние. Последнее десятилетие открыло нам, что информация в онлайне не всегда такая, какой кажется.




Шёл 2010-й год, и технооптимизм был на пике. Невероятное количество взрослых американцев, 75%, выходили в онлайн – это был огромный скачок по сравнению с 46%, выходившими в интернет за 10 лет до этого. В основном они сидели в интернете в условиях домашнего комфорта, и это был первый раз в истории, когда они делали это настолько массово. Соцсети находились в зародышевом состоянии и набирали обороты – в основном, среди молодёжи – а мировое внимание, судя по всему, сдвигалось от браузеров к мобильным приложениям.

Исследовательский центр Pew Research Center начал новое десятилетие с опроса 895 ведущих технологов, исследователей и критиков, предложив им предсказать, как будет выглядеть связанный интернетом мир в 2020-м. И по поводу одного из вопросов было достигнуто невиданное согласие: 85% опрошенных в один голос ответили, что «социальные преимущества использования интернета значительно перевесят его недостатки», отметив, что интернет, по большому счёту, «улучшает социальное взаимодействие, и будет продолжать делать это и в 2020 году». Они указали на лёгкость общения и огромное количество знаний, появившиеся благодаря информационной эпохе, как на причины для оптимизма.
Читать дальше →
Total votes 7: ↑5 and ↓2+7
Comments14

Low-code платформы: панацея или рискованная ставка?

Reading time6 min
Views42K

Low-code платформы (Low code application platforms, LCAP) возникли как реакция на сложность и многообразие современных средств разработки ПО.


Согласно Gartner, одним из самых известных игроков в этой области является Mendix. Продажа Siemens за космические $700 млн. это подтверждает. Так что я буду использовать эту платформу как пример, хотя аналогичные выводы будут верны и для Outsystems, Appian, Kony, Betty Blocks и других.


image


Итак, ориентируя продажи на топ-менеджеров, вендоры low code платформ обещают, что даже простые пользователи смогут самостоятельно создавать бизнес-приложения.


То есть разработчики больше не нужны?!

Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments113

Разработчики — никакая не элита, а голые короли индустрии

Reading time5 min
Views165K

ЛОЛШТО?


Пожалуйста, не поймите меня неправильно. Я профессиональный разработчик с 30-летним стажем. Я могу читать и понимать почти двадцать языков, полных по Тюрингу. Я могу писать ясный и выразительный код на доброй дюжине из них. В языках, которые я действительно люблю и использую ежедневно — мое имя можно увидеть на доске почета StackOverflow (топ-20 в мире: ruby, elixir). Я по-настоящему люблю писать код, и я отклоняю все предложения «вырасти» по должностной лестнице, будь то руководство проектами, CTO, или что угодно в этом направлении, несмотря на потенциальное увеличение дохода в разы.


professional beggars were often seen as people not deserving of aid
— Abraham Willemsens (Metropolitan Museum of Art)


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

Читать дальше →
Total votes 554: ↑292 and ↓262+125
Comments1984

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

Reading time3 min
Views37K

Компьютер — это просто. Или нет?


Любой человек, интересующийся сферой информационных технологий, хоть раз задумывался о том, как на самом деле работает компьютер. А и действительно, с помощью компьютера можно сделать столько всего удивительного, что невозможно поверить, что всё, что происходит внутри него, — сложение чисел. Почему бы тогда не сделать свой самому?

image

Эта мысль явно прослеживается в книге Чарльза Петцольда «Код» — хорошее чтиво для тех, кто хочет разобраться в устройстве компьютера на пальцах не тратя особо времени. Эта книга произвела сильное впечатление на меня, да так, что я решил, что компьютер и вовсе банально простой агрегат и ничего сложного в нём нет.
Читать дальше →
Total votes 29: ↑19 and ↓10+19
Comments36

10 признаков того, что хороший программист из вас не получится

Reading time11 min
Views330K
Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks.



Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенным продолжением моего недавнего ответа на Quora.) Когда кто-то задумывается о смене карьеры или интересуется разработкой и хочет знать, что для этого требуется, неизбежно возникает этот самый вопрос.

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

Будучи преподавателем на курсе «Full-stack Web-development», я работал со многими программистами-новичками. Хорошая новость в том, что мне редко встречались студенты, которые вообще не могли научиться программировать. Я считаю, что умение программировать — такой же базовый навык, как умение читать, писать и считать. Это под силу любому, так как это одна из способностей человека, но этому действительно надо учиться.

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

Этот список поможет вам понять, сможете ли вы стать хорошим программистом, а также что делать, если вы решите это изменить.
Читать дальше →
Total votes 133: ↑110 and ↓23+116
Comments518

Information

Rating
Does not participate
Registered
Activity