Рубрика «Песочница» - 33

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

Многие знают сервис Google PageSpeed Insights для проверки скорости загрузки страницы. Он помог мне обнаружить, что кнопка лайка Facebook подгружает пользователю огромный javascript, который даже не удосуживается сжать. Мне стало очень интересно: зачем для того чтобы поставить лайк нужен js скрипт на 224 Kb? Культовая игра СуперМарио весила 40 Kb, а кнопка лайка 224! Сразу представил себе, чем занимается кнопка Facebook на моем сайте помимо своих основных обязанностей. Дальнейшее исследование показало, что абсолютно все социальные кнопки подгружают большие несжатые скрипты.

Проверив скорость загрузки страницы, на которой установлен ряд кнопок из соц сетей, я ужаснулся. PageSpeed Insights показывал 50 баллов.

Социальные api кнопки убивают производительность сайта - 1
Читать полностью »

Я купил электронную книгу в Amazon Store, сын захотел копию. Возиться с DRM не очень то и хотелось, поэтому появилась идея сделать скриншот каждой страницы. Сначала думал перелистывать и делать копию экрана — в результате появился маленький шелл скрипт:
Читать полностью »

Привет, читатели!

Хочу поделиться с вами небольшим опытом использования Flickr API в Android приложениях и рассказать об авторизации пользователя Flickr. Которую в дальнейшем можно будет использовать например для вывода списка альбомов и изображений.
Читать полностью »

Здравствуйте! Только что удалил последние остатки злого и ужасного вируса. Решил написать статью, в которой укажу все, что мною предпринималось.

image

Все началось вчера вечером. Я сидел себе спокойно и смотрел фильм, как вдруг в правом верхнем углу выскочила надпись вида «Внимание! Включено видеонаблюдение!».
Читать полностью »

в 20:45, , рубрики: Песочница, метки: , , ,

Доброе время суток.

Хочу с вами поделиться информацией о страшном баге, который не просто найти.

Суть в чем: допустим у вас есть класс SomeClass, у которого есть публичное поле int или float или bool, которое по умолчанию проинициализировано конкретным значением. Пример:

public class SomeClass
{
    public int SomeValue = 1;
}

После чего вы в каком-то месте создаете экземпляр этого класса, используете инициализатор и приравниваете SomeValue — стандартное значение (ноль либо false в случае bool):

SomeClass a = new SomeClass { SomeValue = 0 };

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

Всем привет!

Хочу поделиться своим опытом кэширования результатов запроса на стороне сервера.

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

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

Представляю вниманию мою мотосигнализацию на базе Arduino UNO в паре c акселерометром MMA7361. Принцип работы таков: Arduino опрашивает акселерометр, считывает данные по осям X, Y, Z и если есть отклонения от значений, которые были при включении сигнализации, больше допустимой величины — включается сирена; т.е. никаких данных вносить не нужно, не важно под каким углом Вы оставили свой мотоцикл, хоть на бок его положили, после включения сигнализации у осей X, Y, Z появляются текущие координаты и если в момент опроса текущие координаты хотя бы по одной оси отличаются от предыдущих на величину больше установленной нами (для этого использовал потенциометр) — срабатывает сигнализация. Другими словами, если Ваш мотоцикл трогают, наклоняют, пытаются перемещать, в общем, создают движение — включается сирена.
Читать полностью »

Приветствую жителей и гостей ! Приключилась со мной как-то раз одна техническая история. Бродил я как-то мыслями по просторам интернета и пришла мне в голову мысль насчет звукового ЦАП. Ну как пришла, так и ушла. Но на следующий день я спросил у коллег, не имел ли кто-нибудь дело с подобными устройствами. И на фоне громогласного шума кулеров в компьютерах одинокий голос мне поведал о том, что был подобный опыт в жизни.
Читать полностью »

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

Почему возникла такая необходимость?

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

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

Не так давно меня заинтересовало программирование. Стали интересными принципы работы программ, приложений, сайтов, в общем всё то, что представляет из себя компьютер и программы.

Заинтересовало на столько, что стало не просто любопытством с временным действием, а стало конкретной задачей понять программы, изучить некоторые языки программирования и в конце концов попробовать себя в программировании на практике.

Была поставлена четкая, рациональная и ясная цель(без фантазирования о написании великой программы с мега возможностями), и примерный путь ее достижения (изучение азов). После чего приступил к действию и начал с поиска информации. Там я и выделил проблемы с которыми столкнулся и сталкиваюсь по сей день. О них и пойдет речь далее:
Читать полностью »


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