Как стать автором
Обновить

Telegram BOT API: добавляем кнопки к сообщениям и обрабатываем их на стороне сервера

API *PHP *
Ожидает приглашения
Привет, HABR! В этой статье постараюсь показать маленький пример, использования клавиатуры под сообщением в Telegram. То есть мы с помощью бота будем отправлять пост в наш канал с использованием языка программирования PHP. Telegram BOT API неплохо документирован, но всё же остаются вопросы у новичков, как это всё собрать чтобы работало.

InlineKeyboardMarkup — этот объект представляет встроенную клавиатуру, которая появляется под соответствующим сообщением.
Читать дальше →

Онбординг или 5 способов познакомить пользователей с приложением

Аналитика мобильных приложений *Дизайн Дизайн мобильных приложений *Прототипирование *
Ожидает приглашения
В мобильных приложениях в качестве гайда по системе, как правило, применяется несколько «ознакомительных» экранов, которые выводятся сразу после первого запуска программы
Именно это первое знакомство с приложением влияет на дальнейшую его судьбу (то есть, будет ли с ним регулярно работать пользователь или же после пары сеансов удалит его).



Вы можете прочитать статью или посмотреть видео на Youtube.com

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

Операционная система elementary OS 5.1 Hera

GTK+ *Git *IT-компании Настройка Linux *Разработка под Linux *
Ожидает приглашения
image

«Простая, быстрая, открытая, безопасная. Превосходная замена Windows и macOS — так заявляет разработчик данного дистрибутива Linux. А так это попробуем разобраться в этой статье.
Читать дальше →

Клеточный автомат на SFML C++

C++ *Киберпанк Логические игры Математика *
Ожидает приглашения
Клеточный автомат.

В нашем случае карта замкнутая а размеры можно выбирать. Основная логика игры в том что в начале или в ходе игры рисуются клетки в плоскости с квадратными клетками и следующая позиция клеток которые должны быть в следующем ходе записывается в резервный массив nextStep[][]. В цикле пробегается по каждой клетке и считается их соседи. И в зависимости от количества соседей клетка либо умирает или рождается.

const int width = 100; //ширина карты
    const int height = 50; //высота карты
    const int sizeTile = 10; //размер каждого тайла
    bool world[width][height] = {0}; //двумерный массив с клетками в этом ходе
    bool nextStep[width][height] = {0}; //двумерный массив с клетками которые будут в следующем ходе
    int neighbours; //счетчик отвечающий за количество соседей
    float interval = 0;

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

RectangleShape tileBlack(Vector2f(sizeTile, sizeTile)); //черный квадрат будет рисоватся где живые тоесть заполненные клетки
    tileBlack.setFillColor(Color::Black);

    RenderWindow window(VideoMode(width*sizeTile, height*sizeTile), "Life"); //размеры окна размеры тайла умноженный на высоту и ширину карты

    Clock clock; float time;

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

Маркетинг дефицита: это все еще работает?

Интернет-маркетинг
Ожидает приглашения

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


В наши дни все кажется легким, удобным и доступным. С помощью нескольких щелчков мыши вы можете получить почти все (продукты, одежду, транспорт).


Если люди не могут получить что-то от одной компании, несколько щелчков мышью и другой вариант.


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


Имея все это в виду, давайте поговорим о дефицитном маркетинге и о том, как эффективно его использовать с сегодняшними потребителями «хочу сейчас».

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

Электромагнитные взаимодействия с точки зрения квантовой электродинамики

Научно-популярное Физика
Ожидает приглашения

Введение


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

Взяв за основу тот факт, что электромагнитное поле (также как и свет) состоит из фотонов, можно сделать весьма интересные выводы о структуре электромагнитных взаимодействий.
Читать дальше →

Искусственный интеллект: cхема

Искусственный интеллект
Ожидает приглашения
image

Мысли, идеи и концепции, которые пришли до и вовремя составления данной схемы


  1. Избежать подобия и симуляции. Выбрать еcтеcтвенный путь, даже если он будет подобным.
  2. Для искусственного мышления нужна искусственная жизнь, плавно соединяющаяся с естественной жизнью.
  3. Искусственный интеллект не обязательно должен быть централизованным с самого начала, и мы видим сейчас в мире, как он децентрализованно создаётся всеми в разных странах и компаниях по частям.
Читать дальше →

Простой php фреймворк для начинающих

PHP *
Ожидает приглашения
Доброго времени суток Хабровчане.

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

Структура директорий:

Index.php
/assets/
/framework/php/
/framework/html/
/framework/system/

Итак, поехали:
Начнем с парадной двери — index.php
Вообщем отказался напрочь от html кода в индексе, так как это неудобно.
Для head или footer решил сделать отдельные функции, так как для них писать одну универсальную функцию слишком запутано получиться. Зато теперь для каждого из них можно подключать дополнительно разные примочки типа галерею.
Читать дальше →

Как сдержать новогодние обещания и не прожить год впустую

Лайфхаки для гиков Читальный зал
Ожидает приглашения
Всем привет!

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

Как запустить bash скрипт на хосте или в соседнем контейнере из docker контейнера

DevOps *
Ожидает приглашения
Мне была поставлена задача, которая потребовала настроить систему создания новых контейнеров и управления существующими из основного контейнера.

Задача противоречит принципам изоляции докера, но иногда такое решение оправдано (ИМХО).

1)Консольные команды из одного docker контейнера в другой.

Тут всё просто, достаточно прокинуть сокет докера и установить docker в контейнер.
Читать дальше →

Портал администрации Красноярского края не помещается на серверах РФ

DNS *Администрирование доменных имен *
Ожидает приглашения
Привет. Это моя малая родина. Смотрите какая большая!

image

А это портал Администрации края. www.krskstate.ru Он тоже очень большой, расположился как минимум в 9-ти странах:

Malaysia
Indonesia
Sweden
Switzerland
Hong Kong
Bulgaria
United States
Russia
Republic of Korea
Читать дальше →

Вставка в середину: ArrayList vs LinkedList

Java *
Ожидает приглашения
Вставка в середину где быстрее у ArrayList или LinkedList? Избитый вопрос, ответ на который часто можно услышать один из двух:

  1. “LinkedList. Там мы только ссылки переназначаем, а в ArrayList нужно сместить половину коллекции вправо плюс время от времени будем ловить потерю перфоманса на расширение емкости”.
  2. “ArrayList. Ведь копирование происходит нативным методом, который довольно быстрый, в то время как LinkedList должен еще добраться до середины, перебирая каждый элемент, а это уже линейная асимптотическая сложность, в то время как у ArrayList это значение константа”. Также вспоминают, что емкость можно задать изначально больше, что снизит потери по производительности (дефолтная емкость ArrayList равна 10).

Попробуем разобраться кто прав


Oт теории к делу. Тестировать будем при помощи JMH.
Читать дальше →

Особенности интеллектуального права в разных юрисдикциях и коллизия в работе нового омбудсмена

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

1. Так сложилось, что начиная с 2007 года моя работа связана с системами учёта объектов интеллектуальной собственности. В том числе в мою предметную область входит и законодательство в этой сфере, хотя я сам, как, думаю, и многие другие, терпеть не могу ни документы, ни юристов.

В этом плане удивляет значимое количество комментариев вроде: “посмотрите, как хорошо в юрисдикциях англосаксонского права”.
Читать дальше →

Формирование отчетов баз данных Access в формате Excel

Visual Basic for Applications *
Ожидает приглашения

Отчет Access имеет известные достоинства, такие как простота формирования его структуры и
мощный аппарат компоновки исходных данных. Но есть и неудобства: пользователь для
изменения этого отчета должен вносить изменения в исходные данные базы, или, того хуже, обращаться к Разработчику для внесения поправок (напр. нужен раздел "Кому, от кого").
Есть еще недостатки, описывать их, думаю, не стоит: понятно.


Предлагается решение:


  1. Создание локальной исходной таблицы — источника (t3_Sborka).
  2. Копирование исходных данных отчета в t3_Sborka с мин. преобразованием типов данных
    (здесь в t3_Sborka данные сохраняются в поле формата STRING).
    … и далее по F1:
  3. Формирование на основе t3_Sborka перекрестного запроса NewQueryDef.
  4. Вывод в формат Excel NewQueryDef.
  5. Уничтожение — NewQueryDef и t3_Sborka.

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

Устройство движка JavaScript

JavaScript *Программирование *
Ожидает приглашения
Приветствую, Хабр. Представляю читателям перевод статьи «JavaScript Visualized: the JavaScript Engine» автора Lydia Hallie.

JavaScript — это круто, но как компьютер усваивает код, который пишется. Разработчикам JavaScript не приходится взаимодействовать с компиляторами самостоятельно. Знание основ движка JavaScript поможет разобраться, как язык обрабатывает наш дружественный человеку код, JS и превращает в то, что машины понимают.

Этот пост относится к движку V8, используется в Node.js и браузерах на основе Chromium.
Читать дальше →

Будущее здесь: обзор беспроводной трансмиссии для велосипедов

Беспроводные технологии *Будущее здесь Гаджеты Читальный зал
Ожидает приглашения

Обзор беспроводной трансмиссией Eagle AXS XX1 от SRAM


image

В этом году производитель вело-компонентов SRAM представил собственную линейку беспроводной трансмиссии, настраиваемой с помощью смартфона. Всем кому интересно — добро пожаловать под кат.
Читать дальше →

Мониторинг блока индикации и контроля с модулем управления питанием QFC-PBIC

Занимательные задачки Разработка для интернета вещей *Старое железо
Ожидает приглашения
Попалось под руку устройство QFC-PBIC — надо мониторить состояние подключенных датчиков по локальной сети. Вроде бы производитель вот тут — но почему-то не хочет в этом признаваться, видно — давно было дело, никто не помнит… Ну да ладно — ищем правду сами. Находим техописание и инструкцию для монтажника. Ага — есть поддержка SNMP, значит должен быть открыт 161 порт, а какой же IP адрес?
Читать дальше...

Как скрыть значки расширений Chrome и очистить панель инструментов

Google Chrome
Ожидает приглашения
Одна из причин популярности Google Chrome заключается в том, что вы можете добавить множество расширений, которые улучшают работу в Интернете. Однако проблема может возникнуть, если у вас установлено много расширений. Все значки могут начать добавлять беспорядок на вашу панель инструментов. Используя новую экспериментальную функцию под названием «Extensions Toolbar Menu», вы можете исключить длинную линию значков расширений на панели инструментов, но при этом сохранить их под рукой, когда вам нужно их использовать.
Читать дальше →

C# Entity Framework Wizard crash

C# *Программирование *
Ожидает приглашения
И так, без лишней воды, жертвуя оригинальностью статьи, пишу данный гайд, который помог в решение проблемы, а именно — Закрывается окно подключения Entity Framework 6. Так же данную ошибку можно описать: C# Entity Framework Wizard crash.

Что именно за ошибка? Данная ошибка возникает, после того, как Вы выбрали базу данных и хотите построить на её основе модель.
Читать дальше →

IT карьера в банке. Путь от студента до профессионала

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

Предисловие


В последние годы значительно выросла потребность в IT специалистах во всех отраслях народного хозяйства. Но вот беда, на серьёзные вакансии, всё чаще приходят вчерашние выпускники престижных вузов, не имеющих никакого практического опыта, но с высокими ожиданиями по зарплате. Всячески бравируют своей успеваемостью и серьёзным багажом знаний. Но стоит их попросить решить тривиальную практическую задачу или углубиться хотя бы частично в предметную область, тут уверенности в себе у них становиться поменьше. И это вполне понятно. Уровень вхождения в разработку/аналитику/тестирование современных промышленных систем чрезвычайно высок. Именно этот факт побудил меня написать данную статью.
Читать дальше →