• Как получить Bearer token не открывая браузер?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Можно. Либо ищите оффициальный API, и оттуда смотрите авторизацию, либо повторяйте авторизацию из браузера через requests. Все запросы можно найти в той же вкладке Network в девтулсе.
    Ответ написан
    2 комментария
  • Как сделать рассылку?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Вызвать в цикле bot.send_message на все извлечённые из базы chat_id. Учесть при этом, что у Телеграма ограничение в 30 запросов в секунду. Учесть, что некоторые пользователи уже могли отписаться от бота (отправка им вызовет исключение).
    Ответ написан
    4 комментария
  • Как в map добавить slice?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Нужно изменить тип map на map[string]interface{}
    Вот так
    message := map[string]interface{}{
        "cmd":       "subscribe",
        "auth_key":  "dfb496cca67e13b",
        "needed_bk": []string {"live"},
      }
    Ответ написан
    6 комментариев
  • Какая OS лучше для работы с C#?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Продакшен на линуксе, а разрабатывать лучше на Windows (тоже ИМХО), тк тупо больше всяких инструментов для отладки и профилирования.
    Rider везде работает примерно одинаково, но опять же - на маке и линуксе может не хватить каких-то инструментов для профайлинга.

    Для веб-разработки можете и на Ubuntu сидеть. Желательно поставить Rider, но в принципе код писать можно хоть в виме, хоть в vs code.
    Monodevelop давно не трогал.

    Вместо mono лучше взять .net 5, вроде monodevelop умеет с ним работать.
    Ответ написан
    5 комментариев
  • Какая OS лучше для работы с C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Windows 10 ИМХО
    Rider конечно хорош, но Visual Studio намного круче
    Ответ написан
    2 комментария
  • Как структурировать JSON объект?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Так как вы делаете не получится :)

    Вы получаете данные, которые нужно преобразовать из JSON в структуру данных Go).
    и дальше с ними работать, а вы преобразовываете JSON (слайс байтов) в слайс байтов.

    Вот рабочий пример того, что вы хотите сделать
    package main
    
    import (
        "encoding/json"
        "fmt"
        "io/ioutil"
        "log"
        "net/http"
    )
    
    func main() {
        artist := "Madonna"
        token := "5936fb55e90cdd9938f8e7086c783c40"
        url := fmt.Sprintf(
            "http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=%s&api_key=%s&format=json", artist, token)
        res, err := http.Get(url)
        if err != nil {
            log.Fatal(err)
        }
        defer res.Body.Close()
    
        body, _ := ioutil.ReadAll(res.Body)
    
        var data map[string]interface{}
        // десериализуете JSON
        err = json.Unmarshal(body, &data)
        if err != nil {
            log.Fatal(err)
        }
    
        // сериализуете данные в JSON
        marshaledDataBytes, err := json.MarshalIndent(data, "", "\t")
        fmt.Println(string(marshaledDataBytes))
    }
    Ответ написан
    8 комментариев
  • Как структурировать JSON объект?

    includedlibrary
    @includedlibrary
    Можно использовать Indent
    package main
    
    import (
    	"bytes"
    	"encoding/json"
    	"fmt"
    	"io/ioutil"
    	"log"
    	"net/http"
    )
    
    func main() {
    	artist := "Madonna"
    	token := "5936fb55e90cdd9938f8e7086c783c40"
    	url := fmt.Sprintf(
    		"http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=%s&api_key=%s&format=json", artist, token)
    	res, err := http.Get(url)
    	if err != nil {
    		log.Fatal(err)
    	}
    	defer res.Body.Close()
    
    	body, err := ioutil.ReadAll(res.Body)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	var pretty bytes.Buffer
    	err = json.Indent(&pretty, body, "", "\t")
    	if err != nil {
    		log.Fatal(err)
    	}
    	fmt.Printf("%v\n", string(pretty.Bytes()))
    }
    Ответ написан
    2 комментария
  • Как удаленно подключиться к базе MySQL?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Скачайте HediSQL Его можно использовать как программу для доступа к данным mysql.
    Ответ написан
    Комментировать
  • Как удаленно подключиться к базе MySQL?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    1. на хосте к которому хотите подключится выполняете netstat -nao4 | grep 3306 если адрес не из серых то подключится можно
    2. вот по этой статье разрешаете удаленный доступ https://stackoverflow.com/questions/8348506/grant-...
    3. подключаетесь

    но это не совсем правильно!
    лучше настройте туннель вот по этому документу
    https://linuxize.com/post/mysql-ssh-tunnel/
    Ответ написан
    1 комментарий
  • Как удаленно подключиться к базе MySQL?

    DevMan
    @DevMan
    никакого локального мускуля не нужно.
    нужен удаленный мускуль, способный отвечать на запросы снаружи (по дефолту он этого не даёт), и любой локальный клиент с возможностью указать удаленный сервер.
    Ответ написан
    5 комментариев
  • Как правильно составить Query parameter?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    ни чего не получается

    Потому что формат URL неправильный. Пишут же, http://212.109.216.193:8111/events/{event_id}. Вместо {event_id} подставляете свой ID.

    url = "http://194.55.234.95:8111/events/PINEC7E0EE541909"
    
    param = {
        "token": token
    }
    Ответ написан
    3 комментария
  • Как написать программу на PHP, которая выводит отношение факториалов двух чисел (N! / M!)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Найти факториал одного числа, факториал второго числа и поделить одно полученное значение на второе.
    Или разобраться, что такое факториал, и сразу записать вычисление нужного значения.
    Ответ написан
    8 комментариев
  • Перспективы у языка GO?

    @abcyu
    Разработчик
    Я лично фриленсю успешно на Go.

    Заказов немного, но они на порядок интереснее и лучше оплачиваются того, с чем чаще всего приходится сталкиваться, типичному PHP-сту к примеру.

    Потому что они сложнее.

    Фразы "сегодня первый раз услышал о Go" и "сколько зарабатывают на Go" противоречивы и бессмысленны в паре.

    Go ныне широко распространен как язык создания backend в серьезных компаниях.
    Но backend в серьезных компаниях также с успехом создаются на Java, Python и пр.

    На Go крайне мало маленьких и дешевых заказов как на PHP.
    Формально, медиана по зарплате выше.

    Но это не значит, что на нем можно больше заработать, если вы ничего не знаете.
    А если хороший специалист, то и на JS и на PHP можете заработать хорошо.

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

    Дорогой заказ нужно еще суметь взять.
    И суметь сделать.
    Ответ написан
    1 комментарий
  • Как спарсить данные и на место ошибки записать значение?

    @Wispik
    social_names = {'icon-facebook': 'facebook', 'icon-twitter': 'twitter', 'icon-linkedin': 'instagram'}
    for link in social:
        print(social_names[link.find('i').get('class')], link.get('href'))

    Питона под рукой проверить нет, но вроде так
    Ответ написан
    3 комментария
  • Как добавить значение ошибки в словарь?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    for name, address, telephone, email, site, social in data:
        item = dict()
        item['Name'] = name[0].get_text(strip=True) if name else ''
        ...
        company_info.append(item)
    Ответ написан
    2 комментария
  • Как удалить символы до определенного символа?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Иногда без регулярок бывает проще:
    data = 'https://www.gutesache.be/organisation/?id=0597974811&SearchTerm=social&Citydistance=5&searchlang=nl'
    
    '/'.join(data.split('/')[3:])
    # organisation/?id=0597974811&SearchTerm=social&Citydistance=5&searchlang=nl
    Ответ написан
    Комментировать
  • Как удалить символы до определенного символа?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Обязательно regex?

    new_url = '/'.join(url.split('/')[3:])
    Ответ написан
  • Как правильно формировать цену за выполнение работы?

    @iSergios
    Python-разработчик
    Для оценки, как миниум, необходимо понимать:
    - сколько стоит час работы
    - сколько примерно часов потребуется на реализацию функционала

    И если по первому пункту достаточно принять что-то вроде "1 час == 1000 рублей", то со вторым чуть сложнее.

    Как оцениваем часы работы:
    1. Фиксируем хотелки заказчика на бумаге (что лучше всего) или как-то еще. Главное в этом шаге - чтобы и вы и ваш заказчик получили полное исчерпывающее понимание того, что должно стать результатом вашей работы. Разумеется, заказчик почти никогда не напишет вам ТЗ. Но и вам его тут подробно описывать не надо. Зафиксируйте основные функциональные требования, например:
      - перечень сайтов для парсинга;
      - что конкретно парсим в каждом из сайтов;
      - перечень команд для чат-бота: исчерпывающий, с описанием, что именно по каждой команде должен бот делать;
      - порядок работы чат-бота (парсинг по команде или вы пишите сервис, который по расписанию парсит, а по команде только читает из БД и плюется этим в телегу);
      На этом же этапе надо выяснить, кто будет деплоить приложение. Если вы, то куда и как.

    2. Утверждаем требования у заказчика (через подписание договора или иным образом). Важно, чтобы его "одобрямс" у вас где-то остался. Вообще, этот шаг недооценивать нельзя, ибо на нем обычно заказчик и понимает по-настоящему, что именно он хочет получить.

    3. Когда у нас есть утвержденный перечень хотелок, начинаем их декомпозировать: разбиваем на блоки задач, а блоки - на отдельные задачи. Не должно быть задач вида "Написать бота", "Спарсить сайт". Бьем на задачи с тем прицелом, чтобы на реализацию каждой из задач не требовалось тратить менее 1 часа и более 4 часов. Это очень важно, ибо именно тогда вы (нередко с ужасом (заказчика, разумеется)) сможете понять, сколько именно времени вам надо будет затратить. Не забывайте учесть в оценке написание тестов. И ручное тестирование, если его будете проводить вы. Вообще, вопрос декомпозиции - это отдельный очень большой и очень серьезный вопрос, не будем на нем сейчас останавливаться.

    4. Оцениваем риски. Что это такое? Да вообще все: от внезапных тупняков и борьбы с ветряными мельницами, без коей разработки не бывает, до банального сопротивления сайтами парсингу. Каждый на риски закладывает по-разному, я рекомендую начать с 25%. Т.е. если вы изначально оценили конкретную задачу на 4 часа, то пишете 5. Не нужно занижать оценку, это будет работать против вас.

    5. Если деплой приложения на вас, то его так же следует оценить. Часто про это забывают.

    6. Вспоминаем, сколько часов вы затратили на оценку и вписываем это либо отдельным пунктом, либо размазываем по задачам (оценка не должна быть за ваш счет).

    7. Суммируем эстимейты со всех задач и показываем заказчику. Лично я никогда не считаю зазорным показать заказчику всю выкладку по результатам декомпозиции с оценками по каждой из задач.
    Ответ написан
    2 комментария
  • Почему не скачивается файл?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Заголовки добавьте

    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
    r = requests.get(url, stream=True, headers=headers)
    Ответ написан
    5 комментариев