Pull to refresh
0
Пётр Жалыбин @papageno read⁠-⁠only

User

Send message

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Reading time 39 min
Views 167K
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Total votes 51: ↑43 and ↓8 +35
Comments 49

«Под капотом» индексов Postgres

Reading time 7 min
Views 51K

Капитан Немо у штурвала «Наутилуса»

Индексы — один из самых мощных инструментов в реляционных базах данных. Мы используем их, когда нужно быстро найти какие-то значения, когда объединяем базы данных, когда нужно ускорить работу SQL-операторов и т.д. Но что представляют собой индексы? И как они помогают ускорять поиск по БД? Для ответа на эти вопросы я изучил исходный код PostgreSQL, отследив, как происходит поиск индекса для простого строкового значения. Я ожидал найти сложные алгоритмы и эффективные структуры данных. И нашёл.

Здесь я расскажу о том, как устроены индексы и как они работают. Однако я не ожидал, что в их основе лежит информатика. В понимании подноготной индексов также помогли комментарии в коде, объясняющие не только как работает Postgres, но и почему он так работает.
Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Comments 21

Искусство командной строки

Reading time 15 min
Views 249K


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5 +117
Comments 143

Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 1

Reading time 3 min
Views 132K
Недавно сайт Fog Creek взял у меня интервью, и один из вопросов был связан с моими любимыми книгами по программированию, кодированию и разработке программ. Мне этот вопрос запомнился потому, что я давно себя считаю заядлым книжным ботаником. Книжный ботаник я потому, что безумно люблю книги о науке, компьютерах и программировании. Каждые несколько месяцев я уделяю день или два исследованию недавно изданной литературы и покупке наиболее понравившихся экземпляров. Я мог бы вечно разговаривать о своих любимых книгах. Ведь у меня их так много.

Меня настолько заинтересовал вопрос о книгах, что я решил начать новую серию статей на своём сайте catonmat о моих топ-100 книгах о программировании, программном обеспечении, науке, физике, математике и компьютерах. В каждой статье я буду размещать по пять книг, ведь разбивать огромное задачи на маленькие подзадачи — это самый простой способ их решать (GTD — get things done).

Взгляните на мою книжную полку, чтобы убедиться, что я настоящий ботаник:

image
Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Comments 26

Класс дедлоков про дедлок классов

Reading time 5 min
Views 38K


Знаете ли вы, как избежать дедлоков в своей программе? Да, этому учат, про это спрашивают на собеседованиях… И тем не менее, взаимные блокировки встречаются даже в популярных проектах серьёзных компаний вроде Google. А в Java есть особый класс дедлоков, связанный с инициализацией классов, простите за каламбур. Такие ошибки легко допустить, но трудно поймать, тем более, что сама виртуальная машина вводит программиста в заблуждение.

Сегодня пойдёт речь про взаимные блокировки при инициализации классов. Я расскажу, что это такое, проиллюстрирую примерами из реальных проектов, попутно найду багу в JVM, и покажу, как не допустить такие блокировки в своём коде.

Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 16

Deep Learning, NLP, and Representations

Reading time 13 min
Views 61K
Предлагаю читателям «Хабрахабра» перевод поста «Deep Learning, NLP, and Representations» крутого Кристофера Олаха. Иллюстрации оттуда же.

В последние годы методы, использующие глубокое обучение нейросетей (deep neural networks), заняли ведущее положение в распознавании образов. Благодаря им планка для качества методов компьютерного зрения значительно поднялась. В ту же сторону движется и распознавание речи.

Результаты результатами, но почему они так круто решают задачи?



В посте освещено несколько впечатляющих результатов применения глубоких нейронных сетей в обработке естественного языка (Natural Language Processing; NLP). Таким образом я надеюсь доходчиво изложить один из ответов на вопрос, почему глубокие нейросети работают.
Вглубь по кроличьей норе
Total votes 22: ↑21 and ↓1 +20
Comments 20

300 потрясающих бесплатных сервисов

Reading time 11 min
Views 1.6M


Автор оригинальной статьи Ali Mese добавил ещё 100 новых бесплатных сервисов. Все 400 потрясающих сервисов доступны здесь. И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные Веб-Сайты + Логотипы + Хостинг + Выставление Счета

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly.com Domain: Конструктор веб-сайтов.
  • Logaster: Онлайн генератор логотипов и элементов фирменного стиля (new).
  • Withoomph: Мгновенное создание логотипов (англ.).
  • Hipster Logo Generator: Генератор хипстерских логотипов.
  • Squarespace Free Logo: Можно скачать бесплатную версию в маленьком разрешении.
  • Invoice to me: Бесплатный генератор счета.
  • Free Invoice Generator: Альтернативный бесплатный генератор счета.
  • Slimvoice: Невероятно простой счет.

Читать дальше →
Total votes 341: ↑325 and ↓16 +309
Comments 107

Назад в 90-е или как отправить сообщение на пейджер через Java

Reading time 9 min
Views 72K
Прочитав заголовок, вы, наверное, немного удивились необычности задачи, которую я перед собой поставила. Однако, как ни странно, пейджеры до сих пор иногда могут пригодиться в жизни, даже несмотря на появившееся в последние 15 лет обилие других средств коммуникации. Один из частных случаев их применения — (около)медицинское учреждение, расположенное в железо-бетонном здании, глушащем WiFi и сигнал мобильного телефона. Обслуживающий персонал, тем не менее, должен каким-то образом получать сообщения о том, куда им надо срочно переместиться в случае чего. Для решения этой проблемы руководство учреждения в нашем случае поставило себе дорогую станцию и раздало всем сотрудникам пейджерА пейджеры, которые должны были среди прочих принимать наши сигналы. Соответственно, нашей (меня и моих коллег) задачей являлась их отправка.

Уже прошли те времена, когда для отправки текста на пейджер надо было сначала пообщаться с сонной девушкой с телефонного узла. Теперь достаточно дозвониться до станции и набрать номер абонента и сообщение в тоновом режиме. Арсенал при этом сильно ограничен: можно отправлять только цифры, символы * и #, иногда буквы ABCD. Но для передачи, скажем, номера комнаты или кода ошибки должно хватить. Это довольно сильно упрощает задачу и роднит её с другими — с дозвоном в общую переговорную комнату, например.

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

image
Читать дальше →
Total votes 52: ↑50 and ↓2 +48
Comments 24

Потрясающая коллекция бесплатных шрифтов за 2014 год

Reading time 1 min
Views 123K
Привет, Хабр! Многие уже знают о моей страсти к попытке собрать самое лучше, что может быть полезно для веб-разработчиков или веб дизайнеров. И шрифты — не исключение. Программное обеспечение для работы со шрифтами постоянно развивается. Количество дизайнеров желающих опробовать себя в типографике растет с каждый днем. А сегодня я хочу представить вам их наработки — 30 потрясающих бесплатных шрифтов, которые мне удалось собрать за последний год.

Polar



Polar

Читать дальше →
Total votes 76: ↑68 and ↓8 +60
Comments 23

Параллельное программирование с CUDA. Часть 1: Введение

Reading time 11 min
Views 126K

Еще одна статья о CUDA — зачем?


На Хабре было уже немало хороших статей по CUDA — раз, два и другие. Однако, поиск комбинации «CUDA scan» выдал всего 2 статьи никак не связанные с, собственно, алгоритмом scan на GPU — а это один из самых базовых алгоритмов. Поэтому, вдохновившись только что просмотренным курсом на Udacity — Intro to Parallel Programming, я и решился написать более полную серию статей о CUDA. Сразу скажу, что серия будет основываться именно на этом курсе, и если у вас есть время — намного полезнее будет пройти его.
Читать дальше →
Total votes 29: ↑26 and ↓3 +23
Comments 36

Аддон для Overclock`a сознания или флешбек-профи

Reading time 3 min
Views 69K
В продолжение темы ОС и этих двух постов: «Overclock мозга или внутренняя виртуализация сознания», Патч для гипервизора сознания хотелось бы поделиться своим опытом в данном сабже, а так же мало задокументированной, но зато намного более простой возможностью «прокачать» свой мозг.

image
Читать дальше →
Total votes 44: ↑34 and ↓10 +24
Comments 29

Что скрывают нейронные сети?

Reading time 5 min
Views 115K
Статья является вольным переводом The Flaw Lurking In Every Deep Neural Net.

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

В статье "Интригующие свойства нейронных сетей" за авторством Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow and Rob Fergus, команды, включающей авторов из проекта Google по глубокому обучению, кратко описываются два открытия в поведении нейронных сетей, противоречащие тому, что мы думали прежде. И одно из них, честно говоря, поражает.
Читать дальше →
Total votes 109: ↑101 and ↓8 +93
Comments 96

Нейронные сети, «вредные» советы

Reading time 6 min
Views 169K
Исторически, искусственные нейронные сети за свою уже более чем полувековую историю испытывали как периоды стремительных взлетов и повышенного внимания общества, так и сменявшие их периоды скепсиса и равнодушия. В хорошие времена ученым и инженерам кажется, что наконец-то найдена универсальная технология, способная заменить человека в любых когнитивных задачах. Как грибы после дождя, появляются различные новые модели нейронных сетей, между их авторами, профессиональными учеными-математиками, идут напряженные споры о большей или меньшей степени биологичности предложенных ими моделей. Профессиональные ученые-биологи наблюдают эти дискуссии со стороны, периодически срываясь и восклицая «Да такого же в реальной природе не бывает!» – и без особого эффекта, поскольку нейросетевики-математики слушают биологов, как правило, только тогда, когда факты биологов согласуются с их собственными теориями. Однако, с течением времени, постепенно накапливается пул задач, на которых нейронные сети работают откровенно плохо и энтузиазм людей остывает.
Читать дальше →
Total votes 77: ↑74 and ↓3 +71
Comments 59

Применение нейросетей в распознавании изображений

Reading time 10 min
Views 241K
Про нейронные сети, как один из инструментов решения трудноформализуемых задач уже было сказано достаточно много. И здесь, на хабре, было показано, как эти сети применять для распознавания изображений, применительно к задаче взлома капчи. Однако, типов нейросетей существует довольно много. И так ли хороша классическая полносвязная нейронная сеть (ПНС) для задачи распознавания (классификации) изображений?
Читать дальше →
Total votes 134: ↑131 and ↓3 +128
Comments 73

Пиши резюме правильно или “умею улыбаться и пеку оладушки”

Reading time 9 min
Views 181K
Update статьи “Пиши резюме правильно или “умею улыбаться и пеку оладушки”.

Начну с того, что я IT рекрутер. В этом тексте выражено только мое мнение по вопросу составления резюме. Это вовсе не значит что мои коллеги по отрасли считают также. Возможно, с чем то-то они согласны, с чем-то нет.

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

1. Работая в IT кадровом агентстве, я общаюсь с кандидатами только по телефону и мне психологически комфортнее представлять себе человека визуально. Возможно вам тоже. Часто процесс трудоустройства растягивается на недели, а то и на месяцы. В этот период я веду с кандидатом переписку, общаюсь по телефону и в скайпе. Волнуюсь за него, особенно если процесс рассмотрения резюме почему-то затягивается, а человеку срочно нужна работа. Если история заканчивается хорошо, и кандидата приглашают в компанию — радуюсь. И так изо дня в день, и из месяца в месяц. Человек становится уже в чем-то близким для меня. И не представляя его визуально — чуть сложнее и как-то грустнее, что ли, работается.

Поэтому фото в резюме важно для меня, как для рекрутера.

2. Для руководителя, ищущего специалиста себе в команду — фото в резюме кандидата может быть важно по другой причине: с этим человеком он и его коллеги будут работать по 8 часов в день 5 дней в неделю. И хочется, чтобы человек вписался в команду. Конечно, понять, впишется специалист в команду, или нет, можно только на собеседовании, и то не всегда. Но всех на собеседование не пригласишь, у руководителя мало времени для этого. Фото в таком случае выступает для него одним из фильтров для экономии времени.

Отталкиваясь от этого, решать, размещать ли фотографию в резюме, и какую именно — вам. Я лишь попробовала объяснить, почему это может быть косвенно полезно при поиске работы.

И напоследок, перед тем как вы начнете, уже наконец, читать саму статью, хочу попросить вас — не стесняйтесь комментировать! Ваше мнение для меня очень важно, потому что вы — мои друзья, или коллеги по отрасли или те, кому я звоню каждый день, говоря: ”здравствуйте, я нашла ваше резюме..."

По долгу службы я каждый день просматриваю HeadHunter, Linkedin и множество других ресурсов для поиска на предмет IT специалистов разного толка.
Находясь по ту сторону HeadHunter’а, не перестаю удивляться изобретательности тех, кто находится в поиске работы.
Предлагаю поговорить о том, как эффективно позиционировать себя на рынке труда.
Правильное продающее резюме это первый и главный шаг к работе мечты.
Рекомендации будут практические, проверенные на собственном опыте как со стороны соискателя, так и со стороны рекрутера.
И как же оформлять резюме?
Total votes 119: ↑81 and ↓38 +43
Comments 246

Прохождение интервью — взгляд изнутри

Reading time 9 min
Views 36K
Читая посты на хабре, я заметил, что многие не особо осведомлены как собственно устроен процесс интервью, особенно со стороны работодателя. Также должен отметить, что многие статьи про прохождение интервью имеют немного «пиаристый» характер, и не описывают детали. Хочу восполнить этот пробел, и без воды рассказать, как это работает изнутри.

Все нижеописанное характерно для моей компании, но сам HR достаточно стандартен по калифорнийским стандартам (что сейчас уже практически стало международными стандартами). Никакого пиара, так что просто в двух словах: моя компания — это маленькая транснациональная компания со штатом где-то в 4000 человек, HQ — в Palo Alto, R&D (где я работаю) — Vancouver, BC. Я интервьюирую на позицию в моей команде, которая занимается разработкой web-frontend для встраиваемых устройств (используется Python, C и стандартный HTML-набор).
Читать дальше →
Total votes 83: ↑73 and ↓10 +63
Comments 95

Как накормить мозг программиста… или feed your brain

Reading time 12 min
Views 370K

Введение


Из всех наслаждений, отпущенных человеку в жизни,
самое изысканное — шевелить мозгами.
(Борис Акунин)


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

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

В данной публикации мы рассмотрим, как правильно питаться для жизнеобеспечения мозга и как его разогнать ноотропами (в случае аврала необходимости).
Читать дальше →
Total votes 213: ↑163 and ↓50 +113
Comments 145

Learning How to Learn: впечатления

Reading time 4 min
Views 86K
Я закончил августовскую сессию курса Learning How to Learn (LH2L) на Coursera и хотел бы поделиться впечатлениями с хабрасообществом, а также дать несколько советов и предостеречь.

Постулируемая цель курса — рассказать об эффективных методах обучения. В том числе и самообразования.

Курс проходил с 1 августа по 1 сентября. Лекторы — Barbara Oakley (подавляющее большинство записей) и Terence Sejnowski (появлялся изредка). К курсу прилагался опциональный учебник «A Mind for Numbers», который авторы старательно рекламировали.

Содержание курса:
Содержание, впечатления, скандалы, интриги
Total votes 25: ↑24 and ↓1 +23
Comments 11

Букмарклет: разбор существенных моментов, часть первая

Reading time 11 min
Views 9.7K
Как известно, букмарклет это небольшой javascript-код который, будучи сохраненным в закладках браузера, используется для выполнения каких либо действий над содержимым текущей веб-страницы.

Но почему в названии поста: часть первая? Потому, что современный букмарклет «с блэк джеком и шлюхами»* обычно состоит из нескольких взаимодействующих частей:
  1. первая часть букмарклета, которая является собственно букмарклетом это компактный javscript-код — не более 2000 символов, главная, но не единственная задача которого загрузить вторую часть;
  2. вторая часть букмарклета: это javscript-код произвольного размера, который выполняет всю оставшуюся работу;
  3. резервная часть букмараклета – которая запускается в действие, если вторая часть букмарклета не загрузилась.

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

Часть первая обычно выполняет следующие нехитрые действия:
Читать дальше →
Total votes 23: ↑19 and ↓4 +15
Comments 7

Руководство по установке и настройке OpenVPN

Reading time 34 min
Views 1.4M



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



По соображениям безопасности доступ к этим ресурсам ограничен при помощи межсетевого экрана (файервола) по портам и адресам IP. Ежедневную перенастройку доступа при изменении динамических IP сотрудников едва ли можно назвать разумным решением.



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13 +102
Comments 97

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity