Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Почему в России почти нет гражданского/коммерческого высокотехнологичного производства?

Время на прочтение27 мин
Количество просмотров409K
Статью с обзором ситуации с микроэлектроникой в России я закончил утверждением, что сейчас в России есть технические возможности для создания любых военных микросхем (если не считаться с ценой). Однако и в комментариях к той статье, и во многих других — всех больше волновал вопрос отсутствия (на уровне погрешности измерений) производства чисто-коммерческих (гражданских) высокотехнологичных продуктов. Этот вопрос волновал и меня, потому я постоянно мучил вопросами всех, кто так или иначе связан с высокими технологиями и бизнесом в России.

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

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

Сразу нужно отметить, что в связи с многогранностью проблемы объем статьи получился довольно большой, так что можно начать читать с резюме в конце, и затем прочитать лишь те разделы, которые вызовут интерес. Сразу хочу предупредить — повествование «нелинейное», соседние заголовки могут описывать разные аспекты проблемы и быть друг с другом практически не связанными.
Читать дальше →
Всего голосов 389: ↑380 и ↓9+371
Комментарии304

Ученые получили новые снимки работы нейронов мозга

Время на прочтение2 мин
Количество просмотров30K
34 ученых из Allen Institute for Brain Science в Сиэтле завершили создание первой всеобъемлющей карты мозга млекопитающих, о чем они объявили 2 апреля в журнале Nature Neuroscience. Карта детально отображает взаимосвязи между клетками мозга мыши – нейроны, которых у нее около 71 миллиона.


Читать дальше →
Всего голосов 55: ↑51 и ↓4+47
Комментарии26

Signed Distance Field или как сделать из растра вектор

Время на прочтение12 мин
Количество просмотров60K
Речь сегодня пойдёт о генерации изображений с картой расстояний (Signed Distance Field). Данный вид изображений примечателен тем, что фактически позволяет получить «векторную» графику на видеоускорителе, причём даром. Одной из первых данный метод растеризации предложила компания Valve в игре Team Fortress 2 для масштабируемых декалей в 2007 году, но до сих пор он не пользуется особой популярностью, хотя позволяет рендерить прекрасного качества шрифты, используя текстуру всего 256х256 точек. Данный метод прекрасно подходит для современных экранов высокой чёткости и позволяет серьёзно сэкономить на текстурах в играх, он не требователен к железу и прекрасно работает на смартфонах.



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

Как же создавать такие изображения? Очень просто, ImageMagick позволяет сделать это одной командой:

convert in.png -filter Jinc -resize 400% -threshold 30% \( +clone -negate -morphology Distance Euclidean -level 50%,-50% \) -morphology Distance Euclidean -compose Plus -composite -level 45%,55% -resize 25% out.png

На этом можно было бы поставить точку, но так полноценного топика не получится. Что ж, под катом — описание быстрого алгоритма расчёта SDF, пример на C++ и немного шейдеров для OpenGL.
Читать дальше →
Всего голосов 115: ↑113 и ↓2+111
Комментарии61

Сети для самых маленьких. Часть девятая. Мультикаст

Время на прочтение51 мин
Количество просмотров664K

Наш умозрительный провайдер linkmeup взрослеет и обрастает по-тихоньку всеми услугами обычных операторов связи. Теперь мы доросли до IPTV.
Отсюда вытекает необходимость настройки мультикастовой маршрутизации и в первую очередь понимание того, что вообще такое мультикаст.
Это первое отклонение от привычных нам принципов работы IP-сетей. Всё-таки парадигма многоадресной рассылки в корне отличается от тёплого лампового юникаста.
Можно даже сказать, это в некоторой степени бросает вызов гибкости вашего разума в понимании новых подходов.

В этой статье сосредоточимся на следующем:




Читать дальше →
Всего голосов 108: ↑106 и ↓2+104
Комментарии27

Как Минковский во Flappy Bird играл

Время на прочтение8 мин
Количество просмотров127K


Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?

И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Читать дальше →
Всего голосов 364: ↑357 и ↓7+350
Комментарии32

Remote по-русски. Новая книга от 37signals

Время на прочтение4 мин
Количество просмотров70K
image
Если названия «Rework» и «37signals» вам хорошо знакомы, то на вашей улице наступил маленький праздник — совсем недавно на русском языке вышла их новая книга «Remote: Office Not Required» (в русском издании — «Remote: Офис не обязателен»). Книга доступна как в печатном варианте, так и в электронной версии.

Компания 37signals — создатель фреймворка Ruby on Rails, нескольких инструментов для управления проектами (из которых известнее всего Basecamp) и нескольких книг-бестселлеров (Rework и Getting Real), посвященных принципам построения успешной компании-разработчика. Год назад была анонсирована их новая книга, посвященная преимуществам и организации удалённой работы — ее анонс проскакивал на Хабре. На полках западных магазинов Remote появилась осенью, поэтому многие уже успели прочитать ее на языке оригинала — в том числе и основатель Хабрахабра Денис Крючков, который дал ей краткую положительную оценку.

С тех пор 37signals успели переименоваться в Basecamp (с целью повысить узнаваемость компании, они назвались по имени своего самого успешного продукта), а на этой неделе «Remote: Офис не обязателен» наконец-то появилась в продаже на русском языке. На оригинал у меня времени не нашлось, поэтому, дождавшись солнечного утра субботы, я отправился в книжный магазин, и спустя пару часов погрузился в чтение в электричке. Опасений насчет русского издания не было никаких: за дело снова взялось издательство бизнес-литературы Манн-Иванов-Фербер, выпустившее у нас предыдущий бестселлер 37signals — Rework. На моей книжной полке эта книга давно занимает почетное место; вот и с Remote история повторилась — оригинальное оформление книги было полностью сохранено, замечательные иллюстрации снова на месте, качественный перевод прилагается — впрочем, от МИФ другого и не ожидалось.
Читать дальше →
Всего голосов 55: ↑53 и ↓2+51
Комментарии13

Лёгкий способ писать iOS приложения на вебе

Время на прочтение9 мин
Количество просмотров84K
Всем привет. Не так давно Габриель подарил нам игру 2048. Это тот самый удивительный случай, когда клон игры становится более популярный, чем оригинал. Не малая часть успеха Габриеля — открытый код и, вуаля, MIT лицензия. Набрав чуть больше 20к очков, захотелось поделиться результатом с друзьями, кроме как сделать скриншот не получилось. Глянул аппстор на наличие клона с геймцентром или чем-то подобным — пусто. И тут подумал, почему бы нет?
Забегая вперёд, на создание приложения и всех «ништяков» к нему ушло 4 дня. На выходе универсальный код, который от части работает и в вебе и легко портируется на иос/андроид. Однако, давайте по порядку.


Читать дальше →
Всего голосов 78: ↑65 и ↓13+52
Комментарии41

Математикам доверяй, но проверяй

Время на прочтение14 мин
Количество просмотров37K
PVS-Studio. You shall not pass!
Я временами бываю озадачен, рассматривая ошибки в очередном программном проекте. Многие из этих ошибок живут в проектах годами. Смотришь на сотню ляпов в коде и удивляешься, как программа вообще работает. И ведь как-то работает. Ей даже пользуются. Причем, я говорю не о коде, рисующем покемона в игре. А, например, о математических библиотеках. Да, вы верно догадались. В этой статье пойдет речь о проверке кода математической библиотеки Scilab.
Читать дальше →
Всего голосов 106: ↑87 и ↓19+68
Комментарии66

Встречайте WebStorm 8: поддержка AngularJS, spy-js, интеграция Grunt и многое другое

Время на прочтение3 мин
Количество просмотров24K
Вот и настало время весеннего обновления WebStorm, нашей IDE для front-end разработки и Node.js.
В новом WebStorm 8 появились поддержка фреймворка AngularJS, JavaScript-трейсер spy-js, долгожданные множественные курсоры в редакторе, интеграция Grunt и Bower и еще много интересных нововведений и улучшений.
Теперь обо всем по порядку.
image
Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии65

Хороший дизайн интерфейсов. Часть 3

Время на прочтение5 мин
Количество просмотров76K
Это третья часть переведённых заметок «Good User Interface». Первые 16 частей уже ранее перевели наши коллеги из ADV на Хабре, а вторые 11 перевели мы.

Идея 28


Используйте варианты по-умолчанию, не заставляя людей выбирать


Выбор по-умолчанию или самозаполняющиеся поля с обучением сокращают объем работы, которую должен проделать пользователь. Это стандартная техника, помогающая людям продвигаться по формам быстрее, учитывая, что их время ограничено. Одна из наиболее отвратительных вещей с точки зрения дизайна интерфейсов и конверсии посетителей в клиентов — это снова и снова просить пользователей предоставить данные, которые они уже указали ранее. Старайтесь делать поля, которые будут сами заполняться самыми популярными или уже известными значениями, а не просите людей их каждый раз заполнять. Чем меньше работы — тем лучше.

Остальные 10 заметок далее
Всего голосов 88: ↑81 и ↓7+74
Комментарии36

Библиотека компьютерного зрения CCV 0.6 с новым классификатором изображений

Время на прочтение1 мин
Количество просмотров20K


Для свободной кроссплатформенной библиотеки компьютерного зрения CCV разработан новый классификатор изображений, обученный в свёрточной нейроной сети. Впервые классификатор такого уровня и модели (детектор лиц, детектор автомобилей, детектор пешеходов) выпущены под свободной лицензией.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии13

Динамические деревья

Время на прочтение8 мин
Количество просмотров36K
Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

В первом случае динамические деревья позволяют построить эффективные алгоритмы для задачи о поиске максимального потока. Улучшенные алгоритмы Диница и проталкивания предпотока работают за и соответственно. Если вы не знаете, что такое поток, и на лекциях у вас такого не было, спешите пополнить свои знания в Кормене.

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

Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
Читать дальше →
Всего голосов 54: ↑52 и ↓2+50
Комментарии5

Введение в программирование через поведение (BDD)

Время на прочтение10 мин
Количество просмотров72K
История: Эта статья впервые появилась в журнале Better Software в марте 2006. Она была переведена на несколько языков.

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

Чем больше я пользовался TDD, тем больше я понимал, что не столько оттачиваю своё мастерство, достигая новых его вершин, сколько то, что это было движение в слепую. Я помню, как мне все чаще приходила мысль: «Эх, вот бы мне кто-нибудь сказал это раньше!», чем мысль: «Отлично, дорога ясна». Я решил, что нужно найти способ обучать TDD, показывающий, как верно работать с ним сразу и без ошибок.

И этот способ — это программирование через поведение. Оно выросло из выработанных agile практик и призвано сделать их доступнее и эффективнее для команд, незнакомых с ними. Со временем, BDD стало включать в себя agile анализ и автоматическое приемочное (прим. acceptance) тестирование.

Читать дальше →
Всего голосов 36: ↑32 и ↓4+28
Комментарии15

Логика мышления. Часть 16. Пакетное представление информации

Время на прочтение10 мин
Количество просмотров18K


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

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

Чтобы понять, какой формат описаний использует мозг, проследим последовательность зрительного восприятия. Разглядывая изображение, мы «сканируем» его быстрыми движениями глаз, называемыми саккадами (рисунок на КДПВ). Каждая из них помещает в центр зрения один из фрагментов общей картины. На зонах зрительной коры возникают описания, соответствующие тому, что мы видим в этот момент в центре, что видит периферия и каково смещение в результате только что проделанной саккады. Каждая следующая саккада порождает новую картину. Эти описания сменяют друг друга одно за другим.

Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии19

Новое в Java 8

Время на прочтение15 мин
Количество просмотров511K
Java еще не умерла — и люди начинают это понимать.

Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать дальше →
Всего голосов 96: ↑95 и ↓1+94
Комментарии139

SOAP Web-сервис средствами Spring-WS

Время на прочтение8 мин
Количество просмотров108K
image
Когда-то поставили передо мной задачу начать разработку Web-сервисов и дали мне сорцы простейшего проекта без каких-либо объяснений. Проект, конечно же, не запускался. Что такое Spring и как он работает, я тоже представления не имел. Адекватных статей по разработке Web-сервисов средствами Spring ни русскоязычных, ни англоязычных я тоже не смог найти. Пришлось разбираться во всем самому, оказалось все не так страшно.
И вот недавно я решил посмотреть, какие новые возможности добавились в Spring с тех пор, и обновить старые сервисы, что в результате и сподвигло меня на написание данной статьи.

Данная статья является руководством по разработке простейшего Web-сервиса, использующего SOAP-протокол, средствами Spring-WS.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии10

Java 8 Released

Время на прочтение2 мин
Количество просмотров52K
Поздравляю всех с официальным выходом Java 8.
Основные ссылки по данному вопросу:
1. Ссылка на скачивание
2. Ссылка на перечень изменений
Читать дальше →
Всего голосов 83: ↑71 и ↓12+59
Комментарии79

Релиз KPHP и движков

Время на прочтение6 мин
Количество просмотров164K
Довольно часто, выступая на различных конференциях, мы делились желанием выпустить под открытой лицензией KittenPHP, согласно традиции, заложенной крупными IT-компаниями, такими как Google и Facebook.

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

В связи с этим под катом вас ждет более подробный рассказ о внутреннем устройстве ВКонтакте и тех инструментах, которые сегодня стали доступны opensource-сообществу.


Читать дальше →
Всего голосов 323: ↑311 и ↓12+299
Комментарии159

Как начать работать с GitHub: быстрый старт

Время на прочтение6 мин
Количество просмотров1.2M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →
Всего голосов 182: ↑165 и ↓17+148
Комментарии51

Введение в оптимизацию. Имитация отжига

Время на прочтение10 мин
Количество просмотров185K
В этой статье я постараюсь максимально доходчиво рассказать о таком простом, но эффективном методе оптимизации, как имитация отжига (simulated annealing). А чтобы не быть причисленным к далёким от практики любителям теоретизировать, я покажу как применить этот метод для решения задачи коммивояжёра.

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

image


Читать дальше →
Всего голосов 148: ↑138 и ↓10+128
Комментарии37

Информация

В рейтинге
6 083-й
Зарегистрирован
Активность