Pull to refresh
23
0
lenstr @LeNsTR

User

Send message

Тридцать топовых интервью за последнее время: разработка, дизайн, научпоп и лайфстайл

Reading time 4 min
Views 55K


На новогодних праздниках ваша дорогая редакция совмещала приятное с полезным и читала интервью, которые выходили на Хабре за последние годы. Отобрали 30 штук, а теперь делимся с вами — это прям самый сок и вообще крутота! Разговоры на любой вкус: об игровой разработке, редких языках программирования и популярном Python, электротачках и устройстве мозга. О том, зачем Левелорд переехал в Москву, как ослепший студент научился программировать и что изменилось за 25 лет с тех пор, как Торвальдс начал работать над Linux. И еще о многом другом.
Читать дальше →
Total votes 50: ↑49 and ↓1 +48
Comments 6

О 30-кратном увеличении параллелизма в Node.js

Reading time 14 min
Views 23K
Каков наилучший способ беспроблемного увеличения параллелизма в Node.js-сервисе, который используется в продакшне? Это — вопрос, на который моей команде понадобилось ответить пару месяцев назад.

У нас запущено 4000 контейнеров Node (или «воркеров»), обеспечивающих работу нашего сервиса интеграции с банками. Сервис изначально был спроектирован так, что каждый воркер был рассчитан на обработку только одного запроса за раз. Это снижало воздействие на систему тех операций, которые могли неожиданно заблокировать цикл событий и позволяло нам игнорировать различия в использовании ресурсов различными подобными операциями. Но, так как наши мощности были ограничены одновременным выполнением лишь 4000 запросов, система не могла достойно масштабироваться. Скорость выдачи ответов на большинство запросов зависела не от мощности оборудования, а от возможностей сети. Поэтому мы могли бы улучшить систему и снизить стоимость её поддержки в том случае, если бы нашли способ надёжной параллельной обработки запросов.



Занявшись исследованием этого вопроса, мы не смогли найти хорошего руководства, в котором речь шла бы о переходе от «отсутствия параллелизма» в сервисе Node.js к «высокому уровню параллелизма». В результате мы разработали собственную стратегию перехода, которая была основана на тщательном планировании, на хороших инструментах, на средствах мониторинга и на здоровой дозе отладки. В итоге нам удалось повысить уровень параллелизма нашей системы в 30 раз. Это эквивалентно снижению затрат на поддержку системы примерно на 300 тысяч долларов в год.

Данный материал посвящён рассказу о том, как мы увеличили производительность и эффективность наших Node.js-воркеров, и о том, что мы узнали, пройдя этот путь.
Читать дальше →
Total votes 66: ↑65 and ↓1 +64
Comments 23

Возможно, вам не нужен Kubernetes

Reading time 5 min
Views 30K

Девушка на скутере. Иллюстрация freepik, логотип Nomad от HashiCorp

Kubernetes — это 300-килограммовая горилла для оркестровки контейнеров. Она работает в некоторых самых крупных контейнерных системах в мире, но дорого обходится.

Особенно дорого для небольших команд, которым придётся потратить много времени на поддержку и крутую кривую обучения. Для нашей команды из четырёх человек это слишком много накладных расходов. Поэтому мы стали искать альтернативы — и влюбились в Nomad.
Читать дальше →
Total votes 50: ↑49 and ↓1 +48
Comments 7

M* — алгоритм поиска кратчайшего пути, через весь мир, на смартфоне

Reading time 13 min
Views 46K


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

Под катом представлена обобщенная эвристика к алгоритму A*, полезная именно в свете практической пригодности на больших графах при ограниченных ресурсах, например, на мобилке.
Читать дальше →
Total votes 110: ↑109 and ↓1 +108
Comments 48

Sprint: как проверить любую бизнес-идею всего за 5 дней

Reading time 13 min
Views 39K


Рассказываем о ключевых идеях бестселлера 2016 года «Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days» Джейка Наппа, Джона Зератски и Брадена Ковитца.
Читать дальше →
Total votes 14: ↑12 and ↓2 +10
Comments 3

Очень быстрый и эффективный способ расслабления глаз

Reading time 4 min
Views 412K

Предисловие


imageНе знаю, все ли программисты всесторонне любознательные люди, но я всегда пытаюсь получить фундаментальные знания во всех областях, которые могут быть практически полезны. В то время, когда мне в голову пришла эта идея я изучал анатомию и физиологию по журналам «Тело человека. Снаружи и внутри», ну а по работе я занимался стерео-варио фотографиями (для тех кто не знает — были такие советские календарики с ребристой поверхностью, где картинка либо казалась объемной, либо менялась). Так вот, в один из вечеров мне пришла в голову замечательная идея, которую я на протяжении уже 4х лет использую для поддержания своего зрения.
Обещаю, что эффект почувствуете сразу!
Читать дальше →
Total votes 246: ↑238 and ↓8 +230
Comments 207

Некоторые идеи написания искуственного интелекта для шахмат

Reading time 7 min
Views 19K
К сожалению, для шахмат пока нет лучших алгоритмов, чем перебор очень многих позиций. Правда, перебор порядком (и не одним) оптимизированный, но все же это большой перебор. Для поиска ответного хода строится дерево с исходным ходом в корне, ребрами — ходами-ответами и узлами — новыми позициями.

image

Как в элементарных алгоритмах выбирается следующий ход объяснить просто. На своем ходе вы выбираете такой ход (по вашему мнению), который принесет наибольшую пользу (максимизирует вашу выгоду), а противник на очередном своем ходе старается выбрать ход, который принесет ему больше всего пользы (максимизирует его выгоду и минимизирует вашу). Алгоритм с таким принципом называется минимакс. На каждом этапе вы присваиваете каждому узлу в дереве оценку позиции (об этом потом) и на своем ходе ее максимизируете, а на ходе противника — минимизируете. Алгоритм во время работы должен пройти по всем узлам дерева (то есть по всем возможный игровым позициям в игре), то есть совсем непригоден по времени.
Следующее его усовершенствование — альфа-бета отсечение (метод веток и границ).
Читать дальше →
Total votes 56: ↑49 and ↓7 +42
Comments 26

10 способов хранить свои проводки

Reading time 2 min
Views 64K
wires
Уверен, у каждого хабрачеловека со временем количество различных проводов и шнуров от телефонов, КПК и прочих девайсов начинает превышать все разумные пределы. Стол-то не резиновый. Но не отказываться же в конце концов из-за этого от любимых гаджетов. В этой статье я хочу привести несколько изящных дизайнерских решений, чтобы вы могли «хранить свои проводки» в порядке и радости для глаз. Как и советовал профессор Губерт Фарнсворт.

Читать дальше →
Total votes 161: ↑151 and ↓10 +141
Comments 133

iPhone 4 и исправление ошибки «No SIM installed»

Reading time 2 min
Views 64K
Неделю назад я наконец купил новый iPhone 4.



Но нормально использовать его мне удалось не сразу. Как известно в нем используются сим карты формата microsim, и мне пришлось используя ножницы делать из обычной симки нечто похожее на microsim. Однако самодельная симка в новом айфоне не заработала так как я надеялся. Сначала она не хотела находиться вообще, но после некоторых допиливаний все-таки нашлась, чтобы через 5 минут IPhone опять ее потерял. Решив что дело в кривых руках я купил новую симку и ее отрезал уже очень аккуратно. После установки в телефон она сразу же нашлась, но через пару минут использования я опять увидел сообщение «не установлена SIM-карта». Решив, что для работы требуется симка изготовленная с какой-то запредельной точностью, очередные попытки воспользоваться новым гаджетом я предпринял только после покупки оригинальной microsim карты от МТС.
Одноко на этом приключения не закончились и я через пару минут опять увидел «не установлена SIM-карта».
Не весело. А погуглив я вышел на штатовские и английские форумы, на которых толпы людей жаловались на эту же проблему, причем AT&T и Apple людям особо ни чем помочь не могли, предлагали втыкать-вытыкать симку, это помогало на какое-то время, но потом телефон опять терял карту. Единственным решением была замена телефона, правда попались пару чеовек, у которых и новый телефон оказывался с тем же дефектом. Так что решение проблемы пришлось искать самостоятельно. И в итоге я его нашел!

Читать дальше →
Total votes 219: ↑172 and ↓47 +125
Comments 231

Доставка Amazon'а в Москву = 1/2 стоимости покупки?

Reading time 1 min
Views 822
Выбрал книг на 187 долл:

Items: $187.87
Shipping & Handling: $107.86
Promotion Applied: -$0.00
MP3 Credit Applied: -$0.00

Total Before Tax: $295.73

Круто да? А ведь собирался книг купить, теперь сижу, размышляю. Не, ну думал максимум 60-70 долл. будет доставка. А тут 107. Вроде раньше не так дорого было. Что-то изменилось? Может надо заказать еще десяток книг?

P.S: доставка Priority International Courier / Group my items into as few shipments as possible
Total votes 20: ↑8 and ↓12 -4
Comments 14

Обзор mp3-плеера SanDisk Sansa Clip+

Reading time 7 min
Views 193K
Эту простыню можно не читать

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

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

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

* Имеется в виду не конкретно ваша девушка, а среднестатистическая сферическая девушка в вакууме.
** Это пока. Работа над рокбоксом идёт, но пока не очень успешно. Рокбокс уже можно скачать и поставить. А вместе с ним и всякие игры (даже Doom!) и программы (например тюнер, калькулятор, текстовый редактор и даже просмотровщик картинок).

Как видите, сплошная скука.
Но, знаете ли, это именно то, что я давным-давно хотел.
Читать дальше →
Total votes 128: ↑113 and ↓15 +98
Comments 292

ASUS Eee PC 1201n на базе Ion

Reading time 1 min
Views 751
image
12,1 — ый нетбук от Asus засветился на PCpop, но пока не был анонсирован.
Это первый нетбук на базе Ion от тайванской компании.
Atom N270 c частотой 1,6
Wi-Fi (IEEE 802.11b/g/n)
2 Gb DDR2
HDD 250 Gb
разъемы USB, VGA и RJ45
разрешение 1366х768
6-ячеиный акумулятор на 5 200 мА•ч

На борту Windows 7 Home Premium
Анонс планируется на октябрь.
Источник
Total votes 6: ↑5 and ↓1 +4
Comments 12

«Пилим» FLAC

Reading time 6 min
Views 3.5K
На одном большом всем известном трекере люди стали частенько делиться своими копиями дисков, в формате flac/ape/wavepack(wv) с файлом-cue.
На деле — всё гладко. Действительно, есть и плееры, поддерживающие всё это дело, и действительно это всё работает. НО.
Мои увлечения связаны с электронной клубной музыкой, соответственно ради одного-двух треков целиком диски нарезать перед вечеринкой не хочется(лучше сделать свои грамотные сборники), плюс еще хотелось чтобы привести все файлы к одному формату, а именно FLAC — т.к. новые прогрессивные программы(Ableton Live) и плееры(ipod (с особой прошивкой, либо тач с софтом/cowon) его поддерживают.

Итак, еще раз, задача — имеются diskname.flac + diskname.cue, из них нужно получить много треков с тэгами и внятными названиями файла(Название артиста, номер трека, название трека) + плейлист.

Для примера я взял дистрибутив debian lenny (5.0). Видимо, для пользователей *buntu и других, основанных на debian дистрибутивах команды тоже будут верны.
Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 32

Музыка для программистов

Reading time 1 min
Views 5.6K
Все мы постоянно слушаем различную музыку: на работе, дома, в транспорте и т.д. Музыка влияет на наше настроение, работоспособность и на кучу других факторов.

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

С иностранной музыкой таких проблем не возникает (так как у меня нет сильных знаний языка), но все равно отвлекает.

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

Наверное это не подействует на профессиональных программистов, у них то куча своих секретов. Хотелось бы узнать, бы ли у кого -то подобный опыт, и кто, что предпочитает при подобном виде деятельности?
Total votes 30: ↑21 and ↓9 +12
Comments 68

Как стать «ранней пташкой» (Часть II)

Reading time 4 min
Views 2.3K

Честно говоря, когда я выложил первую часть статьи Стива Павлины «Как стать «ранней пташкой»», я не расчитывал, что так много людей заинтересуются этой темой. Поэтому я решил продолжить и опубликовать продолжение статьи. Также я понял, что сложно осилить большой кусок текста сразу, поэтому вторую часть я подсократил и выделил важные моменты жирным шрифтом. Полную версию перевода статьи можно почитать в замечательном блоге Сергея Бирюкова — большое ему спасибо за перевод! Итак, приступим...

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

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

Но это не то, что я имел в виду, когда говорил про сонливость. Я упоминал тест, когда не удаётся прочитать больше нескольких страниц без потери внимания. Это не значит, что нужно ждать, пока не упадёшь от истощения.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Comments 15

Как стать «ранней пташкой»

Reading time 9 min
Views 4.5K

Это одна из моих любимых статей Стива Павлины о саморазвитии. Несмотря на широкую популярность статьи, найти ее на Хабре мне не удалось, решил поделиться с Вами.

Хорошо вставать до рассвета,
такая привычка способствует здоровью,
богатству и мудрости.
Аристотель


«Жаворонками» рождаются или становятся? В моём случае совершенно точно имело место становление. Когда мне было чуть больше двадцати, я редко ложился спать раньше полуночи и почти всегда вставал поздно. Обычно я не начинал свои дела до конца обеда.

Но через некоторое время я уже не мог не замечать явную зависимость между успехами и ранним подъёмом, даже в моей личной жизни. В те редкие случаи, когда я вставал рано, моя производительность почти всегда была выше, и не только утром, но и в течение всего дня. Кроме того, я был в прекрасном расположении духа. Будучи человеком, который активно добивается своих целей, я решил выработать привычку рано вставать. Я просто поставил будильник на 5 утра…
Читать дальше →
Total votes 67: ↑57 and ↓10 +47
Comments 69

Дизайн и архитектура в ФП. Введение и Часть 1

Reading time 11 min
Views 28K

Введение


В мире функционального программирования есть один большой пробел, а именно почти не освещена тема высокоуровневого дизайна больших приложений. Я решил для себя изучить этот вопрос. Есть ли существенные отличия дизайна приложений в ФП-мире от оного в мире императивном? Что такое «каноничный ФП-код»? Какие существуют идиомы разработки, есть ли смысл вообще говорить о паттернах проектирования в применении к ФП? Эти и другие важные вопросы часто вспыхивают то там, то здесь, но покамест мне не известно ни одной книги, аналогичной книге Банды Четырех. Вероятно, мои изыскания уже кто-то повторил, однако тем лучше: схожие результаты подтвердят правильность, иные — укажут на место в теории, которое необходимо доработать.
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 41

Подборка инструментов для фронт-энд разработки

Reading time 2 min
Views 134K
Как разработчику, мне очень нравятся инструменты, которые помогают сэкономить время или упростить процесс разработки фронт-энда. В этой статье я собрал мои любимые веб-инструменты для упрощения разработки веб-интерфейсов.

Картинки кликабельны.

Form builder


Формы являются очень важной частью любого веб-сайта, но их верстка может занять продолжительное время. Этот очень удобный инструмент, поможет вам создать красивую веб-форму очень быстро.
image
Читать дальше →
Total votes 202: ↑184 and ↓18 +166
Comments 40

Как сделать рабочий стол, или аутсорсинг решает

Reading time 3 min
Views 275K
Хабраюзер любит темы про домашние рабочие места, поэтому покажу и я свое, свежеиспеченное.



Топик отношу к DIY – потому как все здесь сделано для меня, благодаря мне и для меня. БОльшая часть «работ» была отдана профессионалам, и это не потому что я «такой уж рукожопый» (хотя и это присутствует), а потому что я хочу пользоваться вещами, удовлетворяющими моим требованиям. А сделать такие самостоятельно – будет очень долго, нервно, муторно => дорого (да и не факт, что получится).

Собственно говоря, руководствуясь этим правилом в последнем ремонте ничего мною лично и не делалось.☺
Читать дальше →
Total votes 202: ↑167 and ↓35 +132
Comments 305

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

Reading time 8 min
Views 164K

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

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

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

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

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

Information

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