Pull to refresh
87
58
Olga Kuznetsova @lelyakuznetsova

Редактор

Send message

Source Generators в действии

Reading time38 min
Views16K

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


Ранее Андрей Дятлов TessenR выступил на конференции DotNext с докладом «Source Generators в действии». А теперь, пока мы готовим следующий DotNext, сделали для Хабра текстовую расшифровку его доклада.



Что вообще такое эти Source Generators? Как их использовать? Как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах? Как разобраться, когда что-то пошло не так?


Ответы на все эти и другие вопросы — в тексте.

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

Когда тестирование выпало из DevOps, и как его туда вернуть

Reading time19 min
Views6.9K

Что делать с понятием, соединяющим две разных технических области? Добавить третью! DevOps соединил «development» и «operations», но что в этом случае произошло с «testing»? А что должно произойти, чтобы всё было по уму?

Руслан Ахметзянов @arg89уже выступал у нас и на девопс-конференции DevOops, и на конференции по тестированию Heisenbug. Сейчас он готовит новый доклад, а мы готовим новые DevOops и Heisenbug — и в ожидании этого решили расшифровать для Хабра его предыдущее выступление. Кто-то может не согласиться с его выводами, но так даже интереснее!

Далее повествование идёт от лица спикера.

Читать далее
Total votes 8: ↑7 and ↓1+10
Comments4

Как убедить работодателя отправить тебя на конференцию

Reading time7 min
Views4.6K

Что общего у разработчика, открывшего сайт интересной конференции, и ребёнка в магазине сладостей? Когда они смотрят и понимают «хочу!», зачастую не сами достают деньги из кармана, а обращаются для покупки к кому-то другому (разработчик — к работодателю, ребёнок — к родителю).

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

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

Значит, Жене нужно суметь обосновать, в чём тут выгода для работодателя. Кстати, а и правда, в чём? Она вообще есть, или Женя просто хочет на халяву поразвлекаться? Давайте разберёмся.

Читать далее
Total votes 13: ↑11 and ↓2+11
Comments18

Как мы сделали WebRTC-видеозвонилку и что перепробовали: P2P, SDK от Voximplant и VK Звонков

Reading time24 min
Views8.5K

Привет, меня зовут Кирилл и я инженер, который превозмогал ковидные времена вместе с компанией JUG Ru Group. Мы делаем технические конференции, и в пандемию сделали собственный сайт для проведения онлайн-конференций. Тогда нам понадобились качественные видеозвонки на WebRTC, чтобы подключать через браузер спикеров из любой точки планеты.

Варианты «просто застримить Zoom или захватить Jitsi» нам не подошли. Стало ясно, что нужно делать своё решение, пусть и на основе чужого SDK. В результате перебрали разные варианты, накопили опыт. А ещё из-за вопросов вроде этого создали целую конференцию VideoTech, чтобы послушать других знающих людей.

И теперь хочу поделиться нашим опытом с Хабром, поговорив про WebRTC в целом и про конкретные реализации: P2P, Voximplant SDK, SDK VK Звонков.

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

История Android от L до T

Reading time25 min
Views23K

Как для мобильных разработчиков менялся Android с 2014 года и до сегодняшнего дня? Казалось бы, можно просто открыть официальное описание каждой версии и узнать. Но интереснее не просто читать сухие чейнджлоги, а вместе вспомнить все и из отдельных фактов сделать общие выводы. 

В июне я выступил с докладом об этом на конференции Mobius, а теперь для аудитории Хабра публикую его текстовую версию. Если есть что добавить — пишите в комментариях!

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

Бредовая работа

Reading time13 min
Views36K

Как же глупы мнения некоторых людей из Ост-Индии, полагающих, что обезьяны и бабуины, которых там огромное количество, наделены рассудком и умеют разговаривать, но не делают этого из страха, что их возьмут на службу и заставят работать (Антуан Легран, около 1675 года).

Эту остроумную цитату я увидел в замечательной книге недавно ушедшего от нас Дэвида Гребера "Бредовая работа: Трактат о распространении бессмысленного труда", которая произвела на меня очень сильное впечатление. О ней я и хочу рассказать.

Читать далее
Total votes 54: ↑42 and ↓12+37
Comments466

WebHID API: управление почти чем угодно из браузера

Reading time21 min
Views13K

Зачастую JavaScript ассоциируют с формочками в браузере, а C++ с железом и суровыми оптимизациями. Но что, если не противопоставлять «формочки» и «железо», а объединить?


На недавней конференции HolyJS Никита Дубко показал, как с помощью WebHIDf можно подключаться из браузера к самым разным пользовательским устройствам. Вероятно, для «железячников» многое сказанное в докладе очевидно — зато для JS-разработчиков это, наоборот, возможность узнать что-то совершенно новое. Доклад понравился участникам, и теперь мы сделали для Хабра текстовую версию. Далее повествование идёт от лица спикера.


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

5 советов, чтобы успешно притворяться разработчиком

Reading time3 min
Views98K

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

Читать далее
Total votes 124: ↑110 and ↓14+113
Comments110

Обработка исключений в контроллерах Spring

Reading time9 min
Views98K

image


Часто на практике возникает необходимость централизованной обработки исключений в рамках контроллера или даже всего приложения. В данной статье разберём основные возможности, которые предоставляет Spring Framework для решения этой задачи и на простых примерах посмотрим как всё работает. Кому интересна данная тема — добро пожаловать под кат!

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

Брайан Керниган добавляет в AWK поддержку юникода

Reading time2 min
Views9.8K

Для мира Unix эта новость — что-то в духе «появился Моисей и анонсировал дополнение к десяти заповедям».

AWK, язык программирования для анализа текстовых файлов, является ключевой частью Unix-систем — включая Linux, BSD и другие. Для того, чтобы OS могла считаться POSIX-совместимой, она обязана включать AWK. Впервые AWK появился в 1977-м и был включен в Version 7 UNIX в 1979-м — в последней версии UNIX от Bell Labs перед тем, как AT&T превратили его в коммерческий продукт.

В том, что он получает поддержку Unicode, заметнее даже не сама фича, а кто занялся её реализацией: канадский информатик Брайан Керниган.

Название AWK — аббревиатура, образованная по фамилиям трёх его создателей: Альфреда Ахо (обладателя премии Тьюринга), Питера Вейнбергера и Брайана Кернигана. Также Керниган — это буква «K» в названии «K&R C»: классической книге 1978 года «The C Programming Language», написанной Керниганом и великим Деннисом Ритчи.

Читать далее
Total votes 43: ↑41 and ↓2+55
Comments6

Как создавать анимации в Jetpack Compose

Reading time25 min
Views25K

Анимации в Jetpack Compose довольно легко понять, применить и кастомизировать под требования дизайна. Но я ещё не видел ни одного туториала по анимациям в Compose на русском языке, поэтому подготовил на эту тему доклад для майского Mobius. А для тех, кто больше любит читать, чем слушать, подготовил статью. В материале мы обсудим  виды анимаций, а также пройдём все шаги по способам их создания и кастомизации.

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

Досмотр файлов на украинской границе: личный опыт

Reading time3 min
Views18K
Возвращаясь несколько дней назад на поезде из Симферополя в Петербург, столкнулся с тем, что на границе украинский таможенник заинтересовался содержимым нетбука. Ранее на Хабре встречал упоминания о таком досмотре, но ни одного подробного текста не видел, поэтому решил написать его сам — чтобы пересекающие границу заранее знали, чего можно ждать. Если в комментариях другие дополнят рассказ собственным опытом, будет вообще прекрасно.

Читать дальше →
Total votes 159: ↑153 and ↓6+147
Comments341

«Мам, смотри! Я могу без рук!», или Как проект NavLab проложил путь современным беспилотным автомобилям

Reading time10 min
Views2.2K

Когда мы говорим «беспилотные автомобили», то, как правило, представляем стильные Tesla или футуристические Waymo. Кажется, что беспилотные машины — это недавняя технологическая разработка. Но исследования в этой области начались более 30 лет назад. Ученые из университета Карнеги — Меллона впервые попробовали силы в этом еще в 1984 году, когда начали работу над проектом Navlab 1. 

С 1984 года было создано 11 поколений автомобилей NavLab и подано более 140 заявок на патенты. Инженеры, работавшие над проектом, впоследствии перешли в Google (например, Себастьян Трун, Дж. О. Урмсон, Астро Теллер) или другие компании и внесли свой вклад в разработку беспилотных автомобилей.

В этой статье расскажем про незаслуженно обойденный вниманием проект Navlab и познакомимся с синим фургоном «Шеви».

Поехали!
Total votes 11: ↑11 and ↓0+11
Comments4

Кровь и бетон. Как не надо писать

Reading time8 min
Views41K

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

К чёрту. Варианты закончились. Чтобы не терять времени, перейдем к оскорблениям.

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

Читать далее
Total votes 204: ↑175 and ↓29+195
Comments183

Внутренние комьюнити мобильных разработчиков: опыт крупных ИТ-компаний

Reading time21 min
Views2.3K

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

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

Участники:
Роман Голофаев, Почтатех
Екатерина Батеева, Авито
Александр Сычев, СберЗдоровье
Александр Гузенко, Тинькофф
Павел Стрельченко, HeadHunter
Дмитрий Алиев, Райффайзен Банк

Читать далее
Total votes 13: ↑11 and ↓2+11
Comments0

Володя, где мой компьютер? Проблемы школьной информатики в России

Reading time15 min
Views30K

Я вовсе не считаю, что количество часов нужно сокращать. Мое представление было бы таковым, если бы сам предмет информатики был крайне узким. Но это не так. Информатика достаточно широкая и комплексная наука, которая нуждается в изучении отдельных её областей, чтобы было хоть какое-то понимание. На деле же ученики даже не заинтересованы, поскольку они лишь поверхностно изучают тот объект, с которым сталкиваются ежедневно...

Читать далее
Total votes 24: ↑22 and ↓2+28
Comments205

Как я опять Хабр сломал

Reading time6 min
Views43K

Всегда хотел взломать Хабр. Мечта такая, но как-то руки не доходили. И вот, вдохновившись статьей о праведном взломе через iframe src , я, как и автор поста @Maxchagin, решил исследовать функционал Хабра на предмет уязвимостей.

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

Читать далее
Total votes 152: ↑150 and ↓2+196
Comments19

Самопишущийся код

Reading time28 min
Views10K

Когда речь идёт о технологиях, позволяющих компьютеру написать часть кода за человека, разговор вечно соскальзывает в гадания на кофейной гуще. Уволят через десять лет всех программистов или нет?


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


На конференции Joker об этом рассказывали Никита Поваров allfather и Роман Поборчий p0b0rchy. На момент доклада оба работали в JetBrains, так что получилось не просто абстрактное описание вопроса, а «взгляд изнутри» со стороны тех, кто делает инструменты для разработчиков.



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

7 причин почему вам не стоит переходить на Mac, или как справиться с этой демонической машиной

Level of difficultyEasy
Reading time12 min
Views214K

Mac наступает со своим чипом M1. Новичков в этой экосистеме должно заметно прибавиться. Сам я многие годы с уважением смотрел на эти интерфейсы. Слушая какой же Mac удобный, плавный и интуитивный. Какой там великолепный Trackpad, что даже мышь не нужна и бла бла бла. И вот, после 15 лет работы CAD разработчиком, я решил поменять профиль и стать программистом. А чтобы не терять мотивацию в процессе обучения, выбрал для себя наиболее наглядное направление, как мне показалось — iOS разработка. Сказано — сделано. MacBook Pro 16” уже год мой основной компьютер.

Так что же с ним не так?
Total votes 339: ↑260 and ↓79+259
Comments1164

Жизнь после мейнстрима: что стало с известными ранее стандартами и технологиями

Reading time9 min
Views16K

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

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

На нескольких примерах покажем, как это происходит.

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

Information

Rating
109-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Works in
Date of birth
Registered
Activity