Pull to refresh
50
-2
Тимофей Казанцев @Levitanus

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

Send message

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

Level of difficultyEasy
Reading time8 min
Views3.3K

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

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

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

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

Reading time19 min
Views11K

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

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

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

НУЦ сурка

Reading time6 min
Views21K

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

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

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

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

Читать далее
Total votes 115: ↑102 and ↓13+89
Comments56

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

Reading time2 min
Views14K

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

Читать далее
Total votes 41: ↑40 and ↓1+39
Comments35

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

Reading time11 min
Views62K

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

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

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

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

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

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

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

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

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

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

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

Reading time60 min
Views29K

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

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

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

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

Reading time5 min
Views25K

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

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

Reading time14 min
Views18K

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

CyberPanda Team

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

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

Reading time6 min
Views15K
Оглавление
  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) стали просто рутиной.


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

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

Reading time15 min
Views125K

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


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

Хакнуть свой мозг
Total votes 210: ↑188 and ↓22+166
Comments638

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

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

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

image
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments132

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

Reading time9 min
Views8.8K
Привет, Хабр!

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


Приятного чтения!
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments9

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

Reading time9 min
Views6.6K
image

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

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

Reading time9 min
Views27K


Идея


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


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


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

Total votes 135: ↑134 and ↓1+133
Comments60

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

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

Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments45

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

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


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

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

Reading time10 min
Views16K

Наверное не будет уж очень удивительным если я тут, на 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, добро пожаловать под кат.

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

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

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

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

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

Reading time13 min
Views16K


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

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

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity