Как стать автором
Обновить
21
0
Егор @Spo1ler

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

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

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

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

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

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

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

Время на прочтение9 мин
Количество просмотров83K
В прошлой статье мы смогли добиться получения изображения с наших веб-камер в виде снимков раз в секунду. Теперь пришла пора взяться за обещанное — распознавание и синтез голоса.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии47

Реверсия брендов

Время на прочтение1 мин
Количество просмотров30K
Американский дизайнер представил реверсию брендов.
В своем проекте Грэхэм Смит поменял местами логотипы и дизайн конкурирующих компаний и известных брендов.

image
Читать дальше →
Всего голосов 303: ↑269 и ↓34+235
Комментарии88

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

Время на прочтение9 мин
Количество просмотров13K
1. Triton 1000 — люксовый батискаф, $1 690 000.

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

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

Несмотря на то, что Triton 1000 задумывался, как очень легкий в управлении батискаф, где все контролируется джойстиками и компьютером, компания-производитель предоставляет курсы погружения и управления совершенно бесплатно, что делает покупку за чуть больше, чем полтора миллиона долларов, по-настоящему выгодной!
Читать дальше →
Всего голосов 133: ↑102 и ↓31+71
Комментарии88

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

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

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

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



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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

Время на прочтение7 мин
Количество просмотров38K
Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Время на прочтение19 мин
Количество просмотров102K
Статья приводится в сокращении из-за ограничения на объем материала.

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

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


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


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

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


Читать дальше →
Всего голосов 402: ↑324 и ↓78+246
Комментарии411

CUDA: Начало

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

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

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

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

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

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

Время на прочтение5 мин
Количество просмотров9.8K
Сегодня, как обещал, вкратце расскажу про пользовательские типы данных, определения функций и сопоставления с образцом.

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

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

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

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

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность