Задать вопрос
  • Чем отличаются директивы root и alias в nginx "на пальцах"?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Не совсем.
    Делают они одно и то же только для location /.

    Если у вас, например, location /img, то при
    root /var/www ссылка /img/1,jpg будет вести в файл /var/www/img/1.jpg

    а при alias /var/www та же ссылка будет вести в /var/www/1.jpg.
    Ответ написан
    2 комментария
  • Как безболезненно перейти из офиса на удаленку?

    @immaculate
    Программист-путешественник
    Если вы хотите переезжать и одновременно искать работу или работать, то это будет сложно. Я бы рекомендовал следующие варианты:
    1) начать работать удаленно там, где находитесь, набить руку, выработать привычку, потом ехать в теплые края
    2) создать подушку безопасности, которую хватит на 3 месяца жизни там, где вы хотите попробовать жить, ехать, искать работу

    Второй вариант мне кажется более рискованным. Если вы не привыкли работать удаленно, то поначалу вас любая мелочь будет сбивать с рабочего настроя. Здесь новые друзья, здесь проблемы с интернетом, хочется спать, хочется есть, хочется погулять. До 23.00 будет казаться, что можно немного отдохнуть и еще остается время поработать. В 23.00 уже закрываются глаза и переносишь работу на следующий день.
    Ответ написан
    Комментировать
  • Как безболезненно перейти из офиса на удаленку?

    badprogrammist
    @badprogrammist
    Senior java developer
    Из моей практики на python мне понадобились знания:
    1. написания юнит тестов
    2. написание интеграционных тестов
    3. работа с redis, postgresql
    4. параллельные вычисления (gevent)
    5. email
    5. куча всяких других библиотек, начиная от работы со слаком, до телеграмма (опционально)
    Ответ написан
    3 комментария
  • Как безболезненно перейти из офиса на удаленку?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Важным элементом — с офисом нужно часто проводить скайп-видео трансляции, максимально часто... нужно быть с командой или бизнесом, иначе вы конечно будете работать, если есть дисциплина, но все больше не над этими проектами, а над своими... это как гравитация — работает очень медленно, но верно

    по скилам — да, работайте с тестами, работайте над архитектурными навыками, ну вы и так знаете, в чем слабы... тесты конечно сейчас и от джунов требуют, а вообще границы очень субъективны, разраб? разраб... ну и все, работайте над навыками и задачами
    Ответ написан
    Комментировать
  • Как элегантно решить задачу поочередного вывода списков на python?

    @Xymis
    Вы уверены, что вам нужен вывод именно в таком виде? Он менее упорядочен в сравнении с банальным перебором, сложнее в реализации и создает большую нагрузку. Так или иначе:
    values = [len(x) for x in list(d.values())]
    for index in range(max(values)):
        for key in d.keys():
            try:
                print("{} : {}".format(key,d[key][index]))
            except IndexError:
                continue
    Ответ написан
    5 комментариев
  • Какую Ubuntu накатить на новый диск?

    @pfg21
    ex-турист
    17.10 ставь, прощее будет с обновлением на 18.04
    Ответ написан
    Комментировать
  • Как наиболее точно сравнить две строки?

    adugin
    @adugin Куратор тега Python
    Пример решения с использованием стандартной библиотеки difflib:
    from difflib import get_close_matches as gcm
    
    model = 'A 170 Classic - 7/2004 - 85Kw'.upper()
    model_list = map(str.upper, [
        'A 170 CDI CAT ELEGANCE',
        'A 170 CDI CAT CLASSIC',
        'A 170 CDI CAT AVANTGARDE',
    ])
    
    result = gcm(model, model_list, n=1, cutoff=0.5)[0]
    
    print(result)  # => 'A 170 CDI CAT CLASSIC'

    Также посмотрите в сторону difflib.SequenceMatcher().ratio(), это имеет прямое отношение к cutoff в примере выше:
    from difflib import SequenceMatcher as SM
    
    s1 = 'A 170 Classic - 7/2004 - 85Kw'.upper()
    s2 = 'A 170 CDI CAT CLASSIC'.upper()
    
    SM(isjunk=None, a=s1, b=s2, autojunk=True).ratio()  # => 0.52

    Теория: Расстояние Левенштейна
    Ответ написан
    3 комментария
  • Как использовать mozjpeg?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    README.md, он же отображается если пролистать страницу до самого низа.

    It's compatible with libjpeg API and ABI, and can be used as a drop-in replacement for libjpeg.

    We include a demo cjpeg tool, but it's not intended for serious use. We encourage authors of graphics programs to use MozJPEG's C API instead.

    Учитесь читать.
    Ответ написан
    Комментировать
  • Куда и как сохранять части кода?

    Используй git и хости где-нибудь (можно хостить как и проект, так и просто кусок кода) :
    https://github.com/
    https://bitbucket.org/
    https://about.gitlab.com/


    руку на бьешь на работу с гитом.

    Если просто кусок кода, то можно: gist.github.com
    Ответ написан
    Комментировать
  • Почему нерабочая камера выжаёт именно зелёную картинку?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    We are animals.
    Да все просто - зеленых пикселей раза в 2 больше, чем остальных! А почему? Особенность зрения приматов :-)
    Для самообразования - www.cambridgeincolour.com/ru/tutorials-ru/camera-s...
    Ответ написан
    Комментировать
  • Как из MBR записи получить размер раздела?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Давайте запишем не словами, а байтами:
    00000000: 00 20 21 00 83 1e 2b 33 00 08 00 00 00 80 0c 00
    0x00: 00 - не загрузочный раздел
    0x01: 20 21 00 - CHS первого сектора: головка 32, сектор 33, цилиндр 0
    0x04: 83 - тип раздела: Linux
    0x05: 1e 2b 33 - CHS последнего сектора: головка 30, сектор 43, цилиндр 51
    0x08: 00 08 00 00 - LBA первого сектора: 0x00000800
    0x0C: 00 80 0c 00 - количество секторов: 0x000C8000 = 819200
    Последнее значение умножаем на 512 (размер сектора)
    819200 * 512 = 419430400 = 409600 KiB = 400 MiB
    Ответ написан
    Комментировать
  • Как записать путь ключей в словере python?

    @Darkzenon Автор вопроса
    Нагуглил ))

    import operator
    from functools import reduce

    path = ('folder','attrs','music','a')
    value = reduce(operator.getitem, path , JsonData)
    Ответ написан
    Комментировать
  • Почему не могу запарсить яндекс-переводчик?

    @Eugen_p
    У яндекса для этих целей есть api. И да, вы серьезно думаете, что яндекс позволит ботам просто так парсить их сайты?
    Ответ написан
    3 комментария
  • Как отучиться использовать мышь?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Конкретно в IDEA - Key Promoter. Это плагин, который показывает бесящие подсказки каждый раз, когда ты делаешь действие, на которое есть хоткей, мышкой.
    Ответ написан
    1 комментарий
  • Какой алгоритм подойдет для описания полета насекомого?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Можно сделать цепочку преследования: к случайной точке тянется одна, к ней другая, и т.д., а последняя – муха.

    Очередную точку ставить на плоскости случайно, в любом месте внутри допустимой области. Эта точка – цель, к которой стремится следующая, невидимая точка: каждый следующий кадр её координаты изменяются на k * векторИзТекущегоПоложения-в-Цель:
    x = x + k * (xTarget - x);
    y = y + k * (yTarget - y);

    Так «преследователь» замедляется, по мере приближения к цели, никогда её не достигая.

    Эта невидимая точка – не одна. К ней, как к цели, стремится следующая. К той ещё одна. Наконец, сама муха по этому закону стремится к хвосту этой цепи - очередной точке.

    Чем больше звеньев в такой цепи, тем плавнее получается кривая. При приближении мухи к цели ближе, чем на D, генерится следующая случайная цель.

    Сделал рабочий пример.

    Можно поменять алгоритм и сделать, скажем, линейную скорость постоянной. Или случайно варьировать параметры k и D – от этого поменяется скорость и траектория от плавной ближе к ломаной.
    Ответ написан
    Комментировать
  • Почему не так работают условая?

    fornit1917
    @fornit1917
    пхп разбирает выражение следующим образом:

    (true ? 1 : false) ? 2 : 3;

    Если то что в скобках истинно, то будет 2, иначе 3.

    Разбираемся с тем что в скобках: true ? 1 : false. Очевидно, что это 1. 1 в пхп трактуется как истина. Поэтому получаем 2. Что же тут непонятного?

    В яваскрипте приоритет операций выставляется иначе:
    true ? 1 : (false ? 2 : 3);

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

    @crazyh
    1. С каких-то пор принципиально перестал кастомизировать среды, ну или делать это очень осторожно и в самом крайнем случае. Просто потому, что тогда, когда появилось много рабочих машин - стало слишком затратно это делать (либо не делать и страдать от штатных настроек), стало сложно понять, что сломалось после обновления - твоя необычная кастомизация или это проблема в мейнстриме. А так, Bash или Ansible немного спасают.
    Ответ написан
    Комментировать
  • Ставить ли линукс на слабый пк и какой?

    ssadfaf
    @ssadfaf
    aa
    Присоединяюсь к вышестоящим ораторам: Дебиан с Xfce - лучший выбор. При этом вы можете установить последнюю версию ОС, которая будет запускать любой, самый свежий браузер.

    Вы не написали важный параметр - количество оперативки. Но он не критичен для Линукса, он критичен для браузера. Если ваша работа в сети требует, например, последнего Хрома, то чудес не ждите, внутри вебморды в Хроме особого ускорения не будет. Если же особых требований нет, то можете попробовать браузеры полегче - Midori, например. По сравнению с Хромом или ФФ будет летать. Надо будет потратить лишь немного времени, чтобы его настроить и разобраться с управлением.

    Главное: чтобы работа не страдала на переходный период, вы можете не сносить Винду, а поставить Дебиан второй системой. Для этого вам надо будет разобраться с тем, как сделать отдельный раздел на диске, после чего всё будет достаточно просто. Установщик Дебиан сам разберётся, какие у вас уже установлены операционки и создаст меню загрузчика. При загрузке ноута вы сможете выбирать, в какую ОС грузиться. Когда освоитесь с Дебиан и убедитесь, что вся ваша работа там может быть выполнена, можете снести Винду окончательно. А на высвободившееся место можете поставить ещё один Дебиан, но уже более осознанно - с выделенными разделами под своп, рут, хоум и т.п., а также с тем минимальным набором программ, которые вам действительно необходимы. Таким образом, у вас всегда будет резервная операционка на вашем ноуте.
    Ответ написан
    3 комментария