• Стоил ли переплачивать за монитор?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Привет! Разница довольно большая между двумя претендентами.

    Мое мнение:
    1. Если деньги есть, бери U2412M.
    2. Если денег нет, езжай в магаз, посмотри на оба моника и после следуй пункту 1.

    То, что выбрал Dell - молодец, лучших альтернатив в сегменте до 30р еще нужно поискать...

    Мой рейтинг мониторов такой:
    DELL P2416D - есть денег нет.
    DELL P2415Q - если денег почти нет.
    DELL UP2715K - если деньги есть.

    Ну и самое главное, не забываем про видео-карту, ибо более 2560x1600 разрешение НЕ всякая нормально потянет.
    Ответ написан
  • 62 градуса - температура для HDD. Сам ПК еще горячее. Что думаете?

    Jump
    @Jump
    Системный администратор со стажем.
    Для HDD это много, работать будет, но ресурс поменьше будет, выше шансы что быстрее выйдет из строя.
    Что касается системы - не бойтесь не сгорит, если сильно перегреется глючить начнет и только, ну или кондеры от перегрева вспухнут, если не твердотельники.
    Что касается процессора -еще проще - троттлинг включит.
    Ответ написан
    Комментировать
  • Подходит ли java для написания серверной части сервера?

    opium
    @opium
    Просто люблю качественно работать
    скорее всего они примерно будут одинаково производительны
    с учетом того что большая часть чистого и серьезного серверсайда написана на джаве это странный вопрос
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    @nirvimel
    1. Купите недорогой VPS (от $15/год, можно даже дешевле) и поднимите на нем личный VPN. В Сети есть куча подробных руководств как это делается. Только не надо говорить, что у вас нет на это денег, интернетом вы же не бесплатно пользуетесь. Просто примите это как небольшую дополнительную плату за интернет за ваш спокойный сон.
    2. Работая через VPN (обязательно), заведите себе новый почтовый ящик на зарубежном сервере у компании, у которой нет никакого бизнеса и любых коммерческих интересов в РФ. Пусть это будет не мажорный гигант индустрии, а скромная компания, малоизвестная в РФ. Главное - это наличие SSL в веб-интерфейсе и в IMAP, в остальном почта есть почта, она просто работает, и этого достаточно.
    3. Работая через VPN, заведите себе новый аккаунт в vk facebook и/или google (если вы неспособны полностью отказаться от использования социалок). При регистрации указывайте место проживания подальше от РФ. Учитывайте, что все гиганты индустрии, имеющие большой бизнес в РФ, полностью сотрудничает с ГБ, но аккаунты нерезидентов, зарегистрированные и посещаемые с зарубежных IP, они не станут сливать по умолчанию (но по первому запросу сольют мгновенно). Так что забудьте про любые приваты в социалках, ведите все общение так, как будто все это читает весь ваш квартал и все те, кому бы вам меньше всего хотелось это показывать. Для приватного общения пользуйтесь только безопасной почтой (пункт 2) и защищенными чатами, на telegram jabber на зарубежных серверах. Все это касается только тех, кто не может окончательно завязать с пагубной зависимостью от соц.сетей. Очевидно, наиболее безопасным (и полезным для здоровья) вариантом является полный отказ от социалок.
    4. Не вбрасывайте в старые ящики и соц.аккаунты адреса и ссылки на новые чистые, не указывайте новые адреса в любых исходящих и старайтесь, чтобы они не попали во входящие. Помните, что в любой социалке и любом веб-интерфейсе почты (сотрудничающей) кнопка "удалить" скрывает удаляемое только от вас самих и не более того.
    5. (Самый неприятный пункт) Забудьте про vk, mail.ru и российские gmail и facebook. - КАК? - Так! Я понимаю, что это не легко, что они давно стали частью вашей жизни. Но это придется сделать! Поговорите сами с собой, спросите себя что для вас важнее: ваша личная безопасность, спокойствие и крепкий сон или старые привычки, которыми вы опутаны, и которые не хотят отпускать вас? Учтите, что продолжая пользоваться местными социалками (и сотрудничающими иностранными), вы продолжаете каждый день генерировать на себя тонны компромата, который может обернуться против вас в самый неожиданный момент самым неприятным образом. Проявляя активность в своих старых аккаунтах, вы не даете им "протухнуть" и не даете даже формального повода добрым компаниям снести их через пол года, после истечения отведенного законом срока хранения (как известно, vk не ограничивается минимальным сроком хранения, а хранит все метаданные и текст практически вечно за исключением видео/аудио).
    Ответ написан
    26 комментариев
  • Как правильно подключить GIT submodule?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    нужно подключать весь репозиторий в том виде, в котором он есть

    Вы сами ответили ))
    Ответ написан
    Комментировать
  • Как удалить коммит с сервера?

    Если это последний коммит в ветке, то:

    Удалить его локально
    git reset HEAD~1 --hard

    Сделать force push на сервер
    git push -f
    Ответ написан
    1 комментарий
  • Как посмотреть какие ветки есть в удаленной репе?

    BuriK666
    @BuriK666
    Компьютерный псих
    git branch -r

    https://www.kernel.org/pub/software/scm/git/docs/g...
    -r, --remotes
    List or delete (if used with -d) the remote-tracking branches.

    -a, --all
    List both remote-tracking branches and local branches.
    Ответ написан
    Комментировать
  • Какую систему контроля версий можно использовать для работы с проектом в котором больше 200 файлов?

    2ord
    @2ord
    Сам занимался исследованием на эту тему.

    VCS (git, svn, hg, ...) тут вообще не в тему, поскольку типовые офисные документы (docx - это сжатый ZIP архив) не то же самое, что и исходный код текстового формата в кодировке UTF-8.
    Любое сохранение документов docx/odt порождает 100% новую версию, не имеющего общих частей файла между предыдущими.
    VCS - это геморрой при совместной работе с офисными документами между нетехническими лицами, однозначно. Выбирать VCS нужно только в случае, если идёт работа над простыми текстовыми файлами (открываются в Notepad), коими являются исходные тексты программного обеспечения.
    Есть ещё git-annex, оптимизированный для бинарных файлов, но это рассчитано на любителя командной строки.

    Облачные системы обычно хранения хранят несколько копий прежних версий файлов. Можно выполнить откат на предыдущие версии или восстановить удалённые. Делиться папками с другими можно при помощи функции Share.
    Используйте Dropbox или подобные хранилища: owncloud, например (мой выбор).
    Ответ написан
    3 комментария
  • Как отобразить данные из бд на страничку jsp?

    jaxtr
    @jaxtr
    JavaEE/Spring-разработчик
    Быстрый пример с Spring Framework/Data/Boot

    Создаёшь новый Маven-проект, добавляешь зависимости и указываешь родительский артефакт:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>


    Создаёшь класс-сущность, которая будет представлять собой отзыв:
    @Entity
    public class Review implements Serializable {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
    
        @Column(columnDefinition = "TEXT")
        private String reviewText;
        
        @Temporal(javax.persistence.TemporalType.TIMESTAMP)
        private Date createDate;
    
        // get/set-методы и т.д.
    }


    Создаёшь репозиторий для работы с БД:
    @Repository
    public interface ReviewRepository extends CrudRepository<Review, Integer> {
    }


    Создаёшь контроллер с двумя действиями: отображение списка отзывов и добавление нового отзыва:
    @Controller
    public class SiteController {
    
        @Autowired
        private ReviewRepository reviewRepository;
    
        @RequestMapping
        public ModelAndView index() {
            return new ModelAndView("site/index", Collections.singletonMap("reviews", reviewRepository.findAll()));
        }
    
        @RequestMapping(method = RequestMethod.POST)
        public String createReview(@RequestParam String reviewText) {
            reviewRepository.save(new Review(reviewText, new Date()));
    
            return "redirect:/";
        }
    }


    Создаёшь свою JSP-страницу:
    <?xml version="1.0" encoding="UTF-8"?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:c="http://java.sun.com/jsp/jstl/core" version="2.0">
    
        <jsp:directive.page contentType="text/html" pageEncoding="UTF-8"/>
        <jsp:output doctype-root-element="html" doctype-system="about:legacy-compat" omit-xml-declaration="true"/>
    
        <html>
            <head>
                <title>GuestBoot Example</title>
            </head>
            <body>
                <h1>Post new review</h1>
                <form method="POST">
                    <label>
                        <textarea name="reviewText" placeholder="Your review here"><jsp:text/></textarea>
                    </label>
                    <br/>
                    <button type="submit">Submit</button>
                </form>
                <hr/>
                <h1>Reviews</h1>
                <c:forEach items="${reviews}" var="review">
                    <div>
                        <c:out value="${review.reviewText}"/><br/>
                        <small><c:out value="${review.createDate}"/></small>
                    </div>
                    <br/>
                </c:forEach>
            </body>
        </html>
    </jsp:root>


    Добавляешь конфигурацию для отображения JSP-страниц:
    @Configuration
    public class WebConfig extends WebMvcConfigurerAdapter {
    
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
            registry.jsp("/WEB-INF/views/", ".jspx");
        }
    
    }


    Создаёшь стартовый класс приложения:
    @SpringBootApplication
    public class GuestBook extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(GuestBook.class, args)
                    .registerShutdownHook();
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(GuestBook.class);
        }
    }


    Запускаешь и наслаждаешься результатом.

    Смотришь репозиторий с рабочим кодом и читаешь документацию по Spring Framework и Spring Boot.
    Ответ написан
    Комментировать
  • Перед git push нужно делать git pull, но как решить конфликты?

    Antonio-banderas
    @Antonio-banderas
    iOS Developer
    почему затрутся? спуль - разреши конфликты если есть и смерджи изменения с коллегами
    Ответ написан
    Комментировать
  • Почему на production не рекомендуют использовать систему контроля версий?

    NYMEZIDE
    @NYMEZIDE
    резюме - ivanfilatov.ru
    prodaction пишется как production

    потому что в GIT не надо хранить настройки боевого сервера. В системе контроля хранят только исходники.
    дальше их отправляют в CI (Непрерывная интеграция), которая в случае успешной сборки добавляет deploy скрипт под конкретный боевой production. И выкладывает на сервер, или выкладывает архив для ручного выкладывания.
    Ответ написан
    Комментировать
  • С чего начать в изучении ssh?

    NullByte
    @NullByte
    Bad gateway
    user@linux: #> sudo apt-get install ssh tmux
    user@linux: #> sudo service ssh start (запуск сервера)
    user@linux: #> ssh user@localhost
    Login: user
    Password: (ввод вслепую, не думайте что "ничего не набирается")
    Welcome to Linux at localhostname
    blablabla
    user@linux: #> (с этого момента все идет через ssh-подключение, а не через обычный терминал)
    user@linux: #> tmux ( запускает виртуальный терминал, интересная и полезная вещь, если собираетесь активно работать через удаленку, читайте мануалы по его использованию, возможностей там много)
    вот и все. еще изучайте стандартные команды линуксов.
    Ответ написан
    Комментировать
  • На чём лучше вести локальную разработку?

    boramod
    @boramod
    Упрощенно.

    Вагрант — система управлением конфигурацией конкретной машины.
    Докер — запуск изолированных процессов на машине.

    Докер.
    Это не виртуальная машина, а запуск изолированных процессов. Т.е., запущенный процесс думает, что он один единственный, и ничего вокруг нет. Это работает на уровне ядра Linux. Без использования виртуальных машин.

    В терминологии Докера есть Images и Containers.
    Image — образ, шаблон, на основе которого запускается Container.
    Image строится на основе какого-либо базового образа ОС.

    Container — сервис, запущенный и построенный на базе Image.

    Таким образом, вы можете построить несколько образов, например, образ для Nginx, образ для PHP, образ для MySQL. Вдобавок, вы можете построить несколько образо, для каждой желаемой версии PHP, MySQL и т.п.

    Каждый из этих образов будет иметь у себя в базе какую-либо ОС. Т.е., происходит изолирование окружения, на котором работает Docker.
    На базе построенных образов вы можете запускать Containers, т.е., непосредственно строить рабочее окружение. Каждый запущенный контейнер думает, что он запущен один, в образе наследуемой ОС. Но на самом деле, это всего лишь отдельный процесс, работающий на уровне ядра Linux, без виртуализации. Т.е., у вас нет накладных расходов на виртуальные машины. Изолирование контейнеров выполняется на уровне ядра.

    При всем этом, ваша базовая система остается чиста от устанавливаемых пакетов, свободна от неразберихи с библиотеками, версиями и т.п.

    Оба инструмента хороши. Но у каждого свое назначение.

    Vagrant — великолепный инструмент для конфигурации удаленных машин с нуля, VDS/VPS и т.п.
    Docker — великолепный инструмент для быстрого развертывания/переконфигурации рабочего окружения, практически без изменения системы, на которую он устанавливается.
    Ответ написан
    6 комментариев
  • С чего начинается backend на Java (Spring)?

    zolt85
    @zolt85
    Программист
    Начать нужно с конфигурации Spring MVC. Доков по этому делу вагон и маленькая тележка. Если в кратце, то в конфигах нужно указать где искать бины приложения (контроллеры, сервисы и т.п.).
    А вообще советую почитать замечательную книжку Крейга Уолла "Spring In Action". В ней очень доступно все описано. Как настроить, как использовать.
    Ответ написан
    Комментировать
  • Удалённое управление windows из linux?

    a13xsus
    @a13xsus
    Lazy developer
    VNC

    RDP клиенты:
    Remmina
    rdesktop
    FreeRDP

    Удаленное управление:
    Teamviewer для линуксов https://www.teamviewer.com/en/download/linux/
    Ответ написан
    5 комментариев
  • Как загрузить на production определенные коммиты?

    miraage
    @miraage
    Старый прогер
    Ответ написан
    Комментировать
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев
  • Как добавить скрипт в Автозагрузку Linux Mint?

    nightvich
    @nightvich
    ITman
    Вам надо добавить ваш скриптик в /etc/profile.d/ c произвольным названием, но расширением .sh
    Ответ написан
    2 комментария