Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
Владимир @MinskV
User
Как мы запускали космический телескоп
7 min
87KВ четверг 19 декабря 2013 года космический телескоп Gaia Европейского космического агентства отправился в космос на российской ракете «Союз-СТ-Б» с разгонным блоком «Фрегат-МТ». Старт производился с космодрома Куру во Французской Гвиане.
Запуск прошел успешно, а как он проходил мне удалось наблюдать из Центра управления полетами НПО им. С.А. Лавочкина, куда пригласили нескольких блогеров.
Запуск прошел успешно, а как он проходил мне удалось наблюдать из Центра управления полетами НПО им. С.А. Лавочкина, куда пригласили нескольких блогеров.
+218
Руководство по созданию стартапов, часть 8: нанимаем, управляем, повышаем и увольняем исполнительных директоров
10 min
30KTranslation
Часть 7
Одна из самых важных вещей, которые должен сделать основатель стартапа – создание первосортной команды управляющих. По этой теме можно книгу написать, но в статье я дам основные советы по поводу найма, управления, повышения и увольнения ИД в стартапе, основанные на моих наблюдениях и опыте.
Определения: ИД – это лидер. Тот, кто выполняет функцию и несёт ответственность за систему внутри компании, которая вносит свой вклад в успех или неудачу. Разница между ИД и менеджером в том, что область деятельности ИД обширнее в плане организации, принятия решений и их исполнения. Менеджер может спросить, что ему делать. ИД должен знать это сам.
Одна из самых важных вещей, которые должен сделать основатель стартапа – создание первосортной команды управляющих. По этой теме можно книгу написать, но в статье я дам основные советы по поводу найма, управления, повышения и увольнения ИД в стартапе, основанные на моих наблюдениях и опыте.
Определения: ИД – это лидер. Тот, кто выполняет функцию и несёт ответственность за систему внутри компании, которая вносит свой вклад в успех или неудачу. Разница между ИД и менеджером в том, что область деятельности ИД обширнее в плане организации, принятия решений и их исполнения. Менеджер может спросить, что ему делать. ИД должен знать это сам.
+15
В чем нарисовать MindMap? Детальный обзор 6 самых популярных программ для рисования mindmap
5 min
589KСтруктура обзора
1. Вступление;
2. Сравнение основных 5-х программ по популярности, цене, совместимости, наличию на разных платформах;
3. Подробное описание функционала и особенностей 5-х основных программ.
Введение
Mindmapping (рисование древовидных карт или ментальных карт) прочно вошел в жизнь многих людей именно с появлением соответствующего софта. Используя mindmap, делают техзадания, консультанты-аналитики делают проекты, дизайнеры придумывают концепции, тренера делают презентации, менеджеры составляют планы и т.д.
Целью этой статьи не является пропаганда mindmapping. У древовидного представления данных есть свои плюсы и свои ограничения. Обсуждение уже было в комментариях к публикации "+10 к интеллекту".
Эта публикация для тех, кто хочет выбрать удобный инструмент и узнать какие-то новые фишки, о которых еще не знал.
+62
Клеточный автомат Steppers
14 min
32KВ этой статье предлагаются правила для двумерного клеточного автомата, который, с одной стороны очень похож на игру Жизнь Джона Конвея (Conway’s Game of Life), а с другой — обладает существенными отличиями. Прежде всего, его отличает увеличенное до трех количество состояний клеток, повышенная способность к самоорганизации, неограниченное время активной эволюции и неограниченное количество движущихся конфигураций.
Для стабильных конфигураций новые правила совпадают с правилами игры Жизнь, поэтому все стабильные конфигурации в игре Жизнь существуют и в новых правилах. В описываемом клеточном автомате существует большой класс движущихся конфигураций, космических кораблей. Все эти конфигурации перемещаются по одному и тому же поступательному механизму, который напоминает движение и шагового экскаватора и человека на костылях. Подобные космические корабли я назвал степпер (stepper), а само правило Steppers. Так его и будем называть в дальнейшем.
В Steppers существует довольно много осцилляторов, причем, некоторые осцилляторы из игры Жизнь работают и в Steppers, что говорит о преемственности правил. И, наконец, знаменитый глайдер Конвея, так же существует в предлагаемых правилах. В статье будет рассмотрена динамика случайным образом заполненных решеток, раскрыт механизм движения степперов, описаны найденные на данный момент осцилляторы и степперы. Так же будут приведены примеры столкновений и сложного функционального поведения.
[00] Пример движущейся конфигурации, генерирующей поток степперов
Для стабильных конфигураций новые правила совпадают с правилами игры Жизнь, поэтому все стабильные конфигурации в игре Жизнь существуют и в новых правилах. В описываемом клеточном автомате существует большой класс движущихся конфигураций, космических кораблей. Все эти конфигурации перемещаются по одному и тому же поступательному механизму, который напоминает движение и шагового экскаватора и человека на костылях. Подобные космические корабли я назвал степпер (stepper), а само правило Steppers. Так его и будем называть в дальнейшем.
В Steppers существует довольно много осцилляторов, причем, некоторые осцилляторы из игры Жизнь работают и в Steppers, что говорит о преемственности правил. И, наконец, знаменитый глайдер Конвея, так же существует в предлагаемых правилах. В статье будет рассмотрена динамика случайным образом заполненных решеток, раскрыт механизм движения степперов, описаны найденные на данный момент осцилляторы и степперы. Так же будут приведены примеры столкновений и сложного функционального поведения.
[00] Пример движущейся конфигурации, генерирующей поток степперов
+59
Почему истории успеха настолько бесполезны
6 min
144KЭтот пост понравится мизантропам: ведь он про то, что нет ничего бесполезнее, чем чужой успех. Вот если бы было место, где люди честно бы делились своими планами, а потом можно было бы следить поэтапно за их реализацией и фиксировать не только удачи, но и провалы в итоге… Ой, я же пишу в блоге такого проекта. Заходим на «СмартПрогресс», выбираем меню Цели, сортировку «проваленные», добавляем параметр «лучшие за все время» — и смотрим список самых громких фейлов на проекте.
Поскольку каждая история сопровождается подробным описанием, можно разобрать причины чужих неудач достаточно подробно — настолько, насколько пользователи позволяют себе быть откровенными. Ведь мы не хотим совершить ошибку, которую совершают все, кто изучают чужие истории успеха, забывая истории неудач – ошибку выжившего.
Поскольку каждая история сопровождается подробным описанием, можно разобрать причины чужих неудач достаточно подробно — настолько, насколько пользователи позволяют себе быть откровенными. Ведь мы не хотим совершить ошибку, которую совершают все, кто изучают чужие истории успеха, забывая истории неудач – ошибку выжившего.
+125
Беззнаковая арифметика в Java
5 min
94KКак известно, в Java нет беззнаковых типов. Если в Си вы могли написать
Обычный каст
Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить
Для беззнакового сравнения есть лаконичная формула:
Для byte, short и long, соответственно, константы будут
unsigned int
(char
, long
), то в Java так не получится. Однако нередко возникает необходимость в выполнении арифметических операций именно с числами без знака. На первый взгляд кажется, что беззнаковые типы в принципе-то и не особо нужны (подумаешь, MaxInt
для чисел со знаком меньше в два раза, если нужны числа больше, я просто возьму long
и далее BigInteger
). Но основное различие на самом деле не в том, сколько различных неотрицательных чисел можно положить в signed или unsigned int, а в том, как над ними производятся арифметические операции и сравнения. Если вы работаете с бинарными протоколами или с двоичной арифметикой, где важен каждый используемый бит, нужно уметь выполнять все основные операции в беззнаковом режиме. Рассмотрим эти операции по порядку:Преобразование byte в short (int, long)
Обычный каст
(int) myByte
выполнит расширение до 32 бит со знаком — это означает, что если старший бит байта был установлен в 1, то результатом будет то же самое отрицательное число, но записанное в 32-битном формате:0xff -> 0xffffffff (-1)
Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить
0x000000ff
, в Java можно записать:int myInt = myByte & 0xff;
short myShort = myByte & 0xff;
Сравнение без учёта знака
Для беззнакового сравнения есть лаконичная формула:
int compareUnsigned(int a, int b) {
return Integer.compare( a ^ 0x80000000, b ^ 0x80000000 );
}
Для byte, short и long, соответственно, константы будут
0x80
, 0x8000
и 0x8000000000000000L
.+42
Решаем квартирный вопрос при помощи API Яндекс.Карт
7 min
51KВ жизни даже самого «махрового» IT-шника порой наступает момент, когда нужно не только вылезти из своей берлоги на улицу, но целиком перенести себя на новое место жительства. Обычный человек в таких случаях вооружается Интернетом и прочёсывает сайты недвижимости в поисках подходящих вариантов, которые отмечаются на карте, выписываются или распечатываются, а затем планомерно прозваниваются. Если наступает конец цикла, а задача ещё не выполнена —
Вот и в моей жизни пришло время для переезда, но проведя несколько дней за такой рутинной деятельностью я вспомнил, чтонезря ношу бороду есть такой чудесный сервис, как Яндекс.Карты, и у них есть не менее чудесное API. Посидев одно утро и скомбинировав всё с простейшим граббером на PHP и XPath я получил такую вот красочную карту, где разными маркерами можно отмечать объекты (квартиры) по любому из критериев, или просто одним взглядом оценить, какие из них ближе к желаемому месту дислокации (в моём случае это было метро):
goto line 1
… А на каком-то этапе человеку это надоедает и он идёт в агенство.Вот и в моей жизни пришло время для переезда, но проведя несколько дней за такой рутинной деятельностью я вспомнил, что
+57
Простой скрипт на Python для заучивания английских слов или почему я не использую карточки
4 min
31KTutorial
На хабре уже не раз поднималась тема изучения английского языка (пруф). Она рассматривалась с разных ракурсов. Кто-то писал, что не зачем учить слова, при изучении иностранного. Кто-то делился способами, коих великое множество, от простых карточек, до целой тетради, исписанной по самое не хочу. В конце концов есть LinguaLeo, так же замечательный сервис, на котором без дополнительной платы можно учить по 10 слов в день. Хотя иногда платить не хочется, а 10 слов кажутся весьма небольшим количество для молодого организма, который познает таинства и прелести иностранной мовы. Тогда возможно этот скрипт вам будет полезен.
+10
Познаём Java. Первая чашка
3 min
21KЧто да как
Я решил поддержать начинание MaxElc и DarwinTenk, и начать потихоньку рассказывать про Java. Текст буду подавать «чашками» потому, что один из символов Java — чашка кофе. Большую часть я буду писать сам, изредка поглядывая в википедию и на официальный сайт языка — java.sun.com (раздел /docs).
Далее в тексте стоит разделять понятия «Java как язык» и «Java как платформа».
+106
Лямбда-выражения в Java 8
19 min
463KВ новой версии Java 8 наконец-то появились долгожданные лямбда-выражения. Возможно, это самая важная новая возможность последней версии; они позволяют писать быстрее и делают код более ясным, а также открывают дверь в мир функционального программирования. В этой статье я расскажу, как это работает.
Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.
Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.
Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
+42
Познаём Java. Третья чашка: примитивные типы, и объекты. Базовые конструкции
7 min
236KТипа реальные типы
Думаю, после краткого экскурса в возможности Java и прочитывания пары десятков строк кода примеров, вам захотелось узнать, чем должен уметь оперировать каждый Java-программист. Что ж, давайте поговорим о примитивных типах, классах (в том числе нескольких основных), сравнении, передаче параметров и простых структурах в Java.
+24
Новое в Java 8
15 min
510KTranslation
Java еще не умерла — и люди начинают это понимать.
Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
+94
N+2 полезные книги для бизнеса, которые обязательно стоит прочитать
5 min
96KВ прошлом году я делал обзор книг, на которых реально растут люди и реально улучшаются процессы.
Тогда понадобился год, чтобы прочитать в десять раз больше бумаги и сделать выборку, которая оказалась неожиданно полезной многим. Вот результаты ещё одного года — ещё N+2 книги для бизнеса, которые реально помогают.
Тогда понадобился год, чтобы прочитать в десять раз больше бумаги и сделать выборку, которая оказалась неожиданно полезной многим. Вот результаты ещё одного года — ещё N+2 книги для бизнеса, которые реально помогают.
+94
Удаленная работа: как мы это делаем
4 min
106KTranslation
Я проработал удаленно почти 10 лет, и познал разные стороны такой работы: как плохую так и хорошую. Я понял, что удаленная работа подходит определенному типу людей. Вы должны уметь фокусироваться, мотивировать себя, а также грамотно управлять своим временем. У вас нет этих качеств? Ничего, поначалу я тоже ничего этого не умел.
+55
1000+ часов видео по Java на русском
7 min
1.3MTutorial
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).
В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.
Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
- Java Core
- Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
- Multicore programming in Java.
Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).
В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.
(GolovachCourses.com)
Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
+102
Оригинальный метод ухода от конфликта как вид психологической борьбы
3 min
106KHикто не хочет конфликтовать. Когда конфликты становятся частыми, человек мучительно ищет выход. Кто-то пытается избежать общения, кто-то идет на прямой конфликт, кто-то ищет приемы и методы как правильно вести себя. Последним и посвящен данный пост, идея появления которого родилась после просмотра видео следующего топика «Как поставить человека на место: 10 реальных вопросов про давление в переговорах». Советы интересные и без сомнения при умелом использовании действенные, но есть еще один занятный метод ухода от конфликта под названием «психологическое айкидо», разработанный Литваком Михаилом Ефимовичем (психолог, психотерапевт, кандидат медицинских наук). Когда-то этот прием неплохо помог мне в общении с одним очень темпераментным начальником. Но все по порядку.
+30
Введение Стивена Вольфрама в язык Wolfram
1 min
49KTranslation
Привет, Хабр! Полагаю, многие слышали о системе Wolfram Mathematica, однако, судя по тому что на Хабре нет даже отдельного хаба, посвященного технологиям Wolfram, не многие осознают их реальный потенциал. Но, похоже это скоро изменится, так как Wolfram близки к окончательному релизу технологии, которую они разрабатывали 30 лет. Она называется Wolfram Language и представляет собой совершенно новую парадигму программирования, намного более мощную, чем все существующие.
+73
Чем старше Spring, тем больше контекстов
7 min
54KУже много лет работая со спрингом, я заметил забавную закономерность: в каждой новой версии добавляется новый способ конфигурирования контекста. Давайте вспомним, как это было:
Консультируя и проводя тренинги в различных компаниях, я видел самое разное отношение к этим способам конфигурирования. Крупные компании, зачастую живущие по принципу «работает – не трогай», до сих пор лелеют старые xml -конфигурации, продолжая их множить и кормить новыми бинами. «Зато у нас все централизовано!» — кричат их архитекторы, добавляя 100500-тысячную строчку в xml-Бога.
Компании поменьше, пытающееся угнаться за новшеством технологий, беспощадно сжигают старые XML-ы, переписывая всё что могут, на аннотации, а что не могут на Java-конфиг. И уже потирают руки, пытаясь придумать, а куда бы им теперь приткнуть конфигурацию на грувях.
Видел я и совсем забавные ситуации, когда не очень разбирающийся во всей этой каше конфигураций джуниор, дублировал декларацию бинов, прописывая их и в xml-e и через аннотации (ну так чтобы наверняка).
А где же находится правда? Неужели как всегда посередине?
Давайте попробуем разобраться…
Для начала давайте сравним стратегии декларации бинов.
- В первом спринге конфигурацию можно было писать исключительно на xml-e. (ClassPathXmlApplicationContext(“context.xml”))
- Во втором (точнее с 2.5) появилось возможность создавать контекст через аннотации. (AnnotationConfigApplicationContext(“package.name”))
- Третий спринг добавил конфигурацию на джаве. (AnnotationConfigApplicationContext(JavaConfig.class))
- Четвёртый тоже сохранил традицию и уже с декабря 2013 года можно конфигурировать при помощи груви скриптов (GenericGroovyApplicationContext(“context.groovy”))
Консультируя и проводя тренинги в различных компаниях, я видел самое разное отношение к этим способам конфигурирования. Крупные компании, зачастую живущие по принципу «работает – не трогай», до сих пор лелеют старые xml -конфигурации, продолжая их множить и кормить новыми бинами. «Зато у нас все централизовано!» — кричат их архитекторы, добавляя 100500-тысячную строчку в xml-Бога.
Компании поменьше, пытающееся угнаться за новшеством технологий, беспощадно сжигают старые XML-ы, переписывая всё что могут, на аннотации, а что не могут на Java-конфиг. И уже потирают руки, пытаясь придумать, а куда бы им теперь приткнуть конфигурацию на грувях.
Видел я и совсем забавные ситуации, когда не очень разбирающийся во всей этой каше конфигураций джуниор, дублировал декларацию бинов, прописывая их и в xml-e и через аннотации (ну так чтобы наверняка).
А где же находится правда? Неужели как всегда посередине?
Давайте попробуем разобраться…
Для начала давайте сравним стратегии декларации бинов.
Начнём с классического XML-a:
+38
Как стать переговорщиком — интервью с Дмитрием Коткиным
11 min
30KДва наших недавних видео-ролика про переговоры набрали 40,000 просмотров за два дня.
Тема оказалось интересной. И это не удивительно, мы ведем переговоры каждый день. Увидев такой интерес к теме, мы уговорили Дмитрия Коткина, автора этих видео-роликов и по совместительству руководителя питерской школы переговорщиков ШиП, сделать интервью про то, как стать переговорщиком.
О чем поговорили:
- 8 способов противостояния формуле нужды
- Как поставить человека на место: 10 реальных вопросов про давление в переговорах
Тема оказалось интересной. И это не удивительно, мы ведем переговоры каждый день. Увидев такой интерес к теме, мы уговорили Дмитрия Коткина, автора этих видео-роликов и по совместительству руководителя питерской школы переговорщиков ШиП, сделать интервью про то, как стать переговорщиком.
О чем поговорили:
- Как Дмитрий Коткин попал в тематику переговоров?
- Какие были переговорные неудачи?
- О работе в политике
- В чем специфика IT-специалистов и IT-компаний в плане переговоров
- 4 главных принципа любых торгов
- С чего начать, когда стартуешь проект с новым заказчиком
- Что делать, когда заказчик пропихивает новые требования
- Главная вещь в обучении переговорам
- 6 лучших книг по переговорам
+18
Information
- Rating
- Does not participate
- Location
- Минск, Минская обл., Беларусь
- Registered
- Activity