Pull to refresh
0
0
Send message

Иммунная система человека: биологический антивирус. Антивирусные базы

Reading time6 min
Views25K
Прошу простить за нереально огромный перерыв после первой части :(

Линк на первую часть (врожденный иммунитет)

Итак, нечто, проникшее в организм, было признано враждебным и уничтожено. Но каждый раз определять посторонние сущности по общим неспецифичным признакам — далеко не оптимальная концепция поведения, так как патогены могут выработать систему маскировки, которая предотвратит их обнаружение. Для того, чтобы обнаруживать этих микроорганизмов (а также увеличить эффективность реагирования по отношению ко всем остальным), возникла специфичная (она же приобретенная) иммунная система, которая включает в себя T-лимфоциты и B-лимфоциты, производящие антитела.
Читать дальше →
Total votes 86: ↑80 and ↓6+74
Comments97

Компьютер вашей мечты. Часть 4: Платформа

Reading time19 min
Views12K
Часть 1 | Часть 2 | Часть 3
Предыдущие части настоятельно рекомендуются к прочтению.


Давным-давно, когда деревья были большими, трава зелёной, а воздух чистым, на свет появился IBM PC. Открытая модульная архитектура системы, возможность расширения и стандартизация компонентов привели к огромной популярности этих компьютеров. И хоть современные компьютеры ушли от своего предшественника довольно далеко, они всё равно являются его последователями и продолжают нести в себе общие принципы, заложенные ещё тогда, в далёкие 80е годы.
image

Материнская, или системная плата за это время успела пережить множество изменений. Первоначально являясь лишь подложкой для размещения других компонентов, она начала обрастать различными дополнительными возможностями и функциями.
Прогресс сделал своё дело. Хороший набор интегрированных устройст, богатый ассортимент интерфейсов и широкие программные возможности — вот то, что отличает современные материнские платы от их прародителей.
Материнская плата — это не просто железка, а основа платформы, на которой строится компьютер. Именно она определяет его многие возможности как в текущий момент, так и в перспективе. Поэтому, грамотный выбор материнской платы — один из наиболее важных этапов при покупке компьютера.
Читать дальше →
Total votes 108: ↑92 and ↓16+76
Comments57

Обзор методов эволюции нейронных сетей

Reading time15 min
Views51K


Выбор топологии и настройка весов связей искусственной нейронной сети (ИНС) являются одними из важнейших этапов при использовании нейросетевых технологий для решения практических задач. От этих этапов напрямую зависит качество (адекватность) полученной нейросетевой модели, системы управления и т.д.

Построение искусственной нейронной сети по традиционной методике выполняется, фактически, методом проб и ошибок. Исследователь задает количество слоев, нейронов, а также структуру связей между ними (наличие/отсутствие рекуррентных связей), а затем смотрит, что же у него получилось — сеть обучается с помощью какого-либо метода, а затем тестируется на тестовой выборке. Если полученные результаты работы удовлетворяют заданным критериям, то задача построения ИНС считается выполненной успешно; в противном случае — процесс повторяется с другими значениями исходных параметров.

Естественно, бурное развитие теории и практики использования генетических алгоритмов, заставило исследователей (лень — двигатель прогресса) искать способы применить их к задаче поиска оптимальной структуры ИНС (эволюция нейронных сетей или нейроэволюция), тем более, что, так сказать, proof-of-concept был налицо, или, точнее, в голове — природа наглядно демонстрировала решаемость подобной задачи на примере эволюции нервной системы с последующим образованием и развитием головного мозга.

Обзор и сравнение методов нейроэволюции под катом
Total votes 65: ↑60 and ↓5+55
Comments32

Новые бесплатные видео-курсы по ASP.NET Web Forms и ASP.NET MVC

Reading time2 min
Views28K
На днях мы опубликовали отличные видео-курсы по технологиям ASP.NET на официальном сайте http://asp.net/.

Курсы были созданы компанией Pluralsight (отличная компания с обучающими курсами по .NET-технологиям), доступны полностью бесплатно и предлагают отличную возможность изучить (или освежить в памяти) технологии веб-разработки ASP.NET WebForms и ASP.NET MVC 3. Каждый курс создан отдельным тренером и предлагает законченную программу обучения (от базовых основ, работы с концепцией Code First в Entity Framework до вопросов безопасности, развертывания, тестирования).

Ниже некоторые детали по двум бесплатным видео-курсам, опубликованным на днях (и ссылки на каждое доступное видео):

Тренинг по ASP.NET MVC


На выходных мы опубликовали финальные видео-уроки в совершенно новом обучающем курсе по ASP.NET MVC 3, созданном тренером K Scott Allen. Вы можете изучить эти видео-материалы со страницы http://asp.net/mvc (раздел слева в секции Essential Videos):

Читать дальше →
Total votes 48: ↑39 and ↓9+30
Comments9

Простое применение DataTemplate

Reading time4 min
Views23K
Добрый день.
Для меня, моя жизнь как программиста, делится на два этапа. До того как я познакомился с WPF, и после. Мне пришлось очень плотно работать с этой технологией в рамках одного проекта, в результате чего я приобрёл некоторые знания, которыми хочу с вами поделиться. То что написано ниже, не откровения, и для тех кто знаком с WPF может показаться банальностью. Всё это описано в сети, в том или ином виде, проще или сложнее, но есть у всех этих описаний одна особенность — английский язык. Поэтому я приведу ниже очень короткий, но как мне кажется ёмкий пример того, что можно сделать при помощи Data Templates. Особенно этот пример будет интересен тем, кто только посматривает в сторону WPF.
Читать дальше →
Total votes 40: ↑27 and ↓13+14
Comments16

Что такое генетический алгоритм?

Reading time1 min
Views24K
В рамках проекта Computer Science Student сегодня я постараюсь дать короткое наглядное объяснение: что такое генетический алгоритм? В самой простой и общей формулировке для решения самой простой задачи. Исходные коды решения (код не самый качественный, потому что писался на скорую руку; но код и не важен в этом курсе) и текст самих заданий доступен на CS-Student Wiki.

Первая часть


Вторая часть — под катом.
Читать дальше →
Total votes 104: ↑86 and ↓18+68
Comments100

Использование Delegate и Undelegate в jQuery 1.4.2

Reading time5 min
Views8.8K
jQuery
В комментариях к анонсу версии 1.4.2 было много вопросов по поводу 2-х новых методов, появившихся в новой версии jQuery
Вы наверное слышали, что в jQuery 1.4.2 было добавлено 2 новых метода: .delegate() и .undelegete(). Эти два метода предназначены для тех же целей, что и методы .live() и .die() ссответсвенно, они только используют другой синтаксис.
узнать больше
Total votes 135: ↑85 and ↓50+35
Comments75

MVC 2: Полное руководство по локализации

Reading time14 min
Views18K
imageВ данной статье мы рассмотрим все аспекты локализации веб приложения основанного на ASP.NET MVC. Я использую последнюю доступную MVC 2 RC 2 версию на время написания данного топика.

До того, как мы начнем я хотел бы поблагодарить команду MVC, отличная работа ребята, я наслаждаюсь процессом написания веб-приложений, когда использую данный фреймворк. Я искал фреймворк такого типа, после небольшого опыта работы с Ruby on Rails.

Мы рассмотрим следующие проблемы:
  1. Валидация представлений
  2. Простой механизм переключения культур
  3. Локализация сообщений валидации модели
  4. Локализация атрибута DisplayName
  5. Кэш и локализация
Для работы вам понадобится Visual Studio 2008 Express и ASP.NET MVC 2 RC2, а также создать новый MVC 2 веб-проект.
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments11

Проверка орфографии в Visual Studio

Reading time2 min
Views12K
Считая хорошим тоном программирования я всегда оставляю достаточное количество комментариев в коде своих программ, а в виду того, что работаю на иностранную компанию — приходится делать это на английском языке. Своим знанием английского языка я доволен, но вот от глупых ошибок типа «опечатка» к сожалению нас еще никто не освобождал, поэтому я задумался над проверкой орфографии. Как говорится, Гугл в помощь, но вот не задача, ничего подходящего не нашлось:
1. studiospell — Платный
2. IntelliSpell — так же платный
3. VS Spell — Поддержка только VS 2010
и так далее…
Мое решение
Total votes 24: ↑18 and ↓6+12
Comments12

Паттерн проектирования «Мост» / «Bridge»

Reading time5 min
Views49K
upd: Изменил диаграмму и код. Расширил пример и описание.

Почитать описание других паттернов.

Предыстория


Вернувшись домой, после непродолжительных посиделок у старого друга, я обнаружил, что оставил у него свой мобильный телефон, а вместе с тем и единственный в квартире будильник. Ситуация осложнялась тем, что завтра в 8:00 надо было быть на работе. Вариант вернуться за мобильником в 11 часов вечера я даже не рассматривал. И первое, что пришло мне на ум — написать свой будильник, причем с применением паттерна «Мост», который мне и без того надо было реализовать в рамках спецкурса. Как говорится, двух зайцев… Я думаю, не стоит пояснять что лег спать я под утро, но довольный собой. А утром, ровно в 7:00 меня победоносно разбудил мой bridge-будильник, весело наигрывая мотив из TBBT.

Как я до такого докатился, читайте под хаброкатом.
Читать дальше →
Total votes 69: ↑50 and ↓19+31
Comments72

Первый взгляд на Unity 2.0

Reading time6 min
Views14K
image
Unity – это проект с открытым исходным кодом от группы Patterns & Practices в Microsoft. Цель проекта – предоставить классический IoC фреймворк для разработчиков, позволяющий инстанцировать объекты продвинутым образом и иметь возможность гибкой конфигурации. Unity представляет собой отдельный фреймворк, но часто включается в проекты как часть Enterprise Library. С приходом .NET 4 и Visual Studio 2010, на подходе и новые версии Unity и Enterprise Library. В этой статье рассматривается бета-версия Unity 2.0. Чтобы попробовать фреймворк самим, посетите http://unity.codeplex.com. Релиз Unity 2.0 и Enterprise Library 5.0 намечен на тоже время, что и релизы Visual Studio 2010 и .NET 4, то есть этой весной.
Читать дальше →
Total votes 52: ↑34 and ↓18+16
Comments17

.NET и работа с неуправляемым кодом. Часть 1

Reading time4 min
Views30K
.NET и работа с неуправляемым кодом. Часть 1

.NET и работа с неуправляемым кодом

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

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

Мне не хотелось бы полностью описывать всю структуру взаимодействия, т.к. это заняло бы значительную часть статьи. В этой статье я опишу принцип взаимодействия на конкретных примерах, опишу способы выделения и очистки выделенной памяти.
Читать дальше →
Total votes 53: ↑38 and ↓15+23
Comments24

Память: LOH и Chunked Lists

Reading time3 min
Views11K
Управляемая память в .Net поделена на стек и несколько хипов. Самые важные из хипов – это обычная (эфемерная) куча и LOH. Эфемерная куча – это то место, где живут все обычные объекты. LOH – это то место где живут большие (больше 85000 байт) объекты.

LOH обладает некоторыми особенностями:
  • Объекты в LOH никогда не перемещаются
  • LOH только растет и никогда не уменьшается (т.е. если объект собран сборщиком мусора, размер LOH все равно остается неизменным)
  • Хип LOH освобождается только тогда, когда LOH полностью пуст

Из этих двух особенностей LOH происходят два важных следствия, про которые часто забывают:
  • Память в LOH может оказаться фрагментированной. Т.е. происходит то, с чем так боролись в unmanaged мире: в какой-то момент у вас может быть 10Mb свободной памяти, но вы не сможете выделить память под объект размером 1Mb
  • Если вы однажды выделили память под большой объект, а потом используете только маленькие, то вы фактически лишаете себя большого куска памяти. При чем, если у вас в LOH был список или хэш-таблица размером N, а вы добавили в него один элемент, то список реаллоцируется и растет в два раза, сответственно размер LOH составит как минимум 3*N (N – исходные данные, 2N – копия данных и резерв под новый размер). Следующий рост потребует в LOH непрерывный кусок памяти размером в 4*N, а так как такого куска в LOH у нас нет (есть только N), его придется позаимствовать из адресного пространства процесса. В итоге размер LOH вырастет до 7*N, и так далее.


Если вспомнить, что LOH аллоцируется кусками по 16Mb, то все происходящее покажется еще более разрушительными. С первым следствием можно бороться аккуратно переиспользуя объекты. Со вторым — не используя большие объекты. Получается как-то не очень, особенно если с большими коллекциями работать все-таки хочется. Посмотрим, что как можно решить эту проблему.
Читать дальше →
Total votes 58: ↑44 and ↓14+30
Comments88

Information

Rating
Does not participate
Registered
Activity