Задать вопрос
Ответы пользователя по тегу Программирование
  • Java SE и Java EE вместе?

    @bromzh
    Drugs-driven development
    Ты хотя бы почитал, что это такое, прежде чем задавать такие глупые вопросы. 1-е - всего лишь подмножество второго. Без знания SE никакое EE ты не освоишь.
    Ответ написан
    Комментировать
  • Создание сайта вручную как быть?

    @bromzh
    Drugs-driven development
    Смотря какие сайты нужны. Если сайты на подобии блогов/новостных порталов/магазинов, то можно выучить питон, а потом освоить фреймворк django. Для джанги есть большое количество уже готовых дополнений, да и самому писать их довольно просто (если проект не сильно выходит за рамки вышеперечисленных).
    Ну или заместо питона бери PHP и какой-нибудь фреймворк для него, пхпшники подскажут, что сейчас в тренде. Однако я не советовал бы пхп, потому как, несмотря на его низкий порог вхождения, из-за всяких дурных особенностей языка писать на нём действительно хорошие, безопасные и надёжные вещи достаточно трудно, приходится держать в голове слишком много вещей, ненужных в других языках.
    Ответ написан
    Комментировать
  • Переменная в пути. Как?

    @bromzh
    Drugs-driven development
    Если нужен именно путь, то используй, как уже сказали, os.path.join, желательно всегда.
    Если просто вставить значение переменной(ых) в строку, то используй интерполяцию. Есть 2 варианта: со знаком процента или через метод format:
    a = 1
    b = 'foo'
    c = [1, 2, 3]
    
    s1 = 'string with vars: %s %s %s' % (a, b, c)
    s2 = 'string with vars: {} {} {}'.format(a, b, c)
    s2 = 'string with vars: {2} {0} {1}'.format(a, b, c)
    s2 = 'string with vars: {foo} {bar} {qux}'.format(foo=a, qux=b, bar=c)
    Ответ написан
    Комментировать
  • Как сгенерировать окружности на сфере, что бы они оптимально перекрывали друг-друга?

    @bromzh
    Drugs-driven development
    Раз пересечения допустимы, то наверное надо построить что-то типа такой штуки en.wikipedia.org/wiki/Geodesic_dome, ну т.е. разбить сферу на правильные многоугольники (скорее всего 5-ти угольники), пускай и не одинакового размера. Главное, чтобы расстояние от центра многоугольника до вершины было не больше заданного радиуса для "кругов". Потом для каждого многоугольника найти центр и провести луч от центра сферы, проходящий через центр этого многоугольника и найти точку пересечения этого луча с поверхностью сферы. Это и будет центр "круга". Важно понимать, то это уже не евклидова геометрия, поэтому некоторые приёмы работать в таком пространстве не будут.
    Правда не знаю, будет ли это оптимальным размещением. Возможно даже доказательства его оптимальности ещё нет.
    Ответ написан
    3 комментария
  • Автоматическая закачка файла?

    @bromzh
    Drugs-driven development
    Если у тебя линукс или что-то похожее, то достаточно обычного баша:
    #!/bin/sh
    now="$(date +'%Y-%m-%d')"
    url="http://example.com/$now/$now.mp4"
    wget -c -P /папка/куда/сохранять/ $url

    И засунуть это в ежедневный крон.

    Опции wget посмотри, там куча разных штук, типа повтора при ошибке, выкачивании каталога/всего сайта, и т.д.
    Ответ написан
    Комментировать
  • Где хранить "кусочки" кода?

    @bromzh
    Drugs-driven development
    Копирую в сублайм в новую вкладку. Если её не закрывать, код остаётся после выхода.
    Ответ написан
    Комментировать
  • Множественное наследование не нарушает ООП?

    @bromzh
    Drugs-driven development
    Не нарушает, так как до сих пор нет единого мнения, что такое ООП и какая из его реализаций самая правильная. Даже те 4 принципа, про которые все любят говорить (инкапсуляция, наследование, полиформизм, абстракция) не являются ни исключительными для ООП (так как встречаются в любых других языках), ни необходимым набором правил, которым должен удовлетворять ОО язык, так как многие языки хоть и являются ОО, но в них могут отсутствовать наследование (прототипное ООП) и инкапсуляция в явном виде (для сокрытия внутренностей тогда используют замыкания или вообще не парятся). Полиформизм и абстракция присущи вообще всем языкам.

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

    @bromzh
    Drugs-driven development
    Что значит "одновременно"? 5 сервов должны начать делать 1 задачу в одинаковое время? Смахивает на задачу синхронизации стрелков, которую надо реализовать через очередь сообщений.
    Ответ написан
  • Хочу создать текстовую игру!Расскажите с чего начать?

    @bromzh
    Drugs-driven development
    Погружайся. Очень простой для изучения язык широкого профиля. №1 для изучения по недавним опросам.
    Ответ написан
    Комментировать
  • Почему говорят, что php для школьников?

    @bromzh
    Drugs-driven development
    Просто посмотри отношение количества идиотских вопросов к общему по ПХП и, например, по питону/руби/яве на тостере.
    Ответ написан
  • "Я точно не знаю как задать вопрос." Чпу с помощью запроса mysql?

    @bromzh
    Drugs-driven development
    Уже второй пхпшник за неделю, желающий связать УРЛ с БД. Ну зачем? Почему вы изобретаете свои велосипеды, смотрите, как эти чпу реализованы в нормальных фреймворках. Зачем "роутеру" знать про базу? Это, помимо дурацкой архитектуры, ещё и небезопасно.
    Ответ написан
  • С чего начать знакомство с IT и программированием?

    @bromzh
    Drugs-driven development
    SICP
    Ответ написан
    Комментировать
  • Какой вариант чпу лучше?

    @bromzh
    Drugs-driven development
    Эскобар.жпг. Оба ужасны.
    Посмотри, как это реализовано в нормальных фреймворках.
    Ответ написан
  • Какой серверный язык программирования перспективней изучить на данный момент?

    @bromzh
    Drugs-driven development
    За такие деньги джуниору? Наверное только Java.
    А перспективнее - это всякие серверные джаваскрипты, питоны, руби, скалы. Вакансии есть, языки довольно лёгкие (кроме скалы). Только в довесок надо знать ещё кучу технологий: SQL и nosql базы данных, системы контроля версий, автоматического тестирования, сборки, деплоя; уметь в асинхронное программирование, знать и фронтенд немного и т.д.
    Ответ написан
    Комментировать
  • Примеры классов в программировании?

    @bromzh
    Drugs-driven development
    Да, можно реализовать все паттерны ООП без использования классов, объектов и других вещей. Но по-сути, ООП позволяет это делать наглядее и удобнее в некоторых случаях. Т.е. тебе не нужно реализовывать в своей программе всякие паттерны, это всё сделано в самом языке за тебя. ООП - это некая абстракция для работы с данными, как с объектами реального мира.

    Просто есть области, где ООП наиболее лучше подходит для решения задачи. Есть области, где оно не будет оптимальным. Главное - это знать и понимать, где оно нужно, а где нет. Это уже с опытом приходит.
    Ответ написан
    Комментировать
  • Python 2 vs Python 3 ?

    @bromzh
    Drugs-driven development
    Третий, естественно. Т.к. он развивается и будет развиваться, в отличие от 2-го. Например, недавно появилась библиотека async и специальная форма yield from. Да и все нормальные библиотеки поддерживают третью ветку.
    А ещё в нём нормальная поддержка юникода.
    Ответ написан
    2 комментария
  • COMMON LISP как первый язык программирования. Плюсы и минусы?

    @bromzh
    Drugs-driven development
    Плохая идея. Да, общий лисп - хороший язык, и эта реализация, имхо, наиболее пригодна для реального использования. В стандарт языка уже 20 лет назад заложили такие фичи, что не все современные языки умеют. Но беда состоит в том, что этих реальных проектов просто единицы. Есть мало областей, где его целесообразно применять. А всё потому, что инструментов и технологий, которые работают нормально и стабильно, для него мало. И существует довольно мало областей, где он применим, и, самое главное, где он более удобен, чем другие языки.

    В общем, как второстепенный язык он неплох. Но выбор его, как первого и основного - плох.

    А вообще правильно сказали, важны общие принципы разработки. Можешь начать изучение с SICP, там как раз на диалекте лиспа идёт разработка.
    Ответ написан
    Комментировать
  • Объясните что это за домен will.i.am?

    @bromzh
    Drugs-driven development
    Однобуквенные домены давно уже в ходу. Тот же t.co от твиттера и сотни других. Правда, почти все заняты. Есть свободные на всяких экзотических доменах. Можешь на name.com поискать, а то из российских регистраторов мало кто поддерживает их.
    Ответ написан
    Комментировать
  • Создание лицензии для движка, что прочитать?

    @bromzh
    Drugs-driven development
    Не проще ли открыть код под GPLv3/LGPL (чтобы его не смогли использовать в закрытых проектах) и предусмотреть коммерческую лицензию для закрытых проектов за деньги? Для некоммерческих и открытых проектов разрешить использовать код бесплатно. Плюс, бери деньги за техподдержку. Так сделано у очень многих проектов (Qt, например).
    А то вдруг твоё поделие никто покупать не захочет? Большой проект трудно поддерживать маленьким коллективом (в случае открытых исходников многие смогут отправлять пулл-реквесты). А маленький вряд-ли кто-то купит (если он не обладает какой-нибудь супер уникальной фичей).
    Ещё можешь посмотреть, как лицензируются большие движки. Некоторые берут процент с продаж продукта. который их использует, некоторые позволяют использовать движки бесплатно до тех пор, пока прибыль или количество установок проекта не превысят определённую планку.
    Вообще, чем более либеральная лицензия, тем больше будет желающих использовать твой движок. Деньги, опять же, можно и с ТП получать (как это делают RedHat. nGinx, и прочие).
    Ответ написан
  • Bestpractices по ООП и паттернам в js?

    @bromzh
    Drugs-driven development
    Вопрос из серии "почему в функциональных языках нет циклов и переменных и как с этим жить". Так вот, жить можно вполне хорошо. Просто немного по-другому.
    Советую изучить, что же такое ООП и какое оно бывает. За пару минут можно найти инфу, что в жаваскрипте ООП - прототипное, а в питоне "классоориентированое". Т.е. в первом всё есть объект, и создавать новые объекты можно только клонируя основной объект, все методы и поля ищутся сперва у объекта, а потом у всех его прототипов. Во втором случае есть разделение на классы и объекты - экземпляры этих классов. Там диспетчеризация устроена по-другому: методы и поля ищутся у класса, а потом у всех его предков.
    И обходиться без наследования и метаклассов можно довольно легко, если знать, для чего же вообще нужно наследование и метаклассы. Метакласс позволяет манипулировать создаваемым классом на уровне его создания. Т.е. в питоне есть 2 понятия: класс и его экземпляр. В конструкторе класса можно определить поведение создаваемых экземпляров (через __new__ и __init__). Чтобы изменить поведение самого класса (а не его экземпляра) и нужны метаклассы: там, в функциях __init__ и __new__ можно переопределить поведение при создании класса. Так как в жаваскрипте такого разделения нет, то и отпадает само понятие метакласса: каждый объект создаётся путём клонирования от базового объекта (Object в js, хотя можно клонировать и любой другой объект: Array, Function, твой собственный). Такая же фигня и для наследования: там ты просто указываешь, какие поля могут выступать в качестве прототипов для всех "дочерних" объектов, это когда пишешь MyClass.prototype.someMethod = function(args) { ... }. В данном случае, someMethod будет сперва искаться среди самого объекта. Если там такого нет, то ищется в прототипе, т.е. в MyClass. Ну "классы" там объявляются функциями, потому что синтаксис не предусматривает создание класса. Да и то, функция-класс - просто синтаксический сахар: при вызове оператора new MyClass эта функция исполняется и возвращает копию объекта Object, над которой применили некие операции (которые ты как раз и описываешь в ней). Для каждой функции создаётся свой локальный контекст, который хранится в переменной this. Ты можешь в функции-классе описать, какие поля добавить в this, и она вернёт тебе как раз-таки этот изменённый this. Вот в lua нет даже оператора new, и ничего, вполне удобное ООП.

    У каждого подхода есть и плюсы и минусы. Мне удобно писать в обоих стилях. Единственное, могут возникнуть проблемы, когда в классе вытаешься присвоить полю какую-то функцию (callback). This внутри этого колбека будет иметь локальный контекст этой функции, а объекта, в котором находится это поле. На помощь приходит функция bind.

    P.S. Важно понимать, что функции являются объектами (в обоих языках). Но в js использование функций как переменных встречается гораздо чаще. Поэтому, строго говоря, нет никаких методов и полей в js. У объекта просто есть члены, которые могут быть как простыми данными и объектами, так и функциями. Собственно, для питона это тоже верно, ведь сами классы тоже являются объектами (экземпляры типа type). Просто там есть 2 понятия, как бы двухуровневая система. Ну и там куда реже члену объекта присваивают функцию, нежели в JS.
    Ответ написан
    1 комментарий