Архив за 20 апреля 2013 - 2

image

Сегодня в выпуске #21:

  • изгнание зеленого змия;
  • рассекатель для горелки;
  • психрометр своими руками;
  • тепловой рычаг — расширение металла;
  • графитовый реостат;
  • цепкая вода.

Внимание:

Некоторые опыты могут быть опасны для здоровья. При их проведении нужно обязательно соблюдать технику безопасности.
Читать полностью »

Здравствуйте, уважаемые читатели!

В данном коротком посте хотелось бы поделиться опытом о том, как мы решали задачу подмены библиотеки libpthread. Такая потребность возникла у нас в ходе создания инструмента формирования модели переходов многопоточной программы, о которой мы уже рассказывали в одном из предыдущих постов — habrahabr.ru/company/nordavind/blog/176541/. Технология получилась достаточно универсальной, поэтому спешим ей поделиться с читателим. Надеемся, кому-нибудь пригодится для решения собственных задач.

Итак, начнем с описания задачи, которую решали мы. Для исследования программы на предмет наличия в ней потенциальных ситуаций взаимных блокировок нам необходимо было построить модель программы с точки зрения последовательности обращений к различным средствам синхронизации из различных потоков. Логичным и очевидным решением является «перехват» обращений к средствам синхронизации, которые в нашей системе происходили исключительно через стандартную библиотеку libpthread. Т.е. фактически, решение состоит в подмене библиотеки libpthread на некую нашу библиотеку libpthreadWrapper, которая реализует все функции, которые реализованы в оригинальной библиотеке. При этом в интересующих нас функциях (pthread_mutex_lock, pthread_mutex_unlock, pthread_cond_signal, и др.) добавляется некоторый код, который уведомляет какого-то внешнего listener-а о вызове и параметрах вызова. Реализация всех неинтересующих нас функций оригинальной библиотеки в libpthreadWrapper представляет собой просто вызов соответствующей функции из libpthread.Читать полностью »

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

Новая технология основывается на использовании слоев из «двухмерных нанокристаллов» толщиной менее одного нанометра. Из этих слоев исследователям удается формировать структуры, способные заменить сегодняшние транзисторы.

Компания HTC официально анонсировала новый смартфон линейки Desire с приставкой L. Устройство работает под управлением операционной системы Android (предположительно Jelly Bean 4.1.2) с фирменной оболочкой Sense.

HTC Desire L

Читать полностью »

Оглавление

  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
  8. Навигация
  9. Способы коммуникации между слабосвязанными компонентами

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

Для связи всех частей воедино, Prism приложения полагаются на DI контейнер. DI контейнеры уменьшают зависимости между объектами, предоставляя способ создания экземпляров классов и управления их временем жизни в зависимости от конфигурации контейнера. При создании объектов с помощью контейнера, он инжектирует в них необходимые зависимости. Если зависимости еще не были созданы, то контейнер в начале создает их и разрешает их собственные зависимости. В некоторых случаях, сам контейнер внедряется как зависимость. Например, при использовании Unity, в модули внедряется контейнер для того, чтобы они могли зарегистрировать в нём свои представления и службы.

Есть несколько преимуществ использования контейнера:

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

В контексте приложения, основанного на библиотеке Prism, есть определенные преимущества контейнера:

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

Читать полностью »

Оглавление

  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
  8. Навигация
  9. Способы коммуникации между слабосвязанными компонентами

Эта глава рассказывает о том, что нужно сделать для загрузки приложения Prism. Приложение Prism требует регистрации и конфигурации компонентов во время запуска – этот процесс известен как bootstrapping.

Что такое загрузчик (Bootstrapper)

Загрузчик является классом, ответственным за инициализацию приложения, созданного с использованием библиотеки Prism. При использовании загрузчика вы получаете больший контроль над тем, как компоненты библиотеки Prism создаются и соединяются при запуске вашего приложения. Библиотека Prism включает абстрактный базовый класс загрузчика, который может быть специализирован для использования с любым контейнером. Многие из методов в классах загрузчиков являются виртуальными. Можно переопределять эти методы для предоставления собственной их реализации.

Основные этапы процесса загрузки.
Читать полностью »

Если вы разрабатываете приложения для XAML-based платформ, таких как WPF, Silverlight, Windows Phone, или Windows Store, то Prism, определённо, сильно поможет вам упростить их разработку. После создания нескольких проектов с использованием Prism, я убедился в работоспособности такого подхода и решил подготовить перевод официального руководства Prism. Итак, часть первая, что же такое Prism.

Оглавление

  1. Введение
  2. Инициализация приложений Prism
  3. Управление зависимостями между компонентами
  4. Разработка модульных приложений
  5. Реализация паттерна MVVM
  6. Продвинутые сценарии MVVM
  7. Создание пользовательского интерфейса
  8. Навигация
  9. Способы коммуникации между слабосвязанными компонентами

Prism является руководством, разработанным для того, чтобы помочь проектировать и создавать насыщенные, гибкие и легко поддерживаемые Windows Presentation Foundation (WPF) приложения, Silverlight Rich Internet Applications (RIAs), и программы под Windows Phone 7-8, а также Windows Store приложений. Используя паттерны проектирования, которые воплощают важные принципы архитектурного дизайна, такие как разделение ответственности (Separation of Concerns, SoC) и слабая связанность (Loose coupling), Prism помогает вам проектировать и писать приложения со слабо связанными компонентами, которые могут независимо развиваться и потом объединяться в одно целое с минимальными усилиями. Этот тип приложений известен как составные приложения.

Читать полностью »

На этой неделе компания Google опубликовала отчет за первый квартал 2013 года.

Консолидированный доход компании Google за первые три месяца 2013 года составил 13,97 млрд. долларов. Этот показатель на 31% превосходит показатель, полученный в первом квартале прошлого года, но несколько уступает показателю предшествующего квартала, равному 14,42 млрд. долларов.

Ассортимент компании Buffalo пополнил миниатюрный беспроводной маршрутизатор Buffalo WMR-300 (доступна также версия с белым корпусом WMR-300-WH). Устройство предназначено для мобильных пользователей, так что производитель особо отмечает его небольшие размеры — 115 х 58 х 20 мм. Сам роутер, без футляра для кабеля, и вовсе имеет размеры 58 х 58 х 20 мм.

Миниатюрный беспроводной маршрутизатор Buffalo WMR-300 соответствует спецификациям IEEE 802.11n/g/b

Читать полностью »

Ассортимент японской компании I-O Data пополнился внешними хранилищами серии RHD4-UXRW. В серию вошли модели RHD4-UX4.0RW, RHD4-UX8.0RW и RHD4-UX12TRW объемом 4, 8 и 12 ТБ соответственно. Эти изделия рассчитаны на установку до четырех сменных «картриджей» (по сути — жестких дисков в специальном корпусе) RHD-1.0R, RHD-2.0R и RHD-3.0R объемом 1, 2 и 3 ТБ.

Хранилища I-O Data RHD4-UXRW можно использовать в конфигурациях RAID 5, 0, 1+0

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js