Pull to refresh
21
0
Владимир Кириенко @love_energy

Программист

Send message

Стандарт Web Authentication API: беспарольная аутентификация в вебе

Reading time5 min
Views20K


В марте 2018 года Альянс FIDO (Fast IDentity Online) и Консорциум W3C достигли важного рубежа: после двух лет разработки стандарт Web Authentication (WebAuthn) получил статус кандидата в рекомендации (CR) — это стабильная версия документа, в которую больше не планируется вносить принципиальных изменений. Обсуждение CR завершилось 1 мая.

Что дальше? Теперь очередь Google, Mozilla и Microsoft. Когда поддержку Web Authentication API независимо и совместимо реализуют в двух браузерах, стандарт получит статус предложения в рекомендации. К этому моменту будут рассмотрены все предложения от сообщества — и документ представят Консультативному Совету W3C для окончательного утверждения.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments26

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

Reading time11 min
Views34K
FIDO (Fast IDentity Online) Альянс был создан в июле 2012 года для решения проблемы поддержки устройств строгой аутентификации в сети Интернет, а также с целью упростить жизнь пользователям, вынужденным создавать и запоминать имена пользователей и пароли. FIDO Альянс планирует изменить текущую ситуацию с аутентификацией путем разработки спецификаций, определяющих набор механизмов, которые вытеснят зависимость от паролей и обеспечат безопасную аутентификацию пользователей интернет-услуг. Новый стандарт по безопасности устройств и плагинов для браузеров позволит любому веб-сайту или облачному приложению взаимодействовать с широким спектром существующих и перспективных устройств для обеспечения безопасной аутентификации пользователей.

Для обеспечения безопасной работы пользователей проект FIDO объединяет аппаратные средства, программное обеспечение и интернет-сервисы.

Как работает FIDO
Total votes 21: ↑11 and ↓10+1
Comments12

Как работает аппаратный ключ безопасности — и почему не сделать программируемый ключ с улучшенной защитой?

Reading time4 min
Views18K


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

Двухфакторная аутентификация (2FA) сегодня обязательна, потому что второй фактор и на порядок увеличивает усилия для взлома. Стандартный второй фактор — это телефон, куда приходит дополнительный код. Ещё один дополнительный фактор — аппаратный ключ безопасности, который невозможно скопировать. Такой ключ может защищать доступ к вашему парольному менеджеру.

Давайте посмотрим, как сделаны такие ключи, кто их выпускает. И самое главное — как их сделать ещё лучше.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments20

Книга «Linux API. Исчерпывающее руководство»

Reading time19 min
Views35K
image Привет, Хаброжители! Недавно у нас вышел фундаментальный труд Майкла Керриска по программным интерфейсам операционной системы Linux. В книге представлено практически полное описание API системного программирования под управлением Linux.

Сейчас мы рассмотрим раздел «Потоки выполнения: введение». Мы сначала ознакомимся с кратким обзором работы потоков, а затем сосредоточимся на том, как они создаются и завершаются. В конце будут рассмотрены некоторые факторы, которые следует учитывать при выборе между двумя разными подходами к проектирования приложений — многопоточным и многопроцессным.

Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments9

Сколько строк на C нужно, чтобы выполнить a + b в Python?

Level of difficultyMedium
Reading time10 min
Views62K

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

В этой статье мы опустимся на один уровень ниже и посмотрим, что же происходит внутри среды исполнения Python для выполнения простого действия a + b. Иными словами, мы узнаем о подробностях реализации типов, операторов и динамической диспетчеризации в CPython.

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

Читать далее
Total votes 39: ↑36 and ↓3+52
Comments64

Работа не волк, часть 5. Увольнение: я ухожу красиво?

Reading time15 min
Views84K
В тот день мой кошелёк остался в офисе, о чём удалось узнать только на трамвайной остановке. Было грустно: уволился коллега, с которым мы работали 4 года бок о бок, мы только проводили его. Надо было возвращаться. Кроме кошелька, в кабинете был тот самый коллега: большой во всех смыслах сисадмин, которого схантили в Питер. Он меня не сразу заметил: согнутый, он гладил огромной ладонью системный блок и о чём-то разговаривал с компьютером. Было невыносимо. Он повернулся и сказал: «Душу здесь оставляю, повесишь на крючок». Спустя год это пришлось пройти и мне, а потом ещё и ещё раз. Позже заявления приходилось подписывать уже мне. 

И стало понятно: любое увольнение — больно, часто некрасиво. А значит, самое время понять, что же делать, чтобы увольнение было максимально комфортным, безболезненным и правильным. 


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

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Total votes 50: ↑46 and ↓4+66
Comments124

Завершён проект воссоздания человеческого мозга в компьютере стоимостью €600 млн. Что в итоге?

Reading time9 min
Views35K

Потребовалось 10 лет, около 500 учёных и около 600 млн евро, и вот проект "Человеческий мозг" - одно из самых масштабных исследований, когда-либо финансировавшихся Европейским союзом, - подходит к концу. Его дерзкая цель заключалась в том, чтобы понять человеческий мозг, смоделировав его на компьютере.

За время существования проекта учёные из проекта Human Brain Project (HBP) опубликовали тысячи работ и добились значительных успехов в нейронауке, таких как создание подробных 3D-карт не менее 200 областей мозга, разработка мозговых имплантатов для лечения слепоты, использование суперкомпьютеров для моделирования таких функций, как память и сознание, а также для разработки методов лечения различных заболеваний мозга.

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

Читать далее
Total votes 35: ↑33 and ↓2+42
Comments95

Как выглядят собеседования сейчас

Reading time8 min
Views133K

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

Я являюсь .Net разработчиком с опытом лидинга и набора специалистов в команду. На текущем месте работаю 2 года, но за этот срок многое изменилось. Решил проверить, что же сейчас с рынком, и сколько же я стою сейчас как специалист. За 2 недели я прошёл 30 собеседований и хочу поделиться некоторыми из них, высказать свои замечания и выводы.

Читать далее
Total votes 252: ↑243 and ↓9+282
Comments461

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Level of difficultyEasy
Reading time63 min
Views74K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Total votes 135: ↑110 and ↓25+122
Comments409

Основы Интерактивных карт

Reading time7 min
Views30K

Для визуализации интерактивных карт рассмотрим библиотеку - Folium.

Folium — это мощная библиотека визуализации данных в Python, которая была создана в первую очередь для того, чтобы помочь людям визуализировать гео-пространственные данные.

Folium - это библиотека с открытым исходным кодом, созданная на основе возможностей Datawrangling экосистемы.

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

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

Folium - это библиотека Python, которая помогает создавать несколько типов карт Leaflet. Тот факт, что результаты Folium интерактивны, делает эту библиотеку очень полезной для создания информационных панелей.

На официальной странице документации Folium:

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments4

Что для меня значит быть программистом

Reading time13 min
Views49K

Как-то мне написали с Хабра и сказали: Саня, хочешь написать статью про программистов?

Разумеется, я отнёсся к этому скептически. Ладно там девопсины или вайтхэты какие - почитать про них было бы интересно, но вот жизнь программиста... Я сразу вспомнил эти мемы как на КДПВ, которые на самом деле не мемы, а правда.

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

Чтобы получать 300кк/c, нужно всего лишь..
Total votes 158: ↑143 and ↓15+149
Comments71

C/C++ из Python (ctypes)

Reading time6 min
Views64K
main

Про то как вызывать Python из C написал в прошлой статье, теперь поговорим как делать наоборот и вызывать C/C++ из Python3. Раз начал писать об этом, то раскроем всю тему до конца. Тем более, что ни чего сложного здесь нет тоже.

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

Выбираем микроконтроллер вместе

Reading time3 min
Views114K
Прочитав эту статью я заметил большой интерес к выбору микроконтроллера у читателей и решил взглянуть на эту проблему с другой стороны.
Могу предположить, что всех интересует выбор их первого, либо первого 32-х битного МК.
image
Тем, кто знает, что на фотографии нет ни одного микроконтроллера — прошу в комментарии, дополнить мой рассказ и тем самым поделиться своим опытом с начинающими. Остальным, непременно под кат!
Читать дальше →
Total votes 50: ↑47 and ↓3+44
Comments57

Быстрый старт ST Nucleo-F401 + краткое руководство

Reading time8 min
Views87K
В предыдущем своем посте я попытался коротко ознакомить вас с платформой Nucleo от ST.
В этом посте я хочу рассказать вам на живом примере некоторые сильные стороны этой платформы, которая имеет все шансы потеснить приевшиеся всем Arduino, и показать что все примеры кода и шилды от Arduino, прекрасно подходят для платформы Nucleo.

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments37

Обзор платформы для разработчиков ST Nucleo на примере Nucleo-F401RE

Reading time5 min
Views87K
Оценочные платы ST Nucleo:

image

Это открытая, недорогая и легко расширяемая отладочная платформа для разработки с широким выбором специальных плат расширения, для всей линейки 32-х битных микроконтроллеров STM32 архитектуры ARM Cortex-M3 и Cortex-M4.

image

Платы «ST Nucleo» дают возможность выбирать из различных сочетаний производительность, энергопотребление, и архитектурные особенности микроконтроллера. Платформа позволяет быстро, удобно и легко изучить особенности архитектуры и программирования микроконтроллера, опробовать свои идеи, создать прототипы с любым микроконтроллером семейства STM32.
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments28

Преобразуем проект на Python в исполняемый файл .EXE

Reading time3 min
Views369K

С помощью Auto PY to EXE можно с лёгкостью преобразовывать файлы .py в файлы .exe. Благодаря этому ваш проект на Python будет работать как десктопное приложение и вы сможете запускать приложение на других машинах без необходимости установки Python.

В этой статье я расскажу, как преобразовать проект на Python в исполняемый файл. Решение будет работать вне зависимости от количества файлов .py в приложении. Стоит учесть, что Auto PY to EXE работает только с Python 3.5 или выше.
Читать дальше →
Total votes 37: ↑22 and ↓15+15
Comments12

Пошаговая GDB отладка ARM процессора из консоли в Win10

Reading time7 min
Views9.5K

Иногда бывает ситуация когда надо срочно что-то пошагово отладить. При этом нет времени и желания ставить какие-то тяжелые IDE. В таких случаях может помочь пошаговая GDB отладка ARM Cortex M33 из командной строки Windows. В этом тексте я расписал пошаговое руководство того как это сделать.

Читать далее
Total votes 11: ↑9 and ↓2+10
Comments25

Зарплаты IT-специалистов в первом полугодии 2023: +10% за счет регионов

Reading time5 min
Views285K

Каждые полгода мы на Хабр Карьере анализируем зарплаты IT-специалистов и собираем данные в большое исследование, чтобы посмотреть, как изменился рынок зарплат. Этот срез — один из таких.

Проанализировали 8 464 зарплаты в первом полугодии 2023 года — рассказываем, что получилось.

Узнать зарплаты
Total votes 36: ↑33 and ↓3+52
Comments117

Размещение кучи FreeRTOS в разделе CCMRAM для STM32

Reading time2 min
Views8.7K
При разработке одного девайса на базе STM32F407 столкнулся с проблемой нехватки оперативной памяти. Назначение самого девайса не принципиально, но важно, что изначальный код писался для десктопной системы и его нужно было просто портировать на микроконтроллер под управлением FreeRTOS. А так как исходный код был написан на С++ и вопрос об экономии ОЗУ даже не стоял, то и вылезла соответствующая проблема.

Заниматься оптимизацией кода, одновременно добавляя себе проблем с поиском новых ошибок, очень не хотелось. Поэтому своевременно вспомнилось, что данная версия микроконтроллера имеет на борту дополнительный сегмент ОЗУ размером 64К (CCM SRAM), который сейчас никак не был задействован. Эврика — вот оно, решение!

Но к сожалению, все оказалось не так просто.

Читать дальше →
Total votes 12: ↑10 and ↓2+12
Comments9

Использование альтернативного аллокатора памяти в проекте на C/C++

Reading time4 min
Views18K
Эта статья написана прежде всего для программистов C/C++, использующих в своей работе Visual Studio 2013. Поскольку я, как говорится, totally windows guy, то я не могу оценить полезность этой статьи для программистов, не использующих эту среду в своей работе. Итак.

Не секрет, что стандартный аллокатор new/delete/malloc/free в языке C/C++ не блещет быстродействием. Конечно, всё зависит от реализации, но, если говорить об оной от компании Microsoft, то это факт. Кроме того, стандартная реализация аллокатора обладает еще одним фатальным недостатком — фрагментацией памяти. Если в вашей программе происходят частые выделения/освобождения памяти, вы можете обнаружить, что спустя несколько часов работы ваша программа упала по причине нехватки памяти, хотя свободной памяти еще достаточно — просто в результате фрагментации в пуле аллокатора не осталось свободного участка достаточного размера. (Это, кстати, абсолютно реальный случай, который произошел на одном из проектов, в котором я принимал непосредственное участие.)
И что же делать?
Total votes 27: ↑20 and ↓7+13
Comments40

Information

Rating
Does not participate
Location
Россия
Registered
Activity