Архив за 05 апреля 2012 - 5

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

function Loader()
{
    this.load = function()
    {
        $.ajax({
            url: '/test.php',
            success: function(data, textStatus, jqXHR) {
                // здесь уже никак нельзя обратиться к объекту класса
                console.log(this); // this содержит внутренний объект jQuery,
                                   // вызывающий функцию success
            }
        });
    }
}
(new Loader()).load();

Читать полностью »

Зачем?

Вопрос “Зачем?” — самый главный при принятии любого решения. В нашем случае причин было несколько.

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

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

Но в Mail.Ru Group есть целая команда высококвалифицированных людей, знающих JS, способных самостоятельно написать инструмент, а самое главное — они же им и будут пользоваться.

Во-вторых, задачи. Возьмем проект Почта@Mail.ru. Мы не можем отказаться от шаблонизации на сервере – нам нужна быстрая загрузка при первом входе. Мы не можем отказаться от шаблонизации на клиенте – люди должны видеть высокую скорость реакции на их действия, а значит, обязателен AJAX и шаблонизация на клиенте.

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

v8 — это интерпретатор JavaScript, а значит, мы можем получить один шаблон, который работает как на сервере, так и на клиенте.

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

Это небольшая история страданий, боли, взлетов и падений в попытках ускорить работу RaphaelJS на больших и сложных SVG. Если вы страдаете от подобных проблем, то не стоит ждать в конце этой статьи серебряной пули, но, надеюсь, что про наш путь поиска решения будет интересно прочитать всем.

Читать полностью »

Hostkey.ruПривет читатель!

Мы запустили новую акцию под «Windows VPS». Фишка акции в том, что если разместить сайт на Windows-сервере, то можно получить 2 месяца аренды бесплатно.
Читать полностью »

Чудесная штука генеральная уборка: всегда можно найти кучи вещей, о существовании, которых никогда не подозревал. Вот и меня угораздило забраться в ящик с макулатурой. Жаль, что не могу передать выражение своего лица, когда я нашел журнал «Крокодил» за июнь 1985 года (№ 17). В силу того, что журнал вышел за долго до моего рождения, я нашел в нём много смешных вещей (по крайней мере они сейчас таковыми кажутся).

Но в особенности меня порадовала статья «Ставка — на перфокарту» А. Моралевича. Собственно, да простит меня хабр, я не могу не поделиться этой статьёй.

image

Читать полностью »

Всем привет.
Это блог компании Nekki. Основное направление нашей деятельности – разработка и издательство интернет-проектов и многопользовательских онлайн-игр. Здесь мы будем рассказывать вам о своих продуктах и обо всем, что нас вдохновляет.

Читать полностью »

План аварийного восстановления — уверенность в завтрашнем дне для всей компании и спокойный сон ИТ отдела
Знакомая ситуация?

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

Есть такая штука – непрерывность бизнеcа. Эта сфера уже достаточно развита и подразумевает, что ваш бизнес может продолжить работу без происшествий даже после попадания метеорита в дата-центр или офис. Интересно, что сейчас в России успешное внедрение планов аварийного восстановления бизнеса обладает побочным эффектом в виде быстрого карьерного роста предложившего и внедрившего. Читать полностью »

Доброго времени суток, уважаемые читатели! Сегодня я хочу рассказать Вам о том, как за несколько минут при помощи CSS3 создать такую вот красоту:
Анимированные картинки на CSS3
В чём вся красота вы поймёте попозже.


Читать полностью »

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

Яндекс.Диск — полетели!Меняются носители информации, меняются средства связи: открытки и письма в доэлектронном, бумажном виде мы сегодня если и отправляем, то лишь из дальних поездок. А приходящие в гости друзья уже не приносят с собой диски и флешки со «сборником свежих фотографий».

Давно ушли в прошлое дискеты, вот-вот прошлым станут компакт-диски, а за ними уйдут и флешки.

Яндекс поможет окончательно расстаться со всеми этими устройствами и шагнуть в будущее. Сегодня среди наших сервисов появилось новое имя — Яндекс.Диск.

Читать полностью »

Месяца 3 назад, как и многие горе-электроники, купил себе на мой тогдашний взгляд самую навороченную микропроцессорную плату из семейства Arduino, а именно Seeeduino Mega, на базе процессора Atmega1280. Побаловавшись всласть вращающимся сервоприводом и моргающим светодиодом, встал вопрос: «зачем же я её купил?».

Я работаю одним из ведущих конструкторов на одном крупном военном Зеленоградском заводе, и в данный момент веду проект по разработке метрологического средства измерения. В данной задаче существует бесконечное множество проблем, которые требуют индивидуального решения. Одной из таких задач является управление шаговым двигателем без шумов и с шагом не 1.8 градуса, как сказано в документации шагового двигателя, а до 0.0001 градуса. Казалось бы, задача сложна и нерешабельна, но, повозившись немного со схемами управления, пришёл к выводу, что всё реально и возможно. Требуется только генерация двух сигналов специфичной формы и со сдвигом фаз и частотой изменения напряжения до 1 МГц. (Подробное исследование шагового мотора и раскрытие всех тайн управления напишу в следующей статье) Сразу же в голове стали появляться проблески надежды, что я не зря потратил 1500 рублей на свою красненькую Seeeduino, и я, набравшись энтузиазма, начал разбираться.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js