Search
Write a publication
Pull to refresh
4
0.2
Bronx @Bronx

User

Send message

Опубликованы технические спецификации проекта Hyperloop

Reading time2 min
Views199K


Сегодня изобретатель и предприниматель Элон Маск, владелец компаний Tesla Motors и SpaceX, наконец-то опубликовал «альфа-версию» дизайна загадочного транспортного средства Hyperloop, которое планируется запустить сначала между Сан-Франциско и Лос-Анджелесом, далее — везде.

Ранее сообщалось, что Hyperloop планируется как общественный транспорт для большого количества пассажиров, капсулы будут двигаться со средней скоростью около 1000 км/ч, и система не будет требовать внешних источников энергии, кроме той, которой сама себя обеспечит.
Читать дальше →

Корейские учёные разработали революционную технологию производства графена

Reading time3 min
Views110K
Хотя графен состоит из широко распространённого в природе углерода, он очень дорог, так как до сих пор не изобретены способы его получения в промышленных масштабах. Относительно просто можно получить лишь мельчайшие чешуйки графена. Большой однослойный лист монокристаллического графена, пригодный для дальнейшего использования в микроэлектронике — пока что недостижимая цель.

Тем не менее, похоже, что прорыв не за горами. Всего несколько месяцев назад в исследовательском центре IBM имени Томаса Уотсона научились получать 10-сантиметровые листы графена. А 3-го апреля этого года в журнале Science были опубликованы результаты совместного исследования учёных из института передовых технологий Самсунг и университета Сонгюнгван (Южная Корея), в которой описан ещё один метод получения больших листов графена с идеальной структурой, потенциально пригодный для массового производства.

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


Отдельные области графена срастаются в единый лист (вверху — схема, внизу — изображения с микроскопа)
Читать дальше →

Интересно и познавательно: полёт к МКС на ПТК НП

Reading time10 min
Views86K

Продолжаем цикл постов про Orbiter. Что меня очень порадовало, по статистике orbithangar.com после публикации второй статьи скачивали материалы и к ней и к первой статье. А сегодня мы, постепенно увеличивая сложность заданий, отправимся к МКС на перспективном транспортном корабле нового поколения (он же ПТС и ПТК НП).
Этот пост имеет следующие задачи:
  • Рассказать о РН «Ангара» и космодроме «Восточный».
  • Дать представление о физике маневров для осуществления стыковки.
  • Представить простое руководство для осуществления виртуального полёта к МКС и стыковки с ней.

Читать дальше →

YouTube Center

Reading time5 min
Views382K
YouTube Center — лучшее расширение для браузера, работающее на сайте YouTube, которое мне приходилось видеть. Не могу не поделиться.
Собственно, это расширение решает если не все, то большинство проблем, с которыми мы сталкиваемся на YouTube и о которых не раз вспоминали на хабре. О самом расширении тоже говорили на этом сайте, но оно насколько хорошее и удобное, что вполне заслуживает отдельного поста.

Возможности YouTube Center

Дополнение позволяет:
  • разместить видео по центру страницы (1)
  • указать размер плеера (2)
  • указать качество видео (3)
  • запретить автопроигрывание и буферизацию видео, в том числе в Linux в HTML5 (4)
  • отключить Dynamic Adaptive Streaming over HTTP (Dash), которое не позволяет свободно передвигаться вдоль ролика, потому что буферизация каждый раз начинается заново (5)
  • отключить рекламу, в том числе рекламу внутри видео (6)
(цифрами в скобках указаны ссылки на комментарии на хабре, в которых идёт речь о желательности таких функций на YouTube)

Есть и другие мелкие плюшки, вроде возможности:
  • скачивать ролики (с выбором качества, формата и названия видео)
  • удалить предложение видео в конце просмотра
  • указать тип плеера (Flash или HTML5)
  • указать разрешение, в котором загружены ролики
  • добавить автоподсветку, выбрать её цвет и прозрачность
… и многое другое
Читать дальше →

Microsoft NCSI на службе или как мы искали забытый нетбук

Reading time3 min
Views66K
Казалось бы, обычная история — однокурсник забыл нетбук в университете, однако стечение обстоятельств дало идею использования стандартной функции Windows для возможности определения последнего мест выхода устройства в сеть.
Читать дальше →

The Case of the Intermittent Windows Freezes

Reading time4 min
Views14K

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

Читать дальше →

Ускорение загрузки Windows for fun and profit

Reading time4 min
Views811K
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста

Внедрение зависимостей в C++

Reading time7 min
Views32K
MagicClass::getInstance().getFooFactory().createFoo().killMePlease();

«Внедрение зависимостей» и «Статическую типизацию» трудно назвать лучшими друзьями на все времена. Некоторые наработки в этом направлении существуют и легко гуглятся, однако интересно, насколько реально создать собственную простую реализацию баз хаков, ловких ухищрений и подключения внешних библиотек. Без особой гибкости, вот чтобы буквально два действия — настройка и внедрение. Вопросы многопоточности затрагиваться не будут, чтобы не отвлекаться от основной идеи. Итак, что же лично я хочу от внедрения зависимостей.

Постановка

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

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

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

Рабочий вариант с тестовым примером можно взять отсюда.
Читать дальше →

Особенности использования MongoDB

Reading time4 min
Views29K


Чуть больше года назад меня попросили поучаствовать в развитии одной известной в узких кругах (но не всегда с хорошей стороны) социальной сети. В то время я уже был фанатом языка Haxe, поэтому с тем на чём писать вопросов не возникало. А вот с БД они появились. Опыт использования MS SQL Server и MySQL говорили о том, что когда дело касается больших объёмов информации, то порой случаются сложности (практически невозможным становится изменение структуры БД, а когда-то быстрые запросы работают уже критически медленно). Посовещавшись с коллегами (у которых уже был опыт с Mongo), мы решили использовать именно эту СУБД. А о тех особенностях, которые всплыли в течение этого года я и расскажу ниже.
Читать дальше →

Почему мы выбрали MongoDB

Reading time13 min
Views40K
Эта статья появилась на свет после прочтения материала «Почему вы никогда не должны использовать MongoDB». Ниже — история о том, как мы постепенно отказались от MySQL и пришли к использованию MongoDB в качестве основного хранилища данных.



Началось все где-то в 2008 году, когда было принято решение писать вторую версию нашего сайта. Уже какое-то время нам хотелось создать мультиязычную версию базы данных по играм, околоигровым компаниям, персонажам и т.п., так как существующее решение, как нам казалось, морально устарело.

Первым делом были сформулированы:
Требования

Почему вы никогда не должны использовать MongoDB

Reading time16 min
Views288K
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →

ИБ по-американски. Часть 2. А можно поподробнее о NIST 800-53 и причём тут управление рисками?

Reading time7 min
Views15K

*Как ни посмотри, безопасность — это и твоя ответственность*

В прошлой своей статье «ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?» я рассказал об основе, вокруг которой и строится весь документ NIST SP 800-53, а именно о контролях безопасности. Т.е. тех самых мерах, реализация которых и позволяет снизить риски ИБ. Таким образом я, надеюсь, заинтересовал часть аудитории. Однако полноценный процесс работы с контролями безопасности гораздо шире и включает в себя массу других принципов, помимо самих мер. О том, как это всё должно работать мы сегодня и поговорим.

Ссылки на все части статьи:
ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?
ИБ по-американски. Часть 2. А можно поподробнее о NIST 800-53 и причём тут управление рисками?
ИБ по-американски. Часть 3. Что из себя представляет базовый набор контролей и как определять критичность систем?
ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор
Подробности внутри...

ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?

Reading time9 min
Views49K

*Виновен в разглашении конфиденциальной информации! Ваш ТЕЛЕФОН говорит только то, что говорите ВЫ...*

В последний раз я освещал вопрос обеспечения ИБ в США почти год назад в материале, посвящённом разработке Фреймворка управления рисками ИБ. Настало время более подробно рассказать о том, как устроена ИБ в Америке. По крайней мере на бумаге, изданной вполне авторитетной организацией NIST.
Стоит обратить отдельное внимание на то, что дальше речь пойдет о теоретической ИБ, так называемых best practices, которые, как известно большинству специалистов по практической безопасности, в жизни встречаются редко. Однако это не умаляет их значимости при построении реальной системы обеспечения ИБ.

Ссылки на все части статьи:
ИБ по-американски. Часть 1. Что такое NIST 800-53 и как выглядят контроли безопасности?
ИБ по-американски. Часть 2. А можно поподробнее о NIST 800-53 и причём тут управление рисками?
ИБ по-американски. Часть 3. Что из себя представляет базовый набор контролей и как определять критичность систем?
ИБ по-американски. Часть 4. Разбираемся с «подгонкой» и «перекрытиями» и завершаем этот обзор
Читать дальше →

8 фактов, которые вы, возможно, не знали о C#

Reading time7 min
Views195K
Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

1. Индексаторы могут использовать params параметры


Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

public string this[string key]
 {
   get { return internalDictionary[key]; }
 }

Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
Просто напишите ваш индексатор следующим образом:
Читать дальше →

Holy Grail на стероидах: тотальная синхронизация и изоморфный JavaScript на Swarm.js

Reading time7 min
Views22K
Сегодня на Хабре мы представляем технологию реплицированной модели, которая позволяет создавать коллаборативные и реалтаймовые веб приложения так же легко, как локальные десктопные. Мы считаем, что при разработке приложений, синхронизация данных в реальном времени должна быть доступна так же, как TCP поток, HTTP запрос или ток из розетки — сразу и без вопросов. HTML5 приложения, написанные на Swarm, в части автономности, локальности и скорости загрузки не уступают нативным.
Используя библиотеку Swarm, за выходные мы делаем больше, чем за месяц делали без Swarm. Что важней — можем делать то, что без неё делать вообще не могли. Эту библиотеку синхронизации мы предлагаем совершенно бесплатно.



Сегодня мы выкладываем TodoMVC++, реактивное HolyGrail-на-стероидах приложение, написанное на Swarm+React. Приведу список демонстрируемых в приложении возможностей:
Читать дальше →

Трансдьюсеры в JavaScript. Часть вторая

Reading time7 min
Views13K
В первой части мы остановились на следующей спецификации: Трансдьюсер — это функция принимающая функцию step, и возвращающая новую функцию step.

step⁰ → step¹

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

result⁰, item → result¹

Чтобы получить новый текущий результат в функции step¹, нужно вызвать функцию step⁰, передав в нее старый текущий результат и новое значение, которое мы хотим добавить. Если мы не хотим добавлять значение, то просто возвращем старый результат. Если хотим добавить одно значение, то вызываем step⁰, и то что он вернет возвращаем как новый результат. Если хотим добавить несколько значений, то вызываем step⁰ несколько раз по цепочке, это проще показать на примере реализации трансдьюсера flatten:

function flatten() {
  return function(step) {
    return function(result, item) {
      for (var i = 0; i < item.length; i++) {
        result = step(result, item[i]);
      }
      return result;
    }
  }
}

var flattenT = flatten();

_.reduce([[1, 2], [], [3]], flattenT(append), []); // => [1, 2, 3]

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

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

Итак, сейчас мы можем:
  1. Изменять элементы (прим. map)
  2. Пропускать элементы (прим. filter)
  3. Выдавать для одного элемента несколько новых (прим. flatten)

Читать дальше →

Профайлер для Entity Framework

Reading time22 min
Views25K


Приветствую!

Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для Entity Framework-а ( далее EF) c 4-й по 6-ю версию, а также о некоторых примененных мной решениях, таких как декомпилирование .NET кода на лету, форма для обработки исключений и прочее.
Nuget пакет для EF6: https://www.nuget.org/packages/EFlogger-For6/
Nuget пакет для EF4 — 5: https://www.nuget.org/packages/EFlogger-For4/

Подробности под катом.
Читать дальше →

Колоночные СУБД — принцип действия, преимущества и область применения

Reading time5 min
Views128K
Середина 2000-х годов ознаменовалась бурным ростом числа колоночных СУБД. Vertica, ParAccel, Kognito, Infobright, SAND и другие пополнили клуб колоночных СУБД и разбавили гордое одиночество Sybase IQ, основавшей его в 90х годах. В этой статье я расскажу о причинах популярности идеи по-колоночного хранения данных, принцип действия и область использования колоночных СУБД.

Начнем с того, что популярные в наше время реляционные СУБД — Oracle, SQL Server, MySQL, DB2, Postgre и др. базируются на архитектуре, отсчитывающей свою историю еще c 1970-х годов, когда радиоприемники были транзисторными, бакенбарды длинными, брюки расклешенными, а в мире СУБД преобладали иерархические и сетевые системы управления данными. Главная задача баз данных тогда заключалась в том, чтобы поддержать начавшийся в 1960-х годах массовый переход от бумажного учета хозяйственной деятельности к компьютерному. Огромное количество информации из бумажных документов переносилось в БД учетных систем, которые должны были надежно хранить все входящие сведения и, при необходимости, быстро находить их. Такие требования обусловили архитектурные особенности реляционных СУБД, оставшиеся до настоящего времени практически неизменными: построчное хранение данных, индексирование записей и журналирование операций.
Читать дальше →

Смелый стайлгайд по AngularJS для командной разработки [2/2]

Reading time6 min
Views23K
Первая часть перевода тут.

После прочтения Google's AngularJS Guidelines, у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

Отталкиваясь от личного опыта работы с Angular, нескольких выступлений, а также имеющемуся опыту командной разработки, представляю Вашему вниманию этот смелый стайлгайд по синтаксису, написанию кода и структуре приложений на AngularJS.
Читать дальше →

Information

Rating
4,324-th
Registered
Activity