Pull to refresh
11
0

Как тренировать интеллект с помощью игр

Reading time 2 min
Views 23K
Games and game consoles Brain Health Logic games
«Мам, это же для учебы», — объясняли мы в детстве родителям, не понимающим, зачем покупать самый дорогой компьютер с 3D-ускорителем последнего поколения. Родители (иногда) соглашались, и мы усердно «учились» в Quake, Duke Nukem и Heroes of Might & Magic.

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


Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 15

Собирательный опыт прохождения собеседования на позицию java developer в Минске

Reading time 5 min
Views 90K
Java *
Sandbox

Inception


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

Данная публикация содержит краткое изложение опыта прохождения более десятка собеседований на позицию java developer в Минске в течение последних пару лет. Формат изложения — преимущественно тезисное перечисление вопросов по выбранным темам.
Читать дальше →
Total votes 29: ↑19 and ↓10 +9
Comments 20

Элегантный Builder на Java

Reading time 7 min
Views 133K
Java *
Наверняка большинство сколько-нибудь опытных программистов знакомы с паттерном Builder. Он позволяет сделать инициализацию структур данных более наглядной, гибкой при этом сохраняя такое полезное их свойство как неизменяемость (immutability). Вот классический пример с первой страницы выдачи гугла на запрос «java builder pattern example». При всех своих преимуществах, самый главный недостаток данной реализации паттерна — в два раза больше кода, по сравнению с обычным плоским бином. Если генерация этого дополнительного кода не проблема для любой популярной IDE, то редактировать такой класс становится достаточно утомительно и читабельность страдает в любом случае.
Что же делать?
Total votes 31: ↑21 and ↓10 +11
Comments 86

Чистый код с Google Guava

Reading time 9 min
Views 107K
Java *
Sandbox
Наверное, любому программисту доводилось видеть код, пестрящий большим количеством повторов и реализации «низкоуровневых» действий прямо посреди бизнес-логики. Например, посреди метода, печатающего отчёт, может оказаться такой фрагмент кода, конкатерирующий строки:

StringBuilder sb = new StringBuilder();
for (Iterator<String> i = debtors.iterator(); i.hasNext();) {
  if (sb.length() != 0) {
    sb.append(", ");
  }
  sb.append(i.next());
}
out.println("Debtors: " + sb.toString());

Понятно, что этот код мог бы быть более прямолинейным, например, в Java 8 можно написать так:

out.println("Debtors: " + String.join(", ", debtors));

Вот так сразу гораздо понятнее, что происходит. Google Guava – это набор open-source библиотек для Java, помогающий избавиться от подобных часто встречающихся шаблонов кода. Поскольку Guava появилась задолго до Java 8, в Guava тоже есть способ конкатенации строк: Joiner.on(", ").join(debtors).
Рассмотрим часто встречаемые шаблоны кода
Total votes 41: ↑36 and ↓5 +31
Comments 20

О том, как мы ворпсиманием теcкт

Reading time 4 min
Views 163K
Artificial Intelligence
Помните, в интернете, году этак в 2003, проходила картинка, в которой сообщалось, что неважно в каком порядке идут буквы в слове, лишь бы первая и последняя были на местах, а остально мозг сам скомпонует и вычленит смысл. Вот оригинальный текст:

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


В английском варианте это звучало так:
Arocdnicg to rsceearch at Cmabrigde Uinervtisy, it deosn’t mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer are in the rghit pcale. The rset can be a toatl mses and you can sitll raed it wouthit pobelrm. Tihs is buseace the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.


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

Читать дальше →
Total votes 125: ↑107 and ↓18 +89
Comments 86

Арендуем учебники вместе с Amazon

Reading time 1 min
Views 1.4K
Gadgets
Translation


В понедельник Amazon объявил о запуске сервиса "Kindle Textbook Rental", который должен помочь студентам сэкономить на учебниках. Теперь можно не покупать дорогие учебники и руководства, а брать их в аренду в Kindle Store, при этом экономя до 80 процентов от цены учебника.
Читать дальше →
Total votes 27: ↑20 and ↓7 +13
Comments 26

E-Books составляют всего 6% на книжном рынке

Reading time 1 min
Views 320
Gadgets
Не так давно интернет-магазин Amazon опубликовал статистику, что на каждые 100 книг в твёрдой обложке продаётся 143 электронные книги (а за последний месяц соотношение вообще 100 к 180). У многих могло сложиться неправильное представление о якобы большой популярности электронных книг. Даже официальные представители ООН заговорили о смерти бумажных книг через пять лет, основываясь на статистике Amazon.

И хотя уже на следующий день после Amazon появилось разъяснение, что по данным Nielsen Bookscan на твёрдые обложки приходится примерно 23% продаж книг в Amazon, на него мало кто обратил внимание, а зря.

Объективные цифры таковы, что Amazon контролирует примерно 90% рынка электронных книг и только 19% всего книжного рынка в США. Если посчитать, сколько книг в твёрдой обложке продаёт Amazon (исходя из рыночной доли, выходит около 15,6 млн за I пол. 2010 года) и умножить на 1,43, то получается, что электронных книг за полгода продано 22 млн. Это примерно 6% всего книжного рынка в США, не более того.

При этом Amazon продаёт электронные книги себе в убыток, пытаясь застолбить рынок.
Total votes 18: ↑11 and ↓7 +4
Comments 16

Gson или «Туда и Обратно»

Reading time 25 min
Views 161K
NAUMEN corporate blog Java *
Tutorial
Недавно мне пришлось поработать с библиотекой Google Gson, предназначенной для преобразования Java-объектов в текстовый формат JSON (сериализация) и обратного преобразования (десереализация). Часто при работе с Gson хватает стандартных настроек библиотеки, но бывают случаи (в том числе мой), когда необходимо кастомизировать процессы преобразований.

Поработав с Gson, я решил написать этот туториал, который иллюстрирует принципы работы с библиотекой на примере. Пост получился сравнительно длинный, но дробить его не хочется из-за логической связности повествования.

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


За синие горы, за белый туман...
Total votes 28: ↑27 and ↓1 +26
Comments 25

Memory management в ядре Linux. Семинар в Яндексе

Reading time 4 min
Views 63K
Яндекс corporate blog
Привет! Меня зовут Роман Гущин. В Яндексе я занимаюсь ядром Linux. Некторое время назад я провел для системных администраторов семинар, посвященный общему описанию подсистемы управления памятью в Linux, а также некоторым проблемам, с которыми мы сталкивались, и методам их решения. Большая часть информации описывает «ванильное» ядро Linux (3.10), но некоторая часть специфична для ядра, использующегося в Яндексе. Вполне возможно, семинар окажется интересен не только системным администраторам, но и всем, кто хочет узнать, как в Linux устроена работа с памятью.



Основные темы, затронутые на семинаре:
  • Задачи и компоненты подсистемы управления памятью;
  • Аппаратные возможности платформы x86_64;
  • Как описывается в ядре физическая и виртуальная память;
  • API подсистемы управления памятью;
  • Высвобождение ранее занятой памяти;
  • Инструменты мониторинга;
  • Memory Cgroups;
  • Compaction — дефрагментация физической памяти.

Под катом вы найдете более подробный план доклада с раскрытием основных понятий и принципов.
Читать дальше →
Total votes 113: ↑107 and ↓6 +101
Comments 15

Whois: практическое руководство пользователя

Reading time 32 min
Views 159K
Website development *Python *
Tutorial
Sandbox
Статья рассказывает о работе whois протокола, о существующих клиентских решениях и об особенностях коммуникации с различными whois серверами (а также о выборе правильного whois сервера). Ее основная задача — помочь в написании скриптов для получения whois информации для IP адресов и доменов.

Что такое whois?


Что такое и для чего нужен whois можно прочитать, например, здесь: http://en.wikipedia.org/wiki/Whois.

В нескольких словах, whois (от английского «who is» — «кто такой») – сетевой протокол, базирующийся на протоколе TCP. Его основное предназначение – получение в текстовом виде регистрационных данных о владельцах IP адресов и доменных имен (главным образом, их контактной информации). Запись о домене обычно содержит имя и контактную информацию «регистранта» (владельца домена) и «регистратора» (организации, которая домен зарегистрировала), имена DNS серверов, дату регистрации и дату истечения срока ее действия. Записи об IP адресах сгруппированы по диапазонам (например, 8.8.8.0 — 8.8.8.255) и содержат данные об организации, которой этот диапазон делегирован.

Читать дальше →
Total votes 101: ↑97 and ↓4 +93
Comments 31

Splay-деревья

Reading time 8 min
Views 59K
Образовательные проекты JetBrains corporate blog Algorithms *Mathematics *
Tutorial
Сбалансированное дерево поиска является фундаментом для многих современных алгоритмов. На страницах книг по Computer Science вы найдете описания красно-черных, AVL-, B- и многих других сбалансированных деревьев. Но является ли перманентная сбалансированность тем Святым Граалем, за которым следует гоняться?

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

Сегодня я расскажу о splay-деревьях. Эти деревья не являются перманентно сбалансированными и на отдельных запросах могут работать даже линейное время. Однако, после каждого запроса они меняют свою структуру, что позволяет очень эффективно обрабатывать часто повторяющиеся запросы. Более того, амортизационная стоимость обработки одного запроса у них , что делает splay-деревья хорошей альтернативой для перманентно сбалансированных собратьев.
Читать дальше...
Total votes 88: ↑83 and ↓5 +78
Comments 26

Какой HDD надёжнее? Статистика Backblaze по 27134 накопителям за 4 года работы

Reading time 3 min
Views 381K
Backup *
Компания Backblaze опубликовала в своём блоге статистику использования дисковых накопителей в своих серверах. Backblaze предоставляет услугу дешёвого облачного бэкапа. В основе их инфраструктуры — жёсткие диски потребительского класса. За четыре года работы компания собрала порядочную статистику по отказоустойчивости разных типов дисков, использовавшихся в их хранилище. Парк накопителей Backblaze состоит в основном из дисков Seagate и Hitachi — почти по 13 тысяч. Ещё 2838 дисков — производства Western Digital, и по несколько десятков накопителей Samsung и Toshiba. Таким образом, данные Backblaze позволяют сравнить работу дисков потребительского уровня трёх производителей — Seagate, WD и Hitachi — в условиях датацентра.

image
Читать дальше →
Total votes 134: ↑132 and ↓2 +130
Comments 150

Настольные игры: во что играют в IT-офисах в этом году

Reading time 7 min
Views 59K
Мосигра corporate blog Game development *


Привет!
Так получилось, что я здесь весь год рассказываю вам про работу Мосигры изнутри, а потом в начале декабря начинаю показывать сами игры. Знаю, вы уже ищете подарки. Так вот, заходите внутрь за играми и парой историй. Про то, как не надо выбирать подарки IT-специалистам, инженерную идею с Тетрисом, IT-девушек и подарки им, весёлого подводника и кучу других штук.

Ну и за традиционной уже хабраскидкой, конечно. А потом — расскажите про свою любимую настолку в комментариях и посмотрите, что советуют другие хабражители.
Читать дальше →
Total votes 57: ↑46 and ↓11 +35
Comments 134

АНБ отслеживает местоположение мобильных телефонов по всему миру

Reading time 3 min
Views 61K
Information Security *Development of communication systems *
Recovery mode


По утверждению газеты The Washington Post, ссылающейся на документы Эдварда Сноудена, Агентство национальной безопасности США ежедневно собирает около 5 миллиардов единиц информации о местоположении сотовых телефонов по всему миру. Что позволяет АНБ как отслеживать местоположение отдельных индивидуумов, так и создавать карту их взаимоотношений и выявлять скрытые связи.

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

Подобно использованию шифрования и инструментов анонимизации в интернете, использование «одноразовых» телефонов, включаемых только для коротких звонков, также автоматически делает их владельцев объектами особого внимания. Например, когда новый телефон подключается к сотовой вышке, программа автоматически отмечает, какой перед этим телефон последний раз использовался поблизости.
Читать дальше →
Total votes 91: ↑75 and ↓16 +59
Comments 102

FindBugs против CDK

Reading time 4 min
Views 15K
Programming *Java *
Мне всегда интересно читать посты от PVS-Studio о том, как они ищут баги в каком-нибудь опенсорсном проекте. Я решил, что я тоже смогу написать такой пост, только про Java. Существует совершенно замечательный бесплатный статический анализатор Java-кода FindBugs. О нём на удивление мало писали на Хабре.

Помимо анализатора кода для такой статьи требуется подопытный кролик. Нужен довольно большой проект, но при этом не настолько распространённый, чтобы разработчики идеально вылизывали код. Я выбрал проект Chemistry Development Kit (версия 1.4.19), которым доводилось пользоваться. FindBugs я установил как плагин к Eclipse, потому что мне так привычнее.


Читать дальше →
Total votes 63: ↑62 and ↓1 +61
Comments 58

Примеры xpath-запросов к html

Reading time 4 min
Views 489K
Website development *
Xpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Читать дальше →
Total votes 61: ↑57 and ↓4 +53
Comments 47

Чтение конфигурационных файлов в Java: nProperty

Reading time 10 min
Views 82K
Java *
image
Многие разработчики сталкиваются с необходимостью чтения конфигурационных (*.ini, *.prop, *.conf, etc.) файлов в разрабатываемых приложениях. В Java есть стандартный класс Properties, с помощью которого можно очень легко загрузить ini-файл и прочитать его свойства. При большом объеме конфигурационных файлов чтение и запись настроек в объекты превращается в очень нудную и рутинную работу: создать объект Properties, конвертировать каждую настройку в нужный формат и записать его в поле.

Библиотека nProperty (Annotated Property) призвана упростить этот процесс, сократив примерно в два раза требуемый код для написания загрузчиков настроек.

Чтобы показать, каким образом возможно обещанное сокращение кода в два раза, ниже приведены два примера: в первом примере используется стандартный класс Properties, во-втором — nProperty.

Прошу под кат за подробностями
Total votes 28: ↑24 and ↓4 +20
Comments 53

Начинающим Java программистам

Reading time 2 min
Views 1.2M
Java *
Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:

Основные ресурсы для начального обучения


  • www.javable.com — сайт со статьями и tutorial'ом по Java. Все в основном на русском.
  • www.exampledepot.com — очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com — без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial'ов на все возможные темы.

Читать дальше →
Total votes 120: ↑113 and ↓7 +106
Comments 58

PyBrain работаем с нейронными сетями на Python

Reading time 8 min
Views 161K
Python *Algorithms *

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

PyBrain — одна из лучших Python библиотек для изучения и реализации большого количества разнообразных алгоритмов связанных с нейронными сетями. Являет собой удачный пример совмещения компактного синтаксиса Python с хорошей реализацией большого набора различных алгоритмов из области машинного интеллекта.

Предназначен для:

  • Исследователей — предоставляет единообразную среду для реализации различных алгоритмов, избавляя от потребности в использовании десятков различных библиотек. Позволяет сосредоточится на самом алгоритме а не особенностях его реализации.
  • Студентов — с использованием PyBrain удобно реализовать домашнее задание, курсовой проект или вычисления в дипломной работе. Гибкость архитектуры позволяет удобно реализовывать разнообразные сложные методы, структуры и топологии.
  • Лекторов — обучение методам Machine Learning было одной из основных целей при создании библиотеки. Авторы будут рады, если результаты их труда помогут в подготовке грамотных студентов и специалистов.
  • Разработчиков — проект Open Source, поэтому новым разработчикам всегда рады.

Читать дальше →
Total votes 95: ↑92 and ↓3 +89
Comments 22
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity