Pull to refresh
71
0
Калдузов Алексей @raptor

.NET разработчик

Send message

«Молчание – золото»: 13 вещей, которые не стоит говорить разработчикам и тестировщикам

Reading time8 min
Views94K


/ фото Sistema Bibliotecario Vimercatese CC

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

Работа в команде – ответственное занятие, поскольку в этом случае люди отвечают не только за себя, но и за окружающих, они общаются, помогают друг другу. Как бы это ни было банально, ключом к продуктивному общению между людьми всегда является вежливость и взаимоуважение. Однако все же есть определенный список фраз, которые – даже когда они звучат вежливо и корректно – не стоит употреблять в разговоре с разработчиками и тестировщиками, если вы их коллега, заказчик, «владелец» или руководитель проекта.
Читать дальше →
Total votes 68: ↑58 and ↓10+48
Comments44

Климатическая система в квартире своими руками

Reading time21 min
Views107K
Кто-то в детстве мечтает изобрести лекарство от рака, кто-то — стать космонавтом или владельцем свечного заводика. А я мечтал о том, что у меня появится климатическая система, и в квартире, наконец, не будет душно, вечная простуда от сквозняков исчезнет, а горло перестанет першить от сухости. И теперь мечта исполнена!

Примерно с декабря 2015 по июнь 2016 года я читал форумы, катался по строительным магазинам, собирал систему в квартире и на балконе, паял контроллер и писал прошивку — и добился своего.

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

Схема установки
А если чуть подробнее, то...
Total votes 87: ↑84 and ↓3+81
Comments290

Умная компьютерная розетка на Arduino своими руками

Reading time11 min
Views47K

image


Предисловие


Умная розетка на Arduino, что может быть проще. Основной целью данного проекта было разработать розетки с беспроводным управлением, а также «автоматизировать» вход в Windows. Мотивирующая составляющая – разобраться, что такое RFID–метки и как с ними работать. В итоге было разработано два устройства – деблокиратор, который считывает карточки и собственно умная розетка, которая принимает сигнал «включиться» от деблокиратора. Если я Вас заинтересовал прошу к прочтению.

Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments51

5 способов быстро победить ступор программиста

Reading time6 min
Views67K
image

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

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

Преодолевать психологические ступоры всегда непросто, но стоит помнить о том, что у них обязательно есть первопричина. Отыскав ее, вы сможете двигаться к победе и успеху.

Давайте рассмотрим несколько наиболее распространенных причин кризисов программиста, и разберем, как с ними бороться.
Читать дальше →
Total votes 39: ↑27 and ↓12+15
Comments39

Раскрываем карты: почему НЕРА-фильтру в воздухоочистителе не нужна эффективность 99,95%

Reading time11 min
Views108K
Производители любят писать про высокую эффективность своих воздухоочистителей — 99,95% и выше. Пользователей впечатляют эти цифры, и большой ценник на такие приборы кажется оправданным. Так ли это? Физика говорит, что для очистителя-рециркулятора вполне достаточно эффективности 95%. Стоит такой очиститель меньше, при этом его реальная эффективность такая же. А все эти девятки после запятой — не более чем маркетинговый ход.



Узнать, в чем тут подвох
Total votes 38: ↑36 and ↓2+34
Comments71

Безумная термитная пушка для тех, кому мало бытового огнемёта (16+)

Reading time1 min
Views38K


Год назад на Indiegogo феерически прошёл сбор средств на производство портативного огнемёта, который бьёт на 8 метров. Отлично подходит для розжига костра и уничтожения паразитов (в смысле, насекомых).

Огнемёт уже поступил в продажу, и теперь у любителей фейерверков появился новый кумир. Британский инженер, изобретатель и блогер Колин Фёрз (Colin Furze) изготовил в своём сарае термитный гранатомёт в стиле стимпанк! Этот гаджет впечатляет ещё больше, чем огнемёт. «Пушка» стреляет снарядами с термитной смесью, сгорающей при температуре 2300-2700ºC.
Читать дальше →
Total votes 37: ↑22 and ↓15+7
Comments36

Как формируется финансовая оценка ИТ-стартапов: Метод McKinsey

Reading time9 min
Views6.7K


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

Предсказать поведение акций стартапов и, вообще, компаний, занимающихся высокими технологиями, на фондовом рынке достаточно трудно. Аналитики McKinsey&Company утверждают, что единственный адекватный способ оценки таких компаний – это так называемый метод DCF.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments1

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

Reading time11 min
Views128K
Если вы из тех, кто «работал ещё Там-То!» и «делал ещё То-То!», а сейчас счастливо отдыхаете на пенсии — эта статья не для вас. Просто спасибо за труд и примите мои поздравления. Но если же вы, как и я, даже став немного старше всё ещё ощущаете страсть к программированию, радуетесь виду кода и не можете устоять перед желанием написать ещё что-нибудь, тогда продолжайте читать.

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

Я смирился с мыслью, что мой лучший код уже написан — в прошлом. Мне было уже 54 года (немало!) и я, вероятно, уже не мог писать код так же хорошо, как и раньше. Кто знает — может быть у меня уже начала отказывать память, ну или я просто выучил всё, что был способен в жизни выучить. Мой настрой подкреплялся наблюдениями окружающей меня реальности. Все новые технологии выглядели для меня чудаковато. Я ненавидел Node.js. Я считал все фреймворки для веб-разработки ужасными. И я сетовал на то, что классические способы разработки ПО разрушились и превратились в набор клише, которые нынче впариваются под умными названиями типа Agile или «экстремальное программирование». Я скучал за днями, когда люди писали спецификацию на будущее ПО, программировали, а затем тщательно тестировали его. И когда в каждой статье не было тысячи жаргонных словечек.
Читать дальше →
Total votes 121: ↑117 and ↓4+113
Comments134

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

Reading time9 min
Views99K


Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments7

MajorDoMo 1.0

Reading time3 min
Views9.9K
Прошло около трёх лет с тех пор, как проект MajorDoMo впервые вышел в свет и вот, наконец, номер очередного релиза достиг значения “1.0”. Чем не повод для небольшой обзорной статьи о том, что у нас получилось и к чему мы стремимся?

image
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments8

Под капотом Redis: Хеш таблица (часть 1)

Reading time9 min
Views39K
Если вы знаете, почему после выполнения `hset mySey foo bar` мы потратим не менее 296 байт оперативной памяти, почему инженеры instagram не используют строковые ключи, зачем всегда стоит менять hash-max-ziplist-entries/hash-max-ziplist-val и почему тип данных, лежащий в основе hash это и часть list, sorted set, set — не читайте. Для остальных я попробую об этом рассказать. Понимание устройства и работы хеш таблиц в Redis критически важно при написания систем, где важна экономия памяти.

О чём эта статья — какие расходы несёт Redis на хранения самого ключа, что такое ziplist и dict, когда и для чего они используются, сколько занимают в памяти. Когда hash хранится в ziplist, когда в dicth и что нам это даёт. Какие советы из модных статей об оптимизации Redis не стоит воспринимать всерьёз и почему.
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments2

Под капотом Redis: Строки

Reading time9 min
Views31K
Если вы знаете, почему простая строка `strings` в Redis займёт в оперативной памяти 56 байт — вам, думаю, статья не будет интересна. Всем остальным я попробую рассказать, что такое строки в Redis и почему использующему эту базу данных разработчику важно понимать, как они устроены и работают. Это знание особенно важно, если вы пытаетесь рассчитать фактическое потребление памяти вашим приложением или планируете строить высоко нагруженные системы статистики или учёта данных. Или, как часто бывает, пытаетесь срочно понять, почему вдруг ваш экземпляр redis стал потреблять неожиданно много памяти.
Читать дальше →
Total votes 55: ↑54 and ↓1+53
Comments3

Защита in-App Purchase iOS от ломалок с помощю сервера

Reading time2 min
Views9.1K
Сегодня расскажу о том, как защитить in-app purchases в играх на мобильной платформе iOS с помощью собственного сервера. Практически все компании, которые выпускают свой продукт, заботятся о защищенности своих приложений и как можно больше пытаются защитить их от взлома. Одной из таких компаний является и та, в которой я работаю.
Читать дальше →
Total votes 14: ↑6 and ↓8-2
Comments4

14 книг, которые вдохновили Илона Маска

Reading time4 min
Views116K


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

Когда Маск жил в Южной Африке (все его детство прошло именно в ЮАР), над ним насмехались сверстники, и он убегал в мир фантастики и фэнтези. Любимые его книги этого жанра — Джон Толкин и Айзек Азимов. Сейчас Маск выделяет 14 книг, которые изменили его самого и всю его жизнь.
Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments10

У нас проблемы с промисами

Reading time16 min
Views236K
Разрешите представить вам перевод статьи Нолана Лоусона «У нас проблемы с промисами», одной из лучших по теме из тех, что мне доводилось читать.

У нас проблемы с промисами


Дорогие JavaScript разработчики, настал момент признать это — у нас проблемы с промисами.

Нет, не с самими промисами. Их реализация по спецификации A+ превосходна. Основная проблема, которая сама предстала передо мной за годы наблюдений за тем, как многие программисты борются с богатыми на промисы API, заключается в следующем:

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

Если вы мне не верите, решите такую задачку:

Вопрос: В чем разница между этими четырьмя вариантами использования промисов?

doSomething().then(function () {
  return doSomethingElse();
});

doSomething().then(function () {
  doSomethingElse();
});

doSomething().then(doSomethingElse());

doSomething().then(doSomethingElse);

Узнайте решение задачи
Total votes 139: ↑136 and ↓3+133
Comments121

Гексагональная архитектура

Reading time31 min
Views167K
На недавнем Laracon NYC я читал доклад о гексагональной архитектуре. Несмотря на то, что я получил позитивную реакцию слушателей, мне кажется, что остались люди, которые хотели бы получить чуть более полное представление о том, что это такое. Разумеется, с примерами. Это моя попытка расширить тот доклад.

  1. Видео с доклада
  2. Слайды


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



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



Гексагональная архитектура, ни в коем случае не новый подход к разработке с применением фреймворков. Напротив, это всего лишь обобщение «лучших практик» — практик новых и старых. Я обернул эти слова в кавычки, чтобы люди не воспринимали их совсем буквально. Лучшие практики, которые работают для меня, могут не работать для вас — все зависит от задачи и преследуемых целей.



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


Читать дальше →
Total votes 20: ↑16 and ↓4+12
Comments16

Часы-будильник в стиле «Назад в будущее»

Reading time2 min
Views17K


То самое 21 октября 2015 года уже, наверное, успело набить всем оскомину, столько раз о нем писали (да и пишут сейчас). Но я не буду заново перечислять успехи и достижения науки и техники нашего времени, сравнивая все это с предсказаниями, сделанными в фильме.

Давайте лучше глянем, как сделать часы-будильник, очень похожие на то, что мы видели в машине времени героев фильма. Выглядеть все это будет так, как показано на аносной фотографии. При желании это чудо техники можно установить в собственном автомобиле (правда, сделать это будет непросто, да). Да, в продолжении — много тяжелых фотографий, так что будьте осторожны, если трафик у вас дорогой.
Читать дальше →
Total votes 34: ↑25 and ↓9+16
Comments6

Заметка о калибровке датчиков положения в домашних условиях

Reading time10 min
Views23K
Для некоторых датчиков ускорения требуется дополнительная калибровка нуля после монтажа на плату. Когда я увидел несколько исходников с калибровкой датчиков ускорения, где составляющая G учитывалась просто путём вычитания из оси Z величины = 9,8 м/с2 — появилась идея написать данную заметку.


Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments22

Печатаем картинки с помощью Arduino

Reading time9 min
Views51K


Очень давно хотелось сделать какой-нибудь проект на Arduino, да такой, чтобы всё в нём двигалось и работало. И, спустя пару месяцев проектирования, программирования и сборки получился вот такой мини-принтер, с помощью которого можно печатать разнообразные картинки и текст на самых обычных стикерах. Если после просмотра видео Вы загорелись необъятным желанием сделать нечто подобное — прошу под кат.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments17

Information

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