• Как найти толщину рамки в изображении?

    15432
    @15432
    Системный программист ^_^
    в своих проектах я каждую границу отдельно находил. у вас к тому же не учитывается вариант, что только один пиксель в строке будет border_color, а вы посчитаете эту строку за рамку. Нужно проверять, что все пиксели в конкретной строке имеют border_color

    #find left border
    left_border = width - 1
    for i in range(0, width):
        border_ended = False
        for j in range(0, height): #we must ensure all pixels on this column have border_color
            if not np.array_equal(img[i,j], border_color):
                border_ended = True
                left_border = i
                break
        if border_ended:
            break
                
    #find right border. same, but reversed, from right to left
    right_border = 0
    for i in reversed(range(0, width)):
        border_ended = False
        for j in range(0, height):
            if not np.array_equal(img[i,j], border_color):
                border_ended = True
                right_border = i
                break
        if border_ended:
            break
            
    #top border
    top_border = height-1
    for j in range(0, height):
        border_ended = False
        for i in range(0, width):
            if not np.array_equal(img[i,j], border_color):
                border_ended = True
                top_border = j
                break
        if border_ended:
            break
            
    #bottom border
    bottom_border = height-1
    for j in reversed(range(0, height)):
        border_ended = False
        for i in range(0, width):
            if not np.array_equal(img[i,j], border_color):
                border_ended = True
                bottom_border = j
                break
        if border_ended:
            break
    Ответ написан
    Комментировать
  • Список в списке --> список?

    aRegius
    @aRegius
    Python Enthusiast
    >>> from collections import Iterable
    >>> def flatten(items):
    	      for x in items:
    		        if isinstance(x, Iterable):
    			            yield from flatten(x)
    		        else:
    			            yield x
    
    >>> a = [1, 2, 3, [4, 5, 6], 7, 8]
    >>> list(flatten(a))
    [1, 2, 3, 4, 5, 6, 7, 8]
    Ответ написан
    Комментировать
  • Как спарсить фотографии со стены ВКонтакте?

    Ahen
    @Ahen
    Универсальный дилетант
    Ответ написан
    Комментировать
  • Как настроить редактор Geany для Python?

    @AVKor
    Правка -> Настройки -> Терминал -> Пометить "Выполнять программы в терминале" и (не обязательно) "Не использовать скрипт для запуска".
    Ответ написан
    Комментировать
  • Вопрос по словарям Python?

    @javedimka
    Хочу сока
    from collections import defaultdict
    
    
    s = {'Которая часто': 6, 'чулане хранится': 7, 'Который построил': 8, 'Который бранится': 2, 'хвоста Который': 4}
    
    def sum_update(d):
        updated = defaultdict(int)
        for k, v in d.items():
            updated[k.split()[0]] += v
        return dict(updated)
        
    
    sum_update(s)
    
    # {'Которая': 6, 'Который': 10, 'хвоста': 4, 'чулане': 7}


    Более логичный (значения словаря - счетчики = Counter) способ по наводке от longclaps:
    from collections import Counter
    
    
    def sum_update(d):
        updated = Counter()
        for k, v in d.items():
            updated[k.split()[0]] += v
        return dict(updated)
    Ответ написан
    3 комментария
  • Как итерировать по биграммам?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    Не знаю почему, но вывод print(list(bigrams)) ломает выполнение for, если закомментить, то цикл нормально отработает, но можно ещё как то так:
    lst= list(bigrams)
    print(lst)
    bigrams=iter(lst)
    Ответ написан
    1 комментарий
  • Как, найдя значения в одном списке, сосчитать количество тех же самых значений во втором?

    from collections import Counter
    
    lst1 = ["a", "b", "c"]
    lst2 = ["d", "a" "d", "e", "a", "f", "a", "d", "b", "b", "c", "a", "b", "k", "e", "a", "c", "c", "b"]
    
    counter = Counter(lst2)
    for key in lst1:
        print(f'{key}: {counter[key]}')
    Ответ написан
    1 комментарий
  • Почему не работает этот код?

    lxsmkv
    @lxsmkv
    Test automation engineer
    если первый знак из symbols не встречается в строке ввода, возвращается 0.
    для наглядности:
    entered = str(input('Enter the string: '))
    
    def check_spec_characters(inp):
        symbols = "[ ~`!@#$%^&*()_-+={}[]:>;',</?*-+ ]"
        for symbol in symbols:
            print (symbol+" in "+inp+" = "+ str((symbol in inp)))   
    
    print (check_spec_characters(entered))

    вывод:

    Enter the string: abc*dfe+gh[`
    [ in abc*dfe+gh[` = True
    in abc*dfe+gh[` = False
    ~ in abc*dfe+gh[` = False
    ` in abc*dfe+gh[` = True
    ! in abc*dfe+gh[` = False
    @ in abc*dfe+gh[` = False
    # in abc*dfe+gh[` = False
    $ in abc*dfe+gh[` = False
    % in abc*dfe+gh[` = False
    ^ in abc*dfe+gh[` = False
    & in abc*dfe+gh[` = False
    * in abc*dfe+gh[` = True
    ( in abc*dfe+gh[` = False
    ) in abc*dfe+gh[` = False
    _ in abc*dfe+gh[` = False
    - in abc*dfe+gh[` = False
    + in abc*dfe+gh[` = True
    = in abc*dfe+gh[` = False
    { in abc*dfe+gh[` = False
    } in abc*dfe+gh[` = False
    [ in abc*dfe+gh[` = True
    ] in abc*dfe+gh[` = False
    : in abc*dfe+gh[` = False
    > in abc*dfe+gh[` = False
    ; in abc*dfe+gh[` = False
    ' in abc*dfe+gh[` = False
    , in abc*dfe+gh[` = False
    < in abc*dfe+gh[` = False
    / in abc*dfe+gh[` = False
    ? in abc*dfe+gh[` = False
    * in abc*dfe+gh[` = True
    - in abc*dfe+gh[` = False
    + in abc*dfe+gh[` = True
    in abc*dfe+gh[` = False
    ] in abc*dfe+gh[` = False
    None
    Ответ написан
    Комментировать
  • Почему не работает этот код?

    longclaps
    @longclaps
    Потому что выход из функции происходит на первой же итерации, с результатом по проверке первой буквы.
    char_is_special = frozenset("[ ~`!@#$%^&*()_-+={}[]:>;',</?*-+ ]").__contains__
    
    def str_has_special(s):
        return any(map(char_is_special, s))
    
    print(char_is_special("a"), char_is_special("?"))
    print(str_has_special("abc"), str_has_special("abc?"))
    Ответ написан
    Комментировать
  • Книги для понимания сути математических дисциплин?

    KirillFormado
    @KirillFormado
    "Что такое математика?" Рихард Курант и Роббинс, Герберт
    Ответ написан
    Комментировать
  • Как снизить потери концентрации внимания?

    @red-barbarian
    1. отдыхать. Т.е. высыпаться, гулять на свежем воздухе, делать простую работу полностью и с увлечением. (на словах очень просто, на деле сложно)
    2. планировать свою учебу и чтение. Т.е. определить сколько время читаем или учимся. когда будет отдых. и т.д.
    3. вероятно главный принцип эффективной учебы/чтения это пересмотр. почитали некую часть, отвернулись, вспомнили основные моменты. обдумали. Представили что кому-то объясняем эту тему. Ум должен увлекаться, прилипать к теме.
    4. Планировать свои дела. Ум не должен быть нагружен работой по определению, что делать через минуту, как делать, где. и тд. постоянные такие вопросы просто его выматывают. И на нормальную умственную работу уже нет ментальных сил. Лучше уделить пол часа и запланировать на весь день. Даже если что-то пойдет не по плану.
    5. Знать цель. Т.е. сознавать мотивацию. Для чего читаем, что хотим и т.д. Концентрацию в Индии примерно описывали так " представь что ты несешь чашу полную воды. Через площадь на которой толпа людей участвует в празднике. Крики шум и т.п. За тобой идет человек с топором. Если ты прольешь хотя бы каплю, то человек сразу отрубит тебе голову." Если приблизить к нашей жизни, то Зачем читать? Что будет если вникнуть в тему? Что будет если не изучить тему? Что будет если постоянно отвлекаться на соцсети и проч. Через неделю, год, десять лет.
    еще советы: посмотреть Максима Дорофеева. Проблема современного человека не в том, что ему не хватает внимания, концентрации, энергии и проч. Проблема в том что он тратит внимание впустую. поверхностно. не вникая. Можно сказать он переконцентрирован, измотан концентрацией на совсем не нужных вещах.
    Из медитации, посоветую випассану.
    Ответ написан
    Комментировать
  • Современные аналоги клавиатуры IBM Model M?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Сайт конторы, купившей один из заводов - изготовителей оригинальных клавиатур.
    Ответ написан
    Комментировать
  • Как снизить потери концентрации внимания?

    tamerlan676
    @tamerlan676
    Развиваюсь в интернет-торговле
    Я бы посоветовал вам использовать технику помидорки. Это поверхностное решение проблемы.
    Ну а если хотите глуже изучить эту проблему и ее решение то вам в помощь книга "Практики повышенного сознания" Дарио Салас
    Ответ написан
    Комментировать
  • Как снизить потери концентрации внимания?

    @estj
    prepodavatel Vuza po background programming
    начните с чтения худ литературы, лучше классики, заставляйте себя перечитывать отдельные места,
    размышляйте над фишками стиля либо сюжета.... (учиться всегда тяжело!)...Тот случай, когда "клиповое мышление"
    не помогает....
    Ответ написан
    Комментировать
  • Как снизить потери концентрации внимания?

    Griboks
    @Griboks
    Человек может постоянно концентрировать внимание в среднем около 15 минут. Наибольшая продуктивность и концентрация достигается с утра за первые 3 рабочих часа.
    Ну а также необходимо уметь выделять из текста необходимую информацию, а не тупо его читать. На этом основаны техники быстрого чтения.
    Ответ написан
    Комментировать
  • Как снизить потери концентрации внимания?

    vitali1995
    @vitali1995
    Медитация 5-15 минут в день. Концентрация внимания на область лба, граничащую с переносицей. Этот трюк подгоняет кровь к той части префронтальной коры, которая отвечает за внимание и волю, что способствует её развитию. Оказывается, никакой мистики :)
    Ответ написан
    Комментировать
  • Оптимальная ОС для Macbook white (2010)?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    У меня что-то OSX Sierra так и не поставилось на MacBook White 2010 :-( Остался на 10.11.x
    Но у меня в нем правда 8 гиг памяти :-)
    Все работает нормально, даже параллелс на нем пускаю.
    Ответ написан
    2 комментария
  • Как отключить щелчок при касании?

    icCE
    @icCE
    youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
    Не готов ответить , что точно так. Вам надо будет попробовать.

    щелчок при касании на ENG это

    Buttonless touchpads aka ClickPads

    Достаточно в консоли набрать
    /usr/bin/synclient MaxTapTime=0

    если сработает, то сделайте скрипт и поставе его в автозагрузку в
    ~/.config/lxsession/Lubuntu/autostart

    Вот тут более подробно

    www.linuxrussia.com/touchpad-settings-ubuntu.html
    Ответ написан
    Комментировать
  • Какую придумать тему для диплома магистра?

    @Dum_spiro_spero
    У меня сейчас два будущих магистра и если они сами будут придумывать себе темы - то это будет что-то.
    Работу же не в вакууме будешь делать.
    Приходишь на кафедру/в лабораторию к наиболее интересному преподавателю/научному сотруднику и говоришь - здрассте - хочу у вас работу делать - какие темы есть для магистра.
    Преподаватель чешет в затылке и говорит - ну вот у нас есть такие задачи - ля-ля-ля... Или говорит - у меня перебор студентов - иди как ты к %TEACHER'S NAME%.
    Так делается в нормальных ВУЗах.
    Ответ написан
    Комментировать
  • Насколько легко трудоустроиться программисту в 40+, 50+ итд лет?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Трудно - и с каждым годом будет все сложнее и хуже. С каждым годом растет объем пула "минимально-необходимых для программиста компетенций" . Каждый год появляются какие-то новые фреймворки, инструменты, фишки - которые по идее должны облегчать и упрощать разработку - но на деле вырастают непреодолимой стеной между тобой и "реальным миром веб-разработки". Потому что ты стареешь, а технологии молодеют.

    Я бы картинку нарисовал, но там очень уж нецензурный вид получается ;-)

    И "впихнуть" в себя все новые технологии ну не получается никак - ты или распыляешься и все знаешь по верхам... или идешь вглубь темы. Но тогда приходится откладывать новые технологии в сторону, потому что на них тупо не хватает времени и/или сил. В молодости - времени. Позже - сил.

    Уже сейчас чтобы тебя считали верстальщиком/программистом/фронтэндером/бэкэндером - надо знать в 2 раза больше технологий, чем 2 года назад. Этакий Закон Мура наоборот. Да вы сами просто посмотрите эти списки "компетенций"!

    Читаешь список требований к "Web-программистам" и видишь, что месяц за месяцем, год за годом HR-ы и те, кто там им задачи ставит, вписывают в требования все больше умных словечек, которые они сами услышали и не понимают, зачем оно им нужно и нужно ли? Все ближе и ближе ситуация подходит к "Если бы водителей принимали на работу как програм.... В 2010 году это была "шутка юмора". Сейчас это уже почти реальность.

    Пример хотите?

    Одна государственная организация выставила список требований к "веб-программисту". При зарплате в 35000 рублей он должен уметь чуть ли не МКС программировать и чуть ли не кластера из сотен серверов настраивать. А на деле основной задачей человека будет - таскать проекторы из аудитории в аудиторию, чистить мышки студентам, переставлять winxp и изредка, раз в полгода - добавлять статью на сайт гос.организации. Откуда информация? Связался с человеком, которому 45, который в этой организации работает уже 18 лет. Ему стаж капает, а деньги он зарабатывает совсем в другом месте.


    Что уж говорить об организациях коммерческих? Особенно тех, для которых веб-программист - и чтец, и жнец, и на дуде игрец?

    Но это все лирика и крик души. Извините.

    И да, к 35-40-45 годам по мнению "молодых и амбициозных IT-специалистов" ты должен обладать строго определенным списком компетенций как в профессии, так и по жизни (к примеру, я столнулся с отказом в приеме на позицию программиста потому что у меня нет... автомобиля. Зачем программисту автомобиль? Ну там сложная и длинная логическая цепочка, сводящася к "раз у тебя нет автомобиля - ты лох, а лохи нам не нужны").
    Мне кажется, проблема в том числе и в том, что подавляющее большинство этих самых "молодых и амбициозных" специалистов совершенно не думают о своем будущем. Нет, я не про то будущее, которое "куда я пойду, когда закончу вот этот крутой проект". Я о реальности. В их понимании 35 лет - это недостижимо далёкое будущее, а до 50 они не доживут (а если и доживут - то в мечтах тимлидами в гугле).

    Соответственно "молодые и амбициозные специалисты" с презрением смотрят на людей, которые отдали 15 лет разработке определенной платформы, платформы, которую сейчас тщится заменить какой-то пул новых технологий. По их мнению - все что старше 5 лет - ненужное устаревшее говно мамонта. А те, кто не знают появившуюся полгода назад технологию - отставшие от жизни ламеры.
    Also, Эффект Даннинга—Крюгера тут работает в полную силу.

    Резюмирую: трудно, если у тебя нет в резюме стапятисот сделанных проектов. И чем дальше - тем сложнее и труднее будет. Но тебе может повезти - если ты компетентный специалист в узкой области (даже если она 'legacy'). Или ты можешь найти синекуру - гос.организацию, в которой ты присоединишься к когорте таких же скинутых с паровоза прогресса "молодыми и амбициозными". Не переживай, через 20 лет скинут их. А ты останешься.

    Вот только кушать хочется сейчас. Хотя бы просто хлебушка.
    Ответ написан
    23 комментария