Pull to refresh
5

Пользователь

1
Subscribers
Send message

Система типов — лучший друг программиста

Reading time8 min
Reach and readers33K

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →

Сравнительный анализ Agisoft Metashape Pro и OpenDroneMap

Reading time9 min
Reach and readers14K

В данной статье мы ознакомимся с функционалом Аgisoft Metashape Pro и сравним качество построения 3D моделей с OpenDroneMap.

Читать далее

Сделайте ваши QR-коды более красивыми

Reading time3 min
Reach and readers101K
imageГамильтон Чан является генеральным директором и основателем Paperlinks.
Используя свободное приложение для iPhone от Paperlinks, рекомендованное Apple как одно из самых нужных и важных приложений, пользователи могут сканировать и просматривать содержимое QR-кодов. Paperlinks также обеспечивает мощную платформу для создания QR-кодов, хранения и отслеживания их посещаемости.

Читать дальше →

Алгоритм генерации QR-кода

Reading time18 min
Reach and readers243K


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

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

За основу этой статьи взят цикл статей «QR Code Demystified» Джейсона Брауна (Jason Brown). В этих статьях опущено много нюансов, что вызвало у меня некоторые проблемы. Все эти нюансы учтены и упомянуты здесь.

Читать дальше →

Безопасность домохозяйки

Reading time20 min
Reach and readers11K

Лет 15 назад, когда интернет выдавался по карточкам и измерялся в часах для нас было обыденным делом ходить в гости за играми, книгами и фильмами. У многих был один единственный диск, обязательно разбитый на c: и d:

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

Как бы полное доверие, ведь так? Никто не копировал файлы cookies или переписку icq и пр. Да и секретов тогда ещё не было. Всё это выглядит так, словно наши жесткие диски – большие флешки. А так и есть! Подобно флешке ты можешь забыть или потерять свои винчестер/телефон/ноутбук.

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

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

Думаю дальнейший мой текст для большинства людей из IT (и не только) не является актуальным, но кому-то будет полезным, я надеюсь

Читать далее

Интересные факты про некоторые старые игровые картриджи

Reading time6 min
Reach and readers28K

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

Читать далее

Карта гулябельности Санкт-Петербурга

Reading time10 min
Reach and readers41K

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

Читать далее

Почему HeadHunter это Tinder

Reading time11 min
Reach and readers31K

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

Cервис для поиска работы это не место для романтических знакомств и речь в статье не о том, как завести оношения с HR. Последние две недели я искал работу и мне иногда казалось, что я сижу в Tinder. Не вьетнамские флешбеки, но похожие ощущения, что и 2-3 года назад, когда я пользовался сервисом онлайн знакомств.

И сейчас, когда мой поиск работы завершен, я решил поддаться рефлексии. Так что же общего у ворона и письменного стола HeadHunter и Tinder? Что похожего мы делаем, когда ищем работу или вторую половинку? Давайте по порядку.

Читать далее

Печать и воспроизведение звука на бумаге

Reading time3 min
Reach and readers105K
Можно ли закодировать звук в виде изображения, которое считывается камерой и проигрывается в реальном времени?

На ум сразу приходит QR-код или некие его аналоги. В такой код можно записать ссылку на mp3, или даже совсем маленький звуковой файл. Но в первом случае требуется выход в сеть, а во втором — большая плотность кода и повышенные требования к качеству изображения. Кроме того, ни тот ни другой способ не обеспечит мгновенное воспроизведение.

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


Читать дальше →

Как сделать 240 килобайт исходников на ПЛК для управления одними рольставнями

Reading time49 min
Reach and readers8K

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

Читать далее

Безопасность ПЛК: 1) Модульность программы

Reading time3 min
Reach and readers5.8K

Разделите код на модули, рационально используйте программные организационные единицы. Тестируйте модули независимо.

Разбираем рекомендации по безопасному программироваю ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

Читать далее

Демистификация принципов квантовых вычислений

Reading time11 min
Reach and readers25K

«Думаю, я смело могу сказать, что квантовую механику никто не понимает», — Ричард Фейнман


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

Что вам надо знать, прежде чем вы рискнёте отбеливать зубы

Reading time10 min
Reach and readers71K

На самом деле, почти никому не надо отбеливать зубы.

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

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

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

Читать далее

10 советов схемотехнику

Reading time20 min
Reach and readers144K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Reach and readers723K
Всем привет!

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


Читать дальше →

Вирус и антибиотики: нежный ликбез для паникующих

Reading time12 min
Reach and readers115K

Эта няшка — пушистый мимивирус с размером кода 2,5 Мегабазы (бит четвертичной системы)

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

Ликбез мы подготовили вместе с инфекционистом Викторией Валиковой, руководящей клиниками в Гватемале и Никарагуа. Естественно, он полон грубых упрощений.

Кто такие вирусы?


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

  1. Переработкой клеток на свои копии.
  2. Путешествиями в поиске новых клеток.

Про «форму жизни» есть холивар, потому что вирион (транспортное состояние вируса, частица без клетки) — это просто кусок кода ДНК или РНК + оболочки + некий аналог порта-коннектора. В этом состоянии вирус почти ничем не напоминает жизнь, а, скорее, похож на набор инструкций. И ведёт себя именно, как распечатка инструкций: пока не найдётся кто-то, кто их выполнит, они неактивны.

Если инструкция говорит вам, как использовать ксерокс, чтобы самоскопироваться, можно ли считать её живой?
Читать дальше →

Как не оконфузиться при выборе автоматического выключателя

Reading time10 min
Reach and readers240K

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

Читать далее

25 микрочипов, потрясших мир

Reading time23 min
Reach and readers54K
image

В разработке микрочипов, как и в жизни, мелочи иногда складываются в значительные явления. Выдумайте хитрую микросхему, создайте её из полоски кремния, и ваше маленькое создание может привести к технологической революции. Так произошло с микропроцессором Intel 8088. И с Mostek MK4096 4-килобитной DRAM. И с Texas Instruments TMS32010 цифровым процессором сигналов.

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

Мы подготовили список из 25 ИС, заслуживающих, по нашему мнению, почётное место на каминной полке дома, который построили Джек Килби и Роберт Нойс [изобретатели интегральной схемы – прим. перев.]. Некоторые из них превратились в долгоиграющую икону поклонения любителей чипов: к примеру, таймер Signetics 555. Другие, например, операционный усилитель Fairchild 741, стали азбучными примерами схем. Некоторые, к примеру, микроконтроллеры PIC от Microchip Technology, продавались миллиардами, и до сих пор продаются. Несколько особых чипов, таких, как флэш-память от Toshiba, создали новые рынки. А по меньшей мере один стал символом гиков в поп-культуре. Вопрос: на каком процессоре работает Бендер, алкоголик, курильщик и достойный порицания робот из «Футурамы»? Ответ: MOS Technology 6502.
Читать дальше →

Как убедиться, что перед вами инженер

Reading time4 min
Reach and readers23K
Нынче инженером быть так модно, что к их числу себя причисляет кто попало. Слово «инженер» почти потеряло конкретный смысл. Если вы знаете кого-то, кто, по-вашему, инженером лишь притворяется — покажите им этот тест, чтобы вывести их на чистую воду.

Тест на инженера


Вы входите в комнату, и видите, что картина висит неровно. Вы…
  1. поправляете картину;
  2. спокойно проходите мимо;
  3. покупаете САПР и проводите следующие полгода за разработкой самовыравнивающейся картинной рамки, питающейся солнечной энергией. Всё это время вы проклинаете того придурка, который догадался вешать картины на обычные гвозди. Только индус мог бы удовлетвориться таким костылём!

Настоящий инженер не выберет ни один из этих вариантов. Он впишет на полях теста «правильное решение в каждом конкретном случае будет зависеть от обстоятельств, не приведённых в условии» (см. ниже про риск), а вслух он при этом пробурчит: «и кому только пришло в голову, что картинам обязательно висеть прямо? этим чудикам из отдела маркетинга?» (см. ниже про эстетику).
Читать дальше →

Трасси… что? Доклад Яндекса

Reading time15 min
Reach and readers15K
Отладка приложения занимает бо́льшую часть нашего времени. Кто-то пользуется DevTools, кто-то обходится обычным console.log, кто-то использует профайлеры. Зачастую этих инструментов более чем достаточно. Но есть еще один, не такой известный и популярный в JavaScript-мире. О нем я и рассказал в докладе.

— Всем привет! Надеюсь, вы бодры, веселы, перекусили, заварили себе кофейку, потому что сейчас будет очень интересная и при этом доступная тема: «Трасси… что?». Правильнее было бы называть доклад «Трасси… что-о-о?!», но не будем так.
1
23 ...

Information

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