Задать вопрос
  • Что значит фраза "пайтон, язык с самым полным ООП"?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Это ложное утверждение

    Wiki
    Дизайн языка Python построен вокруг объектно-ориентированной модели программирования. Реализация ООП в Python является хорошо продуманной, но вместе с тем достаточно специфической по сравнению с другими объектно-ориентированными языками. В языке всё является объектами — либо экземплярами классов, либо экземплярами метаклассов. Исключением является базовый встроенный метакласс type. Таким образом, классы на самом деле являются экземплярами метаклассов, а производные метаклассы являются экземплярами метакласса type. Метаклассы являются частью концепции метапрограммирования и предоставляют возможность управления наследованием классов, что позволяет создавать абстрактные классы, регистрировать классы или добавлять в них какой-либо программный интерфейс в рамках библиотеки или фреймворка[22].

    Классы по своей сути представляют план или описание того, как создать объект, и хранят в себе описание атрибутов объекта и методов для работы с ним. Парадигма ООП основывается на инкапсуляции, наследовании и полиморфизме[80]. Инкапсуляция в Python представлена возможностью хранения публичных и скрытых атрибутов (полей) в объекте с предоставлением методов для работы с ними[80], при этом на самом деле все атрибуты являются публичными, но для пометки скрытых атрибутов существует соглашение об именовании[81]. Наследование позволяет создавать производные объекты без необходимости повторного написания кода, а полиморфизм заключается в возможности переопределения любых методов объекта (в Python все методы являются виртуальными[81]), а также в перегрузке методов и операторов. Перегрузка методов в Python реализуется за счёт возможности вызова одного и того же метода с разным набором аргументов[80]. Особенностью Python является возможность модифицировать классы после их объявления, добавляя в них новые атрибуты и методы[36], также можно модифицировать и сами объекты, в результате чего классы могут использоваться как структуры для хранения произвольных данных[81].

    https://ru.wikipedia.org/wiki/Python
    Ответ написан
    Комментировать
  • Сворачивать в трей WhatsApp for Windows 10 - чем?

    zamboga
    @zamboga
    Аналитика данных, BI-аналитика, дашборды
    2 варианта.
    1. https://github.com/D4koon/WhatsappTray/releases
      UPD. По состоянию на 06.01.2019 последняя рабочая версия, в которой нет проблем — 1.4.3
    2. https://www.anvir.net/ — при сворачивании с нажатым SHIFT — сворачивается в трей
    любое приложение.

    зы. Не увидел сразу, что у вас Whatsapp tray 1.3 не работает. Странное поведение, у меня всё ок.
    UPD. По состоянию на 06.01.2019 последняя рабочая версия, в которой точно нет такой проблемы — 1.4.3
    Удалять не стану — чтобы в будущем из поисковых систем сюда люди могли придти.
    Ответ написан
    2 комментария
  • Почему никто не учит C# но на каждом углу учат Java?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ява чуть больше востребована. C# и .NET очень хорошо поднялись за несколько лет.
    А то что нет вакансий на джунов, я так думаю что нужны готовые специалисты. В крупных фирмах просто перекидывают с других направлений. Ну и фишка в том что шарп сильно завязан на бизнес. Писать что то для платформы это значит уже видеть специалиста уровня начиная от мидла.
    Ответ написан
    Комментировать
  • Почему никто не учит C# но на каждом углу учат Java?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Тут пожалуй, важную роль в популяризации играет не возможности языка, а политика компаний, которые разрабатывают языки.
    Так исторически сложилось, что Java появилась раньше, чем C# и соответственно, к моменту появления C# уже было написано огромное количество проектов-миллионников. Также компания Майкрософт довольно долго (чуть ли не 8-9 лет) ограничивала применение .Net на других платформах из-за чего это тоже сыграло свою роль. Соответственно, определенная часть рынка в энтерпрайз была утеряна для C#. Но зато C# смогла утвердить себя в сфере gamedev (фреймворк Unity), а также в сфере desktop разработки. Но не стоит сбрасывать со счетов C# в энтерпрайз и веб сферах. На нем пишут довольно серьезные проекты.
    Думаю, что остальное лишь предпочтения разработчиков.
    Ответ написан
    4 комментария
  • Есть ли перспектива у WPF в обозримом будущем?

    DevMan
    @DevMan
    за три года спокойно может появиться совершенно новая платформа. вам дело делать или в гадалки играть?

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Хм ну начнём с того что любой новый офисный файл это zip архив содержащий кучу xml вот в них и прописано все. Руками править неблагодарное занятие есть библиотеки которые в разной степени упрощают это. А так ищите спецификацию pptx формата
    Ответ написан
    6 комментариев
  • Как в Chrome вернуть старый формат цвета?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    никак. это типа устаревший формат и больше его не будет. давно сам еще гуглил про это)
    https://stackoverflow.com/a/64425308
    Ответ написан
    Комментировать
  • Какой IDE выбрать вместо Borland C++?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    А почему не CLion ? Вроде тоже хороший IDE. Либо Visual Studio.
    Ответ написан
    Комментировать
  • Можно ли обойти CORS политику при отправке запроса на чужой домен?

    @Bob89991
    На домене alisanet.com должны быть прописаны разрешения для кроссдоменных запросов
    Ответ написан
    Комментировать
  • Как поймать фокус на input?

    @DanKud
    Во-первых типа события Focus не существует, нужно писать focus с маленькой буквы. Во-вторых вторым параметром нужно не вызывать функцию, а передавать ссылку на нее:
    var input2 = document.getElementById("input2");
    input2.addEventListener("focus", focusInput2);
    function focusInput2() {
        alert("Focus2");
    }
    Ответ написан
    Комментировать
  • Как поймать фокус на input?

    zendor
    @zendor
    В вашем примере ошибка: вы вызываете функцию focusInput2 в addEventListener вместо того чтобы передать ссылку на нее и она вызывает alert сразу же и возвращает undefined в addEventListener.
    const input = document.getElementById('input2');
    input.addEventListener('focus', function() {
      console.log('focus 2');
    });
    Ответ написан
    Комментировать
  • Какие риски может нести передача гостевого доступа яндекс вебмастера/метрики/директа фрилансеру?

    DeoZ
    @DeoZ
    Веб-разработка и Реклама
    Материальный вред этим Вам, вероятнее всего, нанести никак не смогут.
    Если прямо очень с подозрением отнестись, то:
    1. Могут использовать Ваши наработки в своей дальнейшей работе. Это если в аккаунте действительно есть что-то интересное.
    2. Могут сделать скриншоты со статистики и предоставлять как свои кейсы. Опять же если там есть чем гордиться.
    3. Могут завладеть инсайдерской информацией. Этого иногда боятся крупные корпорации, так как стоимость перехода и стоимость лида напрямую завязаны с бизнес-показателями, которые конфиденциальны.

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

    ValarMayar
    @ValarMayar
    Д У Р А Ч О К / недопрограммист графоман
    Да толком никак. Тем более python..
    Ответ: НИКАК.
    Ответ написан
    2 комментария
  • Как вывести массив в обратном порядке?

    Kr0nic
    @Kr0nic
    Пишу код за еду
    Array.Reverse(array);
    или
    array = array.Reverse().ToArray();

    Ах да. Еще и вывод в консоль можно в Linq переделать
    array.ToList().ForEach(x => Console.Write(@"{0} ", x));
    Ответ написан
    Комментировать
  • Почему не виден файл Hosts?

    @evgzap Автор вопроса
    РЕШЕНИЕ.
    ПКМ по etc -> Свойства -> Безопасность -> Дополнительно -> Владелец и напротив синяя надпись: изменить -> Дополнительно... -> Поиск -> все(весьма опасно, но если грамотно юзать дальше пк - сойдет) -> Ок -> Ок -> Ок-> в окне свойств (вы должны находиться здесь после всех нажатий окей) нажать Изменить.... -> и поставить галочки в администраторы и пользователи напротив надписи
    полный доступ

    После этого я все равно не видел самого файла, хоть и доступ теперь есть. в этом был виноват какой-то троян или прочий вирус.
    Создаем на рабочем столе файл hosts без расширения и переносим в папку etc, Вам предложат заменить файл. Соглашаемся. Вуаля, файл виден, имеется доступ, а все ради OpenServer и одной строчки кода в php....
    Будьте аккуратнее с вирусами.
    Ответ написан
    2 комментария
  • Возможно ли написать скрипт для принудительного отключения пользователя от WiFi?

    Это элементарно скриптуется. Вот такая команда добавит в шедулер скрипт, который будет запускаться каждые 20 секунд и удалять регистрации клиентов, неактивных более 150 секунд:
    /system scheduler add interval=20s name=unreg_inactive_wifi_clients on-event="/interface wireless registration-table remove  [ find  last-activity > 150 ]"  start-date=jun/01/1970 start-time=00:00:00
    Ответ написан
    Комментировать
  • Как правильно в ReactJS отрисовывать компоненты и показывать загрузку, при запросе данных со стороннего ресурса?

    @vs101ff
    Frontend разработчик
    Я не очень помню React.JS классовый, боюсь ошибиться.

    Поэтому могу просто порекомендовать пример с хуками: https://github.com/kentcdodds/react-hooks/blob/mai...

    Здесь описание: https://github.com/kentcdodds/react-hooks/blob/mai...

    Классовый React.JS сейчас не используется (используется только в поддержке старых компонентов).
    И вообще, я думаю, вам определенно стоит пройти курс https://epicreact.dev/ , а классовый React.JS миновать.
    На github есть репозитории с *.md материалами, их и блога более чем достаточно, и то, все не нужно.

    Предупреждаю, у меня нет коммерческого опыта разработки React.JS.
    Несколько позже, если нужно, скину статьи из документации, которые, на мой взгляд, необходимо изучить после курса Кента Доддса.

    Отрывки по Software Design:

    https://www.livelib.ru/book/1003548149-refaktoring...

    Фундаментальное практическое правило гласит: то, что изменяется одновременно, лучше хранить в одном месте.


    Мы структурируем программы, чтобы облегчить внесение в них изменений;

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



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



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



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


    И главы 1 - 4.

    Из книги https://www.ozon.ru/context/detail/id/136939101/

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

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


    Но нужно спрашивать себя:
    не приведут ли меня принципы и паттерны в мир ненужной сложности (overengineering): стал ли мой дизайн после внесения изменений проще? Не решаю ли я проблему, которой на самом деле не существует?
    Не попал ли я в сети преждевременного обобщения (premature generalization)?


    Полезно будет пройти часть 4.

    https://kentcdodds.com/blog/when-to-break-up-a-com...

    Совершенный код С. Макконнелла, я читал с с. 76 по с. 152, про остальное ничего сказать не могу.

    Р. Мартин Чистый код, я читал Функции, Содержательные имена и Обработка ошибок, про остальное аналогично, не знаю. SOLID у него плохо объяснен.

    Понравившиеся проекты:
    UI библиотека для CMS Sanity https://github.com/sanity-io/design
    CMS Sanity (Фронтенд код сейчас в процессе перехода на @sanity/ui. Наверное, будет лучше изучать по pull request'ам) https://github.com/sanity-io/sanity

    По чтению кода: https://www.youtube.com/watch?v=6J4ZejMsKKY

    P.S. Не знаю, что из этих книг нужно для Junior Frontend разработчика. Мое мнение лучше воспринимать на половину серьезно, т. к. я где-то между Junior и Middle). Работал к этому времени только в бэкенде.
    Ответ написан
    1 комментарий
  • Есть ли аналоги vc.ru?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Ответ написан
    Комментировать
  • Как выйти в интернет по определенному интернет-соединению, если имеется несколько интернет-соединений?

    ValdikSS
    @ValdikSS
    Если вам нужно только подключаться к удалённым хостам из программы (а не принимать входящие соединения), и если программа использует только TCP (а не UDP или другие протоколы), то достаточно соединение (сокет) за-bind-ить к конкретному сетевому интерфейсу или конкретному IP-адресу.
    Этот способ универсален и прост, работает в Windows и Linux, не требует дополнительных настроек, помимо наличия маршрутов по умолчанию для всех интерфейсов (метрика значения не имеет).

    То, что вам пишут выше, про маркировку пакетов и назначения конкретных маршрутов — альтернативные, более «правильные» способы, подходящие для более общих случаев, но сложные в настройке.
    Ответ написан
    1 комментарий
  • Как выйти в интернет по определенному интернет-соединению, если имеется несколько интернет-соединений?

    @mprog54
    Кокон тыжпрограммиста
    ForceBindIP (https://soft.mydiv.net/win/download-ForceBindIP.html)
    Консольная утилита под Windows для принудительного назначения сетевого интерфейса приложению.

    Варианты использования:
    1. По умолчанию
    Создать ярлык к вашей программе со строкой запуска:
    ForceBindIP 192.168.1.1 c:\Program.exe
    Где 192.168.1.1 - локальный IP нужного интерфейса а c:\Program.exe - путь к папке с программой.
    Вместо IP можно указать GUID сетевого интерфейса: прим. {E9DE0D15-CA8D-4E41-8F37-79461FCA515C}
    2. Через код
    Создать функцию на C#, которая выведет список сетевых интерфейсов с их IP адресами. После чего, перезапустить своё приложение через команду запуска (пример в п.1). ForceBindIP.exe положить в папку со своей программой.
    3. GUI интерфейс на Java (https://sourceforge.net/projects/forcebindip-gui/)
    Открываете GUI и щелкаете мышкой :)

    P.S Если вы хотите сделать свои домашние мобильные "носки" под SMM, директ и т.п, при больших объемах советую всё-же воспользоваться известными сервисами (если интересно, пишите в личку).

    Reference:
    https://soft.mydiv.net/win/download-ForceBindIP.html
    https://translate.google.com/translate?hl=ru&sl=zh...
    forum.oszone.net/post-2830221-36.html
    https://sourceforge.net/projects/forcebindip-gui/
    https://qastack.ru/superuser/410483/can-i-route-pr...
    https://forum.ixbt.com/topic.cgi?id=14:30017:926#926
    Ответ написан
    Комментировать