Pull to refresh
21
0
Егор @Spo1ler

User

Send message

Сеть на кристалле — мини-интернет внутри процессора

Reading time4 min
Views12K
Мы уже смирились с тем, что рост тактовой частоты процессоров остановился и производители пошли по пути распараллеливания вычислений. Однако и число ядер типичного процессора общего назначения, быстро одолев отметки 2 и 4, остановилось в районе 8. Некоторые даже собрались хоронить закон Мура.

У такого застоя есть объективная причина. Если разница между 2, 4 или 8 ядрами скорее количественная, то уже 16-ядерный процессор сталкивается с принципиальными ограничениями традиционной архитектуры. Дело в том, что на протяжении последних нескольких десятилетий основой коммуникации между отдельными IP-блоками чипа служила шина. Пока блоков было немного, она справлялась, но когда начали плодиться ядра, эта архитектура исчерпала себя. Шина представляет собой общую среду передачи данных, к которой подключено несколько блоков процессора. В каждый момент времени один блок может передавать данные, а все остальные — получать. Если нескольким блокам нужно передавать одновременно — возникает коллизия, а значит и задержка. При числе ядер больше восьми задержки становятся неприемлемо большими, практически полностью перечёркивая преимущества параллельной работы нескольких ядер.

Число ядер можно увеличить ещё немного, разделив шину на несколько сегментов, объединённых мостами, однако это скорее «костыль», который плохо масштабируется и не решает основную проблему. Настоящее решение, которое позволит объединять сотни блоков на одном чипе — это хорошо известная всем сеть с коммутацией пакетов, или Network on Chip.
Читать дальше →
Total votes 128: ↑123 and ↓5+118
Comments64

«Умный дом» собственными руками. Часть 3. Синтез и распознавание голоса с помощью Google

Reading time9 min
Views83K
В прошлой статье мы смогли добиться получения изображения с наших веб-камер в виде снимков раз в секунду. Теперь пришла пора взяться за обещанное — распознавание и синтез голоса.
Читать дальше →
Total votes 75: ↑70 and ↓5+65
Comments47

16 очень дорогих гаджетов, подходящих роскошному образу жизни

Reading time9 min
Views13K
1. Triton 1000 — люксовый батискаф, $1 690 000.

Triton 1000 — последнее творение компании U.S. Submarines. Это легкий, двухместный, практически минимально доступного водоизмещения батискаф, предназначенный специально для погружения с роскошных яхт. Высотой в 1.8 метра, длиной всего 3 метра и весом в 3.3 тонны, Triton 1000 может эксплуатироваться на практически любой лодке среднего класса.

Но кроме возможности возить батискаф с собой на личном кораблике, Triton предоставляет пасажирам практически небывалый комфорт для подобного устройства: кожаные сиденья с массажем не позволят отсидеть задницу (или что там у богатых), огромный «пузырь» стекла не препятствует обзору подводного мира. В этой мини-подлодке даже есть кондиционер.

Несмотря на то, что Triton 1000 задумывался, как очень легкий в управлении батискаф, где все контролируется джойстиками и компьютером, компания-производитель предоставляет курсы погружения и управления совершенно бесплатно, что делает покупку за чуть больше, чем полтора миллиона долларов, по-настоящему выгодной!
Читать дальше →
Total votes 134: ↑102.5 and ↓31.5+71
Comments88

Web OS: будущее одной иллюзии

Reading time8 min
Views609
Интернет выгоднее, чем реальный мир. И не только в плане душевного комфорта. Продавать через Интернет намного выгоднее, чем в магазине: покупателю никуда не надо ходить, а продавцу ничего не нужно арендовывать в торговом центре. Хранить даные в
интернете намного удобнее, чем на домашнем компьютере: любая информация доступна из любого места, если есть доступ в сеть (об этом «если» мы ещё скажем). Ну и, главное — в Интернете чем дальше, тем больше становится возможным не платить за услуги, а вместо этого просто смотреть рекламу. Даже реагировать на неё не обязательно.
Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments13

Для тех, кто выбрал красную пилюлю. Инструментарий Нео

Reading time9 min
Views29K
Значимость любого массового явления измеряется резонансом и борьбой мнений. Так было всегда. Криптовалюта, которую в 2008-м придумал Сатоши Накамото, и ее флагман – биткоин, с каждым годом становится все популярнее. Первыми в биткоин, как в доллар цифрового века, уверовали шифропанки, криптоанархисты и бунтари всех мастей. Законы математики сильнее законов, придуманных людьми, решили они, и с энтузиазмом занялись строительством криптовалютной экосистемы. Затем потенциал перспективного платежного средства оценили IT-компании, сначала те, кому особо нечего было терять, а потом и гиганты. Dell, Expedia, Dish Networks, Overstock.com уже активно принимают платежи в биткоинах, Apple, Facebook, Pay Pal и такие социальные площадки как Reddit, им тоже симпатизируют, но пока занимают выжидательную позицию, подумывая при этом о введении собственной криптовалюты. Вместе с ростом популярности усиливалось беспокойство тех, кому развитие нового рынка могло сулить серьезные проблемы. Олдфаги же ярые противники, в роли которых выступают прежде всего государства и финансовые структуры, увидели в них угрозу финансовой стабильности, и в большинстве своем объявили новому и малопонятному явлению войну.



Словом, все крайне неоднозначно, и продолжать холивар на тему «За» или «Против» мы здесь не будем. Важно одно – рынок криптовалют существует и обрастает сопутствующими сервисами. Принимать его или нет – целиком выбор пользователя. Эта же статья для тех, кто выбрал красную пилюлю свой выбор уже сделал и нуждается в утилите, которая не только поможет ориентироваться в мире криптовалют и следить за их курсом, но и играть на нем, оперативно обменивая одну криптовалюту на другую, или же выводить ее за вполне обычные, фиатные деньги.
Читать дальше →
Total votes 48: ↑37 and ↓11+26
Comments10

Три Николая, или как я придумал сервис для эйчаров

Reading time5 min
Views14K

Сам себя не похвалишь, никто не похвалит. Вернее, может и похвалит, но не так как надо. Мы еще раз убедились в непреложности этой истины почти сразу же после того, как решили бросить среди наших стартаперов на VCStart клич присылать нам свои Dev Story. Ибо никто с большей охотой, любовью и тщанием не расскажет о своем детище, чем тот, кто его родил. Бросить то бросили, особо не планируя сроков ожидания. Однако некоторые, наиболее шустрые авторы стартапов откликнулись почти сразу же, будто все уже давно написали и только и ждали от нас приглашения рассказать о себе. Одним из первых проявил активность проект Запишись.сom, с которого мы, пожалуй, и начнем. Приводим тут полностью рассказ автора этого стартапа (стилистика и лексика сохранены):

Пришествие первое

Вот все говорят, что идея приходит, когда долго долбишься головой в одно и то же место, потом в какой-то момент вырастают рога, и с ними бодаться с жизнью становится уже легче. В моем случае ничего подобного не было. Просто в один прекрасный момент я внезапно ощутил потребности рынка.
Читать дальше →
Total votes 61: ↑38 and ↓23+15
Comments12

Как создавались 9 самых успешных стартапов Стэнфорда

Reading time6 min
Views48K
Расположенный в самом сердце Кремниевой долины Стэнфордский университет считается одним из лучших американских вузов, и при этом, самым дорогостоящим. Например, один год обучения в бакалавриате стоит студенту $50-70 тысяч, а двухгодичная программа MBA в Стэнфорде по совокупности затрат обходится в $200 тысяч.



Instagram: Майкл Кригер (первый слева), Кевин Систром (третий слева)

Однако это не отпугивает желающих получить высшее образование в заведении, где самый высокий в мире процент преподавателей (на 6 студентов – 1 преподаватель) и 16 из них — Нобелевские лауреаты, а еще 4 — обладатели Пулитцеровской премии. Читать сюда лекции приезжают Билл Гейтс и бывший глава Hewlett Paccard Карли Фиорина, почетным профессором Стэнфордского университета был живший неподалеку в Пало-Альто Стив Джобс, сам так и не получивший высшего образования.
Читать дальше →
Total votes 56: ↑48 and ↓8+40
Comments46

Диплом бакалавра в LaTeX, или ДСТУ 3008-95 в 150 строк

Reading time21 min
Views140K
image
Всем привет. Недавно меня тоже настигла переломная веха студенческой жизни — бакалаврская дипломная работа. Среди многих формальных деталей этого замечательного явления особо заметным стоит нормоконтроль. Нет, я понимаю и всячески поддерживаю, что стандарты необходимы, в том числе стандарты на оформление академического текста. Просто наши стандарты, в отличие от западных, достаточно идиотичны. Они не экономят ни чернила, ни бумагу, они не упрощают поиск литературы по номенклатуре, а усложняют чтение названия. Не говоря уже о том, что текст стандарта спроектирован и описан людьми, работающими в редакторе Microsoft Word. Опять-таки, я не имею ничего против Word, это мощнейшая система. Но технический текст в нем набирать неудобно, и по гибкости он во много раз проигрывает бессмертному творению Дональда Кнута — LaTeX.

Итак, мое написание диплома началось с того, что я потратил 4 часа на настройку преамбулы под нормы украинского стандарта оформления ДСТУ 3008-95. Насколько мне известно, он почти полностью соответствует русскому ГОСТу. Я знал, что существуют готовые решения (например, disser), но после пары проб предпочел настроить каждую деталь самостоятельно. Для тренировки. Тренировка удалась — я узнал бездну новых вещей о LaTeX, этого монстра невозможно выучить полностью :-)

Под катом я полностью опишу процесс настройки каждой конкретной детали и использование их при написании, а также разные мелочи, упрощающие написание диплома еще больше. Сразу предупреждаю: где-то мои решения могут показаться костылями. Где-то они не слишком универсальны. Я это знаю, понимаю, принимаю и приветствую критику и предложения в комментариях ;-)
Читать дальше →
Total votes 105: ↑101 and ↓4+97
Comments54

Делиться не всегда полезно: оптимизируем работу с кэш-памятью

Reading time7 min
Views38K
Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.

Мы все «немного читали» об оптимизации работы с памятью, и у нас отложилось, что полезно, когда «кэш остается горячим», то есть данные, к которым часто обращаются потоки, должны быть компактными и находиться в ближайшем к процессорному ядру кэше. Все так, но когда дело доходит до того, чтобы делиться доступом, потоки становятся злейшими врагами [производительности], а кэш не просто горячий, он аж «горит адским огнем» – такая во круг него разворачивается борьба.

Ниже мы рассмотрим простой, но показательный случай возникновения проблем производительности многопоточных программ, а потом я дам несколько общих рекомендаций, как избежать проблемы потери эффективности вычислений из-за разделения кэша между потоками.
Читать дальше →
Total votes 72: ↑68 and ↓4+64
Comments30

Еще раз о поиске простых чисел

Reading time7 min
Views225K
Скульптура `Решето Эратосфена` (Стэнфордский университет) В заметке обсуждаются алгоритмы решета для поиска простых чисел. Мы подробно рассмотрим классическое решето Эратосфена, особенности его реализации на популярных языках программирования, параллелизацию и оптимизацию, а затем опишем более современное и быстрое решето Аткина. Если материал о решете Эратосфена предназначен в первую очередь уберечь новичков от регулярного хождения по граблям, то алгоритм решета Аткина ранее на Хабрахабре не описывался.

На снимке — скульптура абстрактного экспрессиониста Марка Ди Суверо «Решето Эратосфена», установленная в кампусе Стэнфорского университета
Читать дальше →
Total votes 159: ↑151 and ↓8+143
Comments28

Математическая модель работы автофокуса в глазу человека

Reading time3 min
Views5.6K


Учёные до сих пор точно не знают, как функционирует автофокус в глазу человека и других животных. Известно, что он работает чрезвычайно быстро и безошибочно. Получая расплывчатую картинку, мозг мгновенно распознаёт дистанцию до объекта и изменяет фокусное расстояние — кривизну хрусталика, чтобы получить чёткое изображение на сетчатке.
Читать дальше →
Total votes 113: ↑107 and ↓6+101
Comments49

Защита и взлом БД на примере программы «Каталог запчастей»

Reading time4 min
Views17K
Если вы хотите защитить базу данных, которая используется в вашей программе, то эта информация окажется вам полезной. Возможно нужно улучшить защиту, например, шифруя значения базы данных и расшифровывая их при выводе.

Итак. Есть программа с папкой DATA, данные из которой очень хочется получить.

Есть несколько вариантов.
  • Превый вариант. Можно пойти сложным путем, снимая скриншоты и экспортируя заявки по одной в excel. Но это долгий способ и неинтересный.
  • Второй вариант. Подумать и раскодировать данные.

Для начала нужно узнать в каком формате хранятся данные в программе. Можно воспользоваться бесплатной программой TrID.
Читать дальше →
Total votes 115: ↑99 and ↓16+83
Comments30

DNS Tunneling via iodine: сыр действительно бесплатный

Reading time3 min
Views25K
Есть:
— отключенный за неуплату интернет (adsl, lan, etc)
или
— нешифрованная wi-fi сеть c закрытым интернетом, но работающим dns
или
— очень строгий firewall с открытым dns

Хочется:
полноценный интернет, пусть даже очень медленно
Как?
Total votes 85: ↑78 and ↓7+71
Comments70

10 приемов, разрушающих хрупкую красоту кода

Reading time19 min
Views101K
Статья приводится в сокращении из-за ограничения на объем материала.

Для меня программирование — это не только технология, но и, во многом — искусство. И, поэтому, большое значение имеет красота кода.

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

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


Читать дальше →
Total votes 402: ↑324 and ↓78+246
Comments411

CUDA: Начало

Reading time4 min
Views72K

Это первая публикация из цикла статей об использовании GPGPU и nVidia CUDA. Планирую писать не очень объемно, чтобы не слишком утомлять читателей, но достаточно часто.
Читать далее...
Total votes 53: ↑44 and ↓9+35
Comments62

Классы типов, монады

Reading time15 min
Views13K
Темой сегодняшней статьи будут классы типов, некоторые стандартные из них, синтаксический сахар с их использованием и класс монад.
Классы привносят динамический полиморфизм, как и интерфейсы в традиционных императивных языках, а также могут быть использованы как замены отсутствующей в Хаскеле перегрузки функций.
Я расскажу, как определить класс типов, его экземпляры (instance) и как это всё устроено внутри.

Предыдущие статьи:
Типы данных, паттернг матчинг и функции
Основы
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments24

Типы данных, паттернг матчинг и функции

Reading time5 min
Views9.8K
Сегодня, как обещал, вкратце расскажу про пользовательские типы данных, определения функций и сопоставления с образцом.

Предыдущие статьи:
Основы
Последующие статьи:
Классы типов, монады
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments9

Создаём парсер для ini-файлов на Haskell

Reading time8 min
Views8.7K
В данной статье я расскажу как написать свой парсер ini-файлов на Haskell. За основу возьму контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Parsec, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами Haskell. Если это не так, то я советую сначала прочитать пару статей для новичков (их можно найти в том числе и на Хабре).
Читать дальше →
Total votes 39: ↑30 and ↓9+21
Comments15

Создаём парсер для ini-файлов на C++

Reading time7 min
Views38K
В данной статье я расскажу как написать свой парсер ini-файлов на C++. За основу возьмём контекстно-свободную грамматику, построенную в моей предыдущей статье. Для построения парсера будет использоваться библиотека Boost Spirit, которая позволяет строить свои собственные парсеры комбинируя готовые примитивные парсеры при помощи парсерных комбинаторов.

Важно: в данной статье предполагается, что читатель знаком с основами C++ (в том числе будет активно использоваться STL). Если вы не очень в себе уверены, то я советую сначала прочитать пару статей для новичков по С++ и по STL.
Читать дальше →
Total votes 68: ↑58 and ↓10+48
Comments43
1

Information

Rating
Does not participate
Location
Минская обл., Беларусь
Date of birth
Registered
Activity