• Пол Грэм. Все статьи на русском. Два года спустя

      «Лучший способ писать — это переписывать»
      — Пол Грэм, «The Age of the Essay»

      image

      Первую подборку на русском всех статей Пола Грэма (а их 176) меня вдохновили сделать ребята из tceh.com (60 переводов).
      Вторую — Edison Software (125 переводов).
      ТретьюФилтех-акселератор (134 перевода и еще несколько в процессе).
      На четвертую… уже закончатся эссе Грэма, буду переводить его Twitter (там, кстати, много полезного).

      Недавно я подключился к проекту, цель которого содействовать «филантропическим стартапам» (это такие, которые «за добро во всем мире», типа GNU/Linux, Wikipedia и WebArchive). Я вношу свои 5 копеек подборкой самых полезных концептуальных/теоретических материалов про стартапы и стартаперское (хакерское) мировоззрение.

      А для тех, у кого все же стартап, а не ICO:

      До 16 января 2018 идет прием заявок, предакселератор PhilTech.
      С 5 по 23 февраля будет акселерация «по-полной».
      С 19 по 25 мая — финальный интенсив в Москве.

      Есть время подучить матчасть, особенно для CEO.

      Кто такой Пол Грэм?
      Если вы хоть как-то связаны со стартапами у вас возник такой вопрос, то вам обязательно под кат.

      Подборка из серии «добавить в избранное и читать по одному эссе в день».
      (хватит на полгода, кстати)
      Читать дальше →
      • +23
      • 11,2k
      • 8
    • Настройка валидации DTO в Spring Framework

        Всем привет! Сегодня мы коснёмся валидации данных, входящих через Data Transfer Object (DTO), настроим аннотации и видимости — так, чтобы получать и отдавать только то, что нам нужно.

        Итак, у нас есть DTO-класс UserDto, с соответствующими полями:

        public class UserDto {
        
            private Long id;
            private String name;
            private String login;
            private String password;
            private String email;
        }

        Я опускаю конструкторы и геттеры-сеттеры — уверен, вы умеете их создавать, а увеличивать в 3-4 раза код смысла не вижу — представим, что они уже есть.

        Мы будем принимать DTO через контроллер с CRUD-методами. Опять же, я не буду писать все методы CRUD — для чистоты эксперимента нам хватит пары. Пусть это будут create и updateName.
        Читать дальше →
      • Лекции Технотрека. Разработка под Android (осень 2017)


          Представляем вашему вниманию очередную порцию лекций Технотрека. В рамках курса будут рассмотрены основы разработки под Android. Вы научитесь эффективно использовать среду разработки Android Studio для создания пользовательского интерфейса, написания и отладки кода, профилирования приложений, поиска и решения проблем в коде. Узнаете о возможностях стандартной библиотеки и платформы Android, научитесь эффективно их использовать. Освоите проектирование кода, обладающего качествами модульности, расширяемости, простоты поддержки. Научитесь использовать средства автоматизированного тестирования.


          Курс ведут Юрий Береза, старший программист студии IT Territory, и Кирилл Филимонов, руководитель команды разработки BeepCar Android.

          Читать дальше →
          • +34
          • 14,3k
          • 4
        • Лекции Технотрека. 1 семестр. Разработка на Java (весна 2016)

            Продолжаем публикацию наших свежих образовательных курсов. За 14 лекций Технотрека вы получите необходимые навыки и опыт в области разработки на Java, узнаете синтаксис и основные библиотеки языка, начнете понимать объектно-ориентированный подход, сможете декомпозировать сложные задачи.

            Курс ведут Рустам Кильдиев, Java/Scala-разработчик мобильного ПО, и Дмитрий Архангельский, инженер-разработчик в Одноклассниках.

            Лекция 1. «Знакомство с платформой Java»



            Вводное занятие, на котором кратко дается описание всего курса. Основная задача курса — не просто научить синтаксису, а дать практические навыки и понимание основ. Курс выстроен так, чтобы, выполняя небольшие задачи, написать проект «Бэкенд к мессенджеру».
            Читать дальше →
            • +32
            • 29,8k
            • 7
          • Маршрутизация локальной сети через прозрачный socks-прокси

            Потребовалось пустить трафик со всех домашних устройств, включая смартфоны, через ssh tunnel.

            Имелось:

            • маршрутизатор TP-LINK, подключенный к провайдеру.
            • смартфоны и ноутбук подключенные к беспроводной точки доступа маршрутизатора.

            Ноутбук находился далеко от маршрутизатора (в другой комнате) и регулярно использовался, поэтому пришлось искать решение маршрутизации трафика с помощью встроенного беспроводного интерфейса (и без всяких там eth0).

            Инструментарий:

            openssh-client — стандартный ssh клиент для linux.
            autossh — позволяет проверять соединение с ssh сервером, и подключаться при разрыве.
            redsocks — прозрачный socks-прокси сервер.
            isc-dhcp-server — dhcp сервер.
            iptables — думаю, комментарии излишне.

            Итак, приступим. Первым делом поднимем DHCP сервер на беспроводном интерфейсе ноутбука.

            Установка:

            apt install isc-dhcp-server

            Настроим нужный интерфейс:

            nano /etc/network/interfaces

            # Назначаем статический IP адрес для DHCP сервера на wlan0:
            auto wlan0
            iface wlan0 inet static
                address 192.168.1.100
                netmask 255.255.255.0
                broadcast 192.168.1.255
                gateway 192.168.1.1
            

            Узнать название необходимого интерфейса можно командой:

            ip a

            Назначим DNS:

            nano /etc/resolv.conf

            # Публичные DNS сереверы Google:
            nameserver 8.8.8.8
            nameserver 8.8.4.4
            # (или DNS серверы провайдера)
            

            Читать дальше →
          • Идеальный мавен. Часть 1

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


            В одну заметку всё не войдёт, поэтому сначала план:


            1. Постановка задачи — описание той конфигурации проектов с которой мы будем работать, целей и проблем
            2. Как настроить мавен для разработки в рамках нашей задачи
            3. Как настроить CI/CD (билды, релизы, деплоймент)
            4. Нерешенные проблемы

            Задача


            Итак, начнем с постановки задачи. Предположим у нас есть группа людей (компания, фирма, кружок), которые разрабатывают проекты на Java. При этом у них есть как проекты с открытым кодом (OSS), так и проекты с закрытым кодом. Проекты, назовём их внутренние, разрабатываются независимо друг от друга, но между ними есть зависимости. Что хочется:


            • Централизованное управление зависимостями на внешние библиотеки
            • OSS проекты в центральном мавен репозитории
            • Закрытые проекты в своём мавен репозитории.
            • «Простой» релиз внутренних проектов с обновлением зависимости в зависимых проектах.
            • Максимальная автоматизация всех хотелок.
            Читать дальше →
          • Как мы построили программно-определяемый дата-центр в ящике стола

              Проснулся я однажды пораньше и подумал: а чего бы не построить дата-центр? Свой собственный, на Intel NUC — мини-ПК, на которых крутится половина нашего центра технологий Intel.

              Наш кабинет по пути из офисной столовой, и кто-то сболтнул, что я делаю. Поэтому начали заходить коллеги поржать. Заглядывали, спрашивали, где я прячу дата-центр, потом смеялись.

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



              Эпопея строителя дата-центра — ниже.
              Читать дальше →
            • Spark — Потрясающий веб-микрофреймворк для Java

              image

              Небольшое вступление


              Spark — это просто чудесный микрофреймворк для создания веб-приложений на джаве без особых усилий.  Spark стремится к простоте и обеспечивает только минимальный набор функций. Тем не менее он предоставляет все необходимое для создания веб-приложения, которые поместятся в несколько строк кода. С синтаксисом, вдохновленным Sinatra, код выглядит очень чистым.
              Читать дальше →
            • Как стать более продуктивным с плагинами Android Studio

              • Перевод
              image

              Android Studio — очень надежный инструмент. Он имеет самый простой и вместе с тем самый гибкий интерфейс для разработки пользовательского интерфейса для всех типов устройств.
              Мы можем перетаскивать элементы представления и виджеты в нашем редакторе макетов и детально настраивать через несколько строк в xml.

              Студия обладает лучшими в отрасли инструментами для редактирования кода, отладки и отслеживания производительности.

              Но иногда хочется, чтобы этот инструмент делал нас еще более продуктивными.
              Читать дальше →
            • От репозитория до CI/CD-инфраструктуры в продакшене за неделю

                Обычно в термин «поддержка» вкладывают только один смысл — это реагирование на беды с хостингом, замена битых дисков, настройка веб-серверов и СУБД, общее повседневное администрирование. Но, на самом деле, это только первый уровень контроля стабильности работы любого интернет-проекта.
                Читать дальше →
                • +14
                • 9,5k
                • 2