Задать вопрос
  • Как написать скрипт на python, для управления сайтом?

    Sobolev5
    @Sobolev5
    Python developer
    Я рекомендую webbot
    https://github.com/nateshmbhat/webbot

    from webbot import Browser 
    web = Browser()
    web.go_to('google.com') 
    web.type('hello its me')  # or web.press(web.Key.SHIFT + 'hello its me')
    web.press(web.Key.ENTER)
    web.go_back()
    web.click('Sign in')
    web.type('mymail@gmail.com' , into='Email')
    web.click('NEXT' , tag='span')
    web.type('mypassword' , into='Password' , id='passwordFieldId')
    web.click('NEXT' , tag='span') # you are logged in . woohoooo
    Ответ написан
    1 комментарий
  • Как зайти на компьютер нескольким пользователям одновременно.?

    Stalker_RED
    @Stalker_RED
    Терминальный сервер. Они, кстати, не только майкрософтовские бывают.
    Ответ написан
    Комментировать
  • В какой стране регистрировать компанию для работы на upwork?

    @boss_lexa
    "виртуальная" компания в Эстонии за 5%
    https://www.xolo.io/go

    компания в эстонии https://nordicconsult.ee/en/
    не забывайте про НДС в Европе

    компания в США и счет в банке удаленно
    https://firstbase.io/ru
    https://mercury.com/

    а зачем вам именно компания?
    юрлицо дает двойное налогооблажение - сначала платите налог с прибыли компании, а потом еще и с дохода физлица. Исключение это компании зарегистрированные в форме "партнерства", где налогами облагаются только физлица, а компания прозрачна для налогов (например в LLC в США и LLP в UK).
    А к этому еще и правильнее принимать платежи на зарубежную компанию, большую часть денег переводит в РФ ип на патене, УСН6 6% и самозанятым и платить в РФ маленькие налоги, тем самым уменьшая налогоблагаемую базу и тогда у вас прибыль в зарубежной компании будет небольшая - меньше налогов с нее заплатите.

    также для зарубежных компаний - не забывайте про регулярные отчеты за КИК, на небольших объемах вроде пока все забивают на это.
    Ответ написан
    22 комментария
  • Где удобно проверять (желательно бесплатно) действительность паспорта по API?

    syamskoy
    @syamskoy
    Правильно и бесплатно тут: services.fms.gov.ru/info-service.htm?sid=2000 каждый день скачиваешь базу невалидных паспортов и чекаешь по ней. А тут как это сделать: https://habr.com/ru/post/307568/

    Не правильно: можно взять чужое решение, например c https://proverk.ru/passport/
    Смотришь в нетворк и видишь, что запрос идет на POST https://proverk.ru/ajax.php данные: {serial: 1111, number: 123123}. Но если увидят, могут заблочить твой сервер.
    Ответ написан
    Комментировать
  • Парсинг сайтов, как обойти защиту?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Рекомендую программу RSocks Proxy Checker Есть версии и под linux. Загружаете в неё список прокси, и указываете сайт для проверки 'ruru.hotmo.org '. По окончанию проверки, сортируете результаты по "200 OK" и сохраняете такие прокси. Только что проверил на python, работает.
    5ea5e26769948796051262.png
    Ответ написан
    1 комментарий
  • Какая репликация лучше в Postgres?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    в постгрес есть автоматическое переключение мастеров

    Нет такого.
    Только внешние управляющие (patroni, например). Ну или в форках каких-нибудь, но это вопрос к этим форкам, а не к postgresql.
    Ответ написан
    Комментировать
  • Собираюсь идти в сферу программирования. Изучаем в школе языки. Какой лучше выучить Pascal или C++?

    solotony
    @solotony
    покоряю пик Балмера
    в качестве учебного языка паскаль лучше. а когда начнете работать поймете что язык всего лишь инструмент, который выбирается под задачу

    а всем кто советует С++ можно ответить просто - rust
    Ответ написан
    2 комментария
  • Собираюсь идти в сферу программирования. Изучаем в школе языки. Какой лучше выучить Pascal или C++?

    dom1n1k
    @dom1n1k
    Если выбор стоит только между этими двумя и других вариантов нет - Паскаль.
    Да, он сейчас почти не применим в реальной практике. Но как первый учебный язык он лучше. C++ слишком сложен для человека с нулевой базой.
    А уже позднее перейти на другие языки - может быть, тот же C++, а может быть что-то третье.
    Сменить язык в ходе карьеры, причем скорее всего даже не один раз - это нормально.
    Ответ написан
  • Как кто пробился на фриланс-биржах?

    kumaxim
    @kumaxim
    Web-программист
    Лично я вижу проблему самой большой рыбы в маленьком пруду.
    Я думаю, что до этого ты работал в офисе, возможно, джуном. По какой-то причине ты ушел из команды и ты решил зайти на фриланс, например, на upwork и споткнулся.

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

    Ценность - это некий товар или услуга, которая помогает другому человеку решать его задачу. Ты написал, что

    Специализируюсь на верстке адаптивных сайтов - bootstrap, flexbox, контент-менеджменте.


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

    ОК, давай сменим твой оффер, с "Специализируюсь на верстке адаптивных сайтов - bootstrap, flexbox, контент-менеджменте." на "Создание продающих веб-сайтов, адаптированных под ПК, планшеты и смартфоны".

    Теперь, делаешь свой сайт, который будет адаптирован под ПК, планшеты и смартфоны, а также не будет вырвиглазным. На сайте должно быть описание того, как ты работаешь, т.е. рисуешь ты макет, берешь ли ты готовый шаблон, кто покупает фотки со стоков и т.д.

    Затем, начинаешь откликаться на проекты. В первом этапе твоя задача взять 10 работ, причем все равно с каким прайсом, пусть хоть $10. Сейчас, ты нарабатываешь фидбек от других пользователей. На любой бирже есть два типа людей: те, кому надо подешевле и те, кому надо. Сначала, ты работаешь на 1-ю категорию. На 2-ю ты переключишься попозже.

    Закрыв 10 проектов у тебя появляется опыт и понимание того, какие вообще люди обитают на Upwork и каковы их потребности. Ты поймешь, сколько вообще одна работа у тебя занимает времени, какие могут быть задержки во время исполнения, что вообще надо клиентам и т.п. У тебя появится понимание общей картины происходящих событий. После 1-го этапа люди увидят, что ты не просто можешь языком молоть, но и действительно умеешь делать то, о чем заявляешь.

    Далее ты либо работаешь с оффером(увеличивать цену, сделать какие-то доп.ценности) либо меняешь нишу и повторяешь сначала.
    Ответ написан
    5 комментариев
  • Что входит в понятие "поднять сервер"?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    1. Прийти в серверную, взять сервер и приподнять его. Проблемы: обычно сервера прикручены к стойкам. Легко поднять неприкрученный сервер, прикрученный следует открутить, отсоединить и тогда уже поднимать. Не забудьте потом всё опустить и подключить как было.
    2. Взять и купить на месяцок самую дешевую виртуалку (VDS) на каком-нибудь лоу-кост хостинге. Выберите ubuntu, поставьте docker, запустите в отдельных контейнерах (и пропишите в контаб) VPN, прокси для Телеграма, сервер майнкрафта. Каждое из этих действий делается одной командой. Проблемы: осторожно, на такой сервер легко подсесть. Стабильно работающий телеграм, отсутствие блокировок сайтов, свой ламповый сервачок майнкрафта - к этому быстро привыкаешь. Потом захочется поднять своё облако, запустить свою интернет-радиостанцию для друзей... Будьте осторожны, если борода прорастёт сквозь свитер, от них будет трудно избавиться.
    3. Внимательно изучите предметную область в рамках которой вы проходите стажировку и, наверно, станет понятно о каком сервере тут может идти речь. Может быть вы в грузчики метите и тогда см. п.1.
    4. Наверно ваш вопрос разумно задать тем, кто поставил такую задачу, а не неопределенной группе лиц, которые помогают новичкам решать технические задачи.
    Ответ написан
    Комментировать
  • Не могу разобраться что за обозначение такое w/o RAID?

    @q2digger
    никого не трогаю, починяю примус
    w/o обычно обозначает without. То есть в данном случае , я бы трактовал, - "без RAID"
    Ответ написан
    1 комментарий
  • Как посчитать эффективность разработки?

    Adamos
    @Adamos
    Эффективность бизнеса в целом можно увеличить, уволив на хрен менеджера, который высасывает из пальца KPI для программистов.
    Ответ написан
    1 комментарий
  • Донатерский и суперадминский доступ к консоли сервера?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Поднимайте сервер в докере, давайте туда доступ и пусть резвятся.
    Ответ написан
    Комментировать
  • Как монетезировать TikTok?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    1. Десяток тысяч это мало.
    2. Как будут сотни тысяч - продавать рекламные посты и/или брендирование.
    3. Ищите что-то вроде "биржа рекламы в тикток", например adtiktok.ru и т.п.
    Ответ написан
    Комментировать
  • Как защититься от кражи cookie не используя мета информацию (ip, etc..) и js?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Что подразумевается под "залез в браузер" ?
    Если у злоумышленника полный доступ к компьютеру/браузеру, то помимо cookies точно так же можно достать данные localstorage и любых других "приблуд". И в принципе можно просто отправлять запросы из браузера как легитимный юзер, тут вы бессильны.

    Если речь про воровство cookies через XSS, то есть флаг HttpOnly который предотвратит доступ к cookies через JS
    https://owasp.org/www-community/HttpOnly

    Против MITM-аттак, используйте HTTPS + HSTS.

    Как доп защита, использовать GeoIP-базы, как делают соц. сети или почтовики, собирая данные об авторизации пользователя и выявляя аномальные входы (другая страна, другой город).
    Ответ написан
  • Как лучше размещать сайты на сервере?

    Sanes
    @Sanes
    Один сай = один пользователь. Нечего им шариться между собой.
    Соответственно скрипты должны запускаться от имени владельца файлов.
    А то у нас модно настраивать LAMP по заветам какого-нибудь Digital Ocean.
    Где Apache mpm-prefork + mod_php
    Ответ написан
    Комментировать
  • Что такое инверсия зависимостей в python?

    Ranc58
    @Ranc58
    Backend python developer
    По сути - как и везде. Пример- У бизнесс логики не должно быть зависимостей от конкретных реализаций. Сегодня у вас все хранится в постгрес а завтра в монге. Инверсия зависимостей позволяет более менее безболезненно совершить такой переезд, так как слой бизнесс логики понятия не имеет где вы храните данные. Ниже накидал грубый но вроде понятный кусок кода. Есть некая сущность блог, к которой можно добавлять пользователей и смотреть их. Блог должен откуда то тянуть данные и где то хранить их. Мы создаем некий интерфейс DBInterface ,который имеет стандартные методы добавить/удалить данные. Далее создаем класс SQLdb который реализует этот интерфейс.

    В самом классе блога мы реализуем функции получения/добавления пользователей без привязки к конкретной системе хранения: просто создаем экземпляр класса SQLdb и экземпляр класса Blog , передавая туда sqldb. Когда мы захотим переехать на монгу - нам не надо будет трогать класс блога. Мы всего лишь реализуем класс Mongodb для новой базы и будем опрокидывать его в блог вместо sqldb. Итог - блог не зависит от системы хранения вообще.
    Пример сильно упрощен и утрирован, но для понимания как оно работает думаю сойдет)

    from abc import ABC, abstractmethod
    import random
    
    
    class DBInterface(ABC):
    
        @abstractmethod
        def insert(self, data):
            pass
    
        @abstractmethod
        def get(self, id):
            pass
    
    
    class SQLdb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mysql")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mysql")
            return {'id': id, "data": "some_data"}
    
    
    class Mongodb(DBInterface):
    
        def insert(self, data):
            print(f"inserted {data} from mongo")
            return random.randint(0, 100)
    
        def get(self, id):
            print(f"get user {id} data from mongo")
            return {'id': id, "data": "some_data"}
    
    
    class Blog:
    
        def __init__(self, db, blog_id):
            self.db = db
            self.blog_id = blog_id
    
        def add_user(self, name):
            self.db.insert(name)
    
        def get_users(self):
            return self.db.get(self.blog_id)
    
    
    if __name__ == '__main__':
        sql_db = SQLdb()
        mongo_db = Mongodb()
    
        blog_with_sql = Blog(db=sql_db, blog_id=1)
        blog_with_sql.add_user("test") # Выведет inserted test from mysql
    
        blog_with_mongo = Blog(db=mongo_db, blog_id=1)
        blog_with_mongo.add_user("test") # Выведет inserted test from mongo
    Ответ написан
    2 комментария