Продолжаем рассматривать примеры использования цепной репликации. Базовые определения и архитектуры были даны в первой части, рекомендую ознакомиться с ней перед прочтением второй части.
Читать полностью »
Рубрика «Программирование» - 328
Как музыка и рисование научили меня программировать
2018-12-04 в 10:46, admin, рубрики: Блог компании Skillbox, искусство, обучение. skillbox, Программирование, Учебный процесс в IT
От переводчика: Сицзян Ян, программист из Нью-Йорка, рассказывает о том, как искусство помогает ему практиковаться в кодинге.
Программирование сродни искусству. При этом другие виды искусства, в частности, музыка и рисование, могут многому научить программиста. Я надеюсь, что они помогут вам так же, как помогли в свое время мне.
Читать полностью »
Байт-машина для форта (и не только) по-индейски
2018-12-03 в 15:35, admin, рубрики: ассемблер, байт-код, виртуализация, интерпретатор, компилятор, Компиляторы, Программирование, системное программирование, форт
Да-да, именно «байт» и именно по индейски (не по индийски). Начну по порядку. В последнее время тут, на Хабре, стали появляться статьи о байт-коде. А когда-то давным-давно я развлекался тем, что писал форт-системы. Конечно, на ассемблере. Они были 16-ти разрядными. На x86-64 никогда не программировал. Даже с 32 поиграться не удалось. Вот и пришла такая мысль — а почему бы нет? Почему бы не замутить 64х разрядный форт, да ещё с байт-кодом? Да еще и на Linux, где я тоже ничего системного не писал.
У меня есть домашний сервер с Linux. В общем, я немного погуглил и узнал, что ассемблер на Linux называется GAS, а команда as. Подключаюсь по SSH к серверу, набираю as — есть! Он у меня уже установлен. Ещё нужен компоновщик, набираю ld — есть! Вот так, и попробуем написать что-нибудь интересное на ассемблере. Без цивилизации, только лес, как у настоящих индейцев :) Без среды разработки, только командная строка и Midnight Commander. Редактор будет Nano, который висит у меня на F4 в mc. Как там поет группа «Ноль»? Настоящему индейцу нужно только одного… Что еще нужно настоящему индейцу? Конечно, отладчик. Набираем gdb — есть! Ну что же, нажмем Shift+F4, и вперед!
Читать полностью »
Настройка API Банка Тинькофф. Как у вас с интуицией….? Или песня о Oauth 2.0
2018-12-03 в 13:24, admin, рубрики: api, API Банк Тинькофф, API Тинькофф, CRM, CRM-системы, oauth 2.0, php, автоматизация платежей, Монетизация веб-сервисов, ПрограммированиеПару недель назад в одном из проектов возник вопрос об интеграции CRM с API Банка Тинькофф. В частности, речь шла о получении выписки по банковскому счету.
В активе имелось:
- openapi.tinkoff.ru
- Телефон службы поддержки (учитывая занятость отдела техподдержки — дело спасения утопающего, дело рук самого утопающего).
- Нагугленный документ: 24386_policy.pdf (с русским буквами внутри, с занятными выражениями, оборотами колдовскими, малопригодная но, все же вещь...)
В ходе гуглежа были также найдены отзывы о том, что настройка API банка Тинькофф дело весьма занимательное и нетривиальное (см. статью на banki.ru «API Тинькофф — мы слишком глупы для этого»).
Да, пришлось малость повозиться, поэтому, дабы сэкономить время другим товарищам по цеху, была написана данная статья.
Читать полностью »
К вопросу о параметрах драйвера в Linux, или как я провел выходные
2018-12-03 в 11:13, admin, рубрики: linux kernel, Программирование, Разработка под Linux«Мы ленивы и нелюбопытны»
На сей раз поводом к посту послужила статья в неплохом журнале, посвященном ОС Linux (далее по тексту Л), в которой привлеченный «эксперт» хвалил драйвер подключения ЖКИ к плате Raspbery. Поскольку подобные вещи (подключение, не ОС) входят в сферу моих профессиональных интересов, статью просмотрел с вниманием, потом нашел собственно текст «драйвера» и был слегка удивлен, что ЭТО можно хвалить. Ну, в общем то, уровень эксперта можно определить хотя бы потому, что он упорно именовал программу драйвером, несмотря на то, что она им никоим образом не является. Казалось бы, и фиг с ним, мало ли кто что пишет для себя, но выкладывать подобное в открытый доступ — «я и не знал, что так можно».
Особенно порадовало то обстоятельство, что адрес устройства на шине I2C напрямую задавался в тексте программы и для его изменения требовалась ее перекомпиляция (хорошо, что не всего ядра). Я, кстати, заметил, что на форумах, посвященных Л, наиболее популярный ответ на любой вопрос о проблемах в ПО, «пересобери последнюю версию ядра». Мне данный подход представляется несколько странным, наверное, я чего-то не знаю. Но, тем не менее, возник вопрос, а как в Л действительно реализуется (внутри, не снаружи — там все просто и понятно) параметризация драйвера, ответу на который и посвящен данный пост.
Читать полностью »
Если изобрести язык программирования 21 века
2018-12-03 в 11:12, admin, рубрики: c++, COBOL, fortran, haskell, java, javascript, kotlin, swift, Wirex, Блог компании Wirex, Программирование, языки программированияАвтор материала рассуждает о проблемах современных языков программирования и о том, какими путями можно исправить недостатки.
Только за последние 18 лет люди придумали множество языков, среди которых, вероятно, самыми популярными стали Swift, Kotlin и Go. При этом отличительная черта языка программирования 21 века — это отсутствие каких-либо отличительных черт. Самое приятное в работе с такими языками — за изучением одного из них можно провести выходные и под конец заявить, что вам удалось освоить популярную новинку, по факту же не узнав ничего нового. В них действительно нет ничего нового. Все современные языки созданы на основе какой-либо правильной и проверенной формулы, имя которой, вероятнее всего, Objective-C, Java или C.
«Отсутствие новизны» можно считать ценной чертой, но подобная ситуация вызывает один вопрос. Действительно ли перед нами языки нового, 21 века, или все это — просто отражение плохих привычек программирования 20 века?
Если бы я изобретал язык, я бы не старался исправить прошлое, а попытался бы создать нечто, что хорошо работало бы именно в условиях современности, но также было способно развиваться и выдерживать проверку временем. Если для этого требуются радикальные конструктивные решения, то так тому и быть.
Долой синтаксис!
Синтаксис современных языков отражает попытку втиснуть свободу мела и доски в оковы ASCII. Некоторые элементы записи, такие как арифметические знаки или скобки, воспринимаются более-менее естественно. Но ряд других обозначений оправдан разве что экономией усилий при нажатии кнопок телетайпа.Читать полностью »
PVS-Studio ROI: как не терять миллионы
2018-12-03 в 9:41, admin, рубрики: devops, DevTools, pvs-studio, бизнес-модели, Блог компании PVS-Studio, возврат инвестиций, инструменты для разработки, обсуждения, Программирование, Управление продуктом, управление разработкойВремя от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Я решил реализовать на сайте ROI-калькулятор и разместить подробное описание принципов его работы. Но прежде я решил вынести свои мысли и расчёты на обсуждение. Я надеюсь получить интересные и полезные комментарии, которые помогут сделать калькулятор как можно более достоверным и убедительным.
Вашему вниманию предлагается описание калькулятора, позволяющего рассчитать возврат инвестиций от использования в процессе разработки статического анализатора кода PVS-Studio.
Читать полностью »
Тактичный робот: умеет слушать и не перебивает
2018-12-03 в 9:12, admin, рубрики: asr, javascript, TTS, voximplant, Блог компании Voximplant, боты, голосовое взаимодействие, Программирование, Разработка веб-сайтов, разработка мобильных приложений, распознавание речиРаспознавание речи (далее – ASR, Automatic Speech Recognition) используется при создании ботов и/или IVR, а также для автоматизированных опросов. Voximplant использует ASR, предоставляемый «корпорацией добра» – гугловское распознавание работает быстро и с высокой точностью, но… Как всегда, есть один нюанс. Человек может делать паузы даже в коротких предложениях, при этом нам нужна гарантия, что ASR не воспримет паузу как окончание ответа. Если ASR думает, что человек закончил говорить, то после «ответа» сценарий может включить синтез голоса со следующим вопросом – в это же самое время человек продолжит говорить и получит плохой пользовательский опыт: бот/IVR перебивает человека. Сегодня мы расскажем, как с этим бороться, чтобы ваши пользователи не огорчались от общения с железными помощниками.
Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits
2018-12-03 в 7:27, admin, рубрики: commit, Git, Блог компании Яндекс, инструменты разработчика, Программирование, Разработка веб-сайтов, разработка мобильных приложений, разработка под windows
Привычный хаос в названиях коммитов. Знакомая картина?
Наверняка вы знаете git-flow. Это отличный набор соглашений по упорядочиванию работы с ветками в Git. Он хорошо документирован и широко распространен. Обычно мы знакомы с правильным ветвлением и много говорим об этом, но, к сожалению, уделяем слишком мало внимания вопросу наименования коммитов, поэтому часто сообщения в Git пишутся бессистемно.
Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.
Как создать сайт или приложение, учитывая пользователей с особенными потребностями
2018-12-02 в 14:00, admin, рубрики: адаптивная вёрстка, Блог компании Сбербанк, интерфейсы, приложения для слепых, Программирование, разработка для инвалидов, управление разработкойСоздавая цифровой контент, мы привыкли ориентироваться на среднестатистического пользователя. Таким образом игнорируется почти треть населения России — это люди с инвалидностью, пожилые люди, а также те, кто временно испытывает особенные потребности. В прошлом материале мы рассказывали о своем подходе к адаптации цифровых сервисов в Сбербанке.
В Международный день человека с инвалидностью мы решили поделиться с профессиональным сообществом руководством по цифровой доступности. В этой статье вы найдете, что важно знать менеджеру, дизайнеру и разработчику, проектируя доступный интерфейс.