Search
Write a publication
Pull to refresh
0
0

User

Send message

Асинхронная инициализация компонентов

Reading time5 min
Views11K
Многие приложения весьма долго стартуют из-за того, что инициализация тяжелых компонентов требует времени на загрузку данных. В какой-то момент возникло логичное желание сократить время старта за счет асинхронного выполнения части операций.

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

Асинхронную логику я решил реализовывать через механизм async/await, а готовые к работе компоненты регистрировать в Unity.
Читать дальше →

Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH

Reading time6 min
Views19K
Добрый день, уважаемые разработчики (просто не знал, с чего начать пост). Предлагаю перед тем как начнется трудовая неделя немного подразмять мозги (совсем немного) и построить свой Small Objects Heap для .Net. Вернее даже не Small Objects Heap, а Custom Objects Heap.

Как все мы знаем, в .Net существует две группы куч: для больших и малых объектов. Как выяснить, во сколько нам обойдется объект можно при помощи кода из этой статьи (он нам пригодится): Ручное клонирование потока, а получить указатель на объект и по указателю получить сам объект можно научиться, прочтя эту статью: Получение указателя на объект .Net. Также нам понадобится статья корейского (южно-) программиста по перенаправлению указателя на скомпилированную часть метода на другой метод: 실행 시에 메서드 가로채기 — CLR Injection: Runtime Method Replacer 개선

Так что давайте поэкспериментируем и напишем библиотеку, которая позволит:
  • Аллоцировать участок памяти
  • Разметить его как набор объектов определенного .Net типа
  • Выделять объекты с этой памяти
  • Возвращать их обратно


Ссылка на проект на GitHub: DotNetEx

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

Интересное по хабу .Net за 2014 год

Reading time2 min
Views26K
Мы с вами люди рабочие и зачастую не замечаем ничего что происходит за пределами нашей работы. Так и я, работая изо дня в день, знаю только про свой SpecFlow и смежные вопросы. Но ничего – по сторонам. Этим постом я хочу восполнить пробелы новостей в области .Net

Новости хаба .Net на Хабре занимают 33 страницы или 328 постов. Что говорит о том что новости появляются почти каждый день =) Посмотрим на самое интересное из них (на мой скромный взгляд). Ну и загляните под кат: до ката, конечно же, не все.

Доступен новый JIT: теперь с поддержкой SIMD
Как работает декомпиляция в .Net или Java на примере .Net
Microsoft раскрыла исходный код компилятора С#
Consulo: ~1000 коммитов, или как прошла осень
Под капотом у Stopwatch
Как тестировать код финализатора (c#). Послесловие: тест все-таки упал
Посмотреть на прочие статьи

Учебник AngularJS: Всеобъемлющее руководство, часть 2

Reading time22 min
Views192K
Часть 1

4.1 $rootScope


$rootScope не сильно отличается от $scope, просто это объект $scope самого верхнего уровня, от которого происходят все остальные области видимости. Когда Angular начинает создание вашего приложение, он создаёт объект $rootScope, и все привязки и логика приложения создают объекты $scope, являющиеся наследниками $rootScope.

Обычно мы не используем $rootScope, но с его помощью можно обеспечить передачу данных между разными областями видимости.
Читать дальше →

Учебник AngularJS: Всеобъемлющее руководство, часть 1

Reading time7 min
Views274K

Содержание


1 Введение в AngularJS
2 Engineering concepts in JavaScript frameworks
3 Modules
4 Understanding $scope
5 Controllers
6 Services and Factories
7 Templating with the Angular core
8 Directives (Core)
9 Directives (Custom)
10 Filters (Core)
11 Filters (Custom)
12 Dynamic routing with $routeProvider
13 Form Validation
14 Server communication with $http and $resource

1 Введение в AngularJS


Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
Читать дальше →

Играем с генетическими алгоритмами

Reading time6 min
Views103K
Одним субботним декабрьским вечером сидел я над книгой The Blind Watchmaker (Слепой Часовщик), как на глаза мне попался невероятно интересный эксперимент: возьмём любое предложение, например Шекспировскую строку: Methinks it is like a weasel и случайную строку такой же длины: wdltmnlt dtjbkwirzrezlmqco p и начнем вносить в неё случайные изменения. Через сколько поколений эта случайная строка превратится в Шекспировскую строку, если выживать будут лишь потомки более похожие на Шекспировскую?

Сегодня мы повторим этот эксперимент, но в уже совершенно другом масштабе.



Структура статьи:
  1. Что такое генетический алгоритм
  2. Почему это работает
  3. Формализуем задачу со случайной строкой
  4. Пример работы алгоритма
  5. Эксперименты с классикой
  6. Код и данные
  7. Выводы

Осторожно трафик!
Читать дальше →

Руководство хакера по нейронным сетям. Глава 2: Машинное обучение. Обобщаем SVM до нейронной сети

Reading time4 min
Views13K
Содержание:
Глава 1: Схемы реальных значений
Часть 1:
   Введение   
      Базовый сценарий: Простой логический элемент в схеме
      Цель
         Стратегия №1: Произвольный локальный поиск

Часть 2:
         Стратегия №2: Числовой градиент

Часть 3:
         Стратегия №3: Аналитический градиент

Часть 4:
      Схемы с несколькими логическими элементами
         Обратное распространение ошибки

Часть 5:
         Шаблоны в «обратном» потоке 
      Пример "Один нейрон"

Часть 6:
      Становимся мастером обратного распространения ошибки


Глава 2: Машинное обучение
Часть 7:
      Бинарная классификация

Часть 8:
      Обучение сети на основе метода опорных векторов (SVM)

Часть 9:
      Обобщаем SVM до нейронной сети

Часть 10:
      Более традиционный подход: Функции потерь



Интересен тот факт, что SVM является всего лишь отдельным видом очень простой схемы (схемы, которая вычисляет score = a*x + b*y + c, где a,b,c являются весовыми функциями, а x,y представляют собой точки ввода данных). Его можно легко расширить до более сложных функций. Например, давайте запишем двухслойную нейронную сеть, которая выполняет бинарную классификацию. Проход вперед будет выглядеть следующим образом:
Читать дальше →

Руководство хакера по нейронным сетям. Глава 2: Машинное обучение. Более традиционный подход: Функции потерь

Reading time4 min
Views15K
Мы публикуем перевод последней из существующих частей «книги». Обязательно будем следить за блогом автора и продолжим публикации этого материала, как только они появятся.

Содержание:
Глава 1: Схемы реальных значений
Часть 1:
   Введение   
      Базовый сценарий: Простой логический элемент в схеме
      Цель
         Стратегия №1: Произвольный локальный поиск

Часть 2:
         Стратегия №2: Числовой градиент

Часть 3:
         Стратегия №3: Аналитический градиент

Часть 4:
      Схемы с несколькими логическими элементами
         Обратное распространение ошибки

Часть 5:
         Шаблоны в «обратном» потоке 
      Пример "Один нейрон"

Часть 6:
      Становимся мастером обратного распространения ошибки


Глава 2: Машинное обучение
Часть 7:
      Бинарная классификация

Часть 8:
      Обучение сети на основе метода опорных векторов (SVM)

Часть 9:
      Обобщаем SVM до нейронной сети

Часть 10:
      Более традиционный подход: Функции потерь



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

По мере того, как я составляю эти математические формулы, я бы хотел начать относиться более внимательно к тому, как мы называем наши переменные и параметры. Я бы хотел, чтобы эти уравнения выглядели так же, как вы могли видеть их в книгах или других уроках, поэтому я начну использовать более стандартные наименования.
Читать дальше →

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views784K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


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

Выразительный JavaScript: HTTP

Reading time19 min
Views125K

Содержание




Мечта, ради которой создавалась Сеть – это общее информационное пространство, в котором мы общаемся, делясь информацией. Его универсальность является его неотъемлемой частью: ссылка в гипертексте может вести куда угодно, будь то персональная, локальная или глобальная информация, черновик или выверенный текст.

Тим Бернес-Ли, Всемирная паутина: Очень короткая личная история

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

Робосезон 2013: из-под воды в небо

Reading time13 min
Views28K
Итак, итоги робосезона 2013:
АвтономныеПодводныеРоботы.Сингапур.Март.2013 = 1 место; // The Singapore AUV Challenge – 2013
ТелеуправляемыеПодводныеРоботы.Сиэтл.Июнь.2013 = 7 место; // 12th Annual MATE International ROV Competition – 2013АвтономныеПодводныеРоботы.Сан-Диего.Июль.2013 = 3 место; // AUVSI Foundation and ONR's 16th International RoboSub Competition – 2013АвтономныеЛетающиеРоботы.Москва.Август.2013 = диплом финалиста :) // КРОК – летающие роботы – 2013kdpf_robot

Небольшое количество организационно-технической информации находится под катом.
Читать дальше →

Pi Bow — самый веселый корпус для Raspberry Pi

Reading time2 min
Views133K
Многие слышали про Rapberry Pi. Это мини-компьютер, в основном для образовательных целей. Архитектура полностью открыта, основана на ARM, работает на Линуксе, очень активная поддержка фанатов, разрабатывающих свои дистрибутивы Линукса и различные аппаратные расширения. Цена удовольствия — 35 британских фунтов или около 1800 рублей.

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

(Под катом мало текста, зато много картинок).
Читать дальше →

Видеолекции по биоинформатике

Reading time1 min
Views21K
В институте цитологии и генетики ежегодно проводит школу молодых ученых. На школу приглашаются ведущие ученые в области биоинформатики и системной биологии. Мы уже второй год записываем лекции и выкладываем их в публичный доступ.
Вот список лекций:

Расшифровывая Siri

Reading time5 min
Views9.1K
Ребята из французской компании Applidium ровно через месяц после релиза iPhone 4S отреверсили протокол персонального помощника Siri. Ниже перевод статьи, в которой описан сам процесс реверс-инжинеринга и те интересные факты, которые открылись исследователям.
Читать дальше →

Распознавание лиц человеческим мозгом: 19 фактов, о которых должны знать исследователи компьютерного зрения

Reading time13 min
Views63K
Важной целью исследователей в области компьютерного зрения является создание автоматизированной системы, способной сравняться или превзойти способности человеческого мозга по распознаванию лиц. Результаты психофизических исследований процесса распознавания лиц предоставляют специалистам по компьютерному зрению ценнейшие факты, которые помогут улучшить системы искусственного интеллекта.

Как обычно, предлагаю сокращенный перевод, полный текст доступен в оригинале.

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

Фильмы IT-тематики

Reading time2 min
Views15K
imageВ свое время, в 1995-ом году, на меня произвел впечатление фильм «Хакеры». Можно
сказать, он стал мотиватором моей дальнейшей ИТ-карьеры. Далеко не эталон киноискусства, однако
стремление стать похожим на героев фильма, продолжилось в самообразовании. Далее первый выклянченный компьютер, первые строчки кода, начало проб и ошибок. Когда уже были написаны эти самые «хэлоу-ворды», «калькуляторы», затем испробованы несколько *nix'ов — на руки попалась болванка с «Antitrust». В одноголосном переводе и гиблом качестве. К слову, это не помешало, пересмотреть фильм пару десятков раз. Что послужило более зрелому стремлению, чем быть всемогущим кул-хакером. Под катом, перечислю увиденные мной фильмы IT-тематики, с кратким описанием. В основном из двухтысячных. Неувиденное или забытое, будем добавлять.

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

Как продвигать игру в AppStore: делюсь опытом на примере Wordrive

Reading time13 min
Views35K
Хочу поделиться опытом по продвижению своей новой игры для iPhone/iPad — Wordrive.

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

Итак, вот у вас готово приложение и оно появилось в AppStore. Первый поток людей на него направляется из iTunes/App Store, сам собой — за счет появления в «новинках». Рассчитывать на него нечего — он как пришел, так и уйдет через пару-тройку дней. За это время нужно делать все, чтобы о программе или игре стали писать в сети. Если программа за это время сможет собрать еще и интернет-аудиторию, то выйти в топы будет сильно проще. А чтобы ее собрать, к моменту запуска в App Store нужно уже много что сделать.

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

Новый сервис Google позволит находить информацию о человеке по его фотографии

Reading time2 min
Views5.2K


Честно говоря, если бы эта информация не появилась бы на сайте CNN еще 31 марта, я бы подумал, что это очередная первоапрельская новость, коих было опубликовано разными ресурсами великое множество на первое апреля. Однако все выглядит более, чем серьезно. В настоящее время корпорация Google работает над созданием мобильного приложения, которое позволит находить в Сети личные данные человека по его фотографии. Правда, для того, чтобы такая информация о себе была доступна по запросу приложения, необходимо вначале дать свое согласие, отметив галочкой соответствующий пункт соглашения. Такую информацию предоставил Хармут Невен, руководитель отделения корпорации, занимающегося разработкой технологий по распознаванию изображений.

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

Что нужно знать про оплату банковскими картами через интернет

Reading time5 min
Views230K
Прочитав вот этот топик, я увидел, что очень многие хабралюди (в том числе и автор топика) не представляют себе, как работает оплата банковскими картами в интернете. Руководствуясь домыслами и предположениями, а не фактами, автор делает вывод, будто бы карты Сбербанка наиболее уязвимы для мошенничества в интернете. Поэтому я решил рассказать о том, как на самом деле устроена оплата банковскими картами в интернете, чтобы хабралюди на основании фактов, а не домыслов, представляли себе, как это работает, и где их могут поджидать реальные, а не мнимые, опасности.

Disclaimer: Я работаю в Сбербанке России. Моя работа связана с помощью клиентам, а не с карточками, однако раньше я работал в области e-commerce, и очень хорошо знаю, как работает схема оплаты карточками в интернете.

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

Выпущено приложение Google Reader для Android

Reading time1 min
Views1.4K
Наконец-то, выпущено долгожданное официальное приложение Google Reader для Android.

В нём поддерживаются все основные функции — число непрочитанных записей, друзья, распространение, лайки.



Также из интересного:
Читать дальше →

Information

Rating
Does not participate
Location
Бурон, Северная Осетия, Россия
Date of birth
Registered
Activity