Задать вопрос
  • Как именно устроены session и cookies?

    @deliro
    1. Нет никакой синхронизации. Сервер может только указать клиенту, что ему нужно установить куку X в значение Y хэдером Set-Cookie и считать с пришедшего на сервер запроса куки (все куки отправляются в каждом запросе на сервер).
    2. Сессии могут храниться на клиенте (signed cookie session). При этом используется подпись куки с помощью HMAC, чтобы данные сессии не могли быть свободно изменены клиентом. Но обычно сессии хранятся на сервере. Тут выбор огромный: от баз данных и key-value хранилищ (Redis, например) до простых файлов. При этом, клиенту посылается кука ID сессии (так сервер идентифицирует юзера), которую злоумышленник может стащить. Таким кукам, дабы защитить юзеров от XSS, ставится флаг HttpOnly, который советует браузеру не давать эту куку скриптам вроде JS. В этом случае, стащить куку получится только завладев браузером, файловой системой юзера или через багу браузера.
    3. Смотри второй ответ. В некоторых случаях - да. Но редко.
    4. Можно передавать значение session id в строке URL (GET - параметром), вроде такого: example.com/some/page/?session_id=2af26905dcf31a1d... Некоторые сервисы используют это, как fallback вариант, однако, он очень небезопасен, т.к. любой XSS или простой безобидный JS вроде Яндекс.Метрика видит весь URL. Так что, посылаем юзера включать куки.
    Ответ написан
    4 комментария
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

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

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Programmer dvorak, Colemak?

    liveor
    @liveor
    Дважды пытался переучиться на Дворак для программистов. И оба раза неудачно. Когда дошел до уровня, при котором получалось медленно набирать без опечаток не глядя на клавиатуру, проблема с хоткеями начала очень сильно раздражать. При русской раскладке они там где привычно, а на двораке — разбросаны по клавиатуре в разных местах.

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

    В общем, если много программируете и часто нажимаете "-" вместо "=" и "{" вместо "}", попробуйте.

    Colemak — на мой взгляд ни рыба ни мясо. Дворак для программистов привлек удобством набора скобочек обычных и фигурных. В Colemak они там же где и на qwerty. Не вижу сильно много смысла его учить. Ну разве что если приходится печатать очень много и очень быстро — при действительно большой нагрузке появится преимущество над qwerty в виду того, что нагрузка на все пальцы более равномерна.

    Если таки надумаете переходить, вот ссылка на онлайн-тренажер, поддерживающий раскладку Dvorak for programmers: klava.org. На первых порах это будет удобнее чем использование другого тренажера и экранной клавиатуры, потому что на экранной клавиатуре нет выделения только что нажатой кнопки (казалось бы, не очень то и надо, ан нет, гораздо удобнее).

    Про vim сказать ничего определенного не могу в силу того, что для меня он «имеет два режима — бибикать и все портить». Как и для остальных программ — хоткеи придется переучивать.
    Ответ написан
    Комментировать
  • Как получить заказы по web scraping и какие навыки улучшить?

    @rebovetew
    Идея повышения заработка проста:
    Задачи по скрапингу - очень часто простые типовые.
    Берёшь такую задачу - добавляешь пару строк в свое уже готовое типовое решение, и продаешь клиенту.
    Но квалификацию это не добавляет.
    Однако экономически очень приятно.
    Если ты уверен, что можешь решить задачу - твой ценник должен быть не меньше 20 долларов в час.
    При этом час ты можешь увеличивать за счет того, что будешь вылизывать своё уже готовое решение.

    Но для роста квалификации задача должна быть не типовая.
    Однако реализовывать ты будешь её крайне долго.
    Экономически это не выгодно.
    Я бы не ставил менее 15 долларов за час.
    Но тут в часу придется поработать побольше.

    Разумеется я не говорю о ручном скрапинге.
    Говорю об автоматизированном. И умении с этой автоматизацией работать.
    Ответ написан
    1 комментарий
  • База данных городов России на русском языке с их геокоординатами

    @chersanya
    download.geonames.org/export/dump/ — огромные базы по всем странам, названия на куче языков. Данные представлены в виде реляционных таблиц, путём соответствующих join'ов можно получить почти всё, что угодно.
    Ответ написан
    Комментировать
  • Математика для азартных игр?

    oxyberg
    @oxyberg
    Продуктовый дизайнер ВКонтакте
    1. Классический матанализ (вузовский). База для всех следующих дисциплин.
    2. Комбинаторика. База для теории вероятности.
    3. Теория вероятности. Прямо база для азартных игр.
    4. Теория графов. Понадобится в теории игр, необязательно изучать углубленно.
    5. Теория игр. Прекрасные лекции есть у Савватеева.
    Ответ написан
    2 комментария
  • Берут ли $30 за вывод средств с Upwork на карту Сбербанка?

    @Dobermann Автор вопроса
    Дизайнер
    В общем в первый раз я отправил деньги с помощью Direct to local bank на карту Momentum заведенную в Сбербанке. Деньги были отправлены 11 числа и до сих пор не пришли на карту. Так же у меня была именная карта в том же банке. В субботу я решил что возможно задержки в оплате связаны с тем, что карта не именная и решил вывести еще часть средств. В воскресенье, Upwork подтвердил платеж и сегодня утром деньги уже оказались на счету. Вот письмо в котором говорится о том, что деньги поступят с 16 по 18 число:

    c1a5b2a78b1d4ba886a88e592e410bc1.png

    А вот они уже поступили рано утром:

    905842324d404c76ba099f137dcddfd6.png

    Как видно из скриншотов, комиссий не сняли, но курс на тот момент отличался от центробанка за 15.07 на 2,6598. То есть примерно 124 рубля. Учитывая что Upwork берет за вывод $0,99 то получается переплата в общем составляет примерно 182 рубля что порядка $3 по курсу Upwork за вывод $48 (примерно 6,5%). Способ рабочий, никаких санкций или чего-то подобного нету. Для небольших переводов считаю оправданным вывод подобным образом, на больших же суммах нужно считать разницу в курсе и комиссию, что будет выгоднее.
    Ответ написан
    Комментировать
  • Как вы программируете используя слепой набор?

    ignat_one
    @ignat_one
    web-developer
    Пользуюсь слепым набором уже 5 месяцев, тренировался на vse10.ru (лучшее из того, что я пробовал), использую qwerty-раскладку, на русской сейчас порядка 300 символов в минуту набираю, на латинской порядка 200. Использую все 10 пальцев, дико удобно, всем советую. По поводу навигации: я использую Vintage Mode в SublimeText, который эмулирует Vim. Две недели привыкания и скорость навигации по коду увеличилась довольно сильно. При наборе всяких (), {}, =>, [], $, ! так же на клавиатуру не смотрю, пальцы сами привыкли недели через две.

    По теме советую вот эти видосы посмотреть:
    Как освоить слепой набор?
    Sublime Text Vintage Mode
    Ответ написан
    1 комментарий
  • Не открывается новая вкладка в Chrome, Selenium + Python 3.4?

    @PhilAT
    Вот рабочий вариант:
    # Открыть новую пустую вкладку
    driver.execute_script("window.open('','_blank');")
    # переключиться на новую вкладку (с индексом 1)
    driver.switch_to.window(driver.window_handles[1])
    
    # если необходимо
    # вернуться на предыдущую вкладку (с индексом 0)
    driver.switch_to.window(driver.window_handles[0])
    Ответ написан
    Комментировать
  • Каков путь развития разработчика, с/с++/python?

    AgentProvocateur
    @AgentProvocateur
    Советую хорошо подумать, правильно ли выбрал сферу деятельности для кардинальных перемен. В it 26 лет - это уже внушительный возраст для входа, кто бы что ни говорил. Не слушай студентов на тостере и онлайн-коучеров, а для начала посмотри такое мнение и такое (и другие ролики). Если ты не ссышься кипятком от вида кода, и не вскакиваешь в 5 утра, чтобы быстрее сесть программировать, то минусов в этой деятельности может оказаться куда больше, чем плюсов. Ну и вообще, чтобы сбить флёр романтики тыц и тыц.

    Стоит отметить, что в ближайшие 10 лет возникнет переизбыток "айтишнеков" и острый дефицит инженерных/рабочих кадров. Соответственно, с первыми произойдет то же, что и с бухгалтерами/юристами/экономистами/риелторами, а вторые будут нарасхват и высокооплачиваемыми. Инженеры советской закалки уйдут, а техносфера никуда не денется, и станет куда более горячей сферой, чем сайтики и мобильные приложухи.

    Если охота не отбилась, то нужно определиться со сферой - энтерпрайз (c#, java), мобайл (java, swift, kotlin и т.д.), web-разработка (а там либо фронтенд - html, css, туча js-фреймворков, либо бэкенд - php, python, ruby, node.js и также туча фреймворков). А может и вовсе администрирование серверов, devops, big data, машинное обучение, статистика, системная аналитика, gamedev и пр. По каждой нише свой огромный технологический стек, которого хватит на годы только изучения...потом годы вырастания из джуниора, потом годы закрепления в мидлах, а потом до свидания, потому что 25-летних синьоров на улице очередь стоит))

    От того, что ты взял первые 3 языка из топ-2017 толку мало (java куда дел тогда?). На полноценное освоение (прежде чем к полноценной работе приступать), нужно минимум 2 года потратить активного набивания шишек (и не час-полтора после работы, а с утра и до вечера). Пройди курс "основы программирования на языке X", и сразу двигайся по выбранной нише, нет смысла залипать на C/C++ если нет конкретной цели их приложить к чему-либо.

    Если тебе "для души" - то пробуй всё, на что глаз ляжет, и выбирай на практике, а не по советам с форумов. Если нужно поскорее на работу выйти, основной спрос на джуниоров идет в java, web (как правило, вёрстка, php и cms), 1С. На фрилансе главенствует web-разработка, в основном js на фронтенде и php на серверной части. Чтобы понять, за что браться, достаточно открыть хх.ру, биржи фриланса и изучить спрос.

    Но я действительно настоятельно рекомендую не вестись на моду, сказки об уютных лофтах, кофе-печеньках, огромных зарплатах и продолжать развиваться в инженерии. Меняй сферы, компании, расти до главного инженера, будут у тебя и деньги, и личная жизнь, и стабильность, и работа интересная, а не сколиоз, выжигание глаз кодом и погоня за новыми фреймворками))
    Ответ написан
    6 комментариев
  • Использование requests и кодировка полученной страницы - как исправить проблемы с русскими символами?

    Tark
    @Tark
    Pyramid'альный мир
    Если сделать
    r = requests.get('http://da.ru')
    print r.encoding

    то окажется, что кодировка там брутальная ISO-8859-1

    for y in parsed_body.xpath("//a"):
        url = y.get("href")
        anchor = y.text
        if anchor:
            print url, anchor.encode(r.encoding)

    Так всё нормально. Правда, у меня Python 2.7.3
    Ответ написан
    Комментировать
  • Как загрузить данные из json в словарь python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Воспользуйтесь модулем json

    import json
    
    #сохранить в json
    with open('data.json', 'w', encoding='utf-8') as fh: #открываем файл на запись
        fh.write(json.dumps(data, ensure_ascii=False)) #преобразовываем словарь data в unicode-строку и записываем в файл
    
    #загрузить из json
    with open('data.json', 'r', encoding='utf-8') as fh: #открываем файл на чтение
        data = json.load(fh) #загружаем из файла данные в словарь data
    Ответ написан
    8 комментариев
  • WebStorm или PhpStorm от JetBrains: в чем разница?

    ollazarev
    @ollazarev
    Web-программист
    PhpStorm = WebStorm + PHP + Database support
    (stackoverflow.com/questions/25647004/difference-be...
    Ответ написан
    Комментировать
  • Как передать аргументы в pycharm?

    Ranwise
    @Ranwise
    py_runConfigMenuSelect.png
    там справа будет окно с вкладкой Configuration
    в нем будет строка где путь к вашему скрипту и ниже Script parameters
    Ответ написан
    1 комментарий
  • WebStorm или PhpStorm от JetBrains: в чем разница?

    @slvABTOP
    WebStorm встроен в PhpStorm. Если будешь использовать php, то второй вариант однозначно.
    Ответ написан
    1 комментарий
  • WebStorm или PhpStorm от JetBrains: в чем разница?

    TekVanDo
    @TekVanDo
    Javascript Developer
    Выбирай PhpStorm, в нем практически все тоже самое что и в WebStorm + собственно поддержка php, фреймворков и некоторых cms на нем написанных.
    Ответ написан
    Комментировать
  • Какой выбрать язык для создания сайтов?

    Bandicoot
    @Bandicoot
    Вась-программист
    PHP.

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

    Ну а что касается негатива в сторону этого языка - качество кода прежде всего зависит от самого разработчика.
    Ответ написан
    Комментировать
  • Выбор между Dreamweaver и Webstorm

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Долгое время сидел на Dw, потом пересел на WebStorm, о чем не жалею ни разу. Например тут не надо каждый раз тыкать ctrl+s, все автоматически. Удобнейшая интеграция со всеми возможными системами контроля версий. Куча вариантов подсветки кода, проверки кода, в 6-ой к тому же добавили всякие LESS, SASS, CofeeScript и т.п. Так что любой верстальщик найдет в нем удобство для себя. + все настраивается. Я когда пересел на него с Dw — настроил подсветку кода точно так как в Dw и вообще безболезненно все прошло.
    Ответ написан
    Комментировать