Pull to refresh
0
0
Тимур Мякинин @Funya

Архитектор

Send message

HTTP SMS API vs SMPP API

Reading time10 min
Views1.6K

HTTP SMS API и SMPP API — популярные инструменты среди разработчиков, которым нужен качественный и высокопроизводительный SMS API. Их используют, чтобы встроить в свои приложения передачу текстовых сообщений. В статье Михаил Абрамов, технический писатель МТС Exolve, расскажет про оба варианта и сравнит их.

Читать далее
Total votes 6: ↑4 and ↓2+4
Comments1

Humane API REST Protocol

Reading time22 min
Views6.3K

Здравствуйте, меня зовут Дмитрий Карловский и я… как скульптор, отрезаю всё лишнее, чтобы оставить лишь самую мякотку, которая в наиболее лаконичной и практичной форме решает широкий круг задач. Вот лишь несколько спроектированных мною вещей:


  • MarkedText — стройный легковесный язык разметки текста (убийца MarkDown).
  • Tree — структурированный формат представления данных (убийца JSON и XML).

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


HARP OData GraphQL
Architecture ✅REST ✅REST ❌RPC
Common uri query string compatible ⭕Back ✅Full
Single line query
Pseudo-static compatible ⭕Back ⭕Partial
Same model of request and response
File name compatible
Web Tools Friendly
Data filtering ⭕Unspec
Data sorting ⭕Unspec
Data slicing ⭕Unspec
Data aggregation ⭕Unspec
Deep fetch
Limited logic
Metadata query
Idempotent requests ✅Full ⭕Partial ❌Undef
Normalized response
Читать дальше →
Total votes 20: ↑9 and ↓11-1
Comments25

Микросервисы, API и инновации: вся сила API

Reading time9 min
Views11K
Привет всем!



Сегодня мы хотели предложить вам перевод программной статьи небезызвестного Майка Амундсена, ведущего архитектора из API Academy. В этом сравнительно небольшом тексте Майк толково рассказывает, зачем требуется уделять особое внимание разработке API, и как API делаются правильно.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments1

Blockchain-интеграция: возможности API и веб-сервисов для безопасных биткоин транзакций

Reading time61 min
Views3.3K

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

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

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

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

Читать далее
Total votes 3: ↑1 and ↓2+1
Comments0

Какие бывают RFID протоколы и как их похекать с помощью Flipper Zero

Reading time12 min
Views141K
Flipper Zero RFID

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19]

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

  • Низкочастотные (Low Frequency: 125 кГц) — имеют большую дальность чтения. Небезопасные и тупые. Используются в примитивных системах контроля доступа: домофонах, офисных пропусках, абонементах в спортзал.
  • Высокочастотные (High Frequency: 13,56 МГц) — имеют меньшую дальность работы по сравнению с низкочастотными, и могут иметь сложные протоколы, средства шифрования, аутентификации, криптографии. Используются в бесконтактных банковских картах, проездных билетах, безопасных пропусках.

В статье мы сравним два основных типа RFID меток, разберем основные протоколы и научимся с ними работать с помощью Flipper Zero — читать, эмулировать, сохранять, перезаписывать. Я покажу как сохранить во Флиппер RFID-ключи от домофона, офиса, спортзала, и что Флиппер может прочитать из банковской карты.

Total votes 86: ↑86 and ↓0+86
Comments65

Апи версионирование по-взрослому

Level of difficultyMedium
Reading time8 min
Views7.2K

Мы все любим пробовать новые инструменты, но ненавидим их поддерживать и обновлять. Это касается всего: операционных систем, приложений, API, пакетов Linux. Больно, когда наш код перестает работать из-за обновления, и вдвойне больно, когда обновление было инициировано не нами.

В разработке API вы рискуете сломать код ваших пользователей с каждым новым обновлением. Если API -- ваш основной продукт, то обновления будут ещё более пугающими.

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

Я расскажу на нашем примере, насколько глубока кроличья нора и как сильно можно упороться на пути к идеальному версионированию.

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments37

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

Level of difficultyMedium
Reading time15 min
Views81K

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее
Total votes 62: ↑60 and ↓2+76
Comments148

[Пятничное] Теория Жоп

Reading time5 min
Views230K

Эту полу-шуточную теорию о проектном управлении я излагал коллегам по ИТ цеху лет 15 назад, и тогда же неоднократно слышал советы загрузить этот текст на Хабр, но руки не дошли. На днях, разгребая старые файлы наткнулся на свои записи и решил все таки поделиться ими с Вами. Частое употребление ключевого слова к сожалению, неизбежно и не отделимо для целостности этого текста, прошу принимать или нет 'as is'. Итак...

Каждая карьера развивается от Жопы к Жопе, и никак иначе. Хочешь повышения - ищи Жопу и принимай, как говорят в Америке, "challenge". Если Вам предлагают возглавить новый проект, либо занять какую то должность, да что угодно - знайте, там Вас ждет Жопа. Иначе не предложили бы, а сами бы справились. Равно как и если Вы ожидаете избавиться от надоевшей Вам сейчас деятельности, надеясь вырваться из "этого ада" и заняться "чем то новеньким" - будьте готовы встретиться с Большой Жопой.

Читать далее
Total votes 399: ↑388 and ↓11+473
Comments107

Каково оно учить JavaScript в 2016

Reading time10 min
Views349K


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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →
Total votes 260: ↑238 and ↓22+216
Comments298

Лог файлы Linux по порядку

Reading time6 min
Views492K

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




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

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments28

SwiftUI по полочкам: Анимация. Часть 1

Reading time27 min
Views16K
image

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

image

Я с интересом изучил их код, но испытал некоторое разочарование. Нет, не в том смысле, что они что-то сделали неправильно, вовсе нет. Просто я не узнал из их кода практически ничего нового. Их реализация, это скорее про Combine, нежели про анимацию. И я решил построить свой лунопарк написать свою статью об анимации в SwiftUI, реализовав примерно тот же концепт, но используя на 100% возможности встроенной анимации, даже если это не совсем эффективно. Изучать — так до конца. Экспериментировать — так с огоньком:)

Вот что получилось у меня:


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

В этой статье же, я расскажу об основах, без понимания которых можно легко запутаться в более сложных примерах. Многое из того, о чем я буду говорить, в том или ином виде уже было рассказано в англоязычных статьях например этой серии (1, 2, 3, 4). Я же, сосредоточился не столько на перечислении способов работы, сколько на описании того, как именно это работает. И как всегда, я много экспериментировал, так что самыми интересными результатами спешу поделиться.

warning: под катом много картинок и gif-анимаций.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments9

Безопасность в веб-разработке: чек-лист

Reading time5 min
Views20K
Светлана Шаповалова, редактор «Нетологии», адаптировала статью Michael O'Brien, в которой он составил чек-лист для веб-разработчиков, предпочитающих разрабатывать не только удобные, но и безопасные приложения.

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

Если вы уже заразились идеей «минимально жизнеспособного продукта» (англ. MVP — minimum viable product, прим. перев.) и считаете, что за месяц можно создать одновременно полезный и безопасный продукт — подумайте дважды, прежде чем выпускать его. Просмотрев чек-лист, вы поймете, что оставляете немало уязвимостей.


Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments7

Как организовать отправку push-уведомлений на айфон

Reading time5 min
Views21K
В Surfingbird мы используем пуш-уведомления, чтобы сообщать нашим пользователям срочные новости и просто информировать их об интересных материалах за день. Уже в первые недели тестов пуши показали свою огромную эффективность в плане увлечения ретеншена. Этому есть логичное объяснение – телефон у пользователя всегда с собой, в метро, в туалете, на совещаниях и т. д. Когда юзеру приходит пуш, все его внимание концентрируется на этом уведомлении.

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

image
Читать дальше →
Total votes 39: ↑28 and ↓11+17
Comments15

Знай сложности алгоритмов

Reading time2 min
Views1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

Практические советы, примеры и туннели SSH

Reading time13 min
Views226K

Практические примеры SSH, которые выведут на новый уровень ваши навыки удалённого системного администратора. Команды и советы помогут не только использовать SSH, но и более грамотно перемещаться по сети.

Знание нескольких трюков ssh полезно любому системному администратору, сетевому инженеру или специалисту по безопасности.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments29

Обзор свободного ПО для Android

Reading time22 min
Views131K


Привет Хабр.

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

И так, можно ли пользоваться мобильным устройством без серьёзного ущерба для приватности?

Ответ — да, можно, но для этого необходимо избавиться от ПО и сервисов, бесконтрольно собирающих данные. Для этого понадобится желание что-то изменить и любое устройство на которое можно установить кастомную систему Android (iOS по понятным причинам не рассматривается, а из альтернатив только SailfishOS и GNU/Linux, но эти системы можно установить на очень ограниченное число моделей). Всех кто заинтересовался я приглашаю под кат.
Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments82

Паттерны ООП в примерах для iOS

Reading time48 min
Views150K

От переводчика


Искали тут двух русскоязычных разработчиков — на iOS и на C++ под Windows. Видел десятки выполненных тестов. Разница в знании ООП между представителями двух платформ — огромная. На C++ обычно красивый расширяемый код, как само собой разумеющееся. На Objective C картина удручающая. Почти все iOS-кандидаты не знали ООП дальше своего носа NSString'ов и AppDelegate'ов.

Понятно, что плюсы учат по Страуструпу и «банде четырёх», а Objective C — больше по туториалам и Stack Overflow. Фастфуд-обучение не оставляет места на фундаментальные вопросы… Но такой разницы я не ожидал.

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

Качественная разработка ПО — творческий процесс, уникальный для каждой конкретной головы. Поэтому не существует общей инструкции: if (A and (B or C)) then use Pattern_N;
Как это нет инструкции? Что же делать?
Total votes 77: ↑71 and ↓6+65
Comments50

Взломать Wi-Fi за 10 часов

Reading time12 min
Views1.5M
Еще не так давно казалось, что беспроводная сеть, защищенная с помощью технологии WPA2, вполне безопасна. Подобрать простой ключ для подключения действительно возможно. Но если установить по-настоящему длинный ключ, то сбрутить его не помогут ни радужные таблицы, ни даже ускорения за счет GPU. Но, как оказалось, подключиться к беспроводной сети можно и без этого — воспользовавшись недавно найденной уязвимостью в протоколе WPS.


Читать дальше →
Total votes 304: ↑294 and ↓10+284
Comments164

Добавляем панель бокового меню в свое iOS-приложение

Reading time10 min
Views44K
Как переводчик заранее прошу извинения за возможные ошибки в переводе. Буду признателен сообщениям об ошибках для их скорейшего исправления.

Как я могу добавить панель бокового меню в свое iOS-приложение? Это один из самых часто задаваемых вопросов которые мы получаем от своих читателей. Сегодня мы покажем как создать боковое меню вроде того, которое вы можете наблюдать, например, в приложении от Facebook.

Для тех кто не знаком с понятием бокового меню в мобильных приложениях, Кен Ярмост (Ken Yarmost) дал хорошее объяснение этому элементу интерфейса и определил его как:
Боковое меню представляет собой панель, которая «выезжает» снизу, слева или справа от области основного контента приложения, содержащая вертикальную, независимую от основного контента приложения прокрутку, и служит основным инструментом навигации в приложении.

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



Использование бокового меню, позволяет реализовать навигацию не отнимая драгоценного места у основного контента на экране мобильного устройства, потому что в неактивном состоянии такое меню скрывается за слоем основного контента приложения. Меню может быть вызвано путем нажатия кнопки меню на навигационной панели. После того как меню стало активным, пользователь может закрыть его, используя ту же кнопку меню на панели навигации или просто свайпом влево по области активного контента приложения.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments28

Особенности сборки и доставки iOS-приложений

Reading time8 min
Views20K
В этой статье Максим Шестаков, DevOps Engineer в студии Plarium Krasnodar, делится опытом сборки и доставки пользователям приложений для iOS, который накопился в процессе отладки CI/CD.

Читать дальше →
Total votes 9: ↑8 and ↓1+9
Comments20
1
23 ...

Information

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

Specialization

Chief Technology Officer (CTO), Software Architect
Lead
People management
Building a team
Development management
Planning
Information Technology
Startup management
Automation of processes
Company management