Pull to refresh
17
@Elektron1read⁠-⁠only

User

Send message

Разработка приложений для платёжных терминалов Ingenico

Level of difficultyHard
Reading time35 min
Views17K
Приветствую всех!

Скажите: интересовались ли вы хоть раз тем, как устроены и работают банковские платёжные терминалы, к которым вы прикладываете свою карту едва ли не ежедневно? Хотели ли вы узнать, как написать что-то своё под какое-нибудь из данных устройств?

Если ваш ответ — «Да», то этот пост определённо для вас.



Обычно тема программирования POS-terminal'ов покрыта завесой тайны, но сейчас мы постараемся её развеять. В ходе данной статьи разберёмся с азами разработки под такие девайсы. Узнаем, где скачать нужный софт, как его установить, а также, собственно, как скомпилировать и запустить нашу первую программу. Традиционно будет много интересного.
Читать дальше →
Total votes 85: ↑85 and ↓0+85
Comments51

Fly me to the moon. Маргарет Гамильтон

Level of difficultyEasy
Reading time6 min
Views8.8K
image

20 июля 1969 года, в 20:17:39 по Гринвичу, лунный модуль миссии «Аполлон-11» совершил первую в истории человечества пилотируемую посадку на другое небесное тело. Событие огромной значимости, как в плане науки, так и в плане идеологическом, стало возможным благодаря самоотверженной работе сотен людей — техников, контролёров, специалистов по связи. И, конечно, программистов. Знаете поговорку: «За каждым великим мужчиной стоит женщина»? Так вот, в случае Нила Армстронга, Базза Олдрина и Майкла Коллинза, это на 100% правда, хотя и женщина была одна на троих. И имя ей — Маргарет Гамильтон, госпожа программного кода НАСА.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments15

Реверс-инжиниринг нестандартной ps/2 клавиатуры

Reading time7 min
Views8.8K

Терминал VT520 c клавиатурой LK46W-A2

После моего предыдущего поста с подключением советской клавиатуры к современному ПК, я как-то заразился оригинальными клавиатурами от DEC, и уж больно хотелось их испытать в деле. И на удивление, на досках удалось найти даже клавиатуру LK201, однако для меня показалась не очень уж интересной. А вот клавиатуру Wyse 85 со свичами Cherry MX нашёл намного более стильной и крутой. Однако смущал вопрос, как же её использовать с современным железом, удобно ли будет такое расположение клавиш?

И тут мне на глаза попадается объявление с ещё одной терминальной клавиатурой LK46W-A2 которую можно подключить к обычному компьютеру по стандартному интерфейсу PS/2, но с количеством клавиш и расположением, как у LK201 с небольшими дополнениями. После того как ознакомился с информацией, принял волевое решение купить кота в мешке и попробовать эту клавиатуру с обычным ПК, а также понять, что же делают все остальные «нестандартные клавиши». Этакий реверс-инжиниринг клавиатуры.
Читать дальше →
Total votes 94: ↑93 and ↓1+92
Comments29

Строки кода, которые изменили мир

Reading time13 min
Views51K
image

{"__typename":"PageLikeAction","action_type":"LIKE","label":{"text":"Like"}


В 2009 году Facebook добавила в интерфейс своей социальной сети код, изменивший мир — кнопку «Like». «Лайк» был детищем нескольких программистов и дизайнеров — Лии Перлман и Джастина Розенштейна. Они предположили, что пользователи Facebook часто бывают слишком заняты, чтобы оставлять комментарии к постам своих друзей, и что поэтому им нужна простая кнопка, нажав которую можно было бы дать понять друзьям, что их пост вам понравился. Так оценивать и поощрять друг друга пользователям стало бы легче, а значит и делали бы они это чаще.

Это сработало — и даже слишком хорошо. К 2012 году пользователи прожали «лайк» триллион раз. У этого оказались и побочные эффекты. Многие стали публиковать фото/видео, чтобы потом сидеть и с тревогой обновлять страницу, ожидая, когда же число лайков возрастёт. Все стали гадать, почему кто-то другой получает больше лайков. Люди подсели на иглу одобрения (вместо того, чтобы сесть на чьё-то лицо), что отразилось на их повседневной онлайн-активности: старались публиковать как можно больше постов, чтобы казаться смешнее, умнее, красивее, спортивнее.

Небольшой фрагмент кода, который внёс почти незаметное изменение в пользовательский интерфейс социальной сети, изменил поведение людей. Ниже представлен список из примеров подобных важных фрагментов кода, которые изменили мир. И на самом деле это неполный список, учитывая огромное количество кода, который был написан.
Читать дальше →
Total votes 91: ↑80 and ↓11+69
Comments37

Бизнес-класс за приемлемые деньги: Nokia E63 с QWERTY клавиатурой за 200 российских рублей

Reading time9 min
Views11K
К телефонам с полноразмерной QWERTY клавиатурой у Nokia было всегда особое отношение: даже в бюджетном сегменте у них встречались телефоны с полноценной клавиатурой и пользовались немалым спросом. Но Nokia в своё время отметилась интересными устройствами из E серии, некоторые из которых были смартфонами на Symbian. Интересно? Тогда встречаем сегодняшнего гостя — Nokia E63!

image
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments15

Чему можно научиться у 1600 инди-разработчиков в Steam, которые заработали больше $100К

Reading time6 min
Views6.9K


Только 10% разработчиков в Steam заработали больше $100 000 валового (т.е. без учета издержек) дохода. Автор оригинала этой статьи попробовал по открытым данным сравнить, что делали успешные разработчики, чего не делали все остальные.

Если совсем коротко, то

  1. Делали и публиковали игры. Много. Успешные инди-разработчики в среднем уже опубликовали 4-5 игр. Неуспешных игр.
  2. Искали паблишера, а сами фокусировались на разработке.
  3. Выбирали узкую специализацию, в которой реализовывали п. 1.
  4. Учитывали предпочтения и жанры, которые нравятся игрокам.

Вот так просто. Под катом больше подробностей и статистики.

Я веду канал в Telegram GameDEVils и блог на Substack . Подписывайтесь, я делюсь там материалами про геймдизайн, разработку и историю игр.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments0

Блокирующая обработка тактовой кнопки для Arduino. Настолько полный гайд, что ты устанешь его читать

Reading time31 min
Views20K
image

В одной из своих прошлых статей я писал про подключение тактовой тактильной кнопки. И, казалось бы, такой простой вопрос, вызвал «бурю» в комментариях. Публика разделилась на два лагеря: на тех, кто все знает, но обычно молчит; и тех, кто не знает, и стесняется спросить. А я так и не понял, к какому лагерю отношусь!

Поиски в интернете по запросу «программирование кнопки для Arduino» выдает весьма противоречивый контент. Где-то код очень крутой, но из-за скудного описания не понятный. А где-то код очень простой, и от того не понятно, что с ним можно делать.

В общем, так бывает достаточно часто, когда простые (может даже и примитивные) задачи на просторах интернетов освещены поверхностно. И это вполне закономерно. Те, кто только начинает что-то изучать, с радостью делятся новыми знаниями. Кем-то движет гордость за свои достижения, а у кого-то просто язык чешется. Но как только человек поднаторел в вопросе, груз профессионализма не позволяет ему писать про такие мелочи. Или нет на это свободного времени, или приходит чувство самодостаточности.

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

Дисклеймер. Текст рассчитан на публику, которая только начинает познавать азы программирования контроллеров Arduino. Запрещено к просмотру людям с ослабленной психикой или психикой с долголетней инженерной выдержкой и беременным женщинам (это так, на всякий случай, а то мало ли… британские ученые пока до исследований на эту тему не добрались). Материал предназначен исключительно для просмотра лицам, не достигшим 21 года.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments55

День шутера. Краткая ретроспектива

Reading time10 min
Views6.5K
image

Сегодня 30 ноября. Эта дата считается (предположительно) днём рождения жанра FPS — First Person Shooter, то есть, шутер от первого лица («вид из глаз»), где окружающий мир, как правило, настроен враждебно (как «жестокая голактика»), а главным способом взаимодействия с ним выступает бескомпромиссное (в большинстве случаев) насилие. Да, приходится много стрелять, очень много. Это, в общем-то, база (основа). Да, шагая в ногу с прогрессом, разработчики пытаются привнести разного креатива, такого как кинематографический сюжет в духе Голливудских блокбастеров, элементы RPG и QTE, а также превращая шутер в какой-нибудь симулятор тотальной и фотореалистичной войны, с максимально-возможным погружением от первого лица. Всё это — попытка освежить FPS, привнести что-то этакое, ведь, давайте будем честны, люди — создания капризные, и им постоянно нужно что-то новое. Но общая концепция остается неизменной.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments13

Lavritech V7.1 Lite: программирование Wiren Board блоков на DIN-рейку

Reading time8 min
Views3.8K


В прошлой статье мы рассмотрели программирование микроконтроллера ESP32, распаянных на материнской плате Lavritech V7.1 Lite компонентов (Ethernet интерфейса, LoRa модуля и т. д.) и внутренних подключаемых модулей, в этой статье мы разберём программирование внешних Wiren Board блоков на DIN-рейку.

В ассортименте Wiren Board имеется огромное количество таких блоков на все случае жизни и изначально они рассчитаны на работу с «родными» Wiren Board контроллерами, хотя ничто не мешает использовать их и в связке с каким-то другим контроллером.

До появления Lavritech V7.1 Lite не существовало сторонних решений прямо рассчитанных на подключение и использование Wiren Board блоков, но теперь мы можем пользоваться всем этим богатством в своих проектах на ESP32.

Осталось только разобраться как программировать Wiren Board блоки отдельно от Wiren Board контроллеров…
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments9

Какую модель памяти следует использовать в языке Rust?

Reading time10 min
Views9.2K
image

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

Эта дискуссия ведется с позиций принятой в Rust безбоязненной конкурентности. Затравкой для нее послужили различные обсуждения, которые я наблюдал и в которых сам участвовал, работая над этой серией статей. Разумеется, мнения у разных членов сообщества тоже разнятся, люди могут обоснованно отстаивать разные варианты решений. Те, кто меня знают, понимают, что эти точки зрения серьезно расходятся с моей. Однако, моя точка зрения продиктована тем, что я давно работаю в условиях максимально возможной производительности, масштабируемости, молниеносного отклика, энергоэффективности, устойчивости и многого другого. В таких условиях определенная перестраховка – выбор не только мудрый, но и жизненно необходимый. В авиации есть примета, что есть пилоты отважные, а есть старые, но отважные пилоты до старости не доживают.

Тем не менее, я рассчитываю, что мой более чем тридцатилетний опыт работы с конкурентностью и моя работа над моделью памяти в C/C++ (безотносительно memory_order_consume), а также моя роль ведущего специалиста по поддержке модели памяти ядра (LKMM) послужат хорошей отправной точкой, чтобы высказаться о более прозаических задачах, решение которых, я уверен, стремятся поддержать в сообществе Rust.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments3

Правка чужого кода

Reading time6 min
Views17K
Всегда приятно, когда удаётся сделать мир чуточку лучше.


Для одного проекта мне понадобился просмотрщик памяти в DOS. В идеале хотелось бы иметь редактор памяти, чтобы в нём был поиск по ключевым словам, перемещение к заданному адресу. Но для старта мне было бы достаточно хотя бы возможность просмотра всего мегабайта доступной «нижней» памяти.

Старожилы знают, что в комплекте с различными версиями ДОС шли дополнительные утилиты, и среди них была «замечательная» утилита debug, которая убога чуть более, чем полностью. Ещё во времена моей молодости эта утилита вызывала у меня самые противоречивые чувства, то сейчас и подавно. Пользоваться ей без успокоительных очень сложно, с другой стороны, хорошо, что она есть. Но мне возможностей и удобства этой утилиты не хватало, поэтому пришлось искать другой подходящий инструмент. После длительного гугления наткнулся на исходники утилиты RAM View.

К сожалению, исполняемого файла найти не удалось, только исходные коды под Borland C++ 3.1, и как впоследствии оказалось, сама программа содержала ошибки.

Всё это вылилось в интересный квест по поиску старого компилятора, исправления ошибок в программе 25-летней давности и создания запроса на слияние.
Читать дальше →
Total votes 91: ↑90 and ↓1+89
Comments48

Модулятор солнечного света для пассивной передачи данных как альтернатива WiFi

Reading time7 min
Views4.9K
image

Технологии беспроводной связи обычно основаны либо на радиочастотной связи, которая в основном страдает от перегруженности полосы частот, либо на оптической связи, для которой требуются энергоемкие активные источники света, такие как лазеры и светоизлучающие диоды. Принимая во внимание, что значительное количество солнечного света остаётся неиспользованным и в основном используется для целей освещения, будет оптимально использовать свет для передачи данных, предлагая дополнительное решение для беспроводной связи. Таким образом, это обеспечит нелицензируемый широкий оптический диапазон, включая видимый и инфракрасный диапазоны. Такая связь позволила бы избежать помех между сигналом линии связи в видимом свете (Visible Light Communication, VLC) и фоновым светом, то есть солнечным светом. Его можно использовать для приложений Интернета вещей (IoT), особенно в помещениях, где требуется низкая скорость передачи данных и низкое энергопотребление. Однако этот свет излучается неконтролируемым источником, Солнцем, что затрудняет управление им. Технологии переключаемых стекол, которые можно встраивать в поверхности, например окна, для модуляции входящего света, могут стать решением такой проблемы.



Исследователи KAUST (King Abdullah University of Science and Technology) Саудовской Аравии разработали «умное окно», интеллектуальную стеклянную систему, которая может модулировать проходящий через неё солнечный свет, кодируя данные и передавая их устройствам в комнате. Использование солнечного света для отправки данных обеспечит более экологичный способ связи по сравнению с обычным Wi-Fi или передачей данных по сотовой связи.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments6

Information

Rating
Does not participate
Registered
Activity