Новости информационных технологий - 26373

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

Я хочу продемонстрировать и объяснить упрощенную версию существующего кода. Если же захочется посмотреть на рабочий код, просто загляните в исходники Qt. Эта статья поможет понять основную концепцию.

Для того, что бы лучше усвоить статью, надо знать основы программирования без блокировок. Если вам понятна ABA проблема и вы знаете, как сделать стек без блокировок, то проблем не будет. Если же нет, в качестве вступления можно прочитать мою предыдущую статью [перевод].

Основная мысль статьи взята с финальной части моего выступления на Qt Developer days 2011.
Читать полностью »

В рамках Всемирного мобильного конгресса компания ASUS продемонстрировала обновлённую серию планшетных компьютеров Transformer. Выпуск сразу нескольких планшетов для ASUS уже привычное дело. В прошлом году появились первый Transformer, модели Eee Pad Slider и Eee Pad Slate. В декабре 2011 представили Eee Pad Transformer Prime TF201 – логичное развитие гибридного нетбука-планшета. Спустя всего несколько месяцев компания ASUS анонсирует выход ASUS Transformer Pad Infinity и ASUS Transformer Pad 300.

Специфика планшетов-трансформеров ASUS кроется в свободе выбора. Пользователь сам решает, какой именно вариант использования мобильного устройства будет наиболее удобным для него в данный момент. Новые модели серии ASUS Transformer еще больше расширяют возможность выбора, поскольку каждая из них оптимизирована под определенные сценарии использования. Устройства предназначены для разных групп пользователей, различаются начинкой, внешним видом и ценой.

image

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

Перевод статьи Джастина Куртони. Оригинал: http://cutroni.com/blog/2012/02/09/pimping-out-google-analytics-for-ecommerce-websites/
Читать полностью »

История команд одного процессора. Часть 1. Отличия ассемблерных инструкций lddqu и movdqu
В не столь далеком 2000 году корпорация Intel представила на рынке микроархитектуру NetBurst для процессоров Pentium 4. В 2004 году, когда появились процессоры на ядре Prescott, в наборе команд SSE3 была реализована команда LDDQU.Читать полностью »

Google строит еще один дата центр в Оклахоме, США

Похоже на то, что у «Корпорации Добра» дела идут неплохо. В общем-то, несмотря на некоторые временные трудности с новыми проектами (Google Wallet, Google Plus), компания работает (и зарабатывает) весьма неплохо. В связи с появлением новых сервисов и пользователей, руководство компании решило построить еще один дата-центр, на этот раз в США, штат Оклахома.

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

Как вы наверное знаете, в php есть интересная функция для обработки данных, поступающих из командной строки: getopt. Но есть одна маленькая проблема — она неправильно работает в CodeIgniter, да и не совсем удобная.

А так как у меня было немного свободного времени, желание написать что-нибудь своё опен сорсное, попробовать в деле github (сижу на hg+bitbucket), и наконец сделать что-то полезное для тухнущего CodeIgniter и его сообщества, я решил написать свой костыль, призванный немного скрасить написание cli скриптов на данном фреймворке.
Оно умеет самый минимум — искать заданные аргументы, производить их валидацию (если не указаны обязательные) и выводить подсказки по использованию вашего скрипта, а при желании легко может быть допилено для использования без привязки к CodeIgniter:

CodeIgniter Command Line library — небольшой ассистент для работы с CLI
Читать полностью »

Доброго времени суток, уважаемые читатели.
Сегодня вам предоставляется возможность прочитать впечатления студента Computer Science Center-а по итогам первого года обучения.

Bio: маленькое отступление

Я студент 3-его курса СПбГУ НИУ ИТМО, учусь на кафедре «Высшей математики». Туда я поступал, так как мне была интересна математика, информатика и все, что с ними связано. Но, как это часто бывает в системе образования в России, я был несколько разочарован в своих ожиданиях: я думал, что поступлю туда, где мне расскажут много теории и научат применять ее на практике для решения конкретных задач. Теорию преподают очень хорошо: преподаватели действительно специалисты в своих областях и отлично владеют не только материалом, но и техникой его преподавания; но есть ряд предметов, которые, как мне кажется, должны были быть «по выбору», но явились обязательным, что несколько снижало общий настрой к обучению. А вот с применением на практике оказался облом: практически никаких интересных проектов, которые бы включали в себе актуальные на практике вопросы, обнаружено не было. И, если честно, до недавнего времени, я не совсем понимал что же я буду делать по выходу из института: быть «чистым» программистом не хотелось, а заниматься математикой я вообще не понимал как.

Поступление

Первый и самый главный вопрос на который нужно ответить, перед тем как начать обучение чему-либо где-либо, это вопрос: «Для чего мне это нужно?».

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

При использовании асинхронных функций в классах часто возникает проблема, когда в теле функции невозможно обратиться к объекту класса, вызывающему функцию. Это хорошо видно на примере с аяксом (с использованием 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. Если вы страдаете от подобных проблем, то не стоит ждать в конце этой статьи серебряной пули, но, надеюсь, что про наш путь поиска решения будет интересно прочитать всем.

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


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