Pull to refresh
4
0
Send message

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

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

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

Самый лучший способ обучения английскому для холостых мужчин

Reading time 2 min
Views 141K
imageКогда я неожиданно стал фрилансером, жизнь меня поставила перед фактом, что все мои заказчики англоговорящие и с ними придется переписываться, а то общаться в скайпе голосом. За всю свою жизнь я перепробовал наверно все возможные методы изучения английского.
1) Изучал его в школе и универе (на самом деле досталось куча неправильных вещей не имеющих реального отношения к текущему английскому, от которых сложно отучиться).
2) Изучал по курсам Ешко.
3) Читал всевозможные учебники.
4) Читал и зубрил слова со словаря.
5) Тренировался с разговорниками.
6) Пытался общаться с носителями языка в аськах, скайпах и прочем.
7) Ходил в протестантскую церковь в которых были бесплатные уроки с носителями языка, а потом проповедь.
8) Мучался с lingvaleo и аналогами.
9) Зубрил слова с карточками.
10) Пробовал читать книги на английском.
11) Наверно какие то ещё методы о которых я не помню, кто их знает пишите в комментах.
Читать дальше →
Total votes 352: ↑258 and ↓94 +164
Comments 265

Устраиваемся программистом за рубежом

Reading time 16 min
Views 62K
Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
Читать дальше →
Total votes 208: ↑188 and ↓20 +168
Comments 160

Государь: алгоритм

Reading time 3 min
Views 4.1K
«Государь» Макиавелли — одно из моих самых любимых произведений. Являясь руководством непосредственно правителю, я считаю, эту книгу обязан прочесть каждый начальник/директор. И хотя она уже устарела, думаю было бы весьма полезно держать ее советы у себя в голове.

Но бывает тяжеловато. Не только из-за объема информации, но еще и потому, что в зависимости от ситуации Макиавелли дает разные советы.

«Было бы неплохо структурировать», — подумал я.

Результатом мысли стал алгоритм принятия решения, представленный в картинке ниже и созданный исключительно по «Государю». Остальные советы, которые не определены ни под одну ситуацию и которые должны выполняться в любом случае, поданы ниже списком. Уверен, каждый сам сможет экстраполировать рекомендации правителю на должность руководителя.

Под катом картинка 1920x1573 px
Total votes 61: ↑54 and ↓7 +47
Comments 14

Фильмы IT-тематики

Reading time 2 min
Views 15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

Читать дальше →
Total votes 227: ↑191 and ↓36 +155
Comments 210

На пороге дополненной реальности: к чему готовиться разработчикам (часть 1 из 3)

Reading time 8 min
Views 22K

Аннотация


Представляю вашему вниманию материалы одноименного доклада, сделанного мной на конференции ADD-2010 осенью прошлого года.

В докладе после краткого экскурса в историю рассматривается текущее1) состояние дел в освоении дополненной реальности:
  • использование датчиков: акселерометры, гироскопы, магнитные компасы, GPS
    (различные мобильные телефоны, Wii, Sony Move, XSens)
  • использование маркеров: с инфракрасной подстветкой, в видимом диапазоне
    (Sony Move, OptiTrack, Vicon)
  • использование структурированной подсветки
    (на примере Microsoft Surface)
  • Z-камеры, выдающие картику + расстояние до объекта
    (Microsoft Kinect, её предшественники и аналоги)
  • безмаркерный захват движений
    (OrganicMotion, iPi Soft Desktop Motion Capture)
  • сканирование 3d-поверхности по набору изображений:
    (стереокамеры, 3d-сканеры, воссоздание 3d-сцены с движущейся камеры)
Читать дальше →
Total votes 69: ↑68 and ↓1 +67
Comments 27

Тысяча чертей! Потребитель? Защищайтесь!

Reading time 5 min
Views 16K
Так уж сложилось, что законодательство РФ в большинстве своем далеко от совершенства. Противоречит само себе, множественно трактуется и вообще сложновато для восприятия.
Но есть луч света в темном царстве!
Закон о защите прав потребителя. Замечательная штука, поверьте. При прокачанном скиле использования данного закона можно стать настоящим потреб. террористом. Это, кстати, полуофициальный термин — так называют людей, намеренно злоупотребляющих широкими возможностями, которые предоставляются вышеупомянутым законом.
Итак! На что вы имеете право!
По просьбе NermaN я попробую составить мануал, как и что.
Читать дальше →
Total votes 83: ↑74 and ↓9 +65
Comments 61

50 цитат о программировании всех времён

Reading time 6 min
Views 159K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8 +328
Comments 136

Алгоритмы и структуры данных JDK

Reading time 7 min
Views 143K
[ english version ]
Периодически проверяя нет ли реализации того или иного стандартного алгоритма в jdk, пришла мысль составить подобный обзор. Также интересны были причины наличия/отсутствия многих известных структур данных.
Формат обзора — только ключевые свойства и особенности структур и алгоритмов в составе jdk, подробности и детали — расписаны в javadoc или легко найти в исходниках.
Надеюсь на конструктивную критику и коллективный разум если что упустил.
Хватит вступлений, итак, давайте рассмотрим что включает в себя текущий jdk 7 и почему.
Читать дальше →
Total votes 49: ↑42 and ↓7 +35
Comments 25

Необыкновенный способ генерации лабиринтов

Reading time 6 min
Views 87K
В этой статье я расскажу об одном необычном подходе к генерации лабиринтов. Он основан на модели Амари́ нейронной активности коры головного мозга, являющейся непрерывным аналогом нейронных сетей. При определенных условиях она позволяет создавать красивые лабиринты очень сложной формы, подобные тому, что приведен на картинке.

Вас ждет много анализа и немного частных производных. Код прилагается.
Прошу под кат!

Читать дальше →
Total votes 265: ↑264 and ↓1 +263
Comments 53

Управление миграциями БД с Liquibase

Reading time 6 min
Views 134K
Не так давно мы начали внедрять Liquibase в качестве инструмента миграций схемы данных в большинстве наших проектов, новых и уже существующих. Система миграций схемы базы данных Liquibase хороша тем, что позволяет использовать системы контроля версий, VCS, (например, Git) для управления ревизиями базы данных приложения. Говоря более точно, VCS содержит описание изменений, необходимые для миграции схемы базы данных из одной ревизии в другую.

Хотя миграция схемы базы данных кажется довольно простой задачей изначально, задача становится сложнее после того, как появляется желание откатывать изменения схемы без ее создания заново.
Кроме схемы и операций DDL, Liquibase позволяет мигрировать данные приложения, с поддержкой наката изменений данных и их отката.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 33

Мониторинг «на коленке» – использование Cacti для контроля Jаva приложений

Reading time 9 min
Views 47K
В статье описывается решение для мониторинга с использованием Cacti на примере задачи анализа и контроля потребления ресурсов большого Java-приложения.

Передо мной стояла задача – в краткие сроки предложить меры по стабилизации большого трехзвенного Java-приложения, имеющего проблемы с потреблением памяти и производительностью. Времени, как обычно, мало: 1-2 недели на все. На фирме отсутствовала подходящая инфраструктура мониторинга приложений, и в мою задачу не входило ее создавать. Вариант с использованием JConsole не подходил из-за необходимости анализировать потребление за продолжительное время и смотреть его после возможных внезапных перезагрузок приложений.

В одной из фирм, где я работал, было реализовано впечатляющее по удобству и простоте решение для мониторинга Java-приложений на основе RRD Tool. Состояло оно из несложной надстройки на perl-скриптах, обеспечивающих сбор и отображение данных через HTTP и ряда доработок-агентов сбора данных в самом приложении. Для меня это стало идеей решения, однако, времени на написание обвязки над RRD у меня не было.

После аккуратного поиска нашелся бесплатный инструмент, реализующий необходимую мне надстройку – Cacti. Cacti это приложение, написанное в инфраструктуре Apache-PHP-MySql, позволяющее настраивать сбор и отображение данных мониторинга на основе веб-интерфейса. Разобраться с ним оказалось несложно, пару дней для подъема инфраструктуры, затем настройка и дописывание агентов сбора данных и все.

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

Дальше...
Total votes 15: ↑14 and ↓1 +13
Comments 10

Обзор систем управления проектами

Reading time 3 min
Views 166K
Мне пришлось за последние пару дней просмотреть много систем управления проектами и хочется поделиться тем, что я нашел…

Мы искали варианты с хостингом у создателя софта, чтобы не возиться с инсталяцией у себя (поэтому, например, тут нет Redmine в чистом виде).
Мне была важна интеграция с Google calendar и github.

Также хотелось чего то большего чем Bug tracking — еще и управление фичерами, требованиями и т.д.

Прошу прощения за много терминов на английском.

Картинки по клику открываются в полный размер

UPD: я не претендую на то, что просмотрел все такие сайты. их очень много!!!

краткий обзор возможностей некоторых сайтов для управления проектами
Total votes 26: ↑11 and ↓15 -4
Comments 39

Навигация: вариант реализации для корпоративного приложения

Reading time 19 min
Views 14K
За мою карьеру от простого разработчика до архитектора приходилось работать над приложениями разного масштаба и степени сложности. Последние несколько лет я работал над системой управления школами и системой управления медицинскими препаратами. Приходилось решать различного рода проблемы, связанные с навигацией по приложению. Но в зависимости от используемых фреймворков, не всегда удавалось найти удобное решение. Всегда казалось, что чего-то не хватает.

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

Однако, хотелось, чтобы системой можно было так же легко пользоваться, как и, например, интернет браузером. Переходить на нужные страницы в один-два клика. Видеть путь перемещения по приложению. Чтобы был простой и понятный механизм для всего приложения.

В данной статье я бы хотел рассмотреть один из вариантов реализации навигации по приложению, шаг за шагом, описывая задачи, которые приходилось решать и к каким результатам это всё привело.
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 5

Солим пароли

Reading time 2 min
Views 80K
Данная заметка призвана пролить свет на использование соли при хешировании пароля. Если посмотреть в комментарии к этому топику habrahabr.ru/post/145642, то возникает подозрение, что некоторые люди неправильно понимают предназначение соли. На примерах постараюсь показать, для чего используется этот механизм. Всех заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 58: ↑37 and ↓21 +16
Comments 88

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 1

Reading time 11 min
Views 719K

Этой весной, Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике я делаю перевод первого занятия. Если пост покажется стоящим — продолжу переводить и выкладывать.

Конспект лекций — Питер Тиль (курс: CS183) Стартап — Стэнфорд, весна 2012 г.


Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Total votes 86: ↑76 and ↓10 +66
Comments 33

Гига-фотография Млечного Пути в разрешении 108199x81503 или очередная история «xyz хватит всем»

Reading time 2 min
Views 44K
Пару дней назад была новость о том, что Астрономы Европейской южной обсерватории сшили мозаику центра нашей галактики (Млечного Пути) с разрешением 108199x81503 в ИК диапазоне (в ИК меньше рассеяние света на межзвездном газе и пыли — звезд видно намного больше).

К сожалению, результат они выложили лишь в виде онлайн-смотрелки и .psb-файла, размером 24Гб который можно открыть только фотошопом, при этом сам фотошоп отказывался экспортировать его в любой другой формат кроме опять же psb, tiff(само собой неудачно, там размер файла не может превышать 2/4Гб) и RAW. А хотелось что-нибудь, из чего было бы удобно вырезать интересный кусочек на wallpaper…

Забегая вперед, сразу покажу результаты:

1920x1200 2560x1600 2880x1800
Читать дальше →
Total votes 89: ↑85 and ↓4 +81
Comments 120

Как определить язык напечатанного текста? (Европейские языки)

Reading time 1 min
Views 106K
Увидев красивую и понятную блок-схему, описывающую, как отличать одну письменность от другой, я удивился. В первую очередь тому, что это оказалось кому-то интересным. Но раз уж та схема показалась любопытной, то я попробую продолжить тему, начатую уважаемым soulburner. Здесь речь пойдёт о том, как отличать друг от друга европейские языки.

Для начала – что такое европейские языки. Предлагаю ограничиться государственными языками стран Европы. Так как границы Европы – вещь спорная, то отдельно оговоримся про соседние страны. Духовно близкий Израиль, а также Грузию и Армению можно отличить по письменности из той же блок-схемы, Азербайджан и Казахстан я включу по доброте душевной, а Абхазию и Южную Осетию – в качестве прогиба перед российской властью. Так что абхазский в наш классификатор попадёт, а баскский и гэльский – ну уж нет, перебьются.

Языков больше, чем типов письменности. Поэтому диаграмка получилась большая. Отличать языки друг от друга будем в основном по особенным буквам, в частности, по буквам с диакритическими значками (диакритикой). Диакритика бывает над гласной (в букве й), над согласной (буква č) или может как-то сопровождать букву (как в букве ç; строго говоря это не дикритика вовсе, но мы здесь будем придерживаться такого жаргона). Наиболее известные (с моей точки зрения) значки в Европе — это умляут (он же диаерезис: ü), гачек (č) и акут (é).

Тех, кто не испугался, прошу под кат
Total votes 184: ↑171 and ↓13 +158
Comments 129

oDesk для начинающих

Reading time 6 min
Views 502K

Зачем?

Вообще, идея этого поста пришла мне в голову в тот самый момент, когда я, не имея до этого за плечами полноценного опыта фриланса, решил всерьез освоить oDesk. Да, если кто не знает, oDesk — это одна из крупнейших в мире фриланс-бирж. Итак, дело было в июле этого года. Официальной работы к тому времени у меня уже полгода как не было, все подработки закончились, новых серьезных заказов не предвиделось, и oDesk представлялся мне весьма перспективным вариантом. Аккаунт, как водится, был зарегистрирован «про запас» еще за год до того, но висел все это время без дела, поэтому начинать нужно было с нуля. При этом я был почти уверен, что руководство, хотя бы самое краткое, на тему, как и с чего начинать, я где-нибудь (уж на Хабре-то точно!) да найду.
Возможно, я плохо искал. Однако все, что мне попалось по теме, сводилось только к тому, что не нужно сразу загибать цены, лучше начинать с небольших. Примерная цитата: «начинайте с $10 в час, со временем, дорастете и до $15». Дорастать до $15, да еще и со временем, мне категорически не хотелось, я был уверен, что можно зарабатывать значительно больше. Да и кроме того, меня волновало огромное количество вопросов. Как заполнять профиль? На какие проекты откликаться? Как составлять cover letter? Как, черт побери, получить этот первый заказ, когда все тебе отказывают?
В тот момент я решил, что если все у меня получится, обязательно напишу то самое руководство для новичков, которого я не нашел.

Читать дальше →
Total votes 192: ↑175 and ↓17 +158
Comments 385

«Умный дом» собственными руками v2

Reading time 5 min
Views 89K
Добрый день, уважаемый %habrausername%!

Судя по предыдущим постам, многие из вас интересуются hand-made автоматизацей своего жилища. Я долго собирался с мыслями и идеями по итогам построения первого «умного дома» и теперь хочу поделиться своими наработками с вами.
Читать дальше →
Total votes 56: ↑53 and ↓3 +50
Comments 57

Information

Rating
Does not participate
Registered
Activity