• Как эффективнее всего отслеживать кол-во посещений вашего ресурса?

    Sanes
    @Sanes
    1. Сначала определитесь, по каким признакам будете считать уникальность.
    2. По этим самым признакам сделайте Цифровой отпечаток устройства
    Ответ написан
    Комментировать
  • Как стилизовать title атрибут элемента?

    @zkrvndm
    Софт для автоматизации
    Никак, но можно создать псевдоэлемент рядом, появляющийся при наведении и уже его стилизовать:
    img[title]:hover:after {
        content: attr(title);
        // ... стилизуй дальше, как хочешь
    }

    attr(параметр) - возвращает значение указанного в скобках атрибута.

    Источник: htmlbook.ru/css/content
    Ответ написан
    2 комментария
  • Нужно ли валидировать текст пользователя на наличие непристойных слов?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Если Вы СМИ илии соцсеть - будут. Год назад был принят закон, по которому соцсети обязаны валидировать контент.

    Ну и если сайт/cоцсеть доступны без регистрации - я бы вот подставляться не стал. Если материал с факами может увидеть несовершеннолетний, то нужно иметь в виду, что у нас много что начинается с "защиты детей" :)
    Ответ написан
    5 комментариев
  • Как использовать watch с [] внутри?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Выражение с [] оформить как вычисляемое свойство. Установить наблюдение за этим свойством.
    Ответ написан
    Комментировать
  • Нужно ли мне обязательно указывать юр инфу в футере сайта?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Первое не обязательно, если не собираетесь бороться с копированием данных с вашего сайта. Второе вообще не обязательно. А вот третье обязательно, если ваш сайт принимает, хранит и обрабатывает персональные данные. В этом случае так же понадобится соглашение о конфеденциальности и информация о юрлице.
    Ответ написан
    2 комментария
  • Можно ли использовать переменную типа string, как название функции и потом вызвать ее?

    Нет, так сделать нельзя, Го не скриптовый язык.

    Но саму функцию в переменную положить можно. И потом вызвать.

    https://go.dev/play/p/dkF1s6ENnjA
    func main() {
    	fn := some
    	fmt.Println(fn())
    	fn = other
    	fmt.Println(fn())
    }
    
    func some() int {
    	return 1
    }
    
    func other() int {
    	return 2
    }
    Ответ написан
    Комментировать
  • Как получить данные профиля после google sign in на стороне севрера?

    @AlexVWill
    Есть же целый, толковый гайд по этой функции
    https://developers.google.com/identity/gsi/web/gui...

    spoiler
    <html lang="en">
      <head>
        <meta name="google-signin-scope" content="profile email">
        <meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
        <script src="https://apis.google.com/js/platform.js" async defer></script>
      </head>
      <body>
        <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div>
        <script>
          function onSignIn(googleUser) {
            // Useful data for your client-side scripts:
            var profile = googleUser.getBasicProfile();
            console.log("ID: " + profile.getId()); // Don't send this directly to your server!
            console.log('Full Name: ' + profile.getName());
            console.log('Given Name: ' + profile.getGivenName());
            console.log('Family Name: ' + profile.getFamilyName());
            console.log("Image URL: " + profile.getImageUrl());
            console.log("Email: " + profile.getEmail());
    
            // The ID token you need to pass to your backend:
            var id_token = googleUser.getAuthResponse().id_token;
            console.log("ID Token: " + id_token);
          }
        </script>
      </body>
    </html>


    Если вкратце, то Google Sign In возвращает токен, в виде длинной строки символов
    который можно передать на сайт верификации
    https://oauth2.googleapis.com/tokeninfo?id_token=XYZ123
    который возвратит JSON массив с данными эккаунта
    {
     // These six fields are included in all Google ID Tokens.
     "iss": "https://accounts.google.com",
     "sub": "110169484474386276334",
     "azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
     "aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
     "iat": "1433978353",
     "exp": "1433981953",
    
     // These seven fields are only included when the user has granted the "profile" and
     // "email" OAuth scopes to the application.
     "email": "testuser@gmail.com",
     "email_verified": "true",
     "name" : "Test User",
     "picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg",
     "given_name": "Test",
     "family_name": "User",
     "locale": "en"
    }
    Ответ написан
    Комментировать
  • Как сделать музыку на сайте так же как в вк?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Создаю свой мессенджер, задача такова что нужно сделать список абсолютно всех мелодий которые есть в мире, так же как в вк, как это можно реализовать?
    Так, давайте прикинем что нам нужно для реализации. Программная часть собственно нас не сильно интересует, так как на фоне прочих затрат найм какого-нибудь Линуса Торвальдса на пару месяцев вообще теряется в общей сумме.

    1) Хранилище. По примерным оценкам в мире в цифровом виде около 500 000 000 оригинальных музыкальных композиций. Учитывая ремиксы и каверы - можно смело брать миллиард. Средний вес композиции среднего качества - 5 Мб. То есть порядка 5 петабайт, если хранить не в лучшем качестве. Учитывая что это должно иметь какое-то резервное хранение (у нас тут серьезный сервис все-таки), умножаем на 2 (10 петабайт). При стоимости около 2 центов за гиг в месяц, 10 000 000 Гб * $0,02 = $200 000 в месяц хранение. Ну, бюджетненько в целом.

    2) БД, которая хранит данные обо всех этих композициях. Стоимость хранения будет поменьше, но думаю к 20-50К все равно где-то выйдет.

    3) Другой вопрос - где брать эти данные, так как не все музыкальные файлы содержат полное описание композиции. На перебор 1 миллиарда записей и сортировки их по жанрам, альбомам, исполнителям, дате выпуска и т.д. уйдет некоторое время. Допустим 50% композиций будут иметь нормальное описание, остается все те же 500 миллионов композиций на обработку. Пусть на каждую понадобится 2 минуты работы, внести данные в поля (хотя их еще как-то найти надо, но допустим), тогда получим 1 миллиард минут. Это 1900 лет работы, или 16 666 667 часов. Час работы самого дешевого индуса - 3 бакса/час. 16 миллионов * 3 - давайте округлим до 45 миллионов. Даже если сократить этот пункт в 10 раз - выйдет под 4 миллиона. Рабский труд сегодня дорог как никогда...

    4) Теперь платформа которая будет всем этим ворочать, так как у нас в сервисе должны же какие-то пользователи завестись вроде. Ну, на сервера можно смело отложить небольшую сумму, тоже где-то 20-30К, для начала сойдет.

    5) Прочие накладные расходы, такие как билеты на самолет до Америки с целью договориться где будет стоять ваш датацентр и прочие мелочи мы пока в бюджет не вкладываем, так как там уже инвесторы подтянутся, и смысла заморачиваться с мелочевкой нету. Так же оставляем за кадром вопросы лицензий и отчислений авторам, так как с этим возиться лень, как-нибудь решим потом.

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

    По итогу на год:
    $200 000 * 12 = $2 400 000 хранилище
    $20 000 * 12 = $240 000 бд
    $20 000 * 12 = $240 000 сервера приложения
    $4 000 000 работы
    Итого: чуть меньше 7 миллионов баксов.
    Ответ написан
    2 комментария
  • Каковы лучшие практики вывода средств на зарубежную дебетовую карту сегодня из России?

    SunnyPh
    @SunnyPh
    ASP.NET Core (MVC, Razor Pages, Blazor)
    1. Если сможете рублевые доходы в РФ превратить в крипту, а это не так то просто сделать сейчас (P2P Binance например ввела ограничения на вывод крипты со счетов Россиян на другие кошельки), то Вы на полпути к заветной цели.
    2. Ищите зарубежного посредника, который может перевести крипту в доллары например сначала на своем собственном счету.
    3. Посредник переводит доллары межбанковским переводом SWIFT на ваш счет в иностранном банке (но тут могут быть ограничения и дополнительные проверки, особенно если вы как владелец карты, являетесь гражданином РФ).
    4. Другой способ перевода средств с карты посредника на вашу карту. Если у Вас карта открыта (в Евросоюзе или в США...тут надо уточнять), то вы можете привязать ее к платежной системе Stripe.
    5. Еще один способ перевода средств с карты посредника на вашу карту, это платеж на Ваш PayPal, но для этого счет PayPal должен быть открыт и проведена его верификация.
    6. Еще один способ перевода средств, появившийся недавно из-за послаблений ЦБ РФ . Вы можете делать валютный перевод с рублевого счета в банках РФ, которые не попали под санкции, ежемесячно в пределах 10 тысяч долларов на счет физического лица - иностранца. Но будьте готовы ответить в последующем на вопросы сотрудников Росфинмониторинга о характере ваших взаимоотношений с иностранным получателем этих средств. И следующий минус этого, это возможные налоговые претензии у иностранного получателя этих средств.

    P.S. Вариант с переводом средств в крипту внутри РФ и последующий перевод валюты на вашу иностранную карту через Stripe или PayPal является непростым, но реальным с точки зрения легализации ваших доходов за пределами РФ. Только не вздумайте привязывать вашу иностранную карту к Stripe или PayPal, находясь в РФ. Возможна заморозка всех средств, а также компроментация и вечный бан этой карты в Stripe или PayPal...
    Ответ написан
    Комментировать
  • На сколько важно возвращать "правдивый" статус ошибки?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    В первом случае это явное 404
    Не надо путать "не найдены данные" (например при поиске на сайте) и "не найдена страница по урл".

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

    Ставьте нормальные статусы для нормальной логики, 404 на отсутствующие роуты/страницы, 401 для действий требующих авторизации, и тд.
    Ответ написан
    Комментировать
  • Можно ли переехать в Великобританию с основным общим образованием?

    @taktik
    Sr. QA automation | SDET
    Британия не выдает рабочие визы, если у специалиста нет подтвержденного высшего образования. Однако, как известно, в любой системе есть уязвимости, поэтому можно найти способы. Например, через получение образования там или заключение брака и т.п.
    Ответ написан
    3 комментария
  • Действует ли "Visa run" в Грузии?

    @Everybody_Lies
    для граждан России, Украины, Беларуси, Казахстана действует безвизовый режим, 360 дней; в случае выезда, срок обнуляется (близко Армения и Турция, сделать визаран легко)
    Ответ написан
    Комментировать
  • Как будет работать сайт на российском хостинге в США?

    @romicohen
    Системный Архитектор
    Некоторые американские хостинги отказываются принимать оплату из России.


    Уже таки да? Как раз сегодня утром думал об этом с опаской...

    Ответ на ваш вопрос (у меня он тоже был к самому себе :) )

    - Тут без вариантов надо поднимать зарубежный хост, причем, в нейтральной стране, мб в Латинской Америке или типа того. Да, это лишние издержки, но, как говорится - а кому щас легко? Живем и радуемся, что пока не бомбят Воронеж :D
    Ответ написан
    3 комментария
  • Как будет работать сайт на российском хостинге в США?

    @Akela_wolf
    Extreme Programmer
    Тут вариантов у вас несколько:
    1. Размещение у российского хостера, в русском ДЦ. Проблем с оплатой нет, проблем с доступом из России и из-за рубежа пока нет. Но есть риск, что начнут рвать связь до России и доступ к вашему сайту как минимум ухудшится/замедлится. Или вообще исчезнет.
    2. Размещение у российского хостера, в зарубежном ДЦ (в частности в США). Проблем с оплатой нет, риски потерять доступ тоже есть. Только на этот раз есть риск потерять доступ к серверу из России. Либо США могут начать "выдавливать" российские компании, что может вынудить закрыть зарубежный ДЦ.
    3. Размещение у зарубежного хостера, в зарубежном ДЦ. Самый, на мой взгляд, безопасный вариант в плане доступа, но возможны проблемы с оплатой. Поэтому нужно выбирать "отказоустойчивого" хостера. Либо с возможностью оплаты криптовалютой, либо китайскую компанию. Но опять же есть риски колебаний валютных курсов, сложностей с техподдержкой и т.п.

    "Серебряной пули" тут, как мне видится, нет. Придется взвешивать риски, что критически важно, а где их можно допустить. Если вопрос доступа к сервису критически важен - возможно придется держать резервный сервер в другом ДЦ и/или у другого хостера.

    Еще стоит учесть риски с доменом. При усилении санкционного режима могут начать разделегировать домены, зарегистрированные на граждан России. Так что регистратора домена тоже нужно выбирать с учетом этого риска.
    Ответ написан
    Комментировать
  • Нужна ли лицензия для приватного репозитория?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Нет, не нужна.
    Ответ написан
    Комментировать
  • В какие страны ЕС можно переехать из России, будучи узкоспециализированным фронтенд-разработчиком без профильного диплома о высшем образовании?

    @taktik
    Sr. QA automation | SDET
    Получить рабочую визу не имея диплома можно в странах:
    Германия, Англия, Чехия, Нидерланды, Финляндия

    Вне ЕС:
    Канада, Япония
    Ответ написан
    1 комментарий
  • Как с помощью оф драйвера сделать FindOne с выборкой конкретных полей?

    @gill-sama
    использовать соотвествующую структуру:
    type usernameOnly struct {
    	username string`bson:"username"`
    }
    var user usernameOnly
    users...Decode(&user)
    Ответ написан
    5 комментариев