Pull to refresh
61
0
Сергей Пугачёв @WizardBox

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

Send message

Наглядно о потоке выполнения в Node.js

Reading time3 min
Views12K
В комментариях к моему предыдущему топику об асинхронном программировании, коллбеках и использовании process.NextTick() в Node.js было задано немало вопросов о том, за счёт чего получается или может быть получена большая производительность при использовании неблокирующего кода. Постараюсь это наглядно показать :) Статья призвана в основном прояснить некоторые моменты работы Node.js (и libeio в его составе), которые на словах бывает трудно описать.

Пример обработки запросов сервером с блокирующим чтением:


В первую очередь прокомментирую полезность использования неблокирующего ввода/вывода. Как правило, использовать блокирующие операции в Node.js стоит лишь на этапе инициализации приложения, и то не всегда. Правильная обработка ошибок в любом случае потребует использования try/catch, так что код при использовании неблокирующих операций не будет сложнее, чем при использовании блокирующих операций.
Нужно лишь помнить, что случае, когда запросов неблокирующих операций может оказаться больше, чем потоков libeio. В этом случае новые запросы будут становиться в очередь и блокировать выполнение, однако для программиста это будет происходить прозрачно.
Преимущества неблокирующих операций и некоторые недостатки в картинках

Безопасность датацентров Microsoft

Reading time5 min
Views2K
alt

В последнее время услышал достаточно большое колличество вопросов касательно безопасности облачных датацентров Microsoft. В данной статье мы кратко рассмотрим модель обеспечения безопасности датацентров и развеем все мифы и противоречивые слухи касательно безопасности облачных сервисов Microsoft.
Читать дальше →

Html Agility Pack — удобный .NET парсер HTML

Reading time5 min
Views165K
Всем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
Читать дальше →

Mozilla Skywriter (Bespin) вошёл в состав Cloud9 IDE

Reading time1 min
Views1.2K
Замечательный онлайновый Javascript-редактор Mozilla Skywriter (с конца 2008 года был известен под названием Mozilla Bespin, переименован в октябре 2010 года) вошёл в состав интегрированной среды разработки Cloud9 IDE. Это среда, заточенная именно на JavaScript, которая работает через браузер и позиционируется как альтернатива офлайновым IDE вроде Eclipse. Сейчас находится в стадии бета-тестирования.



Mozilla Skywriter теперь слит с Javascript-редактором ACE (Ajax.org Cloud9 Editor). Тот распространяется под тремя лицензиями MPL/LGPL/GPL, которые теперь относятся и к Skywriter.

Как и зачем я стал работать за компьютером стоя

Reading time4 min
Views183K


Ежедневно я работаю за компьютером 9–10 часов. Вплоть до прошлой недели я проводил все это время, сидя на своей вечно расширяющейся заднице.

В понедельник я отрегулировал свой стол для стоячего положения (фотография выше) и провел неделю, работая исключительно стоя. К сидению я теперь никогда не вернусь.
Читать дальше →

Выпущены финальные версии ASP.NET MVC 3, WebMatrix, IIS Express, SQL Server Compact 4.0, Orchard 1.0 и Nuget

Reading time2 min
Views2.1K


Microsoft выпускает финальные версии своих инструментов веб-разработки. Для загрузки и установки доступны фреймворк ASP.NET MVC 3 (вместе с исходными кодами под опенсорс-лицензией) и среда разработки WebMatrix 1.0.

ASP.NET MVC 3 привносит следующие нововведения по сравнению со второй версией:
  • внутренняя интеграция с IoC-контейнерами и повсеместная поддержка Dependency Injection;
  • добавлен новый движок представлений Razor ViewEngine;
  • расширение механизма валидации: новые атрибуты, поддержка IValidatableObject, исключение параметров при валидации запросов;
  • поддержка динамического типа данных (зависимость от .NET 4.0);
  • глобальные фильтры;
  • встроенная поддержка JSON при работе с параметрами действий;
  • ненавязчивый JavaScript;
  • бессессионные контроллеры;
  • кэширование вложенных действий.
Более подробно обо всех этих нововведениях можно узнать из следующих статей: первая часть, вторая часть, третья часть, четвертая часть.

Нужно сказать, что финальная версия ASP.NET MVC 3 RTM отличается от предыдущей версии RC2 (выпущенной в декабре 2010 года) только исправлением пары ошибок.

Загрузить ASP.NET MVC 3 RTM можно по следующей ссылке.
Читать дальше →

Java Bytecode Fundamentals

Reading time6 min
Views64K
Разработчики приложений на Java обычно не нуждаются в знании о байт-коде, выполняющемся в виртуальной машине, однако тем, кто занимается разработкой современных фреймворков, компиляторов или даже инструментов Java может понадобиться понимание байт-кода и, возможно, даже понимание того, как его использовать в своих целях. Несмотря на то, что специальные библиотеки типа ASM, cglib, Javassist помогают в использовании байт-кода, необходимо понимание основ для того, чтобы использовать эти библиотеки эффективно.
В статье описаны самые основы, от которых можно отталкиваться в дальнейшем раскапывании данной темы (прим. пер.).
Читать дальше →

CANVAS шаг за шагом: Основы

Reading time6 min
Views546K
CANVAS шаг за шагом:
  1. Основы
  2. Изображения
  3. Понг
  4. Пятнашки

Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
Читать дальше →

HTML5 Video — от А до Я

Reading time6 min
Views239K
Да, да, это очередная статья про html5 и тэг < video >. Но главным ее отличием будет то, что здесь будут рассмотрены самые базовые понятия и теории. Так что приготовились внимательно читать и записывать, let html5 rocks!
Читать дальше →

Видеохостинг своими руками

Reading time6 min
Views71K
Эта статья о некоторых технических аспектах реализации бесплатного сервиса для загрузки, хранения и просмотра видео. Будут рассмотрены вопросы настройки серверного программного обеспечения, даны примеры команд для конвертации видео и примеры кода на языке PHP.
Читать дальше →

Про сжатие видео — Введение

Reading time7 min
Views85K
Идут дни, требования к качеству видео постоянно растут. При этом ширина каналов и емкость носителей не могла бы поспевать за этим ростом, если бы не совершенствовались алгоритмы сжатия видео.
Далее пойдет речь именно о некоторых базовых понятиях сжатия видео. Некоторые из них несколько устарели или описаны слишком просто, но при этом дают минимальное представление о том, как все работает.

image
Поиск векторов движения для компенсации движения (-: Об этом далее...
Читать дальше →

Разработка с использованием паттерна проектирования Model-View-ViewModel на примере Twitter клиента шаг за шагом

Reading time12 min
Views41K
Введение

Статья посвящена работе с MVVM и WPF. В ней описывается процесс разработки twitter client. Процесс разработки разбит на шаги. В конце каждого шага читатель параллельно пишущий приложение должен иметь работающее приложение. Каждый последующий шаг добавляет какую-то функциональность к написанному на предыдущем шаге. Используется thirdparty библиотека TweetSharp. Ссылку на исходный код, а так же оригинал статьи, написанный мной на английском, можно найти тут.
Статья рассчитана на новичков в WPF разработке. Но предполагается, что читатель имеет некоторый начальный опыт работы с WPF, в частности освоил data binding.
Я не буду писать зачем нужно использовать MVVM – считаю, что об этом хорошо написано в статье “Приложения WPF с шаблоном проектирования модель-представление-модель представления” от Джоша Смита. Если вы не хотите читать эту статью – просто поверьте мне – неверное спроектированное GUI в случае с WPF превращается в большую головную боль.

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

Обзор Facebook SDK

Reading time2 min
Views3.3K
imageДанный инструментарий предоставляется, как Facebook Client Library, точно также как и библиотеки к PHP и JavaScript. Цель — предоставить .NET разработчикам быстро и легко использовать различные особенности платформы Facebook. Этот пакет разработчика развился через какое-то время после подключения к разработке сообщества и Miсrosoft. Самая последняя редакция (v3.0) включает новые архитектурные усовершенствования и обеспечивает асинхронные интерфейсы для работы из Silverlight и WPF.
Читать дальше →

Обработка пользовательких видео

Reading time3 min
Views4.4K
Некоторое время я занимался (и занимаюсь до сих пор) веб-проектом, где необходимо было добавить фичу для загрузки пользовательских видео-роликов. Собственно, какие могут быть пользовательские видео? Очень разного качества и разнообразных форматов. Начиная от обычных flash файлов, которые представляют наименьшую проблему, до различных записей с телефонов. Встала задача — сделать демона, который бы занимался обработкой очереди загруженных файлов и выполнял следующие функции:
— Конвертирование видео в flash формат (FLV), ипользуя VP6 кодек
— Обновление метаинформации видеофайла
— Создание thumbnails из видео
— Дальнейшии манипуляции с БД

Конкретно в этой статье я рассмотрю варианты обработки уже сконвертированного в формат flash видео-ролика. Итак приступим.
Читать дальше →

Майкл Махемофф: «Вы не можете учиться, только читая или слушая»

Reading time8 min
Views1.4K
Майкл Махемофф — авcтралиец, закончил Мельбурнский университет, сейчас работает в лондонском офисе Гугл. По словам Майка, его дальние предки были родом из России и Польши, но родители появились на свет уже в Австралии. На недавнем GDD Майкл произвел яркое впечатление. Харизматичный и эмоциональный, он выделялся даже на фоне традиционно сильных спикеров гугловской команды. Особенно это было заметно на хакатонах, где он был самым заинтересованным и активным участником из десятка присутствовавших гуглеров. Как мне кажется, Майкл Махемофф — одна из восходящих звезд нового поколения Google inc.
Интервью записано чешским блоггером Мартином Хассманом уже после GDDru
elgephest координатор Kyiv GTUG Center (за помощь в украинском переводе спасибо @MsCentaurea)

Майкл Махемофф работает в Google в качестве Chrome Developer Advocate. Он уже много лет пишет для Ajaxian, а также в 2006 году написал книгу Ajax Design Patterns, которая вышла в издательстве O'Reilly. Он автор таких полезных инструментов как ListOfTweets.com, а также забавного проекта IE6IsOlderThanYourGrandpa.com. Он ведет блог на Softwareas.com и активен в твиттере под ником @ mahemoff.

image
Майкл Махемов на JSConf2010
Ты уже пять лет пишешь для Ajaxian, т.е. ты внимательно следишь за развитием в этой сфере. Какие, по твоему мнению, самые важные изменения в JavaScript и AJAX произошли за последние пять лет?
Произошло много изменений, как в нашем понимании JavaScript, которые постепенно совершенствовались, появились, например, библиотеки и такие инструменты как jQuery и Firebug, существенно упростившие жизнь разработчиков. Еще одним преимуществом стало
Читать дальше →

Представлен стандарт CSS Grid Alignment Level 3

Reading time4 min
Views4.1K
image

Два дня назад я представил на Хабре задачу по компоновке силами CSS. Задача привлекла небольшое внимание разработчиков и было представлено несколько разных решений, в том числе такие, которые практически точно решают задачу.

Пообещав представить оригинальное решение я немного слукавил, потому что это решение представляет собой использование нового стандарта W3C CSS Grid Alignment Level 3, который был представлен в начале ноября на мероприятии TPAC 2010.

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

Evernote 4 для Windows уже здесь!

Reading time5 min
Views25K

Evernote для Windows — это самое популярное из наших приложений, и сегодня мы рады объявить о масштабной эволюции клиента для Windows. Встречайте Evernote 4!

Установить Evernote 4 »

Ниже мы расскажем, почему нам кажется, что эту версию можно назвать лучшей за всю историю.
Читать дальше →

«От хорошего к великому» — книга, которую обязательно стоит прочесть. (в цитатах) — ЧАСТЬ 1

Reading time4 min
Views72K
imageМоя прошлая статья «Обнаженный бизнес» Ричарда Брэнсона (в цитатах), похоже многим была интересна. Что же, не будем останавливаться?

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

Я прочел эту книгу 2 раза. Второй раз (теперь, как всегда) — с маркером, выделяя цитаты. Рад ими поделиться. Уверен, тем кто знаком с книгой, будет интересно и полезно прочесть эти мысли еще раз. А те, кто книгу еще не читал, скорее всего убедятся в том, что это обязательно стоит сделать.

***

Мы тщательно изучили и просеяли компании, которые входили в список Fortune 500 c 1965 по 1999 год. И определили те компании, которым удалось осуществить переход от хороших результатов к выдающимся и сохранять эти высокие результаты в течение, по крайней мере, 15 лет. Затем мы проанализировали те факторы, которые позволили это сделать.

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

Создание смазывания фона под окном в Windows

Reading time2 min
Views4K
Буквально вчера в блогах разработчиков Qt был опубликован топик, в котором описывалось как можно создать эффект размытия фона под окном приложения в Windows Vista и Windows 7.

Под катом его перевод

nodeJS и nonblocking I/O

Reading time5 min
Views9.7K

Добрый вечер уважаемые читатели,


На хабре последнее время проскакивало несколько упоминаний о node, быстрой платформе для создания вэб приложений на javascript, обладающей довольно уникальной на сегодняшний день особенностью, неблокирующим I/O (вводом/выводом).

Для начала о nodeJS:


1) В качестве языка используется JavaScript
2) Для выполнения JavaScript используется движок V8 от Google, который работает довольно быстро благодаря компиляции в машинный код перед выполнением.
3) Для реализации неблокирующего I/O используются libev и libeio, (libev показывает более хорошие результаты по сравнению с libevent)
4) Для реализации подключения библиотек выбран синтаксис commonJS
5) Есть возможность писать модули ещё и на C/C++, при этом подключаются они точно так-же как и js модули, это позволит Вам, к примеру, любое узкое место в вашем приложении переписать на C++ без каких либо трудностей.

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

Information

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