Pull to refresh
0
0
Send message

Как можно долго и с интересом разглядывать потолок на стене

Reading time12 min
Views35K

КДПВО почти личном опыте выбора и настройки проектора в условиях однушки на отшибе и ограниченности бюджета или что делать, если на $18м^2$ захотелось экран 3+ метра.


Осторожно, трафик.

Ознакомиться с подробностями
Total votes 36: ↑36 and ↓0+36
Comments171

Big Data головного мозга

Reading time14 min
Views93K

Наверно, в мире данных нет подобного феномена настолько неоднозначного понимания того, что же такое Hadoop. Ни один подобный продукт не окутан таким большим количеством мифов, легенд, а главное непонимания со стороны пользователей. Не менее загадочным и противоречивым является термин "Big Data", который иногда хочется писать желтым шрифтом(спасибо маркетологам), а произносить с особым пафосом. Об этих двух понятиях — Hadoop и Big Data я бы хотел поделиться с сообществом, а возможно и развести небольшой холивар.
Возможно статья кого-то обидит, кого-то улыбнет, но я надеюсь, что не оставит никого равнодушным.


image
Демонстрация Hadoop пользователям

Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments75

Надёжен ли твой компьютер?

Reading time9 min
Views24K
Представляю вашему вниманию перевод статьи Джеффа Атвуда о тестировании новых компьютеров. Я не видел ни одной статьи подобного качества на эту тему; в статье приведена вся необходимая информация и ничего лишнего, а так же хорошо структурирован материал. Надеюсь, и вам она придётся по нраву.

Джефф — основатель StackOverflow. Ныне он работает над проектом Discourse.

Оригинальная статья: Is Your Computer Stable?

Дисклеймер: Хоть статья и называется "Надёжен ли твой компьютер?", речь идет не о надёжности как термине(англ. reliability), а, скорее, о стабильности (англ. stability). Статья о том, как автор тестирует новые компьютеры на стабильность и прочность.


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

Например, вот что может понадобится для сборки Scooter Computer:

  1. Нанести немного термопасты на верхнюю часть корпуса.
  2. Поместить в корпус материнскую плату.
  3. Прикрутить материнскую плату к корпусу.
  4. Вставить плату SSD.
  5. Вставить плату RAM.
  6. Подключить внешнее питание.
  7. Загрузиться.

Вот и все.



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

Каждый из нас выдыхает с облегчением, когда только что собранный компьютер загружается первый раз, и не важно сколько собранных машин на вашем счету. Но загрузка это только начало. Это отлично, если он загружается, но этим никого не удивишь. На самом деле, нам нужно знать, надёжен ли этот компьютер.
Читать дальше →
Total votes 29: ↑24 and ↓5+19
Comments75

JCoro — асинхронность на сопрограммах в Java

Reading time13 min
Views15K
К исследованиям в этой сфере меня вдохновила статья Асинхронность: назад в будущее. В ней автор описывает идею о том, как, используя сопрограммы, можно упростить асинхронный код так, чтобы выглядел он так же, как обычный синхронный, но сохранял плюшки, которые нам даёт применение асинхронных операций. Вкратце, суть подхода такова: если у нас есть механизм, позволяющий сохранять и восстанавливать контекст выполнения (поддержка сопрограмм), то код на цепочках callback'ов

startReadSocket((data) -> {
   startWriteFile(data, (result) -> {
      if (result == ok) ...
   });
});

мы можем переписать так:

data = readSocket();
result = writeFile(data);
if (result == ok) ...

Здесь readSocket() и writeFile() — сопрограммы, в которых асинхронные операции вызываются следующим образом:

byte[] readSocket() {
    byte[] result = null;
    startReadSocket((data) -> {
	    result = data;
	    resume();
    });
    yield();
    return result;
}

Методы yield() и resume() сохраняют и восстанавливают контекст выполнения, со всеми фреймами и локальными переменными. Происходит следующее: при вызове readSocket() мы планируем асинхронную операцию вызовом startReadSocket() и выполняем yield(). Yield() сохраняет контекст выполнения и поток завершается (возвращается в пул). Когда асинхронная операция будет выполнена, мы вызовем resume() перед выходом из callback'a, и тем самым возобновим выполнение кода. Управление снова получит основная функция, которая вызовет writeFile(). writeFile() устроен аналогично, и всё повторится.

Сделав единожды такое преобразование для всех используемых асинхронных операций и поместив полученные функции в библиотеку, мы получаем инструмент, позволяющий нам писать асинхронный код так, как будто это обычный синхронный код. Мы получаем возможность сочетать плюсы синхронного кода (читабельность, удобная обработка ошибок) и асинхронного (производительность). Плата за это удобство — необходимость как-то сохранять и восстанавливать контекст выполнения. В статье автор описывает реализацию на С++, мне же захотелось заиметь что-то такое в Java. Об этом и пойдёт речь.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments25

Вы неправильно пишете животных

Reading time5 min
Views358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4+434
Comments351

ДНК-оригами: как из ДНК делают интересные штуки нанометрового размера

Reading time12 min
Views85K
Недавно я обнаружил весьма печальный факт: на Хабре совершенно не освещена такая забавная тема, как ДНК-оригами. Есть только один пост 2009 года, рассказывающий лишь самое начало занимательной истории о том, как из ДНК (да-да, той самой дезоксирибонуклеиновой кислоты, несущей нашу генетическую информацию) можно создавать всякие хитрые, плоские и трехмерные штуки нанометрового размера. Та самая нано-технология, как она есть. В этом обзоре я хочу рассказать о развитии ДНК-оригами: двухмерные смайлики из ДНК, трехмерные фигуры, кристаллы из ДНК с запрограммированной структурой, ДНК-«коробочки» с крышкой, способные нести молекулы нужных веществ и выпускать их после сигнала об открытии крышки, и, наконец, динамические структуры типа ДНК-шагохода (walker), гуляющего по подложке (создатели гордо говорят, что это уже наноробот!). Кто хочет узнать больше о том, зачем все это нужно, почитать о технологиях изготовления красивых нанометровых штук из ДНК или просто посмотреть красивые картинки, добро пожаловать под кат.


Так выглядит ДНК-наноробот

Читать дальше →
Total votes 117: ↑117 and ↓0+117
Comments57

Структура белка: введение для айтишников

Reading time17 min
Views155K
Приятно видеть, что хабравчане регулярно интересуется другими предметными областями – например, биологией (более конкретно – структурой и функцией биологических макромолекул). Однако некоторые посты (например, этот), вызывают у специалиста просто физическую боль из-за обилия совершенно диких фактологических ошибок. В этом посте мне хочется рассказать о структуре и функции белка. О том, что мы знаем и о том, чего не знаем, а так же об имеющихся в этой области вычислительных задачах, требующих решения и интересных IT-специалистам. Постараюсь рассказывать сжато и тезисно, чтобы информации было больше, а воды – меньше. Всех, интересующихся структурой белков, прошу под кат, там очень много букв.
Читать дальше →
Total votes 146: ↑145 and ↓1+144
Comments72

Геймеры в Fold.it решили научную проблему

Reading time2 min
Views8.9K
В мае 2008 года мы обсуждали новую компьютерную игру Fold.it, которую разработали учёные из Вашингтонского университета (США). Программа представляет собой модель сворачивания белков в трёхмерные конструкции. Геймер должен попытаться сделать это наиболее удачным образом, работая с настоящими протеинами. Результаты отправляются в центр обработки, где их проверяют на суперкомпьютере.



За три прошедших года игроки смогли сложить несколько удачных молекул, но их последняя находка не идёт ни в какое сравнение с предыдущими: была обнаружена и подтверждена точная модель фермента протеазы, который играет ключевую роль в заражении организма обезьян ретровирусом ВИЧ. Модель этого белка не удавалось получить в течение уже 15-ти лет. Теперь же можно попробовать создать лекарство, которое воздействует на этот фермент.
Читать дальше →
Total votes 166: ↑156 and ↓10+146
Comments121

Генная инженерия от A до Z часть 3

Reading time6 min
Views17K
Краткое содержание предыдущих серий:

Ученые открыли ген синего свечения. Мы прочитали об этом гене загорелись сделать светящуюся трансгенную елку. Нашли в специализированных ресурсах его название и последовательность, выбили командировку у шефа и скатались туда, где живет животное – бутявка, в которой содержится этот ген.
Путем различных ухищрений с применением специального оборудования мы получили чистые молекулы ДНК гена bl1.
К этим молекулам ДНК навесили служебные последовательности для работы внутри клетки, и создали трансгенные бактерии E.coli на их основе.

Читать дальше →
Total votes 95: ↑91 and ↓4+87
Comments64

Российские протезы пальцев созданные с помощью 3D-печати

Reading time4 min
Views56K


В России стоит очень острая проблема — отсутствие функциональных протезов пальцев рук. Существующие доступные решения нефункциональны и носят сугубо косметический характер. Но почти год назад команда компании Can-Touch.ru (специалисты в области промышленной 3D-печати) вдохновилась идеей создания функционального детского протеза. К проекту вскоре присоединились инженеры компании W.E.A.S. Robotics (специалисты в области робототехники), и началась серьезная работа.

Под катом история о том, как разрабатывается этот протез. Приводим текст, написанный от первого лица непосредственно членами команды проекта.
Читать дальше →
Total votes 121: ↑120 and ↓1+119
Comments40

Отладка Java приложения, которое нельзя остановить. Ловим экзотику выполнения самыми доступными средствами — BTrace подход

Reading time5 min
Views18K

Java приложения — значит в современном Java мире возможность встретить такое процентов на 90%, а то и больше (рассматриваем самые распространённые окружения, HotSpot based JVM версии от 1.6)
которое нельзя остановить — приложение работает, и перезапускать его по тем или иным причинам категорически нельзя
экзотика — нечто такое этакое, что не каждый день в голову взбредёт поймать (определённая последовательность вызова методов, диковинные комбинации значений параметров, ...)
доступными средствами — бесплатно, работоспособно, эффективно, легко, просто и т.д и т.п. В данной статье рассмотрен замечательный инструмент BTrace kenai.com/projects/btrace

И само собой в код Java приложения заранее ничего специально не добавлено касательно средств дебага…

Как же это ?...
Total votes 31: ↑29 and ↓2+27
Comments22

Обзор наиболее интересных материалов по анализу данных и машинному обучению №4 (23 июня — 7 июля 2014)

Reading time5 min
Views9.5K

Прошлый выпуск обзора был полностью посвящен онлайн-курсам по тематике Data Science. Данный выпуск обзора наиболее интересных материалов по анализу данных и машинному обучению будет содержать ссылки на свежие материалы по тематике. В данном выпуске некоторое количество материалов посвящено важной теме визуализации данных. Есть несколько статей, которые описывают небольшие практические примеры анализа данных. Как обычно много статей посвящено алгоритмам машинного обучения, в том числе несколько статей посвящены популярным алгоритмам машинного обучения Deep Learning и Random Forest. Также есть несколько ссылок на интересные видеоматериалы.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments0

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

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

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

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

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

Коктейли ко дню программиста

Reading time5 min
Views188K
Здравствуй, Хабр!

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

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

Все началось вот с чего: моя супруга увлекается кулинарией и ведет небольшой кулинарный блог. В прошлом году на мой день рождения она пригласила к нам в гости на кухню настоящего бармена из барного startup-проекта БАРаДОМа.нет. С момента знакомства с Артёмом (барменом который превратил мой день рождения в домашнюю барную вечеринку), у меня появилась идея: найти рецепты (или придумать самим) коктейлей, которые бы вписались в IT-тематику.

Итогом нескольких дней активной переписки с Артёмом стала вот такая небольшая коктейльная карта:

  • Ruby
  • Python
  • Суровый Perl
  • JMP (aka Assembler)
  • Profit!
  • Epic fail
  • Memory leak


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

Чин-чин!
Total votes 240: ↑217 and ↓23+194
Comments109

Java собеседование. Коллекции

Reading time10 min
Views890K
С недавнего времени у меня появилась настойчивая мысль, что профессиональное развитие сильно замедлилось и это хочется как-то исправить. Да, читаю книги, слушаю курсы, но в то же время приходит и понимание того, что возможно пришло время сменить работу, здесь вроде как все изучено, плавно уходим в рутину. Данная мысль сподвигла меня на рассылку своего резюме в несколько компаний — лидеров рынка. После прохождения собеседования в 3 из них, я решил, как водится внести свои 5 копеек в освещение обширной темы собеседования, а именно технических вопросов по Java коллекциям, с которыми приходится сталкиваться. Да, знаю, читатель скажет: «коллекции — избитая тема, сколько можно», но часть из приведенных ниже вопросов, я задавал своим знакомым разработчикам, которые занимают именно позиции разработчиков («крепких середнячков», по меркам недалекой от Москвы глубинки, которые уверенно справляются со своей работой на практике, а вот в теории скажем так есть пробелы, потому, что работа не требует решения каких-то нетривиальных задач, да и потому что не всем это интересно — изучать как внутри работает структура данных), вызывало растерянность. Думаю, что рассмотренный материал будет не очень интересен разработчикам выше уровня Junior (я попрошу их комментировать, дополнять и критиковать изложенный здесь материал), а вот Junior`ы уверен, найдут в этой статье интересное для себя.
Читать дальше →
Total votes 97: ↑86 and ↓11+75
Comments306

Видеокурс по DevTools от Google и Codeschool

Reading time1 min
Views24K
image

Известные нам по гениальным обучающим скринкастам Rails for Zombies, Try Ruby и Try Git — команда Codeschool объединилась с корпорацией добра для создания Try DevTools — подробнейшего обучающего курса из семи глав, который, конечно же, является абсолютно бесплатным.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments18

IPO for dummies. Часть I: акции, мажоритарии, контроль над компанией

Reading time5 min
Views16K
Во время недавнего обсуждения IPO Яндекса в комментариях прошла дискуссия на тему того, как торгуются акции на бирже, как проходит IPO, кто и какую от него получает пользу. По совету других участников обсуждения выношу в отдельную тему — а точнее, в серию тем — небольшой рассказ, который был рассредоточен по нескольким комментариям. Если вы тогда внимательно следили за темой, основная часть рассказа вам уже известна, но тем не менее… Если нет, вы наверняка найдете что-то интересное.

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

  • Часть I: акции, мажоритарии, контроль над компанией.
  • Часть II: стоимость акций, биржа, самый лучший способ торговать картошкой, и кого же можно встретить на рынке бирже.
  • Часть III: процесс IPO, его польза для компании, основателей и владельцев, а также почему у руководства компании при открытии торгов такой замученный вид.
  • Часть IV: влияние IPO на доход от адулт-партнёрок.
  • Часть V: жизнь после IPO.
  • Часть VI: сложности выбора — два Lamborghini Gallardo или один Aventador?
  • Часть VII: про инсайд.
  • Часть VIII: о мотивации.


Итак, часть I: акции, мажоритарии, контроль над компанией.

Что такое акции, и для чего они нужны?

Читать дальше →
Total votes 231: ↑224 and ↓7+217
Comments80

Розалинд — платформа для изучения биоинформатики

Reading time2 min
Views17K
DNA

Широко известны сайты для решения олимпиадных задач по программированию, такие, как, например, TopCoder и Codeforces, а также сборники математических задач-головоломок, например, Project Euler. За последний год произошёл бум онлайн образования: возникли стартапы Coursera и Udacity, предоставляющие онлайн курсы от топовых университетов США… но для тех, кто хочет изучить биоинформатику, пока ничего нет.

Розалинд — проект, разрабатываемый в Санкт-Петербуге и University of California, San Diego с мая 2012 года, как раз заполняет эту нишу. Это платформа для обучения биоинформатике с помощью решения задач, бесплатная и открытая.
Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments36

Дистанционное обучение с помощью мобильных устройств

Reading time4 min
Views104K
Еще 10—20 лет назад полноценное дистанционное обучение было практически невозможным. Необходимость переезда в другой город или даже страну являлась, наверное, одной из наиболее частых причин, почему предпочтение отдавалось местным вузам, вместо того чтобы поступать в университеты своей мечты. Да, существует заочное образование, но мы прекрасно понимаем, что в большинстве случаев данная форма образования — всего лишь для галочки. К счастью, в настоящее время есть возможность учиться, было бы желание. Для тех, у кого с желанием все в порядке, прошу под кат.

image
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments18

Мягкие ссылки на страже доступной памяти или как экономить память правильно

Reading time13 min
Views159K
image
Все java-разработчики, рано или поздно, встречаются с пресловутой ошибкой OutOfMemoryError. 
После этой встречи мы начинаем более бережно относится к используемой памяти, экономить ее. Начиная с версии 1.2 в Java появился пакет java.lang.ref.* с классами SoftReference, WeakReference, PhantomReference. Далее я расскажу вам о том, как помогут эти классы в борьбе с OutOfMemoryError. И что более интересно, приведу реальные примеры их использования. Начнем.
Читать дальше →
Total votes 67: ↑62 and ↓5+57
Comments23
1

Information

Rating
Does not participate
Registered
Activity