• Правила хорошего тона protected или private?

    PravdorubMSK
    @PravdorubMSK
    есть принципы SOLID, где говорится, что классы должны быть закрыты для изменения и открыты для расширения


    Как в итоге лучше?
    лучше - как решит разработчик
    в большинстве случаев из-за солида - именно protected
    private нужен в ОЧЕНЬ ограниченных случаях
    Ответ написан
    Комментировать
  • Правила хорошего тона protected или private?

    EreminD
    @EreminD
    Кое-что умею
    ну есть принципы SOLID, где говорится, что классы должны быть закрыты для изменения и открыты для расширения
    Если вы, по ходу разработки, вдруг взяли и изменили что-то в классе - это плохой сигнал
    Если вам кажется, что может быть наследник с этим полем - ставьте protected
    Ответ написан
    2 комментария
  • Зачем нужно ООП в javascript?

    для того же, для чего и в других языках
    Ответ написан
    1 комментарий
  • Где водятся нормальные консоли?

    @res2001
    Developer, ex-admin
    Откройте для себя msys2.
    В отличии от cygwinа менее тяжеловесен.
    В чистом виде дает полноценный bash под виндой, со стандартным набором линуксовых инструментов. Кроме того все инструменты можно вызывать из виндовой консоли или командных файлов, т.к. это обычные виндовые exe, добавив каталог, где они лежат в переменную PATH (возможно это делается при установке, уже не помню).
    Кроме того есть пакетный менеджер - pacman и набор пакетов. Поставьте gcc и можно собирать большую часть никсового софта для винды.
    Сам регулярно им пользуюсь как для сборки так и инструментами типа sed и grep.
    Ответ написан
    6 комментариев
  • Как подходить к решению нетривиальных задач?

    Привет.

    Всегда использую модель боли:

    1) Смотришь задачу
    2) Пытаешься её решить
    3) Понимаешь, что ты тупой идиот, который ничего не может.
    4) Поднимаешь в помощь гугл
    5) Поднимаешь в помощь литературу
    6) Спрашиваешь ребят на тему: "почему так, а не иначе".
    7) Выполняешь задание, осознавая, что ты тупой, раз на решение этой задачи тебе пришлось потратить столько времени.

    Повторить до бесконечности, и ты станешь профи.
    Ответ написан
    7 комментариев
  • Насколько правилен такой подход?

    EireenK
    @EireenK
    В любой момент он может загрузить картинку, а затем тут же её убрать. Следовательно она навсегда останется нигде неиспользуемая.

    Можно и не загружать картинки на сервер при редактировании статьи, а показывать их, например, через Blob URLs. А при сохранении уже делать загрузку и заменять эти блоб-урлы на реальные адреса. Здесь можно посмотреть пример использования (кнопка "Import image with Blob URLs")
    Ответ написан
    7 комментариев
  • Как убрать окно выбора OC?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    загрузись в ubuntu
    в файле /etc/default/grub GRUB_TIMEOUT=1
    в файле /boot/grub/grub.cfg посчитай (начиная с 0), и получившееся впиши в GRUB_DEFAULT
    потом запусти от рута update_grub
    Ответ написан
    4 комментария
  • Как правильно понять сущности CoreOS и Docker?

    Insaned
    @Insaned
    CoreOS операционная система - Да
    На ней установлен Docker. - Да
    docker контейнер - это своя операционная система - не совсем, это скорее эмулятор операционной системы, но для дизайнера так можно считать.
    может потом mongo перекинуть с одной ноды на другую - сейчас вам скажут, что перекидываь контейнер с ноды на ноду - моветон и надо на новой ноде построить новый контейнер, а данные среплицировать. Но в целом, опять же да - так можно.
    Ответ написан
    1 комментарий
  • Как реализовать гибернацию linux-сервера при остановке дисков?

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

    Про выключение дисков: google [1] [2] [3]

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

    А вообще, за эти же деньги можно взять роутер помощнее, подключить к нему жесткий диск и не мучиться. Если есть бюджет - взять NAS, например, Synology, который "тащит" тонну разного софта.
    Ответ написан
    2 комментария
  • Вменяемый Docker Web UI?

    fadeev2010
    @fadeev2010
    Работаю в planiro.com
    Я пользуюсь dockerUI
    https://registry.hub.docker.com/u/dockerui/dockerui/

    Запустить можно сразу как контейнер
    docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

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

    sixhundredsixtyfive
    @sixhundredsixtyfive
    В свое время я пошел на это решение потому что нужно было на одной машине запускать и Windows и Linux, который обязательно должен был иметь доступ к некоторым PCI устройствам. Перепробовал следующие варианты: xen, KVM, ESXi.
    Остановился на системе под ubuntu с кастомным ядром и xen 4.2. Процесс настройки не простой, но описан детально, неплохие руководства Create a Gaming Virtual Machine, HOW-TO make dual-boot obsolete using XEN VGA passt....
    Большая вероятность столкнуться с проблемами при "пробросе" в гостевую ОС оборудования (видеокарты Nvidia), и прочими глюками, например xm не запускал windows 8, а xl запускал.

    Есть коробочные решения XenServer от Citrix и ESXi от VmWare. По моему субъективному мнению система на их базе получается стабильнее и их проще конфигурировать. Но с ними рабочий Linux придется запускать так же как и Windows - как гостевую ОС (если быть точным то и во варианте на базе ubuntu, linux не хостовая ОС, но это хотя бы был dom0, кстати работать на dom0 не рекомендуется).

    Но в каждом варианте мне не хватало какой то мелочи или проявлялась какая либо нестабильность. Это делало мои глаза красными. В итоге мне надоело... Для Linux был собран отдельный сервер, а на игровой машине теперь хозяйничает Windows. Все стало хорошо, у меня появилось свободное время, и я наконец запустил требовательное к графике приложение не для теста графики а чтобы расслабиться.

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

    @grinds
    criu.org/Main_Page

    Немного о продукте можно послушать в 403 выпуске радиота.
    Ответ написан
    Комментировать
  • Как "заморозить" процесс и сохранить его состояние на диск?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Раз два три

    UPD.
    Перечитал вопрос и стоит добавить, что шиндошс такой роскоши не позволяет. То есть, с оговорками, но вот здесь моё замечание @begemot_sun актуальнее некуда - слишком дорого.
    Ответ написан
    Комментировать
  • Как настроить с нуля PXE-установку Linux?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Ничего сложного, только описывать долго, постараюсь кратко с примерами.

    В конфиг DHCP добавляем настройку типа:
    #PXE boot for Server
    subnet XXX.XXX.6.0 netmask 255.255.255.XXX {
         range XXX.XXX.6.20 XXX.XXX.6.254;
         option routers XXX.XXX.6.1;
         option subnet-mask 255.255.255.XXX;
         option domain-name-servers  8.8.8.8;
            next-server XXX.XXX.6.10;  # TFTP server address
            filename "pxelinux.0";   # PXE boot loader filename
    }

    Ключевое это строки с передачей IP для сервера TFTP и имя файла загрузчика.

    Делаем каталог для будущих образов
    mkdir -p /usr/tftpboot/images
    mkdir /usr/tftpboot/pxelinux.cfg


    Устанавливаем tftp-hpa (легко найти для любой системы)
    В конфиге ставим флаги:
    "-p -s /usr/tftpboot -B 1024 --ipv4"

    Скачиваем свежий syslinux (например https://www.kernel.org/pub/linux/utils/boot/syslin...
    Свежие версии всегда можно найти тут www.syslinux.org/wiki/index.php/The_Syslinux_Project

    Разархивируем
    tar tar xjf syslinux-4.04.tar.bz2 -C /tmp
    копируем в /usr/tftpboot/ следующие файлы:
    chain.c32
    ldlinux.c32
    libcom32.c32
    libutil.c32
    memdisk
    menu.c32
    poweroff.c32
    pxelinux.0
    pxelinux.cfg
    reboot.c32
    vesamenu.c32


    Так же если планируем использовать кириллицу в меню скачаем шрифты, например эти
    ftp://ftp.itrc.hp.com/applications/experteventadmi...
    Кодировка меню должна быть в CP866 он же Russian(DOS)
    сконвертировать из koi8-r (тандартная кирилическая для фри) можно командой.
    iconv -f koi8-r -t CP866 defaultKoi8 -o default

    создаем папку с образами
    mkdir images
    В ней подпапки с нужными системами, в каждую подпапку кидаем нужные для загрузки систем файлы, вот пару примеров:

    Установка FreeBSD
    Скачиваем образы
    x32
    fetch mfsbsd.vx.sk/files/images/i386/9/mfsbsd-9.1-RELEAS...
    x64
    fetch mfsbsd.vx.sk/files/images/amd64/9/mfsbsd-9.1-RELEA...

    Установка Debian 7
    x32
    fetch ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
    fetch ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
    x64
    fetch ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...
    fetch ftp://ftp.debian.org/debian/dists/Debian7.0.0/main...

    Установка CentOS
    x32
    fetch mirror.mirohost.net/centos/6.4/os/i386/images/pxeb...
    fetch mirror.mirohost.net/centos/6.4/os/i386/images/pxeb...
    x64
    fetch mirror.mirohost.net/centos/6.4/os/x86_64/images/px...
    fetch mirror.mirohost.net/centos/6.4/os/x86_64/images/px...

    Установка Kali
    x32
    fetch repo.kali.org/kali/dists/kali/main/installer-i386/...
    fetch repo.kali.org/kali/dists/kali/main/installer-i386/...
    x64
    fetch repo.kali.org/kali/dists/kali/main/installer-amd64...
    fetch repo.kali.org/kali/dists/kali/main/installer-amd64...

    Далее правим фаил конфига загрузчика:
    /usr/tftpboot/pxelinux.cfg/default (Ну или с привязкой к конкретным сервакам, тогда не default)
    Вот пример, пути править на свои:
    ui vesamenu.c32
    PROMPT 0
    MENU WIDTH 77
    MENU MARGIN 10
    MENU PASSWORDMARGIN 3
    MENU ROWS 12
    MENU TABMSGROW 18
    MENU CMDLINEROW 18
    MENU ENDROW 24
    MENU PASSWORDROW 11
    MENU TIMEOUTROW 60
    MENU AUTOBOOT Starting Local System in # seconds
    
    MENU PASSPROMPT Enter Password
    
    NOESCAPE 0
    ALLOWOPTIONS 0
    
    MENU COLOR SCREEN 44;30 #00FFFFFF #00000000
    MENU COLOR BORDER 44;30 #FFFFFFFF #FF000000
    MENU COLOR TITLE 1;44;30 #FFFFFFFF #FF000000
    
    MENU COLOR SCROLLBAR 44;30
    
    MENU COLOR HOTKEY 44;30 #FFFFFF00 #FF000000
    MENU COLOR UNSEL 44;30 #FFFFFFFF #FF000000
    MENU COLOR HOTSEL 1;30 #FFFFFFFF #FF333333
    MENU COLOR SEL 7;44;30 #FFFFFF00 #FF333333
    
    MENU COLOR CMDMARK 44;30
    MENU COLOR CMDLINE 44;30
    MENU COLOR TABMSG 44;30
    MENU COLOR DISABLED 44;30
    MENU COLOR HELP 44;30
    
    MENU COLOR PWDBORDER 44;30 #FF187CCA #FFFFFFFF
    MENU COLOR PWDHEADER 1;44;30 #FF187CCA #FFFFFFFF
    MENU COLOR PWDENTRY 5;44;30 #FF187CCA #FFFFFFFF
    
    menu background background.jpg
    FONT pxelinux.cfg/Cyr_a8x16.psf
    menu title RealWeb PXE boot menu (c)Rico-X
    
    LABEL bootlocal
       menu label ^Загрузка с локального диска
       kernel chain.c32
       append hd0 0
       timeout 150
     TEXT HELP
    Загрузка с первого локального жесткого диска,
    произойдет автоматически по ситечении таймера.
     ENDTEXT
    
    menu begin
    menu title FreeBSD 9.1
    
    label FreeBSD91p2x64
      menu label Установить FreeBSD-9.1 x64
      kernel memdisk
      initrd images/mfsbsd/mfsbsd-9.1-RELEASE-p2-amd64.img raw
     TEXT HELP
    После запуска параметры входа:
    имя root пароль mfsroot
    Для начала установки FreeBSD введите bsdinstall
     ENDTEXT
    
    label FreeBSD91p2x32
      menu label Установить FreeBSD-9.1 x32
      kernel memdisk
      initrd images/mfsbsd/mfsbsd-9.1-RELEASE-p2-i386.img raw
     TEXT HELP
    После запуска параметры входа:
    имя root пароль mfsroot
    Для начала установки FreeBSD введите bsdinstall
     ENDTEXT
    
    label < Назад
     menu exit
    
    menu end
    
    menu begin
    menu title Debian
    
    label Debian_7x64
      menu label ^Debian 7 wheezy x86_64 install
      kernel images/debian/linux7_64
      append priority=low vga=788 initrd=images/debian/initrd7_64.gz --
      TEXT HELP
    Устанавливает Debian 7 64 в ручном режиме.
      ENDTEXT
    
    label Debian_7x32
      menu label ^Debian 7 wheezy i386 install
      kernel images/debian/linux7_386
      append priority=low vga=788 initrd=images/debian/initrd7_386.gz --
      TEXT HELP
    Устанавливает Debian 7 32 в ручном режиме.
      ENDTEXT
    
    label < Назад
     menu exit
    
    menu end
    
    menu begin
    menu title CentOS
    
    label CentOS_6.4_x86_64
      menu label ^CentOS 6.4 x86_64 install
      kernel images/centos/amd64/vmlinuz
     APPEND initrd=images/centos/amd64/initrd.img method=http://mirror.mirohost.net/centos/6/os/x86_64/ devfs=nomount ksdevice=link ramdisk_size=100000
      TEXT HELP
    Устанавливает CentOS 6.4 x64 в ручном режиме.
    Для установки уиспользуется http://mirror.mirohost.net/centos/6/os/x86_64/
      ENDTEXT
    
    label CentOS_6.4_i386
      menu label ^CentOS 6.4 i386 install
      kernel images/centos/i386/vmlinuz
      APPEND initrd=images/centos/i386/initrd.img method=http://mirror.mirohost.net/centos/6/os/i386/ devfs=nomount ksdevice=link ramdisk_size=100000
      TEXT HELP
    Устанавливает CentOS 6.4 i386 в ручном режиме.
    Для установки уиспользуется http://mirror.mirohost.net/centos/6/os/i386/
      ENDTEXT
    
    label < Назад
     menu exit
    
    menu end
    
    #label Centos6_64
    #MENU LABEL CentOS 6 amd64
    # KERNEL /memdisk
    # APPEND iso
    # INITRD images/centos/CentOS-6.4-x86_64-netinstall.iso
    
    LABEL ProxMox
    MENU LABEL ProxMox3 install
        KERNEL images/proxmox/linux26
    #    APPEND ramdisk_size=102400 vga=791 video=vesafb:ywrap,mtrr splash=verbose url=http://195.114.6.10/images/proxmox/initrd.iso.img
        APPEND ramdisk_size=524288 vga=791 video=vesafb:ywrap,mtrr splash=verbose
        INITRD images/proxmox/initrd.iso.img
    
    menu begin
    menu title ^Kali ^Linux
    
    label KaliLinux_x64
      menu label ^Kali Linux x86_64
      kernel images/kalilinux/amd64/linux
      append priority=low vga=788 initrd=images/kalilinux/amd64/initrd.gz --
      TEXT HELP
    Дистрибьютив для пинтестирования,
    cодержит различные инструменты для проведения тестов.
    Русская документация http://ru.docs.kali.org/
      ENDTEXT
    
    label KaliLinux_x32
      menu label ^Kali Linux i386
      kernel images/kalilinux/i386/linux
      append priority=low vga=788 initrd=images/kalilinux/i386/initrd.gz --
      TEXT HELP
    Дистрибьютив для пинтестирования,
    cодержит различные инструменты для проведения тестов.
    Pусская документация http://ru.docs.kali.org/
      ENDTEXT
    
    label < Назад
     menu exit
    
    menu end
    
    LABEL Pmagic
    LINUX images/pmagic/bzImage
    append noapic initrd=images/pmagic/initrd.img root=/dev/ram0 init=/linuxrc ramdisk_size=100000
      TEXT HELP
    LiveCD дистрибьютив для восстановления и проверки систем.
      ENDTEXT
    
    label reboot
      menu label Reboot
      kernel reboot.c32
      TEXT HELP
    Перезагрузить компьютер
      ENDTEXT
    
    LABEL poweroff
     MENU LABEL Power off
     KERNEL poweroff.c32
      TEXT HELP
    Выключить компьютер
      ENDTEXT


    Для загрузки windows нужно использовать специально собранный образ WinPE, который будет монтировать нужные образы с сетевой шары, но описание сборки вменяемого образа займет еще страниц 5 и мне лень уже печатать.
    Ответ написан
    2 комментария