Задать вопрос
  • С чего начать изучение angular js?

    Symphony
    @Symphony
    Вам следует начать с javaScript'a, я серьезно.
    Ответ написан
    4 комментария
  • Как удобней передать в шаблонизатор кучу аргуметов?

    iximiuz
    @iximiuz
    Сделайте так:
    tpl_params = {...}  # сколько угодно строк, заполняющих dict.
    return render_template("index.html", **tpl_params)

    А вообще... Есть такая практика - не передавать в шаблон море переменных. Кажется в Rails, если пишешь код в RubyMine, даже предупреждения будут, если передал в шаблон больше 1 или 2 объектов. Есть такой паттерн - View Object. Это про то, что нужно собрать все данные, требуемые текущей страницей, в один более или менее согласованный (по интерфейсу) объект и передать в шаблон именно его. При таком подходе код становится чище, и проще писать тесты на шаблонизацию.
    Ответ написан
    Комментировать
  • Почему в школах до сих пор преподают Pascal а не Python?

    Вообще да, Python гораздо приятнее Паскаля и я бы выбрал для обучения именно его. Прежде всего вследствие обилия библиотек. Школьника нужно заинтересовать, чтобы он начал работать мозгом, а для этого нужны интересные проекты. Хочется сделать графику? Пожалуйста, pygame. Хочется использовать устройство по USB? Да сколько угодно. Анализировать HTML-код? Да десятью разными способами.

    Однако, смена Паскаля на Python как таковая не решит той проблемы с обучением информатике, какая присутствует в системе образования. Корни этой проблемы лежат в структуре системы образования и в качестве обучения самих учителей. А также, как это ни банально, в уровне их жизни.

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

    Если министерство образования в директивно-приказном порядке решит вдруг сделать такое изменение, это вряд ли принесёт кому-то пользу. Только море головной боли и затраты бюджетных средств.
    Ответ написан
    Комментировать
  • Почему в школах до сих пор преподают Pascal а не Python?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Был бы питон, были-бы вопросы почему питон а не C# или любой другой, для школы нет разницы какой именно язык учить, база у всех языков идентична, надстройку над базой дают уже в профильных учебных заведениях. Для школы достаточно базовых понятий бинарной логики, условий, циклов и т.п. а это без особой разницы на каком языке показывать. Когда я учился преподавали asm и тоже было куча вопросов почему не %name%, ведь асм очень низкоуровневый и ОО языки более востребованы и т.п. но при этом после АСМ в институте другие языки (С, Object Pascal) было легко осваивать, принципы те-же другой синтаксис и все.
    Ответ написан
    Комментировать
  • Какая разница между @include и include?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Собака не имеет никакого отношения к include. Это не один оператор, а два совершенно разных оператора.
    2. Увидев @ в коде ты можешь почти со стопроцентной уверенностью сказать, что его писал неграмотный пользователь, и пользоваться этим кодом не стоит.
    3. Увидев в коде @include ты можешь смело считать его автора абсолютным лохом и нубом, а сам код надо выкидывать немедленно. Потому что @include глушит не только саму ошибку включения файла, но и все ошибки в этом файле - то есть, поступает стократ хуже. Это значит, что если автор допускает такие косяки в коде, то и все остальное у него тоже ад кромешный.
    4. Самое главное. Ошибки надо не подавлять. Ошибки надо исправлять. Но опять же, делать это с умом. Начинающие программисты считают сообщения об ошибках своими личными врагами, и борются с ними всеми доступными средствами - с помощью @, error_reporting(0) и др. Получив линейкой по рукам и запомнив на всю жизнь, что так делать не надо, ониначинают с не меньшим рвением писать всякие проверки - лишь бы не допустить, не дай бог, ненавистного сообщения об ошибке. Например:

    if (file_exists($inc))
    {
        include $inc;
    } else {
        echo "Файл не найден";
    }

    Так вот, это - еще хуже. Для начала, часть ошибок этот код все равно не отловит. Но это даже не самое главное. Главное - что вот это вот "Файл не найден" не имеет ни малейшего смысла. Пользователю оно ничего не скажет. А программист о нем не узнает. А если и узнает, то ничего не поймет! Какой файл? Где не найден? По какой причине? Системное сообщение об ошибке содержит массу бесценной информации помогающей идентифицировать ошибку, сообщая нам где она произошла, какой файл не найден, по какой причине не найден. Выдавать вместо этого огрызок "файл не найден" - это мазохизм.

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

    Ошибки не надо подавлять. Ошибки не надо прятать. Ошибки надо исправлять.
    Ответ написан
    3 комментария
  • Как создать сайт с помощью язык java?

    myrslok
    @myrslok
    А зачем создавать сайт на Java?

    Может быть, я неправ, но мне кажется, что если у вас есть веская причина использовать именно Java, то вопрос реализации вы должны быть в состоянии решить сами.
    Ответ написан
    1 комментарий
  • Где найти самое простое объяснение Dependency Injection паттерна?

    iximiuz
    @iximiuz
    Мартин Фаулер круто пишет обо всех паттернах. Про DI можно почитать тут. Вообще у него отличный блог. И он же автор книги P of EAA. Правда русский ее перевод крайне не рекомендую читать, можно только запутаться, так что читайте в оригинале.

    Если хотите разобраться с паттернами, то самая простая (и при этом дельная!) книга - это Фриман&Фриман. Ее можно читать и на русском.

    Применительно к PHP - вот лучшая книга про шаблоны (и не только), которую я видел PHP. Объекты, шаблоны и методики программирования от Мэт Зандстра.

    Порядок прочтения рекомендую следующий: Фриман&Фриман, затем Мэт Зандстра, и на десерт Фаулера P of EAA.

    UPD:
    Важно отличать паттерн Dependency Injection от Dependency Injection Container.
    Простейший пример внедрения зависимости:
    interface IEngine {}
     
    class V8Engine implements IEngine {}
     
    class Car {
      public function __constructor(IEngine $engine) {
        $this->engine = $engine;
      }
    }
     
    $car = new Car(new V8Engine());

    Простейший пример игнорирования явного внедрения (для такого кода трудно писать unit-тесты, его труднее понимать и править):
    class V8Engine {}
    
    class Car {
      public function __constructor() {
        $this->engine = new V8Engine();
      }
    }
    
    $car = new Car();

    Отличный (и легковесный) пример DIC - это pimple:
    // define some services
    $container['session_storage'] = function ($c) {
        return new SessionStorage('SESSION_ID');
    };
    
    $container['session'] = function ($c) {
        return new Session($c['session_storage']);
    };

    Советую прочитать и понять его исходники, чтобы убедиться, что в DIC (во всяком случае для PHP) нет никакой магии. Первая версия была всего ~100 строк. Необходимо также отметить, что класс Session использует шаблон Dependency Injection, явно определяя свою зависимость от SessionStorage. А контейнер делает лишь правильную связку.

    И да, контейнер сам по себе можно использовать как service locator, если к нему, например, есть глобальный доступ. Но это очень плохая практика, потому что если что-то обращается к сервис локатору, то формально оно начинает зависеть сразу от всех компонентов системы.
    Ответ написан
    4 комментария
  • Структура когда, как построить правильно?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Авторы такие:
    • Андрей Александреску,
    • Томас Кормен,
    • Ален Голуб,
    • Джефф Элджер,
    • Скотт Майерс.
    Ответ написан
    Комментировать
  • Как оставить Django включенным?

    un1t
    @un1t
    Есть разные варианты деплоя, можно конечно закостылить через nohup или supervisor/django-supervisor, чтобы дев сервер работал. Но нормальный вариант для прода это связка uwsgi + nginx, либо gunicorn + nginx.
    Чтобы заставить работать при закрытии консольки и на 80 порту, самый простой и костыльный вариант такой
    nohup ./manage.py runserver 0:80 &
    Ответ написан
    1 комментарий
  • Куда двигаться в веб-разработке?

    svaa1982
    @svaa1982
    Web разработчик с трёхмерным уклоном
    Не хочу никого обижать, но если есть возможность, замените PHP на язык общего назначения. Потенциалов и возможнстей для работы будет куда больше. Из вариантов Python, Java, серверный JavaScript, Ruby (он тоже иногда используется не для веба). Объектная модель в Java считается классической, остальные языки имеют свои особенности

    Современный веб это HTML5 (CSS3, WebGL, Canvas2D, WebRTC) а также мощные клиентские фреймворки: bootstrap, angular итд. Книги по JS это полнейшая ерунда, они успевают устареть ещё до своей публикации. Всегда читайте на английском, сайт w3c в помощь.
    Ответ написан
    3 комментария
  • Как авторизоваться на сайте с помощью python?

    Kademn
    @Kademn
    Злой
    Подозреваю, что вам необходимо использовать requests.Session()
    url = 'https://...'
    login = 'login'
    password = 'password'
    s = requests.Session()
    r = s.get(url, auth=(login, password))


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

    Еще, зачастую, чтение чужого кода помогает понять как правильно (или неочень) пользоваться тем или иным инструментом. Скрипт авторизующийся в вконтакте и качающий музыку пишет, пожалуй, каждый начинающий питонщик. Найти несложно.
    Немало также статей по парсингу сайтов с помощью python. В них непременно будет urllib или requests. Например тут.
    Вообщем, ищите и обрящете =)
    Вот и в результате послал в гугл, мда. =)

    upd. Раз вы самообучаетесь для себя, попробуйте порешать задачи тут: checkio.org. Полезнее всего будет не просто решать задачи, а смотреть как ту же задачу решили другие, много нового для себя откроете и цели в виде решения очередной задачи всегда будут иметься (ачивки, если вы искушенный задрот, тоже самоцель). В примерах оставленными другими есть как хорошо документированные, так и безумные решения завернутые в одну строку.
    Ответ написан
    3 комментария
  • Python для новичка?

    немного оффтоп, но я бы посоветовал Вам почитать SCIP (Структура и интерпретация компьютерных программ) там неплохо объясняют что такое программирование в принципе и после прочтения этой книги Вы будете понимать что такое "оператор", "операнд", "функция", "переменная" и т.д. ну просто судя по тому что Вы написали каша как раз в этом, а не в том на каком языке Вы пробуете писать. ну это так, просто совет, чтобы Вы не мучались пока учитесь методом обезьянки на велосипеде)
    Ответ написан
    Комментировать
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    программировать стоит учиться всегда. плюс программирование учит думать. в принципе учиться стоит всегда, тем более в 30+ у Вас мозги еще не засохли и их надо напрягать все время, покуда не засохнут окончательно. единственное что меня напрягает - если Вам 30+ а мне 26, то почему я Вам об этом говорю а не Вы мне))) без обид, просто иронично получилось)
    Ответ написан
    Комментировать
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    opium
    @opium
    Просто люблю качественно работать
    Вы так говорите как будто в 30 лет у вас нет рук и ног и вывалился глаз.
    Берите и делайте и меньше задавайте глупых вопросов на тостере.
    Ответ написан
    5 комментариев
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    BBmike
    @BBmike
    а что с автором должно в 30 лет случиться такого, что воспрепятствует этой задаче?
    впереди целая профессиональная жизнь, так в чем проблема?

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

    @AlexLIn
    Мой дед начал изучать программирование в ~75 лет.
    Теперь программирует себе самолетики да квадрокоптеры на ATxmega в atmel studio. "Полет нормальный".
    Ответ написан
    2 комментария
  • Стоит ли начинать заниматься программированием в 30+ если до этого не программировал?

    @vilgeforce
    Раздолбай и программист
    Если вы собираетесь заниматься программированием (вышиванием/выгулом собак/плеванием в потолок) только ради денег - не стоит. Тратить свое время и силы на то, что неинтересно (иначе как в связи с баблом) - плохая идея.
    Ответ написан
    3 комментария
  • Есть ли какой нибудь метод отправки данных форм на email (django)?

    @medvoodoo
    Создаете форму(если в базу писать не надо, то обычную), вставляете ее в шаблон.
    djbook.ru/rel1.7/#forms
    Во вьюхе проверяете ее валидность, если все ок подставляете данные в шаблон письма и отправляете его на почту
    djbook.ru/rel1.7/topics/email.html

    Основная "полезная билиотека" -django :)
    Ответ написан
    Комментировать
  • Существуют ли заочные курсы или стажировка по анализу данных на русском языке?

    @lPolar
    data scientist
    ИМХО, тут есть несколько аспектов:
    1. Как написал brainick , математический бэкграунд и английский в data science практически обязателен.
    Причин этому несколько: отсутствие хорошей литературы на русском языке (как по теории, так и по программированию), обилие английских терминов (lift/top/cross-validation и прочие), значение которых в переводной литературе порой объяснятся весьма туманно.
    2. Если говорить о конкретной литературе, которую стоит почитать, я бы выделил несколько уровней:
    Уровень 0
    1. Бизнес-аналитика - Паклин, Орешков (самое базовое и обзорное введение)
    2. Статистика/Тервер ( по мне, хороши книги Айвазяна/Мхитаряна)
    3. SQL - в обязательном порядке. Мне в свое время помогла книга "SQL для простых смертных"
    4. Изучаем Python - М. Лутц (наиболее полная книга по языку, все что нужно для data science здесь точно есть)
    5. Программируем коллективный разум (к слову сказать, вот в этой книге отличный перевод)
    Уровень 1
    1. Математические основы машинного обучения и прогнозирования - Вьюгин (книга сложная, без подготовки по учебникам НМУ на тему анализа и линейной алгебры лучше не подходить)
    2. Python for Data Analysis (pandas во всей красе, тут нечего добавить)
    3. Примеры и статьи по построению моделей в sklearn - на хабре в последнее время часто мелькают статьи на эту тему, там все достаточно хорошо расписано.
    Уровень 2
    1. Hadoop и иже с ним ("Hadoop в действии", "Programming Pig")
    2. Apache Spark - достаточно почитать описание Python API.
    Тут есть еще один момент - не стоит слишком привязываться к одному языку и фреймворку.
    Одна из неприятных проблем python+pandas+sklearn заключается в том, что эта связка слабо масштабируется - при 2-3-4 гб данных становится сложно разместить их в оперативной памяти. Я знаю про chunk-reading+partial_fit, но точность таких моделей оставляет желать лучшего.
    С другой стороны, если обрабатывать эти данные в pyspark, то теряется все удобство pandas.DataFrame и так далее. Отрасль data science быстро развивается и обрастает новыми технологиями, так что нужно все время держать руку на пульсе.
    UPD: в spark 1.3 появились DataFrame.
    Ответ написан
    4 комментария