Как стать автором
Обновить
467.99
Рейтинг

Программирование

Искусство создания компьютерных программ

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Реализация сервера авторизации OAuth с помощью сервера авторизации Spring

Блог компании OTUSПрограммированиеJava
Перевод

Сервер авторизации в OAuth предназначен для выдачи маркера доступа, который позволяет клиентскому приложению использовать этот маркер доступа для запроса ресурса, который ему нужно получить. Сервер ресурсов будет подтверждать этот маркер доступа с помощью сервера авторизации каждый раз, когда клиентское приложение запрашивает ресурс, чтобы определить, следует ли разрешить клиентскому приложению доступ к этому ресурсу. Вы можете использовать множество различных открытых источников, таких как Keycloak, Spring Security OAuth (устаревший), или же новый проект Spring под названием Spring Authorization Server для реализации этого сервера авторизации. В этом руководстве я покажу вам, как использовать сервер авторизации Spring (Spring Authorization Server) для реализации сервера авторизации OAuth (OAuth Authorization Server)!

Сначала я создам новый проект Spring Boot с Web Starter, Security Starter:

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Просмотры736
Комментарии 0

Новости

Показать еще

С Vue 3 вам может и не понадобиться Vuex

Блог компании OTUSJavaScriptПрограммированиеVueJS
Перевод

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

.       .       .      

Нужно ли вам общее состояние?

Бывают обстоятельства, когда обмен данными между несколькими компонентами становится настолько сложным, что вам необходимо централизованное управление состоянием. К таким обстоятельствам относятся:

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Просмотры2.4K
Комментарии 5

Обзор плагина Big Data Tools

Блог компании JetBrainsПрограммированиеBig DataData Engineering

Храните файлы в облачных файловых системах или, может быть, используете Hadoop, Spark и Zeppelin? А пробовали ли вы работать с ними напрямую из IDE?

Привет, меня зовут Олег, я из команды плагина Big Data Tools. В этой статье мы поговорим, зачем этот плагин нужен, как применяется и где его достать. За последний год плагин прошёл большой путь и из экспериментального продукта превратился в боевое решение, на которое стоит взглянуть специалистам по Big Data.

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

Если вам интересно подробней узнать о мире Big Data и работе дата-инженеров, рекомендую развернутую серию статей Паши Финкельштейна. Здесь мы рассмотрим одну из самых популярных схем.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Просмотры975
Комментарии 4

Абстрактные 3D-фракталы всех сортов на C++

Блог компании Питерская ВышкаПрограммированиеC++CGI (графика)Учебный процесс в IT

Привет, Хабр!

Под фракталами понимают фигуры, особенность которых — подобие самим себе. В рамках курсовой работы по C++ мы написали приложение, шустро отрисовывающее 3D-фракталы и позволяющее их вращать, приближать-отдалять, изменять параметры, записывать видео и не только. В этой статье расскажем, как шла разработка, с какими задачами в ходе неё мы сталкивались и как их решали.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Просмотры3K
Комментарии 2

Должен ли дизайнер писать код? Совместный вебинар Яндекс.Практикума и Юлии Миоцен

Блог компании Яндекс.ПрактикумВеб-дизайнПрограммированиеДизайн
5 августа Яндекс.Практикум вместе с дизайнером Юлией Миоцен проведёт вебинар в формате разговора «Должен ли дизайнер писать код?» Вебинар будет полезен разработчикам интерфейсов, дизайнерам, арт-директорам и всем, кому интересна тема взаимодействия дизайна с кодом.


Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Просмотры298
Комментарии 0

Всемогущий FFmpeg: скриншаринг в WebRTC

Блог компании FlashphonerРазработка веб-сайтовРабота с видеоПрограммированиеВидеоконференцсвязь

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

"И зачем такой огород городить? Все это одной FFmpeg командой делается!"

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Просмотры3.1K
Комментарии 8

Как увеличить стек FPU

ПрограммированиеКомпиляторыЧитальный залПроцессоры

Что-то не получаются у меня заголовки статей. Потому, что на вопрос «Как увеличить стек FPU?» очевидно же следует прямой и ясный ответ – да никак. Это же аппаратное устройство. Даже если бы и удалось увеличить его стек – тогда пришлось бы переделывать систему команд, рассчитанную на адресацию только 8 регистров ST0-ST7 Да и зачем его увеличивать? Для большинства выражений он и так очень глубокий, прямо-таки бездонный. Стоп. Я забегаю вперед. Ведь статью могут читать и те, кто никогда не разбирался с командами процессора на низком уровне. Поэтому начну с самого начала.

Стоп. Я забегаю вперед. Ведь статью могут читать и те, кто никогда не разбирался с командами процессора на низком уровне. Поэтому начну с самого начала.

Итак, FPU (Float Point Unit) – устройство в процессоре x86 для вычислений чисел с «плавающей точкой» в формате IEEE-754. Когда-то это была отдельная микросхема 8087 с названием «сопроцессор». Работала параллельно с основным процессором 8086 и даже была команда WAIT, которая останавливала программу и дожидалась конца выполнения очередной долгой команды сопроцессора. Я еще помню времена, когда у нас в отделе на несколько ПК был лишь один сопроцессор, мы его выковыривали отверткой и переустанавливали на тот ПК, на котором проводились большие вычисления. С появлением процессора 80486 FPU переселилось внутрь его кристалла, и проблема ушла. Кстати, команда WAIT осталась, но работает теперь не так. Впрочем, все это присказка. Главное – у FPU есть собственный стек на восемь патронов, поэтому проводить вычисления очень удобно, а для адресации в командах FPU любого объекта в этом стеке достаточно трех бит в коде каждой такой команды.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Просмотры2K
Комментарии 9

5 самых известных проектов, написанных на Golang

Блог компании SkillboxПрограммированиеGoIT-компании
image

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

Кроме того, упомянем и самые известные компании, которые работают с Go. Кто знает, возможно, кто-то из читателей Хабра там уже работает, и сможет рассказать подробности. Как всегда, все самое интересное — под катом. Статья написана совместно с Никитой Кузнецовым, старшим разработчиком в компании Мегафон и преподавателем курса “Go-разработчик PRO” в Skillbox.
Читать дальше →
Всего голосов 25: ↑18 и ↓7+11
Просмотры11K
Комментарии 11

Vulkan. Руководство разработчика. Пересоздание swap chain

ПрограммированиеC++Работа с 3D-графикойРазработка игрCGI (графика)
Перевод
Tutorial


Привет! Я технический переводчик из ижевской IT-компании CGTribe, и я продолжаю делиться с вами переводами уроков Vulkan Tutorial.

Эта публикация посвящена переводу главы Swap chain recreation — последней главы раздела Drawing a triangle. Оригинальную статью вы можете найти здесь.

Содержание
1. Вступление

2. Краткий обзор

3. Настройка окружения

4. Рисуем треугольник

  1. Подготовка к работе
  2. Отображение на экране
  3. Графический конвейер (pipeline)
  4. Отрисовка
  5. Повторное создание цепочки показа

5. Буферы вершин

  1. Описание
  2. Создание буфера вершин
  3. Staging буфер
  4. Буфер индексов

6. Uniform-буферы

  1. Дескриптор layout и буфера
  2. Дескриптор пула и sets

7. Текстурирование

  1. Изображения
  2. Image view и image sampler
  3. Комбинированный image sampler

8. Буфер глубины

9. Загрузка моделей

10. Создание мип-карт

11. Multisampling

FAQ
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Просмотры763
Комментарии 0

Выявление мошеннических сборов в Instagram

Информационная безопасностьPythonПрограммированиеМашинное обучениеСоциальные сети и сообщества

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Просмотры1.5K
Комментарии 1

Почему твоя мама всё ещё не прогает?

Блог компании ДомКликПрограммированиеКарьера в IT-индустрииЧитальный зал

Случай с бомжом

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

Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».

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

Читать далее
Всего голосов 235: ↑210 и ↓25+185
Просмотры43K
Комментарии 329

50 цветных оттенков Mavo. Решение задач веб-разработчика без JavaScript

Блог компании Конференции Олега Бунина (Онтико)Веб-дизайнРазработка веб-сайтовПрограммированиеHTML

В начале 2016 года в опросе Лии Веру в Твиттере половина из 3578 человек ответили, что не очень комфортно чувствуют себя с JavaScript. И речь не только о новичках. Профессионалам тоже нелегко — ежедневно выходит огромное количество библиотек, и невозможно уследить за всеми современными трендами в мире веб-разработки. 

Но кое-что все-таки выделяется. В 2016 году появилась новая технология от лаборатории Массачусетского технологического института — Mavo. Он прекрасен тем, что позволяет прокачать HTML за счёт добавления в него относительно небольшого количества атрибутов. В результате вы получаете рабочее веб-приложение так, будто вы использовали JavaScript, но на самом деле кода JS там будет ноль.

Дмитрий Шарабин, евангелист технологии Mavo, сегодня расскажет нам про ее 50 цветных оттенков. Видео его выступления на FrontendConf 2020 — здесь.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Просмотры1.8K
Комментарии 15

Над чем задуматься перед тем, как брать ML-задачу в работу

Блог компании КонтурПрограммированиеМашинное обучениеData Engineering

В Контуре мы решаем самые разные задачи с помощью машинного обучения: распознаем документы и ищем подделки паспортов, анализируем банковские транзакции, предсказываем вероятность банкротства компаний, классифицируем товары, автоматически отвечаем на вопросы в чате, развиваем собственный speech-to-text… и еще десятки проектов, которые привносят в продукты новые фичи или помогают оптимизировать процессы.

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

В этой статье я приведу ответы на вопросы, над которыми стоит задуматься в самом начале, если вдруг вам пришла в голову идея "прикрутить к проекту ML-фичу" (добавить ложечку Data Science / AI / другие модные названия).

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Просмотры1.8K
Комментарии 1

Прекратите изучать фреймворк, станьте JavaScript-разработчиком

Разработка веб-сайтовJavaScriptПрограммированиеСовершенный код

Представьте диалог:

—  Здравствуйте, я водитель КАМАЗа!

—  Добрый день, к сожалению, в нашем автопарке только ЗИЛы, позовите следующего кандидата, пожалуйста!

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

Всем привет, это Макс Кравец из Holyweb, и сегодня мы поговорим о том, почему фронтенд-разработчику важно учить JavaScript, а не фреймворк или библиотеку.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Просмотры7.3K
Комментарии 42

Будет ли работа программистам? Come on

ПрограммированиеИсследования и прогнозы в ITИскусственный интеллект
image

Искусственный интеллект развивается стремительными темпами и мы понимаем, что многие профессии со временем будут поглощены ИИ (не только физический труд, но и такие профессии, как учитель, бухгалтер, медики, офисный работник и другие). Люди просто останутся на улице. Хотя, есть одна область, профессионалы которой даже не представляют, что именно они будут первыми, кто будет лишен работы из-за развития ИИ. Как вы думаете, что это за профессия?
Читать дальше →
Всего голосов 24: ↑1 и ↓23-22
Просмотры5.3K
Комментарии 37

Как сделать DIY-термостат с веб-интерфейсом, чтобы отапливать дом дистанционно

Блог компании SkillFactoryPythonПрограммированиеDIY или Сделай самЭлектроника для начинающих
Перевод

Разработка на фронтенде не ограничивается интернет-ресурсами, а бекенд может оказаться неожиданным. К старту курса о Fullstack-разработке на Python делимся переводом статьи, автор которой в условиях Великобритании, где центрального отопления в привычном нам смысле этого слова нет, столкнулся с неудобствами отопления в новом доме и самостоятельно собрал электронный термостат, для управления прибором написав веб-интерфейс, а также бекенд на Flask.

Читать далее
Всего голосов 12: ↑10 и ↓2+8
Просмотры3.8K
Комментарии 8

Можно ли использовать декларативный и императивный стили написания программ одновременно?

Блог компании TimewebНенормальное программированиеПрограммированиеC++Prolog


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

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

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

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

Данная статья — размышление о совместимости декларативной и императивной парадигм программирования и возможности их одновременного использования в рамках одного языка программирования одновременно.

Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Просмотры3K
Комментарии 30

Строим систему доменных событий в модульном монолите

Блог компании ispringPHPПрограммированиеАнализ и проектирование системПроектирование и рефакторинг

Всем привет! В этой статье хочу поделиться опытом построения системы доменных событий (domain events) в нашем модульном монолите и микросервисах, рассказать о том, как мы гарантируем их доставку, следим за консистентностью в рамках транзакций, используя transactional outbox, чем доменные события отличаются от интеграционных и всё это в рамках multi tenant приложения. Подробнее под катом.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Просмотры2K
Комментарии 20

Не очень известные возможности Chrome Devtools

Разработка веб-сайтовJavaScriptПрограммированиеGoogle Chrome

Chrome Devtools, безусловно, мощнейший инструмент для разработки, дебага, профайлинга и тестирования в браузере. С каждым релизом в него завозят всё новые и новые фичи. И время от времени на хабре выходят посты типа "10 крутых фишек Devtools". Но факт - то ли копирайтовый мир победил, то ли это не слишком интересная тема, но в большинстве случаев авторы описывают одни и те же возможности, которые существуют уже года 4. Мне кажется только ленивый сейчас не знает о console.time, о манипуляциях с анимациями, и о том что ветки DOM-дерева можно drag&drop-ать, и т. д.

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

Ну, рассказывай
Всего голосов 19: ↑18 и ↓1+17
Просмотры7.1K
Комментарии 14

Понимаем соединения и пулы

Блог компании ФлантПрограммированиеАдминистрирование баз данныхРаспределённые системы
Перевод

Прим. перев.: автор этой статьи — технический архитектор Sudhir Jonathan — рассказывает об одном из тех базовых механизмов, с которым сталкивается каждый пользователь, разработчик и системный администратор. Однако до возникновения определённых (и иногда довольно специфичных) проблем многие не задумываются о том, как всё работает «под капотом». Автор устраняет этот пробел, используя популярные фреймворки, серверы БД и приложений в качестве понятных примеров.

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

Читать далее
Всего голосов 30: ↑29 и ↓1+28
Просмотры4K
Комментарии 0

Вклад авторов