• Как вы отлаживаете код?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    я пользовался var_dump

    Альтернативы:
    - pprint
    - repr
    - print vars(someObj)
    -
    from inspect import getmembers
    from pprint import pprint
    pprint(getmembers(someObj))
    Ответ написан
    3 комментария
  • Как правильно сменить место работы?

    petermzg
    @petermzg
    Самый лучший программист
    По Трудовому кодексу вы обязаны информировать работадателя (подать заявление) за 2 недели до увольнения.
    То что работадатель должен кого-то найти взамен это проблемы работодателя, а не ваши. И работодатель знал об этих рисках когда открывал фирму.
    Ответ написан
    Комментировать
  • Как правильно прикручивается google analytical?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Сам по себе код что гугл аналитикса, что яндекс.метрики на сайте никак не виден и никак не влияет на внешний вид.
    Ответ написан
    3 комментария
  • Как уйти с распутья технологий?

    @0x131315
    Стратегию уже подсказали: найти любую работу, чтобы кушать, и тем самым выиграть время на изучение чего-то, что поможет зарабатывать больше, и тем самым выиграть еще больше времени, и в конце концов изучить то, благодаря чему будешь работать не на зарплату, а на удовлетворение.

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

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

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

    Конкретный язык нужен кодерам - это те, кто воплощает чужие идеи в коде, т.е. конечные винтики в процессе разработки софта, исполнители. От кодеров требуется только перенести уже готовый алгоритм на требуемый язык, максимально быстро, и по возможности без ошибок.
    Изучив конкретный язык ты можешь стать кодером, но это черновая работа, и по хорошему - временная, просто ступенька на пути становления программиста. Нужно двигаться к архитектору, инженеру, непосредственно программисту в широком смысле.

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

    Также упрощает задачу стандартизация подходов к решению задач, парадигм - большинство из них уже формализованы, и описаны. Например всем известное ООП, модульное программирование, конечные автоматы, и т.п. Описано более двух десятков таких моделей, их следует по возможности освоить. И не стесняться комбинировать.

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

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

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

    Опыт нарабатывается практикой - тут нет ничего нового: просто берешь себе задачу по вкусу, и решаешь.
    Не можешь сам генерировать задачи - ищешь годный внешний генератор: форумы проблемных пользователей, имиджборды, конкурсы, аукционы программистов (это где работают фрилансеры). Также хорошо идет создание своего проекта или участие в разработке чужого - развитие любого проекта всегда порождает множество задач, которые нужно кому-то решать, а это отличный генератор.
    В общем ищешь реальных заказчиков, или берешься за незначительные заказы, или работаешь ради альтруизма, решая то, что тебя не просили - есть всякие гитхабы и багтрекеры.

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

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

    С третьим - придешь, когда поймешь, что тебе это нужно. Из-под палки не учатся.

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

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

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

    Чтобы вернуть веру в себя, нужно стать победителем. Победители всегда побеждают - в этом и суть. Необходимо начать побеждать, любой ценой: нужно брать такие задачи, которые точно сможешь решить, какими бы простыми они не были. Можешь вернуться к азам, началу, детскому уровню сложности, если потребуется - главное чтобы задачи начали решаться, не важно какие и как. Пока не уверен, что готов двигаться дальше - удерживаешь уровень, каким бы низким и зазорным он не был. Важно обмануть мозг, а не показать класс всему миру, иначе обратно утонешь.

    Сложность задачи не особо влияет на мотивацию, а вот факт решения/нерешения - влияет сильно. Не решил - значит не осилил, не осилил - значит не достоин, не достоин - значит иди ко дну и не рыпайся. Это как импотенция: импотент - значит не мужик, не мужик - значит никто, ничего не достоин и об тебя можно ноги вытирать. Подсознание портит всю малину, так что не следует давать ему шанса - лучше решить задачу попроще, чем не решить по сложнее.
    Ответ написан
    7 комментариев
  • Как отключить переадресацию языка?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Комментировать
  • Как выводить мультиязычные данные из базы?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    7 комментариев
  • Как сделать CSS :hover для всех элементов A?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Некрасивый, но рабочий код.
    ul:hover li a {
      opacity: 0.5;
    }
    
    nav ul li:hover a {
      opacity: 1;
    }
    Ответ написан
    1 комментарий
  • Как правильно получать данные из подвзяки в данном случаи?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    employees.social_link_set
    Ответ написан
    Комментировать
  • Как фиксить ошибку `failed to create symbolic link`?

    ulrich-schnauss
    @ulrich-schnauss
    Системный администратор, веб-разработчик
    Никак не фиксить. Установщик говорит, что символьная ссылка уже существует. Вы же знаете что такое символьные ссылки? :)
    Ответ написан
    3 комментария
  • Почему StackedInline не сохраняет последний элемент?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    max_num равно двум, а значит formset будет обрабатывать только две формы. Непонятно только почему интерфейс отображает три.
    Ответ написан
    5 комментариев
  • Почему StackedInline не сохраняет последний элемент?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Вы же явно указали max_num = 2
    Ответ написан
    1 комментарий
  • Как выводить ключи цикла for в template?

    @marazmiki
    Укротитель питонов
    В документации про {% for %} это есть:
    {% for v in sliders %}
      {{ forloop.counter0 }}: {{ v }} 
    {% endfor %}
    Ответ написан
    Комментировать
  • Передача данных laravel->angular?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    У тебя в sources будет строка, ясно что с ng-repeat будут проблемы.
    В types у тебя тоже ересь.
    Не нужно дёргать toJSON или формировать его вручную. просто отдай объект и массив
    return [
              'sources' => Source::where('user_id', $request->user()->id)->first(),
              'types' => [
                      ['id'=>1,  'type' => 'нал'],
                      ['id'=> 2, 'type' => 'карта']
               ] 
          ];
    Ответ написан
    Комментировать
  • Как подключить свою библиотеку к шаблону?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    Все это чудесно описано тут:
    djbook.ru/rel1.9/howto/custom-template-tags.html
    Ответ написан
    Комментировать
  • Как правильно составить регулярку?

    fox_12
    @fox_12 Куратор тега Django
    Расставляю биты, управляю заряженными частицами
    text = re.findall(r'src="(.*?)"', self.text)
    print(text)
    Ответ написан
    Комментировать
  • Правильно ли я работаю с ООП?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Небольшие замечания по коду:
    1) path = Upload.get_path(folder_name, id)
    Вы немного не так используете вызовы класса внутри его же самого. Почитайте про self:
    path = self.get_path(folder_name, id)
    2) Зачем вам столько @staticmethod? Убирайте все, кроме get_path, подставляйте везде self и читайте первое замечание.
    3) from poliv.settings. А чего не from poliv.nastroiki?
    4) get_files, return images. Читайте про yield
    5) Используйте хотя бы цифры для format, а лучше именуйте:
    """<img src="{image}" style="max-width: 250px; width:100%" class="{class}">""".format(
        image=images_path + file, class=i_class)

    И да, зачем вам тройные кавычки?
    6) Если хотите, чтобы ваш класс работал не только на вашей системе используйте os.path.join вместо +
    Ответ написан
  • Почему PIL не обрезает картинку по высоте?

    @asd111
    size = (400, 400)
    thumb = ImageOps.fit(temp, size, Image.ANTIALIAS)
    Ответ написан
    Комментировать
  • В чем ошибка при загрузки картинки?

    urtow
    @urtow
    *nix, python, QA, bagpipe, folk music
    У тебя в image строка "image", потому что ошибка в переборе словаря в цикле for:

    for image in files:
      ...


    Это 100% ошибка при работе со словарем, так как словарь возвращает пару key, value.

    Для обычного Dict цикл должен был выглядеть вот так:

    for key, image in files:
      ...


    Однако, как у тебя тут используется MultiValueDict, рекомендую обратится к документации Django, скорее всего там есть пример использования.
    Ответ написан
    1 комментарий