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

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

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

Как бороться с OutOfMemoryError на практике, или ох уж мне эти базы данных

Время на прочтение17 мин
Количество просмотров73K
Приветствую, Хабр!
Немного лирики
Сегодня, 2015-03-21, я решил сделать пол-дела, и всё-таки начать писать статью о том, как же всё-таки начать понимать, что же делать с OOM, да и вообще научиться ковырять heap-dump'ы (буду называть их просто дампами, для простоты речи. Также я постараюсь избегать англицизмов, где это возможно).
Задуманный мной объём «работ» по написанию этой статьи кажется мне не однодневным, а посему статья должна появиться лишь через пару недель спустя день.

В этой статье я постараюсь разжевать, что делать с дампами в Java, как понять причину или приблизиться к причине возникновения OOM, посмотреть на инструменты для анализа дампов, инструмент (один, да) для мониторинга хипа, и вообще вникнуть в это дело для общего развития. Исследуются такие инструменты, как JVisualVM (рассмотрю некоторые плагины к нему и OQL Console), Eclipse Memory Analyzing Tool.
Очень много понаписал, но надеюсь, что всё только по делу :)
Читать дальше →
Всего голосов 50: ↑49 и ↓1+48
Комментарии31

Хороших книг пост

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


А давайте давайте соберём здесь хорошие книги, которые просто стоило собрать.
Суть в том, что просто давно стоило сложить хорошие книги в одном посте, чтобы было что прочитать в дороге — или просто для души.
Читать дальше →
Всего голосов 84: ↑72 и ↓12+60
Комментарии392

Книга Леонарда Сасскинда «Битва при черной дыре»

Время на прочтение3 мин
Количество просмотров23K
Как же здорово иногда почитать качественные книги, в которых на популярном языке рассказывается о сложных научных теориях. Конечно, после таких книг нельзя говорить, что ты разбираешься в этих теориях, но получить хотя бы общее представление о них полезно. Одной из таких замечательных книг является «Битва при черной дыре» физика-теоретика Леонарда Сасскинда. Второе название книги «Мое сражение со Стивеном Хокингом за мир, безопасный для квантовой механики».

Стержень книги — это научный спор автора и его сторонников со Стивеном Хогингом (и его сторонников) по вопросу о том, пропадает ли информация, попавшая в черную дыру бесследно, или все-таки каким-то образом ее можно оттуда извлечь (теоретически). Хокинг считал, что информация пропадает, но это значит, что в этом случае должен переставать работать один из основных принципов квантовой механики, что обеспокоило Сасскинда и его друга, лауреата Нобелевской премии Герарда ’т Хоофта (интересно, что означает такой апостроф в начале фамилии?) Сасскинд пытался доказать, что информацию можно извлечь (опять же, теоретически), собрав частицы, которые образуются при испарения черной дыры. Самое интересное, что это самое испарение черных дыр предсказал и обосновал все тот же Хокинг в далеком 1974 году, и сейчас это излучение носит его имя.



Сасскинд рассказывает, как в течение долгих лет (начиная с 1983 года и до двухтысячных годов) появлялись различные теории, которые между собой взаимодействовали, и которые в результате помогли ответить на поставленный вопрос, разумеется, в пользу автора книги. Книга Леонарда Сасскинда Битва при черной дыре icon smile Самое замечательное во всей этой истории то, что этот спор был чисто научный, не перерос полемику и не сказался на отношениях между двумя сторонами.


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

Паттерны проектирования

Время на прочтение2 мин
Количество просмотров48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии29

Скорость загрузки страниц повлияет на ранжирование

Время на прочтение1 мин
Количество просмотров2.4K
Вполне вероятно, что уже в следующем году Google модифицирует алгоритмы ранжирования таким образом, что будет учитывать не только релевантность контента и PR, но также и скорость загрузки каждой страницы, сказал один из ведущих программистов компании Мэтт Каттс (Matt Cutts) в интервью WebProNews.com.

Это будет очередной мерой, которые предпринимает Google для всеобщего «ускорения интернета», наряду с разработкой протокола SPDY и других инновационных технологий. Для веб-мастеров недавно открыт раздел Site Speed со списком справочных ресурсов и инструментов для оптимизации производительности сайта. Некоторые из этих инструментов (Page Speed и Closure) созданы самой компанией Google, а другие от сторонних разработчиков.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии113

Страна кленового листа: Канада

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


Раз пошла такая пьянка тема про эмиграцию (истории покорения «нашими людьми» Новой Зеландии и Австралии), расскажу свою историю.

О себе: программист (основной язык С++), окончил ММФ НГУ в 2003-м году, с августа 2007-го года проживаем с женой в г. Оттава, Канада.

Замечания


1) все цены — в канадских долларах, на момент написания гугль сообщал, что «1 канадский доллар = 0.850557 доллара США»
2) всё изложенное — исключительно личные впечатления одного из сотен и тысяч приезжих и ни в коей мере не претендует на истину в последней инстанции
3) это никоим образом не агитация, а всего лишь изложение фактов (отрицательных моментов я тоже перечислил достаточно)

Итак, поехали!
Читать дальше →
Всего голосов 177: ↑164 и ↓13+151
Комментарии185

Сделай сам: любимые персонажи из бумаги

Время на прочтение2 мин
Количество просмотров3.8K
Привет всем Хабралюдям!
Сегодня я хочу поделиться с сообществом одним очень затягивающим и увлекательным способом убить свободное время и просто отвлечься.

Читать дальше →
Всего голосов 217: ↑199 и ↓18+181
Комментарии125

25 лучших деловых книг

Время на прочтение2 мин
Количество просмотров5.8K
Я стараюсь читать много бизнес-литературы. Скажу честно – попадается много откровенно неудачных, графоманских, непрактичных книг. Но есть книги, которые иначе как сокровищами не назовешь.

Я составил список из 25 золотых (ИМХО и только ИМХО) деловых книг.
Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии145

Ранги разработчиков

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


Конечно ранг разработчика — это достаточно абстрактное понятие, но я выскажу свое мнение по данному вопросу, оно не привязано ни к какой теории, а базируется лишь на моём опыте.
Читать дальше →
Всего голосов 117: ↑104 и ↓13+91
Комментарии114

Мир лицензий: разбираемся с GNU GPL

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

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

UPD: опубликован перевод небольшого куска официального GPL FAQ habrahabr.ru/blogs/Dura_Lex/45878
UPD2: скорректирован и переформулирован список совместимых лицензий

Читать дальше →
Всего голосов 164: ↑156 и ↓8+148
Комментарии170

«Continuous page repainting и отладка перерисовки страницы» в Chrome Dev Tools

Время на прочтение3 мин
Количество просмотров12K
image
Сегодня мы поговорим о том, как Chrome Dev Tools помогают нам бороться с лишней перерисовкой страницы.

Прошлые части:
«Workspace» и «Сниппеты»
«Поддержка Sass»

Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии4

Ежедневная работа с Git

Время на прочтение40 мин
Количество просмотров874K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


Конечно, я попытаюсь рассказать обо всём по-порядку, начиная с основ. Поэтому, эта статья будет крайне полезна тем, кто только начинает или хочет разобраться с git. Более опытные читатели, возможно, найдут для себя что-то новое, укажут на ошибки или поделятся советом.

Далее очень много букв случайным образом превратились в пост.
Всего голосов 200: ↑194 и ↓6+188
Комментарии44

Книги, которые должен прочитать Java программист: от новичка до профессионала

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

Книги, которые должен прочитать Java программист: от новичка до профессионала


[Примечание переводчика: термины градации «профессионализма» оставлены англоязычные в связи с трудностью их адекватного перевода на русский и несовпадением с привычными Junior-Middle-Senior-Lead. Перевод достаточно вольный — если знаний языка хватает, то лучше читать оригинал, как и советует автор. Оба языка для меня не родные, так что про ошибки сообщайте в личку — исправим. Здесь и далее в квадратных скобках примечания переводчика]

Я заметил, что в последние месяцы я рекомендую одни и те же книги как новичкам, так и опытным разработчикам. Поэтому я решил составить список этих книг. Они составили мне неплохую компанию в процессе моего роста от новичка до сегодняшнего уровня (какой-бы он не был :) )
Читать дальше →
Всего голосов 90: ↑77 и ↓13+64
Комментарии77

Загадка выпадающего списка «Амазона»

Время на прочтение2 мин
Количество просмотров191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Всего голосов 558: ↑548 и ↓10+538
Комментарии90

Полезные ссылки для PHP разработчика с MageConf 2012

Время на прочтение2 мин
Количество просмотров28K
MageConf 201216.09.2012 в Киеве в три потока прошла конференция MageConf 2012. Два потока были посвящены системе Magento, третий – PHP. Посетив все 6 докладов на потоке PHP, хотел бы кратко изложить основную информацию, донесенную спикерами. В итоге пост получился набором полезных ссылок по разработке на PHP.

Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
Читать дальше →
Всего голосов 61: ↑50 и ↓11+39
Комментарии23

Используем быстрые селекторы для jQuery

Время на прочтение3 мин
Количество просмотров40K
Как Вы знаете — в разработке объёмного JS-приложения где используется популярнейшая библиотека jQuery наступает момент когда остро встаёт проблема производительности. Все силы кидаются на амбразуру профайлера, каждый вызов скрупулёзно исследован, каждый функционально нагруженный кусок реализации обнюхан со всех сторон и выправлен. Но беда поступает не с той стороны, откуда её ждут 90% разработчиков. Селекторы — Как много в этом слове.
Давайте разберёмся — как работает эта магия и почему поиск DOM-элементов может стать причиной падения производительности приложения.
Читать дальше →
Всего голосов 159: ↑155 и ↓4+151
Комментарии31

Декорирование Ext JS4

Время на прочтение4 мин
Количество просмотров11K
Используя ExtJS в своих проектах, приходится постоянно видеть один и тот же сине-голубой интерфейс, что не всегда хорошо. В 4й версии этого фреймворка появился удобный компонент для изменения внешнего вида вашего веб-приложения без ручной правки CSS, основанный на использовании метаязыка SASS. С его помощью можно получить интерфейс, внешне не похожий на стандартный, заменив всего пару строк в конфигурационном файле.
Читать дальше →
Всего голосов 46: ↑43 и ↓3+40
Комментарии12

Aibolit для android

Время на прочтение4 мин
Количество просмотров2.7K
Как же утомителен процесс инициализации UI при разработке android-приложений. Раз за разом приходится писать горы шаблонного кода: findViewbyId, setOnClickListener, getResources().getDrawable, … Возникает естественное желание переложить эту работу на плечи AOP. Беглый поиск готовых решений, адаптированных под android, навел разве что на RoboGuice, о котором уже упоминалось на хабре. Однако библиотека имеет значительный размер (~0.5 mb), что для многих приложений недопустимо много, и к тому же требует наследования ваших классов application и activity от RoboApplication и RoboActivity, чего не всегда хочется делать. Потому и появился Aibolit, легкая (~40kb), простая в использовании и функциональная библиотека, использующая dependency injection для инициализации UI на android.

Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии26

Java сертификация. Подготовка к SCJP

Время на прочтение5 мин
Количество просмотров70K
В этом месяце я сдавал экзамен SCJP. В этом топике я расскажу о подготовке и экзамене.
В основном для тех, кто собирается сдавать и кому нужно больше информации об этом.

Уточнение


Так как Sun'a больше нет, то и экзамена SCJP тоже нет. Теперь он значится так:
1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam.
прочитать об экзамене и посмотреть задачи
Всего голосов 89: ↑84 и ↓5+79
Комментарии43
1

Информация

В рейтинге
Не участвует
Откуда
Haarlem, Noord-Holland, Нидерланды
Дата рождения
Зарегистрирован
Активность