• Как фиксировать уход пользователя с сайта?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    onbeforeunload - но надо найти фиксы на FF, там асинхронность и всё такое, запросы обрываются не дойдя до сервера.

    А более простой иногда - websocket сервер.
    Пустой websocket в котором висит on disconnect событие.

    Т.е. когда человек отключился - ушел с сайта - занесли куда-надо в базу.
    Ответ написан
    3 комментария
  • Как убрать ошибку Element implicitly has an 'any' type because expression of type 'string'?

    Kozack
    @Kozack
    Thinking about a11y
    Потому что TS не знает что конкретно находится в переменной id. Он только знает что там какая-то строка. А поскольку id может быть любой строкой, то и значение ITEMS[0][id] тоже может быть чем угодно.

    Вы можете изменить ваш интерфейс, указав какие значения может принимать id
    interface IFilters {
        id: keyof IItems; // <-- "id" | "filter1" | "filter2"
        title: string;
      }
    Ответ написан
    1 комментарий
  • Что выбрать в данном случае?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    не хочется завязываться на конкретного вендора, который когда захочет меняет свои технологии

    Много ли таких прицедентов было с ASP.NET? Сейчас MS в этом направлении активно захватывает рынок, вытесняет Java с ее EE платформой (с которой, кстати, недавно была драма по поводу vendor-lock недавно), так что выходит сплошной популизм: активно развиваемая коссплатформенность с .NET Core, чуть ли не полная бесплатность платформы Xamarin.

    C# является языком общего назначения, который имеет уйму применений и просто приятен в использовании. Конечно, для _мелких_ веб-проектов он проигрывает в скорости разработки, хостинг под него дороже (если это не Linux-VPS и проект на ванильном ASP.NET MVC, а не ASP.NET Core). Но при этом код легко поддерживать и тестировать. Но порог вхождения здесь выше, но за это щедро платят. В одиночку фрилансить веб на нем сложно.

    Другой угол зрения: PHP - чистый веб-язык, дорога на десктоп и мобилки ему заказана. Также он не подойдет для более-менее ресурсоемких задач по обработке данных (не поддерживает нативные потоки). Да, он идеален для небольших и средних веб-проектов, но серьезный интерпрайз на нем не строят, как правило.
    nC-OQzWjExhlOjJdl7KjYQ.jpg
    Ответ написан
    Комментировать
  • Как последовательно телеграм боту получить последоватльные значения от юзера?

    @nllm
    Для каждого вопроса/шага фиксировать состояние.
    Например: отправили первое сообщение, поставили состояние "ожидание ответа №1", получили ответ, отправили следующий вопрос, сменили статус и т.д.

    Состояния фиксируем в сессиях, в базе, в файлах (как решите)
    Ответ написан
    3 комментария
  • Как оправлять команды у бота Telegram при выборе в меню?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Не пойму, как отлавливать, какую из 3х клавишей нажал?
    и как сделать так, чтобы в меню был один текст, а при нажатии на нее отправлялась к примеру команда?

    С помощью Inline Keyboards, появившемся в Bot API 2.0.
    https://core.telegram.org/bots/2-0-intro#new-inlin...
    https://core.telegram.org/bots/api#inlinekeyboardmarkup

    > Unlike with custom reply keyboards, pressing buttons on inline keyboards doesn't result in messages sent to the chat. Instead, inline keyboards support buttons that work behind the scenes: callback buttons, URL buttons and switch to inline buttons.

    Как на этапе отправки текста, мы знаем, что нам надо перевести текст?

    При приёме сообщения от user_id, бот проверяет, на каком шаге в последний раз остановился этот user_id, и обрабатывает сообщение в рамках текущего шага. Если шаг "перевести" - то в ответ на любое сообщение он переведёт строку. На этапе "перевести" бот просто не показывает никакого меню, он просто ждёт строку.

    Для этого боту делают хранилище сессий. Это может быть просто БД с колонками `user_id` и `state`, где в стэйте будет указан текущий шаг. При обработке сообщения, бот смотрит шаг и действует в соответствии с тем, чего хотел пользователь на этом шаге.
    Если пользователь запросил другую функцию, или сделал /cancel, поменять шаг в таблице.
    Ответ написан
    8 комментариев
  • Как правильно расположить блоки в две колонки?

    Товарищи, вы вообще что ли издеваетесь? Для кого вообще flex делали?!

    <div class="parent">
      <div></div>
      <div></div>
    </div>

    .parent{display: flex}
    Ответ написан
    Комментировать
  • Как рисовать структурную схему сайта в виде дерева для интернет-магазина?

    Nekto_Habr
    @Nekto_Habr
    Чат дизайнеров: https://t.me/figma_life
    https://www.mindmeister.com/ru - очень удобно. Возможностей меньше, чем в XMind, но есть бесплатный тариф с возможностью совместной работы.
    Ответ написан
    Комментировать
  • Почему не работает ajax-запрос?

    sinneren
    @sinneren
    $.ajax({
        url : 'https://api.vk.com/method/database.getCountries?v=5.52&need_all=1&count=1000',
        type : "GET",
        dataType : "jsonp",
        success : function(msg){
          console.log(msg);
        }
      });
    Ответ написан
    2 комментария
  • Как ещё можно сделать уведомления, кроме sms и e-mail?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Web browser notification
    Push notification (имеется в виду для мобильных приложений)
    Ответ написан
    2 комментария
  • Как ещё можно сделать уведомления, кроме sms и e-mail?

    Может обратить внимание на push-уведомления в браузере? Возможность для ПК и Android (Chrome\Mozilla).
    Ответ написан
    2 комментария
  • Как создать сайт вроде спрашивай.ру?

    HoHsi
    @HoHsi
    Не стоит сразу же замахиваться на большой сервис, начните постепенно. Каждый начинающий программист первым своим проектом грезит сделать убийцу ВК / FB. Скажу сразу, это с первого раза не выйдет. Как не выйдет и с 10. Но! Это не повод, что-бы не развиваться и не учиться. Итак если вы все же решили потрать пару месяцев на обучение, или вы уверены, что пойдет меньше, начните так:

    Шаг первый
    Html. Это язык разметки, на котором написано 100% веба, то есть это необходимая вещь де-факто. Он позволит вам разместить текст на странице, оформить ее.
    В базовой аналогии, это ворд для интернета (кышь Ъ праграммысты, это довольно хорошая аналогия для новичка, продолжим...).

    Это займет +- 1 неделю

    Вам помогут:
    * htmlbook

    Шаг второй
    CSS. Это язык стилизации. Перекрасить текст, увеличить отступы, сделать тень у блоков это к нему. Все крависости в интернете делаются на нем. 99% веба использует для стилизации именно его, так что опять же это стандарт.

    Это займет +- 2 недели

    Вам помогут:
    * Sorax

    Шаг третий
    PHP. Это уже язык программирования (плохой, больной, уродливый, но язык. Да начнется холивар). Он поможет вам понять как это работает, как устроена кухня. Поковыряйте его, обучитесь начальной логике и алгоритмам. Он поможет вам выводить HTML более осмыслено, т.е. вы сможете уже составлять динамические страницы, которые могут подстраиваться под пользователя, добавлять посты, вопросы, картинки и т.д.

    Это займет +- 2 месяца

    Вам помогут:
    * php.net

    Шаг четвертый
    Wordpress. Это почти готовый сайт. В нем уже есть все, что вам нужно. Вы можете писать посты, делать обсуждения и т.д. На его основе вы сможете вылепить что угодно, даже тот самый вопросник. Он написан на PHP, так что он будет дополнять ваши знания. Как только научитись ставить WP, попробуйте написать для него шаблон, потом плагин, и еще и еще. Это закрепит и разовьет ваши предыдущие знания.

    Это займет +- 2 месяца

    Вам помогут:
    * wp-kama

    Шаг пятый
    MySQL. И в частности язык запросов SQL. Это база данных. Они нужны, что-бы хранить информацию вашего сайта в удобном виде. Т.е. по своей сути это таблица экселя, в ней есть поля и их значения. Это так же необходимые знания, так как ваши вопросы из вопросника будух храниться именно там.

    Это займет +- 1 месяц

    Переломный момент
    Наступает переломный, это значит что по истечению полу-года вы должны сесть и подумать, нравится ли вам, что вы делали. Это важно. Так как дальше не будет проще, не будет легче. Начнутся такие вещи как Асинхронность, Брокеры сообщений, ООП, MVC, и другие страшные слова, которые ровно как и предыдущие шаги по-началу будут вас пугать, но потом станут лучшими друзьями.

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

    Не спешите так же переходить к шагам ниже, если не уверены в своих силах. Нет ничего плохого, что-бы "посидеть" еще на предыдущих шагах.

    Шаг пятый
    JavaScript. Ура, вы решили, что вы хотите быть программистом, похвально. Этот язык позволит вам сделать ваши страницы более динамичными. Добавить на них анимацию, логику. Этот язык использует 90% веба, так что сомневаться в его значимости нет смысла. Он позволит вам добавить жизнь на ваш сайт.

    Это займет +- 2 месяц

    Вам помогут:
    * Sorax
    * learn.javascript.ru

    Шаг шестой
    Jquery. Это продолжение JS. Это фреймворк (набор готовых функций). Он облегчит вашу работу с JS и позволит делать ее более качественно и быстро.

    Это займет +- 1 месяц

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

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

    Итак развилка:
    Мне нравится PHP, мама я женюсь!
    Ок, тогда вам стоит взглянуть на фреймворки Laravel, Yii 2, вполне хороши. Они довольно мощные и позволят много чего на себе сделать.

    PHP какой-то странный, но мне понравился JavaScript
    Шикарно, значит есть смысл попробовать NodeJS. Это версия языка (Да, я знаю, что нода это среда а не язык, дайте уже объяснить человеку) расчитаная на составление страниц, как PHP. Это очень мощный инструмент, поняв который, вы вряд ли захотите уйти с него. Он поможет вам писать не только сайты, но и приложения для телефонов / планшетов, программы для ПК, возможно игры (но не стоит. По крайней мере с текущим развитием инструментов), демоны, сервисы, консольные приложения и т.д.

    Они оба мне не нравятся
    Что ж, тогда вам могут приглянуться Python, Ruby - эти два языка более близки к PHP, чем JS.
    Или вы за год стали адептом скорости, и не видите большей радости в жизни чем оптимизация и быстрото рендеренга. Ну тогда вам точно понравятся GO и Rust.
    А может быть Dart к тому временем станет мейн стримом, это уже покажет время.

    Что-бы вы не выбрали, это будет хорошим решением.

    Шаг восьмой
    Как говорится, я просто оставлю это здесь. Сейчас нет смысла объяснять, что это, зачем оно и с чем его едет, вы просто взглянете через год на этот список и все поймете.

    CSS:
    * Sass / Less / Stylus

    JS:
    * CoffeeScript / LiveScript / TypeScript
    * Angular
    * Promise

    NodeJS:
    * NPM
    * Express

    Ускорение работы:
    * Gulp
    * Jade
    * Yo

    Остальное:
    * MongoDB
    * MariaDB
    * RabbitMQ

    Шаг 7 и 8 займут у вас всю жизнь
    Это не в коем случае не значит, что язык будет тем же, просто Язык / Технолигия будут заменяться на другую, а смысл будет тем же. Будут новые технологии, будут новые подходы, новые языки. Будет интересно и весело.
    Ответ написан
    15 комментариев
  • Синхронизация в KeePass

    @theaidem
    А почему бы просто файл базы не держать в dropbox? Зачем этот плагин
    Ответ написан
    1 комментарий
  • Почему ВКонтакте не подцепляет мой OpenGraph image?

    Mycelin
    @Mycelin
    Эквиумист
    Кто-нибудь знает, обновляется ли кэш вообще? Нигде нет информации, раньше у меня менялся быстро, сейчас что-то изменилось.

    UPD: Они сделали инструмент для этого! :)
    vk.com/dev/pages.clearCache
    Как и Фейсбук (developers.facebook.com/tools/debug)
    Ответ написан
    4 комментария