Pull to refresh
168
0
Alexander Kouznetsov @unconnected

User

Send message

sasl:overload. Или — «не кладите в тарелку больше, чем она может вместить»

Reading time2 min
Views1.6K
Эрланг отличная платформа для построения серверов, и в его стандартной библиотеке предусмотрены многие средства заметно облегчающие жизнь разработчика.

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

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

Как это делается?
Читать дальше →

К юбилею полета Гагарина — портал ”Первые в космосе”

Reading time1 min
Views13K
Сегодня 12 апреля. Ровно 50 лет с момент первого полета человека в Космос. Именно к этому юбилею Министерство связи и массовых коммуникаций РФ при участии Microsoft и «Ростелекома» запустили новый портал “Первые в космосе”, посвящённый истории освоения космоса и развитию космической науки и техники.

Посетители портала www.pobeda-kosmos.ru впервые смогут ознакомиться с записями сеансов связи, сделанными во время полёта Юрия Гагарина 12 апреля 1961 года. На портале можно найти уникальные документальные фильмы, будет доступен огромный фотоархив, материалы в котором сгруппированы как по знаковым персоналиям (К. Циолковский, Ю. Гагарин и т.д.), так и по важным событиям (первый спутник, животные в космосе и т.д.).

clip_image001[5] imageimage
Читать дальше →

Сборка проекта без единой глобальной переменной

Reading time6 min
Views4K
Представьте, у вас есть проект, состоящий из нескольких модулей и, например, jQuery или любая другая библиотеки в CDN. У вас есть огромное желание не показывать пользователю ваши глобальные переменные и по возможности не показывать jQuery и $. Ну и, конечно, сделать все без изменения кода проекта.
Причины для сокрытия глобалов могут быть разные: для красоты, из соображений безопасности, для затруднения анализа кода и другие. Пользователь взаимодействует с вашим кодом, используя события, которые он не сможет сломать — больше ему ничего и не нужно.

Самый очевидный способ — создать единственный namespace в который пассивно экспортировать прочие объекты, а jQuery и $ в конце удалить.

После сборки код будет какой-то такой:
(function(window, undefined){
    // include ./js/YourNamespace.js
    var YourNamespace = (function () {
        // что-то ещё
        return {};
    }());
    // include ./js/YourNamespace/SomeObject.js
    YourNamespace.SomeObject = (function () {
        // что-то ещё
        return function () {

        };
    }());
    // Cleanup
    delete window.$;
    delete window.jQuery;
}(window));

Это идеальный вариант, но чаще бывает не так. Посмотрите ваш код, такой ли он?

Под катом универсальное решение, позволяющее собрать любой код без единой глобальной переменной.
Читать дальше →

Онлайн-консультанты

Reading time2 min
Views34K
Существует несколько путей получения ответа на интересующий вопрос. Все зависит от степени «продвинутости» посетителя. Он может:
  • позвонить по телефону (или Skype);
  • написать письмо на email;
  • послать сообщение через IM (в большинстве случаев это ICQ).

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

Размышления о привязке «Войти через...» к одному аккаунту

Reading time5 min
Views19K
Постановка проблемы

Некоторое время назад по долгу службы работы, встал на обсуждение вопрос «А нужно ли делать на новом проекте авторизацию через сторонние сервисы?». Мозг, взбудораженный красивыми всплывающими окошками, виджетами и прочими украшательствами, призывно требующими «Войди через меня!», конечно же обеими руками был за, да и современные вебдванольные (а то и, тьфу тьфу, вебтринольные, быть может?) тенденции развития крупных порталов, как бы, намекают. Однако, я не зря сказал, что началось всё с обсуждения, ибо, где есть споры, там есть и камни преткновения. Такой камень мы нашли и здесь.

Предположим, на сайте имеется красивая панелька, как, например, у логинзы, или просто отдельные виджеты авторизации, например, через контакт, твиттер, фейсбук и иже с ними. Легко войти на сайт? Безусловно. Но при этом, если человек войдет сразу со всех этих аккаунтов (одновременно или нет, не суть), для системы это будут разные люди, а следовательно, клоны одного и того же человека, учётной записи которого, быть может, и вовсе нету на сайте.

Казалось бы, какая разница, регистрировать аккаунт на сайте, или входить через внешние ресурсы?
Читать дальше →

Важнейшие из искусств

Reading time8 min
Views5.5K
Если верить крылатому изречению Ленина, то важнейшим из искусств в Советской России являлось кино. Однако, в России современной, с распространением дешевых цифровых фотоаппаратов, на роль «важнейшего из искусств», похоже, начинает претендовать еще и фотография. Фотоаппаратом, конечно, можно снимать и видео, но получается почему-то не у всех. Как любят говорить фотографы, «снимает не фотоаппарат, а человек». Так что сделать эпохальный кадр теоретически можно даже на камеру мобильного телефона. В связи с этим вопрос о том, какие правоотношения возникают в связи с фотографированием, а также о том, как защитить свои права на снимок, волнуют все большее количество читателей «хабра». Давайте поговорим о них.

Право на фото
Читать дальше →

Архитектура и платформа проекта Одноклассники

Reading time10 min
Views120K

Архитектура и платформа проекта Одноклассники


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

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

F#: Во что превращается ваш код после компиляции

Reading time4 min
Views2.3K
Язык F# появился в стандартной поставке VisualStudio совсем недавно, а именно с версии 2010 (на данный момент самой что ни на есть актуальной). Естественно, и все это прекрасно знают, язык функционирует на основе CLR — весь ваш код будет скомпилирован в MS IL как и любой другой язык .NET семейства.

Давайте на примере часто используемой и полезной техники «меморизация» посмотрим во что превращает ваш код компилятор. Для наглядности я буду писать сам код на F# и декомпилировать его в C#.
Читать дальше →

Unity3d Tank Tutorial: Ходовая часть (Урок 1. Основы механики транспортного средства)

Reading time12 min
Views152K
image

Вступление


Итак вы уже не новички в Unity, вы умеете создавать сцену, расставлять объекты на сцене, создавать terrain, делать префабы и тд… и главное — работать со скриптами, либо вы уже изучили статьи: Unity3D для начинающих — Туториал 1 и Unity3d script basics. Все эти знания вам пригодятся ведь в этом уроке мы двинемся намного дальше.

А именно: в первой части этого урока вы узнаете что такое Wheel Collider, как с помощью него управлять транспортным средством и создать реалистичное поведение подвески автомобиля, во второй части урока, на основе всего этого я покажу как сделать ходовую часть танка с соответствующей физикой и контроллерами.

Собственно то что вы видите на изображении сверху (это будет результат данного урока) вы можете опробовать «вживую» прямо в браузере. Хотите сделать это сами? Тогда добро пожаловать под кат
Читать дальше →

Action Request System: Знакомство

Reading time5 min
Views7.9K
Прошло довольно много времени с тех пор как я устроился на новую работу. С того момента, я, собственно и начал изучать эту новую для себя технологию. Предлагаю вам изучить ее вместе со мной, по мере написания/чтения новых записей по этой теме. Упоминаний в рунете о ней я нашел крайне мало, поэтому решил восполнить брешь. Итак, начнем.

Что это такое?


В принципе, этот параграф вы можете прочитать и в английской википедии (хотя материал все-таки и различается: тут более углублен, в вики же, более поверхностный. Зато больше охват) так что он к прочтению желателен. Для начала, расшифруем аббревиатуру: Action Request System. Правда адекватного предназначению системы перевода я дать так и не смог. Что ж, разберем функционал по косточкам и каждый сам для себя решит, как же правильно перевести это название системы действий по запросам. Создала ее американская компания BMC. Это приложение, имеющее клиент-серверную архитектуру. Окружение клиента можно разделить на два типа: для пользователей (непосредственно, среда, которая рисует все формочки, берет данные и так далее) и для разработчиков — IDE на платформе Eclipse, в которой и разрабатываются все пользовательские приложения.
Читать дальше →

Вертикальный текст

Reading time3 min
Views3.8K
Потребовалось мне использовать вертикальное расположения текста для обозначения заголовков таблицы. Поиски в интернете привели только к устаревшим или еще не утвержденным стандартам, фильтрам IE и не поддерживающих кириллицу или Mozilla Firefox SVG.
Поэтому пришлось самому решать проблему. Немножко некрасиво получилось, но меня результат устроил.

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

Android Development Tutorial. Часть 2/?

Reading time14 min
Views87K
Ларс Вогель — евангелист Eclipse.
Под катом Вы обнаружите продолжение перевода его статьи, которая описывает процесс создания Android-приложений с помощью Eclipse. Используется Eclipse 3.6, Java 1.6 и Android 2.3 (Gingerbread).
Часть 1
Читать дальше →

#404fest: Секция Организация работы

Reading time2 min
Views9K
Мой коллега Егор Гилев yegorg очень хорошо разбирается в вопросах организации работы, но плохо понимает в вопросах кармы на Хабре. Поэтому он попросил меня запостить его пост про его секцию на #404fest:

imageНа прошедшем осенью Фестивале 404 была секция, посвященная вопросам организации работы, управления командами и развития бизнеса. Все доклады были записаны на видео и мы рады предложить их вашему вниманию.

В рамках этой секции я прочитал доклад о том, как компания Турбомилк устроена изнутри. Доклад назывался «Что получится, если дизайнерам доверить самим организовать свою работу»:



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

Где спряталась логика?

Reading time4 min
Views4.4K

Вопрос


Очень часто при обсуждении программ употребляется термин «логика» или «бизнес-логика».
Например:
  • (о юнит-тестах) не обязательно добиваться стопроцентного покрытия кода тестами, достаточно тестировать лишь логику.
  • (о веб-приложениях) контроллер не должен содержать никакой бизнес-логики, а должен только вызывать методы других классов
  • В слое VIEW (то есть в JSP-файлах) не должно быть бизнес-логики


Так вот, кто скажет мне, что такое «логика»? Надо ли понимать под этим любой IF в коде? Но разве бывает код без IF'ов? Или (бизнес-)«логика» означает любую информацию, которая исходит от клиента? Но разве можем мы на деньги клиента делать что-то, чего он не заказывал? Не можем. Стало быть, весь наш код — это целиком «бизнес-логика» от клиента. Вот поэтому я никогда не мог понять, что же такое эта чёртова логика.

Ответ:

Используем console на полную

Reading time6 min
Views459K
Метод console.log() — отличный способ вывести отладочную информацию, не мешая пользователю. Но знаете ли Вы, что объект console имеет еще уйму других не менее полезных методов? Очень редко разработчики используют этот функционал, ограничиваясь неблокирующим alert'ом. Что-ж, давайте исправим это положение.

Вкусности console

Ищем быстро, еще быстрее

Reading time3 min
Views22K
Натолкнулся в разделе QA на интересный вопрос. Ответ на него заставил написать эту статью как бОлее полный ответ на вопрос «как организовать поиск по множеству параметров, как в Яндекс-маркете, например».

Я знаю, что на Хабре, да и вообще есть много сторонников noSQL решений (сам не без греха), но все же я сторонник сначала подумать, а уже потом выбирать решение.

Итак, что имеем в «ДАНО»
  • Имеем 120 чекбоксов — вариант 1/0
  • Имеем 30 «радио» с выбором «да/нет/не важно»
  • Имеем 2-3 слайдера для указания диапазона цен/размера чего нить
  • Имеем самое главное: 12 млн записей в БД.
  • Имеем Select * From tovar Where (wifi=true) and (led=false) and (type=3) and ….остальные параметры …; со временем выполнения близкому к истерике клиента.

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

Native Client: К взлету готов!

Reading time2 min
Views5.5K
В течении последних месяцев мы интенсивно работали над переводом Native Client на новый API плагинов браузера, Pepper (Pepper представляет собой набор расширений NPAPI, предложенный Google. прим. перев.). Native Client представляет собой технологию, позволяющую выполнять машинный код непосредственно в браузере, причем прозрачно и безопасно. Сегодня, с выпуском обновленного SDK для Native Client, мы добились значительного прогресса на пути тому, чтобы сделать модули Native Client такими же переносимыми и безопасными, как JavaScript.
Читать дальше →

10 вещей, которые должен знать каждый Senior Flash Developer

Reading time3 min
Views11K
Я собеседовал нескольких Flash/Flex разработчиков в качестве потенциальных сотрудников Roundarch. Для меня, самой сложной частью собеседования было понять, какие именно вопросы задавать, чтобы оценить уровень Flash-разработчика. Поэтому, я создал этот список. Этот список позволяет мне оценить уровень и опыт разработчика, которого я собеседую.

Если вы ещё не достигли уровня «Senior-developer», то прочитайте список и изучите информацию по ссылкам из него. Если вы посчитаете этот список устаревшим, то, пожалуйста, критикуйте его и расскажите о других ссылках в комментариях.
Читать дальше →

jQuery Deferred Object (подробное описание)

Reading time7 min
Views122K
31 января вышел релиз jQuery 1.5, одним из ключевых нововведений которого стал инструмент Deferred Object. Именно о нём я и хочу рассказать подробнее в этой статье.

Эта новая функциональность библиотеки направлена на упрощение работы с отложенными (deferred) вызовами обработчиков (callbacks). Deferred Object, аналогично объекту jQuery, «цепочный» (chainable), но имеет свой набор методов. Deferred Object способен регистрировать множество обработчиков в очередь, вызывать зарегистрированные в очереди обработчики и переключать состояние на «завершено» или «ошибка» для синхронных или асинхронных функций.
Подробности и примеры далее

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity