Как стать автором
Обновить
0
0
Tr1aL @Tr1aL

Пользователь

Отправить сообщение

Apache Kafka – мой конспект

Время на прочтение9 мин
Количество просмотров331K
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


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

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

Взламываем собеседования: по алгоритмам, по архитектуре, поведенческие и прочее

Время на прочтение8 мин
Количество просмотров52K
image

Я только что закончил семь собеседований в компаниях Кремниевой долины. В конечном итоге я принял предложение разработки программного обеспечения в Facebook.

Вот как я готовился к этим собеседованию и чему я научился на этом пути.

Мой многолетний путь в Кремниевую долину


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

Мне понравилась идея быть в центре всех инноваций в технической индустрии, а также ее промахов. Эта цель мотивировала меня. Это помогло мне сосредоточиться.

Я оставил свое место в качестве ведущего инженера iOS в чудесной компании в Мельбурне и я вернулся обратно в мой родной город Перт, чтобы учиться. Тут я буду готовиться к переговорному процессу которое ждет меня в Кремниевой долине. Я знал, что это будет невероятно сложно и тяжело.

Если вы упомянули о техническом интервью в комнате с инженерами-программистами, многие будут выступать против обычных методов собеседования. Большая часть аргументов исходит из того, что решение алгоритмов на доске фактически не представляет повседневные задачи инженера-программиста.

Ради этой статьи я не буду вступать в эту дискуссию. Вместо этого я рассмотрю различные типы методов интервью с точки зрения кандидата. Я также сосредоточу внимание на том, что я узнал из этого процесса.
Читать дальше →
Всего голосов 32: ↑22 и ↓10+12
Комментарии16

О выборе структур данных для начинающих

Время на прочтение18 мин
Количество просмотров176K
image

Часть 1. Линейные структуры


Массив


Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

// Таблица рекордов
int score1 = 0;
int score2 = 0;
int score3 = 0;
int score4 = 0;
int score5 = 0;

Это даёт нам значение пяти рекордов. Этот способ неплохо работает, пока вам не потребуется пятьдесят или сто объектов. Вместо создания отдельных объектов можно использовать массив.

// Таблица рекордов
const int NUM_HIGH_SCORES = 5;
int highScore[NUM_HIGH_SCORES] = {0};

Будет создан буфер из 5 элементов, вот такой:



Заметьте, что индекс массива начинается с нуля. Если в массиве пять элементов, то они будут иметь индексы от нуля до четырёх.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии32

Доступна для загрузки бесплатная книга о PowerShell на русском

Время на прочтение2 мин
Количество просмотров56K
Не могу не поделиться радостной новостью, о которой в своем блоге рассказал мой коллега Андрей Бешков. К сожалению, он не ведет блога на хабре, поэтому позволю себе рассказать за него о данном событии:) Думаю аудитории хабра будет очень интересно и полезно услышать об этом.

Некоторые главы книги:

— Первое впечатление о Windows PowerShell
— Расширенные возможности вывода: конвейеры
— Вводные упражнения с объектами Windows PowerShell
— Работа с процессами
— Вывод в файлы формата TXT, CSV или XML

Загрузить книгу можно здесь

Полное оглавление под катом:
Читать дальше →
Всего голосов 54: ↑36 и ↓18+18
Комментарии63

Google подсказывает ключевые слова для SEO

Время на прочтение1 мин
Количество просмотров830
Сегодня Google выпустил очень полезный инструмент под названием Search-Based Keyword Tool, который позволяет владельцу сайта оценить, по каким ключевым словам эффективнее всего размещать контекстную рекламу. Система проводит анализ контента на сайте и выдаёт рекомендации.

Главная польза новинки в том, что она анализирует не существующие ключевые слова, а может предложить новые с потенциально высоким ROI.

Кроме того, это просто очень интересный инструмент для анализа других сайтов, в том числе сайтов конкурентов. Вы можете посмотреть, какие ключевые слова наиболее релевантны для любого сайта в интернете. например, для Ленты.ру система рекомендует [Аэрофлот], [инвестиционные проекты] и [цена на нефть]. Для каждого результата приводятся ссылки на документы, содержащие эти фразы, количество ежемесячных запросов и уровень конкуренции по этим ключевым словам, а также примерная стоимость их покупки через AdWords.



via Search Engine Land
Всего голосов 45: ↑41 и ↓4+37
Комментарии13

1000+ часов видео по Java на русском

Время на прочтение7 мин
Количество просмотров1.3M
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. 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.
Читать дальше →
Всего голосов 120: ↑111 и ↓9+102
Комментарии38

Бюджетные VDS для обучения и разработки

Время на прочтение4 мин
Количество просмотров61K
Преветствую, Хабр!

Вступление

Многие из нас сталкивались, сталкиваются или будут сталкиваться с выбором VDS сервера по принципу дешево и сердито. Зачем такие серверы нужны? Скорее всего наибольшая польза будет для новичков, т.к. можно «пощупать» разное ПО, поэкспериментировать с различными конфигурациями и рецептами. Потестировать свои способности и раскрыть новые горизонты. Фрилансеру создать необходимое окружение для очередного заказа и развернуть там девелоперскую версию проекта, доступ к которой можно иметь всегда и везде как фрилансеру так и заказчику.
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии66

PostgreSQL: аналитика для DBA

Время на прочтение4 мин
Количество просмотров36K
Многие пользователи СУБД PostgreSQL знают, что сервер во время своей работы собирает разнообразную статистику, но не все знают, что ее полезно анализировать и как ее извлекать для этого. В этом небольшом тулките собраны несколько полезных запросов, дающих некоторое представление о том, как использовать это «скрытое знание», которое постоянно копится. Эти запросы можно использовать для мониторинга состояния PostgreSQL (ручного или с помощью плагинов для систем мониторинга вроде Nagios, Cacti или Zabbix), для поиска узких мест в работе сервера и многих других подобных задач. Помните, что это лишь верхушка айсберга; в документации можно найти описания нескольких десятков системных представлений, которые также могут быть полезны администратору PostgreSQL.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии20

Инструментирующий профайлер своими руками

Время на прочтение5 мин
Количество просмотров6.3K
Давно хотел написать простую утилиту, которая позволила бы показать в каких методах код проводит основное время, какие объекты и в каком количестве создает и оперативно включать трассировку посещения метода не модифицируя исходник.

Основные требования — простота, возможность запуска в текстовом режиме и независимость от архитектуры.

И вот что получилось
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

PHP / JSON база данных

Время на прочтение5 мин
Количество просмотров69K
При разработке web приложений, часто возникает потребность в хранении определённых настроек или временных данных. Обычно, для этого используются или файлы, или базы данных. Если это база данных, то хранить в базе таблицу с одной строкой, как чаще всего это бывает, не очень удачный вариант. Для этого чаще используются config файлы определенных форматов (*.php, *.ini, *.xml, *.json).
Читать дальше →
Всего голосов 78: ↑56 и ↓22+34
Комментарии40

Шифруются? Вытаскиваем байткод из JVM

Время на прочтение5 мин
Количество просмотров25K


Привет, хабр. Я пишу на языке Java, занимаюсь, преимущественно, работой с серверами MMORPG игр. Серверные «сборки» выпускаются многими командами, работающими в этой сфере. Некоторые платно, а некото
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии24

jQuery File Upload

Время на прочтение2 мин
Количество просмотров182K
Ура! Еще один, свеженький… чем он лучше других?



а) Новенький! Всегда, кто берется что-то делать, то обычно смотрит: есть ли в этом смысл, и если есть — делает это.
б) Красивенький! Можно не точить, а ставить из коробки. Основан на Bootstrap'е и иконках Glyphicons
в) Само собой мультиселект файлов, Drag&drop, прогрессбар и превьюшки фотографий.
г) Поддержка кросдоменного соединения, докачка и ресайз фоток на стороне клиента.
д) Готов для любой платформы сервера (PHP, Python, Ruby on Rails, Java, Node.js, и тому подобное.)

blueimp.github.com/jQuery-File-Upload

Поддержка браузеров:

github.com/blueimp/jQuery-File-Upload/wiki/Browser-support

Читать дальше →
Всего голосов 215: ↑206 и ↓9+197
Комментарии118

Закрепляем jQuery — 25 отличных советов

Время на прочтение19 мин
Количество просмотров168K
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.

Далее все написано от имени автора оригинальной статьи.

Введение


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

Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).

Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.

Содержание


  1. Загружайте фреймворк с Google Code
  2. Используйте «шпаргалку» (cheat sheet)
  3. Соединяйте все ваши скрипты и уменьшайте размер файла
  4. Используйте возможности Firebug для ведения логов
  5. Минимизируйте операции выборки в пользу кэширования
  6. Сводите манипуляции с DOM-деревом к минимуму
  7. Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
  8. Используйте «id» вместо классов, где это возможно
  9. Задайте контекст своим селекторам
  10. Используйте последовательности вызовов методов с умом
  11. Научитесь правильно использовать анимацию
  12. Научитесь назначать и делегировать события
  13. Используйте классы для сохранения состояния
  14. Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
  15. Пишите собственные селекторы
  16. Подготавливайте HTML и модифицируйте его, когда страница загружена
  17. Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
  18. Используйте служебные функции jQuery
  19. Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
  20. Как узнать что картинки загружены?
  21. Всегда используйте последнюю версию
  22. Как проверить, что элемент существует?
  23. Добавляйте класс «JS» в элемент «html»
  24. Возвращайте «false» для отмены поведения по-умолчанию
  25. Короткая запись для события готовности документа


Rock'n'Roll!
Всего голосов 188: ↑182 и ↓6+176
Комментарии109

CrackMe от нашей компании

Время на прочтение1 мин
Количество просмотров2.3K
Привет, Хабр!

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

Что предстовляет собой CrackMe?

Это CLI-апплет, демонстрирующий возможности двух наших продуктов: C3 Cloud Licensing и Stringer.
Читать дальше →
Всего голосов 22: ↑7 и ↓15-8
Комментарии8

Пользовательские типы в Hibernate

Время на прочтение4 мин
Количество просмотров11K
Hibernate — это прекрасный ORM инструмент, который можно настроить практически под любые свои нужны. В этом топике я покажу, как можно хранить поля произвольного типа. Для примера, возьмем массив строк (String[]) и POJO объект, который мы хотим хранить в БД:
  1. public class StringArrayContainer {
  2.     private Integer id;
  3.     private String[] tags;
  4. //  Место для геттеров и сеттеров.    
  5. }

Для того, чтобы хибернейт мог сохранять в базу поле типа «массив строк» необходимо (и достаточно) написать класс, который реализует интерфейс UserType, а также сослаться на него в мэппинге (файл hbm.xml).
  1. public class StringArrayCustomType implements UserType {
  2. //  TODO: написать реализацию.  
  3. }

Читать дальше
Всего голосов 39: ↑34 и ↓5+29
Комментарии8

Пользовательские критерии в Hibernate

Время на прочтение4 мин
Количество просмотров7.2K
В предыдущей статье я рассказал, как научить Hibernate хранить пользовательские типы данных. Теперь попробуем использовать эти данные при фильтрации выборок. Задекларируем результат, который мы хотим получить:
  1. String filteringTag = "habr";
  2. Session session = ...;
  3. Criteria criteria = session.createCriteria(StringArrayContainer.class);
  4. criteria.add(new StringArrayContainsCriterion("tags", filteringTag));
  5. List containers = criteria.list(); //Получаем список контейнеров, содержащих тег "habr"
  6. ...

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии8

Мультидоменность в Apache без лишних хлопот на локальном хосте

Время на прочтение3 мин
Количество просмотров49K
Интернет пестрит руководствами по настройке виртуальных хостов в Apache. Но, в большинстве случаев, создание такого поддомена представляется хлопотным делом.
По «стандартной» инструкции предлагается сделать следующее:
  1. Создать папку для сайта
  2. Создать конфигурационный файл с именем будущего домена
  3. Включить сайт специальной опцией
  4. Перезагрузить Apache
  5. Прописать наш домен в файле hosts

Некоторые пытаются оптимизировать данный процесс различными скриптами, но проблемы это, по сути, не решает.
Итак, попробуем добиться, чтобы процесс создания поддомена сводился лишь к созданию папки для сайта. Возможно ли это? Проверим…
Читать дальше →
Всего голосов 94: ↑81 и ↓13+68
Комментарии86

jQuery in Action. Глава 2

Время на прочтение9 мин
Количество просмотров23K
Как я и обещал, вторая глава из книги «jQuery in Action» (авторы Bear Bibeault и Yehuda Katz). Как и из первой главы, выбрал все самое вкусное и интересное ;-)

Напоминаю, что первую главу можно прочесть здесь.

Читать дальше →
Всего голосов 61: ↑56 и ↓5+51
Комментарии19

Ищем быстро, еще быстрее

Время на прочтение3 мин
Количество просмотров22K
Натолкнулся в разделе QA на интересный вопрос. Ответ на него заставил написать эту статью как бОлее полный ответ на вопрос «как организовать поиск по множеству параметров, как в Яндекс-маркете, например».

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

Итак, что имеем в «ДАНО»
  • Имеем 120 чекбоксов — вариант 1/0
  • Имеем 30 «радио» с выбором «да/нет/не важно»
  • Имеем 2-3 слайдера для указания диапазона цен/размера чего нить
  • Имеем самое главное: 12 млн записей в БД.
  • Имеем Select * From tovar Where (wifi=true) and (led=false) and (type=3) and ….остальные параметры …; со временем выполнения близкому к истерике клиента.

Читать дальше →
Всего голосов 184: ↑180 и ↓4+176
Комментарии117

5 вещей, которых вы не знали о многопоточности

Время на прочтение10 мин
Количество просмотров293K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →
Всего голосов 86: ↑77 и ↓9+68
Комментарии40

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность