Pull to refresh
65
0
Игорь Аникеев @Coder

User

Send message

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Reading time1 min
Views79K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.

Сумбурные заметки про python и django

Reading time5 min
Views47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

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

Получение основного контента веб-страниц программно

Reading time3 min
Views1.4K
Задача очищения веб-страниц от информационного шума — это одна из актуальных задач информационного поиска. Суть ее заключается в том, чтобы очистить информационный шум и получить лишь основной контент.
Читать дальше →

JSNAV

Reading time3 min
Views2.9K

Навигация по странице


Всё чаще и чаще в web появляются сайты, использующие навигацию, написанную на JavaScript. Типичный случай использования javascript для навигации: страница с меню и блоком контента, куда через AJAX подгружается содержимое:



Пользователь кликает по пункту, JavaScript грузит из сети содержимое, вставляет в блок контента, пользователь доволен: страница без перезагрузки показывает требуемое и траффика потребовалось меньше за счёт того, что не потребовалось грузить все эти HEAD, BODY, STYLE и прочие элементы.

Но вот проблема: URL страницы. Если на old scool сайтах на каждый пункт меню показывается новая HTML страница, и у пользователя есть вменяемый URI, который он может скопировать из адресной строки бразуера, послать другу или положить в закладки, то в случае AJAX интерфейсов в URI странице зачастую нет никаких ссылок на текущий контент документа.

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

Не с секрет, что для решения этой проблемы многие программисты кодируют ссылку на текущее просматриваемое содержимое в якорь (anchor) URI документа. К примеру, на сайте jqapi.com (скриншот которого приведён вначале топика) при выборе того или иного пункта меню якорь страницы меняется на #p={contentId}.
Читать дальше →

Одинокое программирование

Reading time2 min
Views3.7K
Когда плотник осваивает свое ремесло, он учится, наблюдая за работой других — за тем, как они распиливают древесину и забивают гвозди. То же относится и к хирургам, учителям и множеству других профессий — но не к программистам. Нас учат программированию в университетах или мы учимся сами, но при этом мы крайне редко наблюдаем за тем, как работают другие программисты. Если продолжать аналогию с плотниками, нас учат теории обработки древесины и алгоритмам забивания гвоздей, а потом оставляют с материалом наедине на всю нашу профессиональную жизнь, а все остальные плотники работают в отдельных закрытых комнатах.

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

Муравьиные алгоритмы

Reading time8 min
Views85K

Предисловие


Совсем недавно в этом блоге была опубликована статья, посвященная алгоритму поведения роя пчел. Данная статья рассказывает о другом алгоритме роевого интеллекта, называемом муравьиным алгоритмом. Она состоит из введения, вкратце рассказывающего о заимствованном природном механизме, описания оригинального алгоритма Марко Дориго, обзора других муравьиных алгоритмов и заключения, в котором указываются области применения муравьиных алгоритмов и перспективные направления в их исследованиях.

Введение


Муравья нельзя назвать сообразительным. Отдельный муравей не в состоянии принять ни малейшего решения. Дело в том, что он устроен крайне примитивно: все его действия сводятся к элементарным реакциям на окружающую обстановку и своих собратьев. Муравей не способен анализировать, делать выводы и искать решения.

Эти факты, однако, никак не согласуются с успешностью муравьев как вида. Они существуют на планете более 100 миллионов лет, строят огромные жилища, обеспечивают их всем необходимым и даже ведут настоящие войны. В сравнении с полной беспомощностью отдельных особей, достижения муравьев кажутся немыслимыми.
Читать дальше →

Как редактировать данные о компаниях и другую информацию на Картах Google

Reading time2 min
Views19K
Брианна Брекке (Brianna Brekke), Старший стратег, Места на карте Google.

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

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

Как сообщить о проблеме

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

Как редактировать данные о компаниях прямо на Картах Google
  • Вы можете обновить местоположение объекта прямо на Картах Google. После того, как вы проверите и сохраните свои правки, они появятся на картах в течение нескольких часов.
  • Если вы – владелец компании и хотите, чтобы данные о ней присутствовали на наших картах, ознакомьтесь с приведенной ниже информацией о Местах на карте Google.
Как сообщить об ошибке в данных о компаниях
  • Лучший способ сообщить об обнаруженных вами неточностях в информации о компаниях – это использовать инструмент Сообщить о проблеме.
  • После проверки присланной пользователями информации, в течение нескольких недель произойдет обновление карт.
Если вы владелец бизнеса, вам нужно зарегистрировать свою компанию в Местах на карте Google и ввести данные о ней. Эти данные будут выводиться в поиске Google и на Картах Google. Вы размещаете информацию о компании абсолютно бесплатно, а затем подтверждаете ее. Вы не только будете уверены, что на странице Места на карте будет представлена самая точная информация о вашей компании, но и сможете расширить свое присутствие в сети, загрузив фотографии, видеоролики, а также публикуя специальные предложения (например, товар недели) в режиме реального времени.

Как заявить права на свой бизнес на Картах Google
  • Сообщите нам о том, что вы являетесь владельцем компании, на странице http://www.google.com/places или нажав на ссылку «Владелец бизнеса?» в описании вашей компании.
  • Затем мы пришлем вам PIN-код, и вы подтвердите регистрацию своей компании по телефону или при помощи почтовой открытки. В течение часа после подтверждения вы увидите информацию о своей компании на карте, перейдя по ссылке «Просмотреть».
  • Если информация о вашей компании некорректна, существует много разных способов сообщить нам об этом. Мы обязательно внесем все необходимые исправления.

Zen Engineering

Reading time1 min
Views2.8K



Когда есть свободная минута, открываю любую методику наугад, внимательно перечитываю и «медитирую по мотивам».





Несколько дней назад ZotovSergey упомянул про свою коллекцию различных методик повышения продуктивности мышления (принятия решений) и отрывочных записей на эту тему.
По просьбам, которые здесь последовали, он открыл свой блокнот «Zen Engineering» в Evernote для публичного доступа.

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

Живой поиск стал доступен всем пользователям google.ru

Reading time1 min
Views1.9K
Борис Хвостиченко, менеджер по продуктам Google в России

Две недели назад мы объявили о запуске Живого поиска, тогда он был доступен только тем, кто вошел в свой аккаунт Google. Начиная со вчерашнего дня, Живой поиск работает для всех пользователей google.ru. Мы также продолжаем работу над поддержкой браузера Opera.

Хотелось бы дать несколько полезных советов по управлению Живым поиском с клавиатуры:
  • При наборе запроса клавиша «Tab» или стрелка «вправо» дозаполняет запрос в поисковой строке. Например, чтобы выполнить поиск «погода в Самаре», можно набрать «п», затем «Tab», затем « в са» и увидеть результат;
  • Между пятью топ-подсказками можно переключаться клавишами «вверх»-«вниз». Для того же запроса «погода в Самаре» можно набрать «погода в», затем клавишей «вниз» перейти к нужному запросу;
  • И самое интересное — если начать переходить между топ-подсказками стрелочками «вверх»-«вниз», то нажатие клавиши «вправо» приведет к переходу на первый результат текущего запроса. Т.е. если набрать «погода в са», нажать стрелочку «вниз», а затем стрелочку «вправо», то вы перейдете на страницу, сответствующую первому результату запроса «погода в самаре».
Исходя из этого, самый быстрый способ поиска погоды в Самаре будет следующий: набрать «п», затем «Tab» (или стрелка «вправо»), затем « в», затем пару раз стрелку «вниз», затем стрелку «вправо».

Надеюсь, эти советы помогут сделать поиск еще быстрее и приятнее.

Как работает Майкл Аррингтон из TechCrunch

Reading time6 min
Views3K
image
TechCrunch – компания из Сан-Франциско, которая ведет влиятельный блог с тем же названием, начиналась как хобби. В 2005 году Майкл Аррингтон, обычный предприниматель и бывший юрист, занимался исследованиями стартапов Кремниевой долины и решил опубликовать свои выводы в интернете. Так появился сайт TechCrunch, который в настоящее время посещают около 9,2 миллиона человек ежемесячно, и годовой доход которого составляет около 10 миллионов долларов. Он стал одним из крупнейших источников новостей об интернет-стартапах и технологических компаниях. Хотя сейчас в TechCrunch есть 25 штатных сотрудников, Аррингтон по-прежнему проводит много времени за написанием своих статей. Чаще всего он работает удаленно из своего дома неподалеку от Сиэтла. С утра до ночи Майкл сидит в темноте перед своим компьютером, слушая музыку, работая со списком контактов и фокусируясь на том, что он любит больше всего – описанием горячих новостей техноиндустрии.
Читать дальше →

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →

Загрузка классов в Java. Практика

Reading time7 min
Views84K
Данная статья является продолжением статьи Загрузка классов в Java. Теория.

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

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

Быстрая сборка кубика Рубика

Reading time7 min
Views1M
Возможно, многие из читателей задавались вопросом, как людям удаётся собирать кубик Рубика 3×3 за 7 секунд. Если даже предположить, что рекордсмену сильно повезло, то таблица мирового рейтинга по среднему из пяти результатов уже не оставляет сомнений: если больше 80 человек в среднем укладываются в 12 секунд, очевидно они что-то знают. В этом кратком обзоре я постараюсь приоткрыть секреты скоростной сборки. Сразу оговорюсь, что после прочтения этой статьи вы не станете чемпионами: здесь приведены только основные моменты и ссылки на более подробную информацию. Кроме того, даже после изучения метода полностью вам потребуются долгие тренировки для достижения хороших результатов. Зато вы получите неплохое представление о том, как это делается, и при желании будете знать, куда двигаться дальше. Я думаю, при достаточной усидчивости после нескольких месяцев тренировок многие смогут достичь среднего результата в районе 30 секунд.
Читать дальше →

Пишем простейший торрент трекер на php

Reading time5 min
Views28K
Обмен файлами всегда привлекал людей, для этого собственно и был изобретен протокол BitTorrent.

Большинство торрент трекеров написано на PHP, хотя встречаются и такие, которые написаны на C# языке, но для ознакомления мы будем использовать именно PHP.

Давайте рассмотрим что из себя представляет трекер.
Читать дальше →

Принципы работы покерного бота

Reading time8 min
Views99K
image


Внимание:
Не принимайте эту статью как руководство к действию, помните что использование ботов запрещено во всех покер-румах и влечет за собой блокировку аккаунта с изъятием всех денег на счету. В этой статье не будет готового к использованию кода, чтобы не облегчать жизнь скрипт-киддисам, мы рассмотрим основные принципы и алгоритмы работы бота. А знакомый с программированием человек, при желании, все равно сможет написать такую программу.
Читать дальше →

Карты Payoneer, кто выдает?

Reading time2 min
Views9.7K
image Предыдущая новость о картах Payoneer вызвала неподдельный интерес и кучу коментариев, среди коментарие попадались вопросы — «А у кого можно получить карту Payoneer?» Вот я и решил потратить немного своего времени и сделать развернутый список партнеров компаниии Payoneer которые выдают карты. Но прежде чем перейти к списку, хочу сообщить две сравнительно свежие новости от компании Payoneer:
1. С недавних пор снято ограничение на работу Payoneer только с американскими партнерами, т.е. если у вас есть свой сервис и вам надо выплачивать деньги своим партнерам вы без труда можете подключить для выплат карты Payoneer, если кому надо прямой email русскоязычного менеджера — пишите в ПМ.
2. В течении последних месяцев Payoneer перешел на новые карты с повышенными лимитами, теперь по новой карте можно ежедневно снимать из банкомата 2500$ и 2500$ тратить при оплате картой.
Теперь пожалуй перейдем к самому списку партнеров из за чего и затевался этот топик, идем под кат и внимательно изучаем.
Читать дальше →

Программист и рисование

Reading time5 min
Views13K


Нужно ли программисту уметь рисовать? Я подумал это довольно-таки интересная тема, под катом рассуждения о том нужно ли это вообще + урок рисования кота для полных новичков от программиста.

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

Реализация эффекта Philips Ambilight в превью изображений

Reading time16 min
Views4K
Вчера в топике «Модификация изображений для сайта, или какие бывают превьюшки» в комментариях diGreez предложил, как мне показалось, очень интересный способ организации превьюшек изображений. Реализовал на PHP функцию, которая занимается созданием таких превьюшек.
Функция документирована комментариями.
Читать дальше →

Реализация PubSubHubbub-подписики в Java-приложении на App Engine

Reading time7 min
Views2.7K
PubSubHubbubРазбираясь с обозначенной в заголовке темой, попутно обнаружил, что в рунете она раскрыта довольно слабо, хотя с момента представления данного протокола прошло уже много времени. Хочу слегка заполнить этот небольшой пробел, поделившись опытом.
Напомню кратко, что PubSubHubbub (PuSH) — это протокол, предложенный Google и призванный сделать более эффективным процесс доставки данных по каналам типа RSS от издателей к подписчикам. Центральное место в схеме, обеспечивающей работу протокола, отводится независимым хабам, выполняющим роль посредников между непосредственными источниками данных и конечными их получателями. При этом, хаб оповещает всех зарегистрированных у него подписчиков канала о поступлении новых данных сразу после их появления, одновременно передавая новую порцию данных.
Таким образом, если вы создаете приложение, занимающееся обработкой фидов в формате RSS или Atom, то можете заметно облегчить себе жизнь, возложив «черную» работу на хаб. Конкретные плюсы такой схемы:
  • возможность «интеграции» множества внешних каналов в единый поток данных общего формата, поступающий на вход приложения: хаб может позаботиться об этом;
  • отсутствие необходимости отделения новых данных от старых: хаб доставит только новые;
  • не нужно постоянно отслеживать канал на предмет новых данных: хаб сам сообщит когда надо;
  • минимальное время с момента публикации до момента оповещения вашего приложения.

Другими словами, вы можете получить оперативную доставку данных, заметно сэкономив как на объеме входящего трафика, так и на процессорном времени приложения. Для приложений на App Engine, ограниченных квотами, эти моменты могут оказаться принципиальными. Кроме того, вы сэкономите свое время, поскольку придется написать меньший объем несложного кода.
Ниже приведены минимально необходимые фрагменты кода на Java, которые были успешно мною опробованы на одном из хабов. Кода совсем немного и он несложный.

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

Information

Rating
Does not participate
Date of birth
Registered
Activity