Pull to refresh
2
0

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

Send message

Новый каталог веб-шрифтов от Google

Reading time2 min
Views15K


Удивительно, сколько классных продуктов Google может выпустить за один день, пусть это даже и тау-день. На Хабре уже обсудили Google+, новый дизайн, Takeout и конвертер Swiffy, а вот ещё один релиз: новый интерфейс для просмотра веб-шрифтов Google Web Fonts. Ссылка на новую версию появилась также в старом интерфейсе (вверху). На данный момент каталог содержит 180 семейств веб-шрифтов. Все они являются свободными и могут быть легко встроены в любую страницу.
Читать дальше →

EchoPrint — открытая система распознавания музыки

Reading time4 min
Views248K
Наверняка многие из вас слышали и знают про системы идентификации музыки вроде TrackID, Shazam, MusicBrainz или онлайновой Audiotag.info, позволяющие по записанному отрывку песни узнать ее название. Все они в достаточной степени хороши, но имеют общий недостаток — закрытый код и, соответственно, ограниченную сферу применения. TrackID вы можете использовать только на телефонах Sony Ericsson, Shazam — тоже только на телефонах, хотя и на более обширном списке платформ, а Music Brainz вообще неясно, работает ли вообще.

Ребята же из компании Echo Nest, решили, что распознавание музыки должно быть таким же доступным миру явлением, как электронная почта или DNS :), и выпустили своё детище полностью под MIT License. А детище, надо сказать, у них очень серьёзное — еще бы, если основателями компании являются доктора наук из MIT Media Lab .

Тот зверьфункционал, который они выпустили на свободу, не ограничивается только распознаванием музыки по записанному отрывку, но и позволяет делать такие вещи, как поиски дубликатов музыки, массовое распознавание и заполнение тэгов в музыкальных коллекциях, проверка аудио/видео на содержание того или иного материала, синхронизация коллекций из различных музыкальных пространств (iTunes <-> Last.fm <-> Spotify, например) и много чего еще.

Подробнее

Настоящее понимание ViewState'а

Reading time30 min
Views63K
От переводчика: Это перевод статьи от одного из разработчиков ASP.NET, в которой подробно рассказывается о механизме управления состоянием страницы — ViewState'е. Несмотря на то, что статья написана в 2006 году, она до сих пор не потеряла своей актуальности.

ViewState — очень непонятное существо. Я попытаюсь положить конец всяческим кривотолкам, и постараюсь объяснить, как на самом деле работает механизм ViewState'а, от начала до конца, посмотрев на него с различных точек зрения.

Есть множество статей, авторы которых пытаются развеять мифы о ViewState'е. Можно даже подумать, что это все — борьба с ветряными мельницами (где ViewState – ветряные мельницы, а Интернет – инструмент борьбы). Но, я вам доложу, мельницы ещё не остановились. Как раз наоборот, они вертятся и заполняют собой вашу гостиную. Пора бы нанести по ним ещё один удар. Не тревожьтесь, при написании этой статьи ни одна ветряная мельница не пострадала.
Читать дальше →

Ajax загрузка данных из контейнера

Reading time1 min
Views20K
Знаете ли вы, что с помощью jQuery можно загружать не только контент страницы, но и выбранного контейнера на ней? Оказывается можно и делается это следующим образом:
$("#area").load("something.html #content");

Данный код найдет на странице something.html контейнер с id content, возьмет его содержимое и загрузит в контейнер с id area. Но есть одно но…
Читать дальше →

Amazon анонсирует сервис для отправки электронной почты (Amazon SES)

Reading time2 min
Views5.8K
Вчера получил письмо примерно следующего содержания:
Мы рады анонсировать бета-релиз Amazon Simple Email Service (Amazon SES) — хорошо масштабируемого и дешевого сервиса для отправки электронной почты для бизнеса и разработчиков. Amazon SES избавляет от необходимости построения собственного дорогостоящего и сложного решения или лицензирования, установки и обслуживания готового решения. Новый сервис интегрируется с другими сервисами Amazon (AWS), упрощая отправку писем из приложений, работающих на таких платформах как Amazon EC2. С Amazon SES не нужно заключать долгосрочные договора и проводить согласования — просто наслаждайтесь низкими тарифами за количество отправленных писем + траффик.
Читать дальше →

Использование коэффициента Танимото для поиска людей с одинаковыми предпочтениями

Reading time3 min
Views13K
Решая упражнения к книге «Программируем коллективный разум», я решил поделиться реализацией одного из алгоритмов упомянутого в этой книге (Глава 2 — Упражнение 1).

Исходные условия следующие: пусть мы имеем словарь с оценками критиков:

critics={'Lisa Rose'{'Superman Returns'3.5'You, Me and Dupree'2.5'The Night Listener'3.0}
           'Gene Seymour'
{'Superman Returns'5.0'The Night Listener'3.5'You, Me and Dupree'3.5}}

Чем выше оценка, тем больше нравится фильм.
Надо вычислить: насколько схожи интересы критиков для того, например, чтобы можно было на основе оценок одного рекомендовать фильмы другому?

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

Создаем свою файловую систему в ОС Windows на .Net

Reading time3 min
Views20K
Существует великое множество файловых систем. Это и файловые системы для носителей информации (FAT*, NTFS, ext* и т.д.), и сетевые файловые системы (NFS, CIFS и т.д.), и виртуальные файловые системы, и великое множество других. А появлялась ли у тебя, %habrauser%, потребность в своей, еще несуществующей файловой системе? О том, как ее сделать для ОС Windows на managed-коде (.net), и пойдет речь.
Читать дальше →

Использование Razor за пределами ASP.NET

Reading time5 min
Views5.6K
Итак, вчера Microsoft выпустила ASP.NET MVC3 RTM, который включает в себя новый движок представлений Razor. Как вы наверняка уже знаете, Razor не содержит каких-то компонентов, специфичных для web, а значит, его можно использовать и в других приложениях. Ну, а если вы этого еще не знаете – то самое время узнать!

В этом посте я покажу, как использовать Razor в качестве движка шаблонов для ваших нужд. Источником для него послужил блог-пост Andrew Nurse «Hosting Razor outside of ASP.Net», но это не прямой перевод.

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

Конструируем XML с использованием LINQ to XML API

Reading time7 min
Views9.7K
До недавнего времени мне ужасно не нравилось работать с XML файлами, я старался избегать этого где только можно, по просту заменяя их стандартными конфигурационными файлами приложения. Но где нужно было использовать обмен данными – от XML’а было не уйти. Приходилось создавать большой объем кода для того чтобы сконвертировать либо прочитать небольшой объем информации. Да, таков уж XML Document Object Model (DOM) API.
Читать дальше →

OpenID, OAuth и другие плюшки

Reading time10 min
Views24K

Зачем нужен OpenID



Вот бывает так, заходишь на сайт любимый, а там ссылка на другой сайт, а там статья ну очень интересная и главное – полезная – и хочется добавить комментарий, типа «Молодцы!» и чтобы добавить комментарий, нужно зарегистрироваться, а чтобы зарегистрироваться нужно ввести «Имя», «Фамилия», «Логин», «Email», «Email еще раз», «Пароль», «Снова Пароль», «Прочитал правила и согласен со всем что тут будет происходить» и «Капчу». И жмакаешь «Зарегистрироваться», а тут бац – «Логин» — занят, и поля «Пароль», «Снова Пароль», «Капча» — стерты. Ну вот так. Вводишь другой свой логин (который второй, и не главный и не любимый) и снова пароль, снова снова пароль (постите) и капчу, и бац – всё ок, только забыл снова поставить галку «Прочитал правила...». Ну ладно, прошел еще раз круги ада, на мыло вышло письмо, активировал аккаунт, так, а где там была статья, да и ну их, не молодцы они, ну т.е. молодцы ну и хрен с этим, знают и так.
Проведите эксперимент, в вашей любимой почте сделайте поиск по слову «activate» — вот примерно столько вы регистрировались на сайтах.
А с другой стороны думаешь, а давайте упростим, и делаешь простое добавление комментария: «Имя», «Email», «Сообщение» — причем «Email» можно не вводить. Через 3 месяца заходишь, а там – СПАМ! Ладно, почистил – и ноль эффекта, спам продолжает, добавил капчу – ну вроде ок, но потом снова как-то они ее обходят. И внимание(!) – вводим регистрацию… Ой!
Но есть (УРА!) – OpenID.
Читать дальше →

«Оживление» пользовательского интерфейса

Reading time12 min
Views33K
image

Приложение не отвечает?!


Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
{Binding Items}

Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
Читать дальше →

Просмотр памяти .NET приложений при помощи Crack.NET

Reading time1 min
Views2.4K
Crack.NET — это приложения для отладки, просмотра памяти и ее изменения для любого WPF или WinForms приложения. Также есть поддержка IronPython для написания скриптов, автоматизирующих какие-либо операции.

image

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

Managed Extensibility Framework

Reading time7 min
Views14K
(Заранее извините за мой русский)

MEF это новый подход разработанный Майкрософт, который позволяет загружать расширения для вашего приложения очень легко. Он позволяет обнаруживать и составлять части, которые должны быть включены в приложение, и все это во время выполнения. Вы можете расширить поведение аппликации простим добавлением новых плагинов. Managed Extensibility Framework сделает все это за вас.
«Hello MEF World!»

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

Ограничение маршрутов в ASP.NET MVC

Reading time3 min
Views5.1K
Одна из реально удобных вещей в расширяемости ASP.NET MVC — это возможность накладывать ограничения и писать собственные ограничения для ваших маршрутов. Я склонен считать что добавление ограничей маршрутов(когда это возможно) — это отличная практика. Почему бы когда невалидные значения маршрута передаются в ваше приложение не позволить фреймворку ASP.NET MVC и модулю маршрутов самим заняться валидацией?

узнать подробнее

Логирование с помощью Microsoft Enterprise Library 4.1

Reading time5 min
Views8.7K
В данной статье рассказывается как работать с блоком логирования из библиотеки Microsoft Enterprise Library 4.1. Решил разобраться после посещения Patterns & Practices Roadmap Kiev.

Установка Enterprise Library


Загрузить Enterprise Library 4.1 можно отсюда. Помните, что кроме блока логирования устанавливается много других компонентов.

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

Видео урок по пайке мелочевки

Reading time1 min
Views33K
Снял тут пару пробных роликов по пайке простейшей мелочевки. Думаю будет полезно тем кто хочет примкнуть к паяющей братии, но при виде разной мелочевки впадает в ступор «как же ЭТО паять?» На самом деле все просто :)

Для начала выводные компоненты:


Затем резисторы:


А напоследок микросхемы:


О том как сделать печатную плату в домашних условиях уже было сказано и показано

Если заинтересовала тема и хочется узнать большего, то добро пожаловать на easyelectronics.ru

Делаем Liquid Resize своими руками

Reading time12 min
Views16K
Вы наверное уже слышали о технологии масштабирования Liquid Resize, которая учитывает содержимое изображения. Если вам интересно как оно все работает и как можно реализовать все это самому, то читайте далее (осторожно, много рисунков).


(НЛО прилетело и растянуло этот рисунок здесь)
Читать дальше →

Динамическая компиляция кода в C#

Reading time5 min
Views33K
Использовать компилятор из кода C# достаточно просто. А вот зачем – это другой вопрос :).

Hello World


Напишем первый простой пример. Создаем консольное приложение и напишем следующий код:
using System;<br>using System.CodeDom.Compiler;<br>using System.Collections.Generic;<br>using Microsoft.CSharp;<br><br>namespace ConsoleCompiler<br>{<br>  internal class Program<br>  {<br>    private static void Main(string[] args)<br>    {<br>      // Source code для компиляции<br>      string source =<br>      @"<br>namespace Foo<br>{<br>  public class Bar<br>  {<br>    static void Main(string[] args)<br>    {<br>      Bar.SayHello();<br>    }<br><br>    public static void SayHello()<br>    {<br>      System.Console.WriteLine(""Hello World"");<br>    }<br>  }<br>}<br>      ";<br><br>      // Настройки компиляции<br>      Dictionary<string, string> providerOptions = new Dictionary<string, string><br>        {<br>          {"CompilerVersion", "v3.5"}<br>        };<br>      CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);<br><br>      CompilerParameters compilerParams = new CompilerParameters<br>        {OutputAssembly = "D:\\Foo.EXE", GenerateExecutable = true};<br><br>      // Компиляция<br>      CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);<br><br>      // Выводим информацию об ошибках<br>      Console.WriteLine("Number of Errors: {0}", results.Errors.Count);<br>      foreach (CompilerError err in results.Errors)<br>      {<br>        Console.WriteLine("ERROR {0}", err.ErrorText);<br>      }<br>    }<br>  }<br>}<br><br>* This source code was highlighted with Source Code Highlighter.

Запускаем и проверяем:
First Sample
Первое, на что стоит обратить внимание – это использование двух пространств имен (namespace):
  • Microsoft.CSharp
  • System.CodeDom.Compiler
В данных классах и содержится ключ к возможности компиляции. В нашем примере мы указываем что компилировать будем под .NET Framework 3.5, а так же указываем что мы хотим получить на выходе – Foo.exe, с возможностью запуска данного приложения.
Читать дальше →

ASP.NET MVC: модульное тестирование маршрутов

Reading time4 min
Views4.5K
imageМодульное тестирование (unit test) очень важная часть современной разработки программного обеспечения. При тестировании web-приложений разработчики стараются охватить все аспекты работы приложения от получения запроса до выдачи результата. При разработке проектов с помощью ASP.NET MVC одним из таких моментов является механизм маршрутизации. Тестирование маршрутов обычно приносило немало головной боли, заставляя разработчика писать много сопутствующего кода. В этой заметке я покажу как используя пару инструментов можно упростить тестирование маршрутов до минимума.
Читать дальше →

Text Template Transformation Toolkit (T4): генератор кода в Visual Studio

Reading time8 min
Views29K
Приветствую, Хабр!

Сегодня мы поговорим о рутине. Время от времени каждому программисту приходится совершать много нудной, объемной и шаблонной работы, которую постоянно так и хочется автоматизировать, да руки не доходят. Вот об одном малоизвестном способе упростить себе жизнь с помощью кодогенерации я и хочу сегодня рассказать сообществу дотнетчиков. Способ известен как Text Template Transformation Toolkit или попросту T4.

А что это такое?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity