Как стать автором
Обновить
50
-2
Тимофей Казанцев @Levitanus

Пианист-оркестровщик-быдлокодер

Отправить сообщение

Как сделать сервисы доступнее для людей с нарушениями зрения. Исправляем 5 самых частых ошибок

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.4K

Всем привет! Меня зовут Юля Долгун, я фронтенд-разработчик из Поиска. Одна из моих задач — поддерживать доступность в поиске по товарам для пользователей с различными ограничениями здоровья.

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

Читать далее
Всего голосов 28: ↑28 и ↓0+28
Комментарии6

Создание WEBGL приложения Вконтакте на Unity

Время на прочтение19 мин
Количество просмотров11K

В нашем уроке мы создадим свой проект на Unity, и подключим его к html странице с помощью Javascript. И затем научимся обмениваться данными между Javascript браузера и скриптами Unity. И в заключение создадим новое приложение Вконтакте и научимся работать в связке Api Вконтакте – Javascript – Unity .

Вы узнаете, как написать простой скрипт, как добавить события пользователя. Как из скрипта Unity обращаться к скрипту Javascript на стороне браузера. И также как пройти путь от нажатия кнопки в среде Unity до вызова метода Api Вконтакте с полным контролем всех событий.

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

НУЦ сурка

Время на прочтение6 мин
Количество просмотров21K

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

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

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

Итак, на сайте Минцифры сообщается, что сертификаты выдает Национальный удостоверяющий центр. Сервис по выдаче сертификатов безопасности работает с марта 2022 года на портале Госуслуг. Однако «Портал государственных услуг Российской Федерации», утверждает, что российский сертификат безопасности для интернет-сайтов, заверенный «российским корневым сертификатом» предоставляется самим Минцифры. Да и сертификате указано, что его выпустило «The Ministry of Digital Development and Communications», а не какой-то «национальный удостоверяющий центр».

Читать далее
Всего голосов 115: ↑102 и ↓13+89
Комментарии56

Темная тема = шрифтовой ад

Время на прочтение2 мин
Количество просмотров14K

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

Читать далее
Всего голосов 41: ↑40 и ↓1+39
Комментарии35

Импортозамещаем Evernote. Obsidian – менеджер заметок и лучший друг менеджеров

Время на прочтение11 мин
Количество просмотров63K

Привет, Хабр! Меня зовут Николай Суворов. Я – профессиональный менеджер, руководитель направления Delivery Management в МТС Digital. Занимаюсь Enablement Platform – единой платформой для быстрого создания продуктов в экосистеме МТС. Сегодня я расскажу о своем pet-проекте и о том, как я заменил привычный, но такой недоступный Evernote прекрасным менеджером заметок Obsidian. Статья будет интересна прежде всего тем, кто хочет обладать «вторым мозгом» и ни о чем не забывать.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии97

Как выглядит стоматология будущего: зубы — это атавизм

Время на прочтение8 мин
Количество просмотров45K
Есть ближайшее будущее, оно про 3D-принтеры и аугментацию. Вот это уже реальность, хоть и не массовая, мы так делаем:

image
Брекеты для лица: 3D-печать по металлу, ПО проектирования прикуса — и можно смоделировать и пересобрать череп заново.

У нас уже есть крутые штуки в виде 3D-сканеров, цифрового моделирования ортодонтических процессов, 3D-принтеры (фотополимерные и DMLS, не хоббийные FDM) и автоматизированные фрезы. И уже скоро мы ждём новых наработок в виде таргетных бактериофагов, вакцины против адгезивного белка Streptococcus mutans и генно-модифицированных микроорганизмов для заселения полости рта. Возможно, уже недалеко вакцина от кариеса.

Предлагаю пощупать топовую стоматологию, какой она может стать через 10–15 лет и, может, чуть позже, тем более что зубы нам могут и не понадобиться в будущем.

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

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

Потому что мы в переходном процессе эволюции, да-да.
Всего голосов 90: ↑84 и ↓6+78
Комментарии96

Три архитектуры эльфам, семь гномам, девять людям… где же искать ту, что объединит их все?

Время на прочтение60 мин
Количество просмотров29K

Проводится сеанс разоблачения магии (CISC, RISC, OoO, VLIW, EPIC, ...).
Без традиционной рубрики “а что, если” тоже не обошлось.

Добро пожаловать под кат, правда, лёгкого чтения ожидать не стоит.

Читать далее
Всего голосов 141: ↑141 и ↓0+141
Комментарии55

О полезности contextvars

Время на прочтение5 мин
Количество просмотров25K

В Python есть множество возможностей и языковых конструкций. Какие-то мы используем каждый день, а о некоторых даже опытные программисты узнают с удивлением после нескольких лет работы с языком (привет, Ellipsis!). Совсем недавно вышел Python 3.9, но в этой статье я расскажу о функциональности, представленной еще в версии 3.7. На мой взгляд, она совершенно незаслуженно обделена пристальным вниманием. Речь, конечно же, о contextvars.
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии9

Распространенные ошибки безопасности в приложениях Laravel

Время на прочтение14 мин
Количество просмотров18K

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

CyberPanda Team

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

Сервис на языке Dart: flutter web-страница

Время на прочтение6 мин
Количество просмотров15K
Оглавление
  1. 1. Введение
  2. 2. Backend
  3. 2.1. Инфраструктура.
  4. 2.2. Доменное имя. SSL
  5. 2.3. Серверное приложение на Дарт
  6. ...
  7. 3. Web
  8. 3.1. FlutterWeb страница (мы находимся здесь)
  9. ...
  10. 4. Mobile
  11. ...


Подготовка


В прошлый раз мы закончили на том, что наш веб-сервер получил доменное имя и научился устанавливать безопасное соединение с клиентом. Однако нам пока совсем нечего показать нашему будущему пользователю. Хотя мы уже можем поделиться идеей стартапа и сообщить дату релиза MVP. Для такой задачи подойдёт информационная web-страница. Напишем её на Dart с использованием фреймворка FlutterWeb (здесь рассказываем, почему Flutter использует именно Dart). Все наши клиентские приложения сервиса станут расширением именно этой страницы. Постараемся вести разработку максимально адаптивно и структурировано, чтобы развитие и сборки под нужные платформы (web-android-iOS) стали просто рутиной.


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

«Просто похудеть» — непросто

Время на прочтение15 мин
Количество просмотров125K

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


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

Хакнуть свой мозг
Всего голосов 210: ↑188 и ↓22+166
Комментарии638

Нейробиология зависимости

Время на прочтение10 мин
Количество просмотров24K
В посте об уязвимости к зависимостям я обещал написать о нейробиологической природе аддикций – то есть о том, что именно сейчас у нейроученых считается субстратом химической зависимости, будь то алкогольная, никотиновая, героиновая или какая-то другая зависома. Это одиннадцатая глава книги о зависимых гримасах бытия, пишу я ее уже третий год и однажды, надеюсь, допишу. Будут вопросы – отвечу.

Всем здоровья и свободы разной: внешней и внутренней.

image
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии132

О нет! Моя Data Science ржавеет

Время на прочтение9 мин
Количество просмотров8.8K
Привет, Хабр!

Предлагаем вашему вниманию перевод интереснейшего исследования от компании Crowdstrike. Материал посвящен использованию языка Rust в области Data Science (применительно к malware analysis) и демонстрирует, в чем Rust на таком поле может посоперничать даже с NumPy и SciPy, не говоря уж о чистом Python.


Приятного чтения!
Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии9

Выгорание[%бюджетник%] = factor(Maybe<рыночная_экономика>)

Время на прочтение9 мин
Количество просмотров6.6K
image

Это по сути мой развёрнутый комментарий на замечательную статью Елизаветы Ключиковой (ElizavetaKluchikova) «Слушаю и повинуюсь: рыночная экономика как фактор выгорания педагога». В ней очень детально и хорошо описаны злоключения учителей в современной системе общего образования. В основном — с точки зрения самих учителей. Но у меня есть несколько замечаний, которые я считаю существенными. Ради этих замечаний и написана данная статья. Осторожно — много цитат.
Читать дальше →
Всего голосов 19: ↑15 и ↓4+11
Комментарии26

How old is this house. Как я делал карту возраста домов Петербурга

Время на прочтение9 мин
Количество просмотров27K


Идея


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


В памяти есть какие-то онлайн-проекты.
Беглый поиск дает много примеров из разных городов: Портланд, Рейкьявик, Нью-Йорк: Бруклин, Манхеттен, Барселона, Любляна, Львов, и даже проект масштаба страны, — Нидерланды.
Про Петербург тоже кое-что есть: например, отличные данные на Петроградку: «Ретроспектива застройки Петербурга» и проект Делового Петербурга: «Как застраивался Петербург: история строительства города за 68 секунд».


Цель — бумажная карта, к идее сделать how-old-is-this.house приду в процессе. Начинаю искать сырые данные.

Всего голосов 135: ↑134 и ↓1+133
Комментарии60

Профессия: программист. Не всё однозначно

Время на прочтение11 мин
Количество просмотров90K
Мы писали о фронтендерах и бэкендерах, о мобильной разработке и о тестировании, но это были частные случаи. Когда человек подходит к первой или очередной профессии, он редко говорит, что станет разработчиком под iOS или проктологом, как правило это звучит «программистом» и «врачом». Специализация приходит позже, с опытом. Но чтобы твёрдо заявить, что ты хочешь стать программистом, врачом, архитектором, геологом и т.д., нужно избавиться от романтизации профессии и подойти к ней здраво и осмысленно. Даже если вы вдруг решили стать программистом, чтобы «войти в айти после 35-ти». Если говорить о программистах с позиций романтики, то это люди, которые превращают наши замыслы в код и делают жизнь лучше, проще, удобнее. Если говорить прямо, то работа программиста — напряжённый, зачастую рутинный труд с множеством плюсов и минусов. Об этом и поговорим.

Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии45

Дорогая цена стилей. Доклад Яндекса

Время на прочтение21 мин
Количество просмотров17K
Загрузка CSS на страницу — блокирующая операция. Если асинхронная загрузка JavaScript может быть незаметна пользователю, то медленное появление стилей может прогнать нетерпеливого гостя с сайта. Как загружать CSS максимально производительно и незаметно для пользователей? Разобраться пробует Никита Дубко DarkMeFoDy из группы поисковых интерфейсов Яндекса в Минске.


— Всем привет. Расскажу про стили. Все сегодня говорят про TypeScript да TypeScript. А я про Cascade style script буду рассказывать.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии10

Кросскомпиляция выполняемых файлов Rust для Windows из Linux

Время на прочтение10 мин
Количество просмотров16K

Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием.


Основная OS у меня Linux, но иногда приходится собирать исполняемые файлы и для Windows. И естественно что перегружаться в Windows только для сборки exe не особо хочется. С языками C и C++ проблем нет, давно существует кросскомпилятор MinGW, который прекрасно с этим справляется. Про Python и Java даже упоминать не стоит, кроссплатформенность в них изначально. Но в прошлом году я решил попробовать такой пока что новомодный язык, как Rust. При сборке исполняемого файла при помощи включённого в дистрибутив Rust пакетного менеджера cargo вроде как достаточно задать ключ --target, при помощи которого указать результирующий процессор, архитектуру и ABI и при сборке из Linux в результате получить exe, который будет являться стандартным исполняемым файлом для Windows. Но пытаясь так сделать:


cargo build --target x86_64-pc-windows-gnu

я получил только сообщения об ошибках линкера:


error: linking with `gcc` failed: exit code: 1

[...]

  = note: /usr/bin/ld: unrecognized option '--nxcompat'
          /usr/bin/ld: use the --help option for usage information
          collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: could not compile `foobar`.

Если кому интересно как я это поборол и теперь спокойно могу кросскомпилировать программы на Rust для Windows, не покидая Linux, добро пожаловать под кат.

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

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

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

Мы полагаем, что разработчикам следует изучать исходники программ, оказавших большое влияние, подобно тому, как архитекторы изучают здания, оказавшие влияние на архитектуру (и критикуют их). Чем повторять те же ошибки снова и снова, мы должны изучить большую работу, проделанную до нас, и вынести из неё уроки.
Читать дальше →
Всего голосов 74: ↑69 и ↓5+64
Комментарии68

Экспорт Google Forms + загрузка Google Script через REST API (Python)

Время на прочтение13 мин
Количество просмотров17K


У нас было две гугл-формы, 75 вопросов в каждой, 5 бизнес-пользователей, которые активно правили эти формы, а еще гугл-скрипт, экспортирующий форму в JSON. Не то что бы его было сложно каждый раз запускать руками, но раз начал автоматизировать свою работу, то иди в этом увлечении до конца.

В официальной документации сам черт ногу сломит, поэтому под катом мы подробно рассмотрим удаленную загрузку и запуск Google Apps Script через REST API, используя Python.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии1
1

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность