• Передача списка в объект класса по ссылке, как сделать?

    @bromzh
    andrey_ado: это никак не влияет на результат. В питоне всё по ссылке передаётся, и присваивание на самом деле приравнивает ссылки. Это легко проверить, достаточно посмотреть id объекта. Если тип объекта, на который ссылаются 2 переменных мутабельный, то все переменные, которые указывают на него будут возвращать изменённое значение. Если же переменной присвоить новое значение (а не изменить её содержимое), то она просто будет указывать на другую область памяти, счётчик объектов-указателей уменьшится на 1.
    class Foo(object):
       ...:         def foo(self, lst):
       ...:                 self.lst = lst
       ...:                 self.lst[0] = 100
       ...:         
    
    In [2]: a = [1, 2, 3]
    
    In [3]: foo = Foo()
    
    In [4]: foo.foo(a)
    
    In [5]: b = foo.lst
    
    In [6]: a
    Out[6]: [100, 2, 3]
    
    In [7]: b
    Out[7]: [100, 2, 3]
    
    In [8]: foo.lst
    Out[8]: [100, 2, 3]
    
    In [9]: id(a)
    Out[9]: 139912620342856
    
    In [10]: id(b)
    Out[10]: 139912620342856
    
    In [11]: id(foo.lst)
    Out[11]: 139912620342856
    
    In [12]: del foo
    
    In [13]: a
    Out[13]: [100, 2, 3]
    
    In [14]: b
    Out[14]: [100, 2, 3]
  • Как устроен AngularJS?

    @bromzh
    bagerman: Ну да, у ангуляра нет зависимостей от других библиотек, а кроме JS не на чем писать. Изменения идут напрямую с DOM страницы, для "живого" обновления всех данных используется dirty checking: habrahabr.ru/post/165275 . Компоненты связываются через внедрение зависимостей (по имени параметра).
  • Как сделать удаление постов (flask)?

    @bromzh
    Удалять надо только POST или DELETE (если апи пишешь, HTML-формы умеют только в GET/POST) методами.
    Иначе любой поисковый робот (или livesearch хрома, например) сможет устроить глобальную зачистку на сайте.
  • Как создавать GUI в intellij idea?

    @bromzh
    Данил Антошкин Я какое-то время пытался искать редактор, но потом забил. Кодом всё равно получается лучше и гибче. К тому же, есть ScalaFX
  • Java или защита информации?

    @bromzh
    booogabooo Да ладно, java очень простой язык. В PHP куда больше заморочек, в том числе, связанных с неявной типизацией. Плюс, изучив Java Core можно пойти дальше в разработку под Android, или в веб, или в десктоп, или ещё куда-нибудь. ПХП таким похвастаться не может.
  • Как дружат UI на JS и Java EE server-side?

    @bromzh
    JS-код можно вызывать из GWT:
    public static native void onMyButtonClick() /*-{
        $wnd.myJSfunction();
    }-*/;

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

    @bromzh
    А для Go есть хорошие фреймворки с наличием более-менее больших количеств плагинов/модулей и хорошим комъюнити? Просто именно новичку без всего этого будет очень сложно. А вот освоить тот же питон и django с нуля и писать типовые сайты можно достаточно быстро.
  • Как сгенерировать окружности на сфере, что бы они оптимально перекрывали друг-друга?

    @bromzh
    Oxoron: Наверное имеется ввиду, что есть сфера радиуса r1 и некое число r2 < r1. Нужно расположить на сфере несколько "кругов" радиуса r2, так чтобы площадь покрытия была максимальной (если круги не могут пересекаться более чем в 1-й точке). Или же покрыть такими "кругами" всю площадь, при этом количество "кругов" должно быть минимальным (если "круги" могут иметь более 1-й общей точки).
  • Как сгенерировать окружности на сфере, что бы они оптимально перекрывали друг-друга?

    @bromzh
    Какие условия покрытия? Могут круги пересекаться более чем в 1-й точке?
  • Как правильно настроить virtualenvwrapper?

    @bromzh
    marazmiki: Для проекта нет разницы, где располагается папка с окружением. Но централизация имеет несколько преимуществ. Ну и сам враппер добавляет несколько крайне удобных команд, возможных в том числе и из-за централизации:
    • Выполнение команды во всех репозиториях. Удобно, если, например, нужно обновить pip/setuptools везде.
    • Создать временное окружение (при деактивации удаляется)
    • Копирование окружений
    • Добавление внешних директорий к окружению
    • Включать/выключать глобальные пакеты


    Понятно, что и без враппера можно жить, но с ним многим удобнее из-за этих небольших, но приятных бонусов.
  • Как правильно настроить virtualenvwrapper?

    @bromzh
    Враппер имеет много хороших фишек. Например, просмотр всех окружений, переход к ним 1-й командой, хуки для действий. Ну и централизованно держать окружения имхо лучше, чем попроектно. Ведь бывают разные случаи: проекту надо 2 и более окружений (для тестирования, например, работоспособности во 2-й и 3-й версиях), или нужно виртуальное окружение, не привязанное к проекту (у меня так стоит ipython notebook).
  • С какого языка изучать программирования (с нуля)?

    @bromzh
    Corrandoo: Аргументный аргумент, да.
    Тогда спроси у своего брата, почему:
    1) В "бедном с++ из 90" лямда-функции, замыкания и другие полезные функциональные штуки появились в стандарте языка ещё в первых версиях (начало 90-х), а в С++ только в 2011 году?
    2) Почему в несовременном питоне есть нормальные метаклассы, интроспекция с рефлексией, а в С++ этого нет? Почему в С++ такое существует только на уровне сторонних библиотек, причём там ты пишешь уже не на чистом С++, а на неком его подмножестве? Всё метапрограммирование в чистом С++ доступно только в compile-time, никакого там runtime (по-сути, это тупая кодогенерация). Кстати, в Objective C, который тоже произошёл от C, таких проблем нет.
    3) Почему в современном С++ до сих пор нет системы импорта? Там до сих пор остались такие рудименты из 80-х, как #include и прочая препроцессорная магия.
    4) Почему питон, несмотря на его утиную типизацию, типобезопасный, а в продвинутом С++ ещё остались неявные преобразования?
    5) Почему генераторы как часть синтаксиса в отсталом питоне появились в версии 2.5, а в С++ их до сих пор нет (реализуются через костыль в виде макросов для препроцессора или с помощи кучи кода в С++11)?
    ...) Список вещей, присутствующих в питоне и отсутствующих с С++ можно продолжать очень долго.

    PS Успешного выучивания!
    PPS Скинь какой-нибудь код твоего состоявшегося брата, интересно взглянуть!
  • Почему все хотят django?

    @bromzh
    Роман Володин: Основная причина - потому что это микрофреймворк.
  • Как происходит связь моделей с бд в java/scala приложениях?

    @bromzh
    Александр Кондауров: Потому что есть очень много способов подключения БД к Java. Всё сильно зависит от технологий. На самом деле всё просто, 1 файл настройки, файлы моделей и по 1 файлу для доступа к ним. Слегка многословно, но это Java. В play это сделано по-другому, в спринге похоже, но тоже отличается.
  • Что такое/чем отличаются Repository и Dao интерфейсы?

    @bromzh
    Андрей: Транкзакции - довольно сложная вещь. На серверах приложений ими могут управлять эти самые сервера. Например, все действия, происходящие в компоненте внедрённым через EJB автоматически будут использовать транзакции.
    Сервера следят за контекстом и жизненным циклом приложения и отдельных бинов. Бины, например, бывают stateless и stateful. Первые должны либо подтверждать либо откатывать транкзакцию при выполнении методов, а вот вторые могут быть связаны с транзакцией даже если соединение с БД отключилось.
    Если делать вручную, то стартовать и подтверждать (либо откатывать) транзакции нужно в классах с бизнес-логикой, где будет использоваться код. Часто используемый код можно выделить в отдельный класс.

    какие там термины, например
    В нетбинсе это именуется фасадом (UserFacade). В других источниках их называют сервисами (UserService). В третьих - просто бинами (UserBean). Суть в том, что вся бизнес-логика, относящаяся к сущности User идёт через них.

    можно ли унаследовать
    Да, по второй ссылке, что я приводил есть пример реализации DAO.
    Обычно создаётся абстрактный класс, параметризуемый типом сущностей. В нём содержится большая часть кода. Пример иерархии описан, например, тут ru.stackoverflow.com/questions/299530/%D0%9A%D0%B0...
  • Взаимозаменяем ли switch с if в JavaScript?

    @bromzh
    bagerman SagePtr: Да, точно (привык, что в яве switch ограничен). Но это из серии считать ответ в определении for, а тело цикла оставлять пустым.
  • Взаимозаменяем ли switch с if в JavaScript?

    @bromzh
    Циклы вообще можно выбросить из языка, их можно заменить, например, рекурсией, а ветвление - более базовая вещь в программировании, без которой вроде как и нельзя. Поэтому сравнение некорректное, ведь switch - это просто сопоставление с образцом, а не полноценная проверка логических условий.
  • Взаимозаменяем ли switch с if в JavaScript?

    @bromzh
    bagerman: if (i > 2) { console.log(2) }.
    Ну и любые неравенства, где в одной или более ветках может быть полуинтервал. Свитч проверяет только на совпадение же.