Search
Write a publication
Pull to refresh
32
0
Send message

Несколько полезных аспектов для PostSharp

Reading time11 min
Views11K
В .net-е есть несколько серьезных AOP-фреймворков, но ни один их них не «рулит» так как PostSharp. Будучи большим фанатом (а также пользователем) сего фреймворка, хочу представить сообществу несколько «рецептов». Некоторые из них я создал сам, другие нашел в интернете и адаптировал под свои нужды. Тут я покажу несколько самых «сочных» рецептов. А если вы не знакомы с фреймворком или идеологией AOP, могу порекоммендовать вот этот вебкаст. Итак, начнем?

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

Измеряем производительность с помощью DynamicObject

Reading time7 min
Views979
С динамическими типами данных сложилась ситуация, схожая с АОП. А именно – полезных примеров применения этой техники можно пересчитать по пальцам, и они достойны коллекционирования (одна из коллекций по АОП собрана mezastel здесь). Сегодня, я надеюсь, мы добавим ещё пару таких примеров.

Посмотрим, посмотрим...

Jinni: поиск фильмов по настроению

Reading time2 min
Views3.1K
Киностартапом сейчас никого не удивишь.
Казалось бы, изобретено все: топы лучших фильмов, поиск фильмов по жанрам, стране и прочим параметрам, рекомендации пользователей.

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

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

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

.Net Micro Framework — Первые шаги

Reading time2 min
Views5.3K
Тизер был воспринят консервативно, но положительно, так что продолжаем.

Hello, Habr!

Итак, коробку распаковали, кнопочки потыкали, повтыкали на отладочный вывод при запуске. Круто! Железяка-то работает.

Хотя, с другой стороны, она не делает ничего полезного.
Нужно это исправить.

Знакомство с .Net Micro Framework

Reading time3 min
Views16K


Первый раз о .Net Micro Framework мы услышали около года назад на одной из конференций по встраиваемым технологиям. На тот момент мы с коллегой размышляли на тему новой платформы для наших встраиваемых разработок и потому решили присмотреться к .Net Micro Framework более внимательно. С тех пор мы довольно глубоко изучили эту платформу. И хотя не все там так гладко, все-таки платформа .Net Micro Framework оказалась очень удобной и полезной в нашей работе. В этой статье я расскажу почему.
Читать дальше →

Анализатор успешности идей

Reading time5 min
Views32K
В Сан-Франциско создаётся уникальный программный продукт. Программа создает карту мирового прогресса в области освоения человечеством различных технологий и выводит информацию о перспективных направлениях деятельности. Это, своего рода, анализатор успешности идей в различных сферах бизнеса.

image

Подробности

Упрощаем регистрацию и вход на сайт

Reading time7 min
Views35K
Представляю вашему вниманию перевод статьи под названием "Innovative Techniques To Simplify Sign-Ups and Log-Ins" от Anthony T. Перевели в компании UXDepot специально для пользователей Хабрахабра с одобрением издания Smashing Magazine.


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



Форма авторизации на сайте Basecamp

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

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

Оффлайновые карты всего мира

Reading time2 min
Views6.2K
MapsWithMe У меня давно была мечта написать карты. Удобные карты, которым не нужен доступ в Интернет, с актуальными данными, быстрые и работающие на любом устройстве. После работы инженером в Google Maps эта мечта только усилилась и в какой то момент переросла в конкретные действия.

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

Torrent-файл. Что же у него внутри?

Reading time7 min
Views57K

Введение


image
Добрый день.
Использую, как и многие, крупный торрент-трекер — rutracker.org, однако есть одна особенность которая меня раздражает.
Это добавление в список трекеров адреса ix*.rutracker.net, который служит для непонятных мне целей. Однако который часто (у меня — практически всегда) выдаёт ошибки (502 Bad Gateway и 0 No Response). Торрент-клиент (у меня Transmission) помечает торрент сломанным. Что само собой довольно сильно мне мешает. Особенно если учесть особенность Transmission — она задаёт статус торрента по последнему ответу трекера. То есть опрашиваем ix*, он возвращает ошибку, торрент помечается как Broken, через n минут/секунд опрашивается следующий трекер из списка — bt*.rutracker.org или retracker.local, которые возвращают успешный код и торрент снова становится нормальным. Такая чехарда не особо меня радует.

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

Микросхема 555. Практика

Reading time2 min
Views110K
Всем привет. В прошлой статье я писал про микросхему 555, но в статье совсем не было практических примеров. Так вот, этот топик будет полностью посвящен практическому применению таймера 555. Диапазон применений микросхемы 555 не имеет границ. Всё ограничивается исключительно Вашей фантазией. Основные режимы микросхемы 555 и их модификации позволяют нам применять её во многих устройствах. На микросхеме 555 можно сделать такие устройства как таймер, точный генератор, триггер Шмитта. А так же генератор временной задержки, широтно-импульсный модулятор, детектор импульсов, делитель частоты. Но сегодня мне бы хотелось познакомить Вас с такими устройствами как сигнализатор темноты, метроном и противоугонное устройство.

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

Linq To Entities vs. Linq To Objects на примере группировки

Reading time3 min
Views6.3K
LINQ — удобная, красивая, но при этом довольно коварная абстракция. Самые неожиданные вещи обычно происходят на стыке какой-либо реализации LINQ и LINQ To Objects. Сегодня на одном примере я рассмотрю совместную работу LINQ To Entities (Entity Framework) и LINQ To Objects.

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

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

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

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

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

Bitcoin. Как это работает

Reading time10 min
Views758K
О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.

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

Высокопроизводительные вычисления: проблемы и решения

Reading time12 min
Views32K
Компьютеры, даже персональные, становятся все сложнее. Не так уж давно в гудящем на столе ящике все было просто — чем больше частота, тем больше производительность. Теперь же системы стали многоядерными, многопроцессорными, в них появились специализированные ускорители, компьютеры все чаще объединяются в кластеры.
Зачем? Как во всем этом многообразии разобраться?
Что значит SIMD, SMP, GPGPU и другие страшные слова, которые встречаются все чаще?
Каковы границы применимости существующих технологий повышения производительности?

Введение


Откуда такие сложности?

Компьютерные мощности быстро растут и все время кажется, что все, существующей скорости хватит на все.
Но нет — растущая производительность позволяет решать проблемы, к которым раньше нельзя было подступиться. Даже на бытовом уровне есть задачи, которые загрузят ваш компьютер надолго, например кодирование домашнего видео. В промышленности и науке таких задач еще больше: огромные базы данных, молекулярно-динамические расчеты, моделирование сложных механизмов — автомобилей, реактивных двигателей, все это требует возрастающей мощности вычислений.
В предыдущие годы основной рост производительности обеспечивался достаточно просто, с помощью уменьшения размеров элементов микропроцессоров. При этом падало энергопотребление и росли частоты работы, компьютеры становились все быстрее, сохраняя, в общих чертах, свою архитектуру. Менялся техпроцесс производства микросхем и мегагерцы вырастали в гигагерцы, радуя пользователей возросшей производительностью, ведь если «мега» это миллион, то «гига» это уже миллиард операций в секунду.
Но, как известно, рай бывает либо не навсегда, либо не для всех, и не так давно он в компьютерном мире закончился. Оказалось, частоту дальше повышать нельзя — растут токи утечки, процессоры перегреваются и обойти это не получается. Можно, конечно, развивать системы охлаждения, применять водные радиаторы или совсем уж жидким азотом охлаждать — но это не для каждого пользователя доступно, только для суперкомпьютеров или техноманьяков. Да и при любом охлаждении возможность роста была небольшой, где-то раза в два максимум, что для пользователей, привыкших к геометрической прогрессии, было неприемлемо.
Казалось, что закон Мура, по которому число транзисторов и связанная с ним производительность компьютеров удваивалась каждые полтора-два года, перестанет действовать.
Пришло время думать и экспериментировать, вспоминая все возможные способы увеличения скорости вычислений.
Читать дальше →

Полностью автономная камера наблюдения

Reading time3 min
Views105K

В дороге


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

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

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

Software versioning

Reading time10 min
Views64K

Методология изменения версий продукта программного обеспечения


   Software versioning — это процесс создания уникальных имен или номеров для различных версий продуктов программного обеспечения.

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

Гипотетические курсы по разработке. Для всех, на всём и подо всё

Reading time4 min
Views1.1K
Начну издалека.

Когда-то, когда я ещё учился в школе, классе в 8, у нашего класса по информатике начались основы HTML. Задача была простая: составить сначала одну страничку на HTML с применением базовых тегов, а затем и составить несколько страниц с общей темой (я выбрал статью о развитии советской компьютерной индустрии). Разумеется, учитель объяснила значение и использование стандартных тегов и вообще разжевала некий базис. Но для меня, уже тогда планировавшего посвятить свою жизнь IT этого было мало.

Тогда я обратился к книгам и Интернету. По тем временам и то, и другое не давало сколько-нибудь полного комплекса актуальных и понятных знаний. Книги, в большинстве своём, являются переводом с английского, в расчёте на столь же англоязычную аудиторию. А западный стиль (даже не тип) мышления имеет мало общего с нашим, всё ещё советским. (Взять хотя бы любовь к презентациям, которую у нас до сих пор поняли не до конца.) Результат был предсказуем – в голове у меня, типичного школьника, смешались две парадигмы обучения, что просто меня запутало в купе с опечатками и стремительно устаревающими материалами.

Интернет был более благосклонен и давал выжимку по конкретно заданным вопросам. Но, во-первых, вопрос нужно было корректно задать, а в условиях того, что его и сформулировать-то непросто – толку было мало. А, во-вторых, Интернет… скажем так, не слишком достоверный источник этой самой информации, поскольку поддерживать в актуальном состоянии её всем немного лениво, а ошибки и недосказанности в силу лени и непрофессонализма сильно бьют по голове.

Уже тогда у меня начали зарождаться бессознательные порывы типа «Хочешь сделать хорошо – сделай это сам», но к осознанному виду пришли лишь недавно. Я пытался найти хорошие, качественные курсы по последней версии ActionScript для последней же версии Adobe Creative Suite, на русском языке, желательно с видео-приложением. Невероятно, но мне так не удалось найти удовлетворяющего меня решения.

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

de:coded: 72-x часовой компьютерный фестиваль

Reading time4 min
Views555
image
Остались считанные часы к открытию одного из самых ожидаемых и значимых компьютерных фестивалей — DE:CODED 2011, который будет проведен в Украине, городе Львове, Дворце Искусств 6-8 мая.

de:coded организован студентами, членами сообщества BEST (Board of European Students of Technology), которое имеет представительства в 29 странах Европы. Фестиваль будет проходить в течении 72-х часов, начиная с 9 утра 06.05.2011 по 9:00 08.05.2011. Находится там можно круглосуточно.

de:coded проводится ежегодно, начиная с 2006 года, но теперь он стал еще более масштабным, смело можно говорить о выходе на международный уровень. Ожидаемое количество участников — около 2000.
Программа, план и многое другое под хабракатом
Читать дальше →

Разработчики .NET получили новую математическую библиотеку Solver Foundation

Reading time1 min
Views12K
Вице-президент подразделения разработки Microsoft S.Somasegar в своем блоге объявил о выходе в свет новой .NET-библиотеки Solver Foundation.

image

Solver Foundation – это библиотека для математического программирования, моделирования и оптимизации. С помощью математического моделирования решаются задачи принятия решений. Solver Foundation предлагает .NET-разработчикам высококачественные инструменты для оптимизации их решений, позволяя решать модели в приложениях даже разработчикам, которые не являются экспертами в математическом моделировании.

На сегодняшний момент Solver Foundation обладает следующими ключевыми возможностями:
  • моделирование и решение сценариев с помощью ограничений, целей и данных;
  • разработка на языке Optimization Modeling Language (OML), императивно в C#, функционально в F# или на любом другом языке .NET;
  • встроенные решатели задач для наиболее распространенных типов моделей;
  • интеграция с популярными решателями: Gurobi, Ziena Knitro, Frontline Solver Platform SDK, Mosek, FICO Xpress, LINDO и lp_solve;
  • интеграция с популярными инструментами Microsoft Office Excel и SharePoint для создания и решения моделей.
Solver Foundation добавлена в качестве инкубационного проекта в лабораторию DevLabs, которая известна .NET-разработчикам следующими проектами: Code Contracts, Dryad, язык программирования Axum, средство оптимизации веб-проектов Doloto, асинхронная библиотека TPL Dataflow.

Официальная страница новой библиотеки Solver Foundation расположена по этой ссылке. Там вы можете найти саму библиотеку для разных платформ, несколько статей и официальное руководство.

Еще одна визуализация ряда алгоритмов и структур данных

Reading time1 min
Views20K

Университет Сан-Франциско создал с использованием HTML5 коллекцию визуализаций различных алгоритмов и структур данных. Посмотреть и потыкать кнопки можно вот тут.
Список визуализированных алгоритмов и структур данных со ссылками под катом.
Читать дальше →

Information

Rating
Does not participate
Location
Barcelona, Barcelona, Испания
Date of birth
Registered
Activity