• Как не заплыть жиром, работая удаленно программистом?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Я уже более 2-х лет активно тренируюсь и могу поделиться опытом.

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

    Итого: чтобы потренироваться пойти в спортзал нужно заложить 3 часа времени. А если ещё график не очень гибкий, то можно и в час пик попасть, когда зал переполнен и это вызывает неудобства из-за плотного графика упражнений.

    Лучше всего ориентироваться на домашние и уличные тренировки. Плюс тут несомненный в том, что как только появилось желание подвигаться - пошёл и поделал упражнения. Ещё один: можно делать несколько тренировок в день с минимальными затратами времени.

    Главный секрет поддержания интереса к тренировкам - научиться получать удовольствие от них. Для этого нужна непринужденная атмосфера и медленное сосредоточенное выполнение.

    Есть замечательная книжка Пола Уейда "Тренировка заключенных", где очень системно описаны группы упражнений для любого уровня подготовленности и практически в любых окружающих условиях.

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

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

    Что касается питания. На мой взгляд самой прогрессивной диетой сегодня является LCHF. Суть сводится к уменьшению потребления быстрых и медленных углеводов до нуля, а калорийность обеспечивать жиром. Соответственно, белок само собой тоже нужен. Хороша она тем, что организм не ощущает каких-то лишений, голода нет. Жиры очень долго расщепляются, а без углеводов излишки будут выводиться организмом, вместо переноса в жировую ткань.
    Градации потребления пищи в зависимости от времени суток считаю профанацией. Можно разве что избегать питания тяжелой пищей менее, чем за 2 часа до сна.
    Ответ написан
    9 комментариев
  • Существуют ли сайты, где выкладываются исходники, заготовки и примеры популярных и хороших дизайнов сайтов?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Ответ написан
    Комментировать
  • Как найти удалённую практику для начинающего python программиста?

    Tiendil
    @Tiendil
    Разработчик ПО.
    Присоединяйся к разработке the-tale.org

    Все исходники открыты: https://github.com/Tiendil/the-tale

    Берёшь задачу делаешь, делаешь пул-реквест, получаешь критику, пока всё правильно не будет сделано, и код попадает в рабочий проект.

    В вики на гитхабе рассказано подробнее.
    Ответ написан
    3 комментария
  • Как всё успевать и не быть роботом?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    > Минимум 8 часов, чтобы были деньги.

    Работать нужно не 8 часов, а головой.
    Ответ написан
    11 комментариев
  • В чём польза readonly полей в C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Значения полей readonly можно менять динамически, в конструкторе класса. Последующие изменения невозможны.

    public class MyClass
    {
    
      public readonly int Value = 0;
    
      public MyClass()
      {
        this.Value = 123;
      }
    
    }


    Для чего это использовать - зависит от фантазии.

    Например, можно создать класс User и сделать readonly поле, содержащее идентификатор пользователя. Таким образом, идентификатор пользователя можно будет указать только при инициализации класса и, в последующем, изменить его будет невозможно. Это позволит избежать проблем в логике, которые еще предстоит придумать :-)

    Если сравнивать со свойствами и константами, то значения readonly свойств могут меняться в процессе жизненного цикла класса. Значения readonly полей, как уже было сказано ранее, можно указывать только при объявлении и в конструкторе класса.

    Значения констант являются фиксированными и изменять их программно невозможно. Количество типов для констант ограничено, в то время как поля могут иметь любой тип. Константы являются статическими, а поля не обязаны быть таковыми. В этом плане, readonly поля более гибкие, чем константы.

    В дополнение, немного кода (Console Application):
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Timers;
    using System.Threading;
    
    namespace ConsoleApplication20
    {
    
      class Program
      {
        static void Main(string[] args)
        {
          // создаем экземпляр класса
          var t = new Toster(199065);
          // выводим значение константы ProjectName
          // доступ только через Toster
          Console.WriteLine(Toster.ProjectName);
          // доступа к локальным константам здесь нет
          // Toster.CounterPattern
          // t.CounterPattern
    
          // выводим заголовок вопроса
          Console.WriteLine(t.Title);
    
          // бесконечность - не предел!
          while (true)
          {
            // t.Id = 123;
            // мы не можем поменять идентификатор
            // следовательно, этот код, логически, будет работать правильно
    
            // выводим число ответов
            Console.WriteLine("Ответов: {0}", t.AnswersCount);
    
            // t.AnswersCount = 123
            // мы не можем менять значение readonly свойства,
            // но оно может меняться внутри экземпляра класса
    
            // пауза 10 сек.
            Thread.Sleep(10000);
          }
        }
      }
    
      public class Toster
      {
    
        // публичная константа, доступ через Toster
        public const string ProjectName = "Тостер";
    
        // локальная константа, доступна только в рамках этого класса
        const string CounterPattern = "<span class=\"section-header__counter\" role=\"answers_counter\">";
    
        // публичные поля только для чтения
        // значение может быть установлено в конструкторе
        public readonly string Title = "Нет данных";
        public readonly int Id = 0;
        
        // свойство только для чтения
        // значение может меняться в процессе жизни экземпляра класса
        // при помощи локальной переменной
        private int _AnswersCount = 0;
        public int AnswersCount
        {
          get
          {
            return _AnswersCount;
          }
        }
    
        // это просто таймер
        private System.Timers.Timer Timer = null;
    
        // а это конструктор<s>, но не Lego</s>
        public Toster(int id)
        {
          if (id <= 0) { return; }
          
          // получаем вопрос
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", id));
          // из шаблона url тоже можно сделать константу
          // либо в классе можно сделать readonly свойство, 
          // которое будет на лету формировать итоговый адрес:
          // return String.Format("https://toster.ru/q/{0}", this.Id)
    
          // устанавливаем значения для полей
          this.Id = id;
          this.Title = WebUtility.HtmlDecode
          ( 
            result.Substring
            (
              result.IndexOf("<title>") + "<title>".Length,
              result.IndexOf("</title>") - result.IndexOf("<title>") - "<title>".Length
            )
          );
          // выдергиваем число ответов на вопрос
          this.ParseAnswersCount(result);
    
          // запускаем периодическую проверку <s>Менделеева</s>
          Timer = new System.Timers.Timer(10000);
          Timer.Elapsed += Timer_Elapsed;
        }
        
        // обработчик истечения интервала времени 
        private void Timer_Elapsed(object sender, EventArgs e)
        {
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", this.Id));
          this.ParseAnswersCount(result);
        }
    
        // выдергиватель количества ответов
        private void ParseAnswersCount(string value)
        {
          int startstart = value.IndexOf("Ответы на вопрос");
          int start = value.IndexOf(CounterPattern, startstart) + CounterPattern.Length;
          int len = value.IndexOf("</span>", start) - start;
          _AnswersCount = Convert.ToInt32(value.Substring(start, len));
        }
        
      }
    
    }
    Ответ написан
    Комментировать
  • Как освоить PyGame?

    donkaban
    @donkaban
    Умею рисовать тени
    Документация на официальном сайте - актуальна. Что именно вы изучаете методом "тыка"? И уж если на то пошло, чего там изучать, там небольшой API.
    Ответ написан
    Комментировать
  • Как создать фильтр в django для интернет-магазина?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    Очень хорошая штука https://github.com/alex/django-filter проще использовать вместе с https://github.com/rasca/django-enhanced-cbv

    Пример views.py

    from enhanced_cbv.views import ListFilteredView
    
    from .models import MyModel
    from .filters import MyFilter
    
    
    class MiViewWithFilter(ListFilteredView):
        filter_set = MyFilter
        model = MyModel


    filters.py (работаем так же как и с обычной формой)

    import django_filters
    
    from .models import MyModel
    
    
    class MyFilter(django_filters.FilterSet):
        def __init__(self, *args, **kwargs):
            super(MyFilter, self).__init__(*args, **kwargs)
            self.fields['email'].label = "New Email Label"
        class Meta:
            model = MyModel
            fields = {'name': ['exact', 'icontains'],
                      'price': ['exact', 'gte', 'lte'],
                     }
    Ответ написан
    5 комментариев
  • Python. Как реализовать цикл внутри вложенного списка?

    @throughtheether
    human after all
    Если я вас правильно понял, то так:
    import itertools
    lst = [
       ['aa1','aa2'],
       ['bb1','bb2','bb3'],
       ['cc1','cc2','cc3','cc4',],
           ]
    for item in itertools.product(*lst):
            # do stuff
            print item

    Результат:
    >>> 
    ('aa1', 'bb1', 'cc1')
    ('aa1', 'bb1', 'cc2')
    ('aa1', 'bb1', 'cc3')
    ('aa1', 'bb1', 'cc4')
    ('aa1', 'bb2', 'cc1')
    ('aa1', 'bb2', 'cc2')
    ('aa1', 'bb2', 'cc3')
    ('aa1', 'bb2', 'cc4')
    ('aa1', 'bb3', 'cc1')
    ('aa1', 'bb3', 'cc2')
    ('aa1', 'bb3', 'cc3')
    ('aa1', 'bb3', 'cc4')
    ('aa2', 'bb1', 'cc1')
    ('aa2', 'bb1', 'cc2')
    ('aa2', 'bb1', 'cc3')
    ('aa2', 'bb1', 'cc4')
    ('aa2', 'bb2', 'cc1')
    ('aa2', 'bb2', 'cc2')
    ('aa2', 'bb2', 'cc3')
    ('aa2', 'bb2', 'cc4')
    ('aa2', 'bb3', 'cc1')
    ('aa2', 'bb3', 'cc2')
    ('aa2', 'bb3', 'cc3')
    ('aa2', 'bb3', 'cc4')
    Ответ написан
    2 комментария
  • Продолжить изучать Python или начать учить PHP?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    У вас подход мечтателя. Вы сначала делаете то что нравится, а потом ждете что это кому то будет полезно. Шанс на успех есть, но крайне мал.
    Есть подход предпринимателя, думать каждый день, каждый час и каждый момент времени о том чем ты можешь быть полезен другим. Как только ты это поймешь, то увидишь что рынок python крайне мал и обладая этими знаниями пользы от тебя очень мало. А когда от тебя мало пользы - то и цена твоя будет низка.
    У php, 1С Битрикс или WordPress рынок на много больше. Обладая этими знаниями ты сможешь быть на много полезней для окружающих. При условии что научишься мыслить таким образом. Это не просто и не всем удается.
    А то какое у тебя образование или национальность - да плевать всем с большой горы. А тем кому как бы не плевать - то они просто лгут и прикрывают иные мотивы. Или просто тебя обидеть не хотят - если у тебя ума с гулькин нос.
    Ответ написан
    4 комментария
  • Продолжить изучать Python или начать учить PHP?

    @ikeagold
    Кодю на php, но в твоем случае я бы подальше держался от 1c (ответ FanatPHP тоже тому подтверждение), потому лучше змей) та и после таких слов "Всё свободное время я посвящаю кодингу на нём" все равно потом будешь по нему скучать и по ночам кодить на питоне и в итоге скоро охватит депрессия и тебе в любом случае прийдется вернуться на свой любимый язык :D
    Ответ написан
    2 комментария
  • Продолжить изучать Python или начать учить PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос не о программировании.
    Жадный и тупой работодатель в айти - явление, увы, не редкое.
    Но, к счастью, не настолько распространенное, как в других областях.
    Так что найти того, которому не важен паспорт - не проблема.

    Но дело не только в работодателях, дело еще и в самих технологиях.
    Учитывай, что:
    1. Спрос на джуниоров в питоне на порядок меньше, чем на пхп
    2. 1C Битрикс - это НЕ пхп. Это адская поделка, не совместимая больше ни с чем. Связываясь с ней, ты должен понимать, что не будешь развиваться в профессиональном плане, даже в РНР - весь полученный опыт ты сможешь использовать только с тем же битриксом.

    Вывод - я бы не стал переходить.
    Ответ написан
    3 комментария
  • Как продвинуться дальше начального уровня (Python)?

    Sergei_Erjemin
    @Sergei_Erjemin
    Улыбайся, будь самураем...
    Научиться плавать можно толь бултыхаясь в воде и периодически глотая воду. :) Программирование тоже нельзя изучить просто читая книжки. Придумай себе проект и стругай. Попутно изучаются HTML, CSS, JavaScript, JQuery, администрирование серверов и пр.

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

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

    @Masterme
    Это как слепому объяснить, чем радуга лучше полутени.
    Как вы хотите чтобы вам это объяснили? Привели примеры из жизни, где питон берёт в рот, а руби справляется на отличненько? Такие примеры, конечно, есть, например, лямбды, но вы всё равно не въедете, если до сих пор не поняли, что такое семантика языка и почему она важна. Вы могли взять питон, взять руби, изучить каждый из них пару недель и сделать выводы. Вместо этого вы ждёте пока вам в мозг положат готовое решение. Этого не произойдет. Вам скорее хуй в рот положат, так же как если бы вы были слепы - вам не стали бы объяснять разницу между радугой и полутенью, а дали бы под дых и отобрали бы мелочь.
    Вы, тупицы, думаете, что познание языков программирования - это нечто внешнее, что можно повторить, сымитировать. Вам сказали - вы повторили - и вроде как знаете тот или иной ЯП. В действительности же, познание языков программирования - это большая внутренняя работа, которую человек проделывает с абстракциями в своей голове. И только если человек способен к абстрактному мышлению - только тогда он, помножив эту способность на знание языков, может понять разницу между ними. Для остальных порог вхождения высок, и, честно говоря, я этому рад.
    Ответ написан
    9 комментариев