Pull to refresh
0
@centerpopread⁠-⁠only

User

Send message

Ускорение сайта на wordpress с Microsoft Azure по-быстрому

Reading time3 min
Views15K
Данная статья предназначена для тех, у кого есть не слишком сильно посещаемые, красиво оформленные сайты на Wordpress, и кто хочет их ускорить. И при этом нет ни времени, ни желания углубляться в дебри оптимизации, надо просто сделать так, чтобы сайт загружался быстро и стабильно.

О том, что, ускорение загрузки сайта даже на полсекунды важно уже много написано и известно всем.

image

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

Для этого мы будем использовать Microsoft Azure, который на месяц дает бесплатный аккаунт и 7000руб. на счет, что позволяет не рискуя понять сколько вы будете тратить в месяц на ускорение своего сайт.
Для примера, по расчету для 10 сайтов с настройками из статьи, с общим количеством просмотров около 10 000 в день, я буду платить около 100руб.м. в месяц (грубая прикидка, скорее всего меньше).
Настройки под катом
Total votes 24: ↑20 and ↓4+16
Comments10

FAQ по программированию под Android от новичка, и для новичков

Reading time16 min
Views158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments23

Большой набор примеров кода расширений для Visual Studio 2013

Reading time3 min
Views24K
Команда Visual Studio выпустила агрегированный набор примеров кода Visual Studio 2013 SDK Samples, который содержит множество готовых для использования, тестирования и изучения проектов кода расширяющих возможности среды разработки.



Примеры будут очень полезны для изучения новых возможностей Visual Studio как среды разработки, создания пакетов расширений и инструментов, которые позволяют расширить среду разработки новым функционалом. Ниже вы найдете описание всех примеров кода, включенных в набор.

Загрузить все примеры кода одним пакетом можно по следующей ссылке.

Build Progress Bar – VS 2013
Пакет для Visual Studio, который предлагает новый инструмент “Build Progress” показывающий индикатор на WPF отображающий прогресс построения решения в среде разработки.

Caret Fish Eye – VS 2013
Расширение, которое визуально масштабирует линии текста кода, уменьшая их в зависимости от удаления от текущего положения указателя.

Code Sweep – VS 2013
Этот пример позволяет пользователю указать набор терминов для поиска указав набор XML-файлов, содержащих определения.
Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments8

Обзор библиотеки для интерактивной визуализации данных WPF DynamicDataDisplay

Reading time6 min
Views17K
image
Здравствуйте, уважаемые хабрапользователи!

В этом посте я расскажу вам о нашей разработке — бесплатной Open-source библиотеке для интерактивной визуализации данных WPF DynamicDataDisplay.
Немного о нас: мы — это сотрудники лаборатории технологий Microsoft факультета Вычислительной математики и кибернетики Московского государственного университета. Недавно на Хабре была статья о том, каким наш факультет видится студенту первого курса, а теперь этот пост позволит вам немного больше узнать о том, чем занимаются студенты нашего факультета на более старших курсах. Пример того, над чем работают пятикурсники — это наша библиотека для интерактивной визуализации научных данных DynamicDataDisplay (сокращенно — D3).
Читать дальше →
Total votes 44: ↑35 and ↓9+26
Comments32

Техподдержка всего мира: местный колорит IT, сдобренный своей версией английского

Reading time14 min
Views77K

Всемирная техподдержка


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

Конечно можно возразить, мол, что это за разделение такое, но такую вещь как национальный колорит отрицать ну никак нельзя, как и то, что он накладывает свой отпечаток на все сферы жизнедеятельности человечества.
Но начнём по порядку
Total votes 166: ↑161 and ↓5+156
Comments70

Некоторые аспекты логирования ASP.NET-сайта

Reading time16 min
Views21K
Здравствуйте!

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

Сайт написан на ASP.NET MVC 5 и Web API 4, для логирования используется библиотека NLog, сайт хостится в облаке Амазона. Записи лога пишутся в три места (target по терминологии NLog): в файловую систему (подпапку Logs папки App_Data, в которую разрешается доступ на запись при стандартных настройках деплоя Amazon Elastic Beanstalk), на сервис logentries и в БД. Записи лога за день ведутся в отдельный файл, в названии которого указывается текущая дата.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments19

Построение волнистой линии через Кривые Безье

Reading time3 min
Views20K
Доброе время суток, хабровчане. Сегодня я хочу рассказать вам про рисование симметричной волнистой линии при помощи Кривых Безье, используя только 2 точки.

Предисловие


При создании CAD-систем, часто возникает необходимость рисования не просто прямых линий, а волнистых или ломаных. Так как в обоих случаях линия симметрична относительно прямой, проходящей через начальную и конечные точки, то необходимо вычислить точки, лежащие на параллельных главной прямых. О том, как это сделать, пойдет речь ниже.
Читать дальше →
Total votes 21: ↑13 and ↓8+5
Comments5

Автоматизация снятия показаний со счетчиков воды

Reading time6 min
Views216K
Все знают, что лень двигатель прогресса. Так случилось и в моем случае.



В квартире присутствует 6 точек раздачи воды (3 холодные и 3 горячие). На каждой из точек стоит счетчик.
Каждые 2 счетчика спрятаны за люками скрытого монтажа, один из люков находится за зеркалом, которое нужно снять, чтобы до него добраться.

Раз в месяц с 20 по 25 число необходимо снимать показания со всех счетчиков и отправлять данные в Управляющую Компанию на бланке определенного образца.

В какой-то момент мне надоело открывать люки, снимать зеркало и было решено автоматизировать снятие показаний.
Читать дальше →
Total votes 75: ↑67 and ↓8+59
Comments136

OpenHAB — стань программистом собственного жилища

Reading time9 min
Views198K
image
Дом — это машина для жилья
Ле Корбюзье

В этом посте я расскажу об opensource проекте домашней автоматизации openHAB.
openHAB переводится как "Open Home Automation Bus". Это значит, что он нацелен на создание универсальной платформы для объединения всей домашней «умной» техники в единую систему управления.

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

Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments96

Эмоции.js

Reading time2 min
Views23K


В статье описывается опыт создания текстового поля с возможностью вставки смайлов, проблемы которые мне встретились и их решения, а так же ссылка на репозиторий с готовым jQuery плагином. Если вам интересно, прошу под кат.
Читать дальше →
Total votes 27: ↑19 and ↓8+11
Comments35

Несколько интересностей и полезностей для веб-разработчика #25

Reading time4 min
Views29K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Tracking.js




Крошечная библиотека ( всего 7 кб ) содержит в себе различные техники компьютерного зрения в вебе. Tracking.js уже позволяет отслеживать различные объекты, цвета, лица как на фотографиях, так и с помощью веб-камеры. Проект собрал уже почти 2000 звезд на GitHub.

  var colors = new tracking.ColorTracker(['magenta', 'cyan', 'yellow']);

  colors.on('track', function(event) {
    if (event.data.length === 0) {
      // No colors were detected in this frame.
    } else {
      event.data.forEach(function(rect) {
        console.log(rect.x, rect.y, rect.height, rect.width, rect.color);
      });
    }
  });

  tracking.track('#myVideo', colors);

Читать дальше →
Total votes 55: ↑52 and ↓3+49
Comments1

Восстановление данных с видеорегистратора

Reading time4 min
Views93K
image

Уже много лет к нам в лабораторию DATALABS приносят на восстановление данных диски и флешки из систем видеонаблюдения. Это и стационарные видеорегистраторы и автомобильные регистраторы. В большинстве своём однодисковые, но бывают и много дисковые, а автомобильные как правило с microSD.
Под катом обзор как происходит процесс восстановления.

Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments32

Выразительная простота python на примере задач из комбинаторики

Reading time2 min
Views25K
В процессе самообучения языку программирования python(имея знания с/с++) решил написать в качестве задания функции генерирующие элементы из различных множеств комбинаторных конфигураций. Конечно, можно справедливо заметить, что подобный функционал уже есть в стандартной библиотеке python в модуле itertools, но у каждого должно быть право изобрести велосипед, тем более в целях обучения…
Тот кто знаком с основами теории вероятностей должны помнить, что такое урновые схемы и о чем эта таблица:


И так ТЗ — написать четыре генератора, которые принимая строку s, состоящую из уникальных символов, и размер выборки к, возвращают строку — выборку с повторением/без повторений из k символов строки s порядок важен/не важен.
В результате получился следующий код:

import itertools
from functools import partial

import unittest

def template(s, k, assertion, reducer):
    n = len(s)
    assert assertion(n, k)
    
    if k == 0:
        yield ""
    elif k == 1:
        for c in s:
            yield c
    else:
        k-=1
        for i, c in enumerate(s):
            new_s = reducer(s, i)
            if not assertion(len(new_s), k):
                break
            for res in template(new_s, k, assertion, reducer):
                yield c+res
            
assertion_norep = lambda n, k: n > 0 and n >= k and k >= 0
assertion_rep   = lambda n, k: n > 0 and k >= 0

permutation_norep = partial(template, assertion=assertion_norep, reducer=lambda s, i: s[:i]+s[i+1:])
permutation_rep = partial(template, assertion=assertion_rep, reducer=lambda s, i: s)
combination_norep = partial(template, assertion=assertion_norep, reducer=lambda s, i: s[i+1:])
combination_rep = partial(template, assertion=assertion_rep, reducer=lambda s, i: s[i:])


class TestCombinatoricGenerators(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.test_string = "abcdefg"
        cls.k = 5

    def test_permutation_norep(self):
        self.assertEquals(set(permutation_norep(self.test_string, self.k)),
                          set(map(''.join, itertools.permutations(self.test_string, self.k))))

    def test_permutation_rep(self):
        self.assertEquals(set(permutation_rep(self.test_string, self.k)),
                          set(map(''.join, itertools.product(self.test_string, repeat=self.k))))

    def test_combination_norep(self):
        self.assertEquals(set(combination_norep(self.test_string, self.k)),
                          set(map(''.join, itertools.combinations(self.test_string, self.k))))

    def test_combination_rep(self):
        self.assertEquals(set(combination_rep(self.test_string, self.k)),
                          set(map(''.join, itertools.combinations_with_replacement(self.test_string, self.k))))

if __name__ == '__main__':
    unittest.main()


Так как python является языком еще более высокого уровня абстракции, чем с/с++, поэтому он позволяет проще и выразительнее писать код, который бы на других языках выглядел бы более громоздко и запутаннее. Новичкам в python я хотел бы обратить внимание на несколько моментов:

  • return после yield
  • Рекурсивный генератор
  • Шаблон стратегия
  • Использование lambda функций


P.S.
Могу добавить, что я не сразу пришел к подобному решению, использующему общую «шаблонную» функцию. Сначала я написал все функции по отдельности, а потом выделил общее и различное.
Total votes 47: ↑22 and ↓25-3
Comments36

О формуле Байеса, прогнозах и доверительных интервалах

Reading time9 min
Views69K
На Хабре много статей по этой теме, но они не рассматривают практических задач. Я попытаюсь исправить это досадное недоразумение. Формула Байеса применяется для фильтрации спама, в рекомендательных сервисах и в рейтингах. Без нее значительное число алгоритмов нечеткого поиска было бы невозможно. Кроме того, это формула явилась причиной холивара среди математиков.

image

Читать дальше →
Total votes 86: ↑83 and ↓3+80
Comments19

Scrum — как эффективно работать без project-менеджера

Reading time22 min
Views93K

Вместо введения


За последние 3 года работы мне довелось работать в самых различных ипостасях: исследователем, разработчиком и руководителем проектов. Есть различные стили управления: западный (когда предоставляется большая свобода в коллективе и многое построено на доверии, уважении, личной организованности отдельного индивидуума) и восточный (когда штрафуется каждое опоздание, жестко фиксируются сроки, во главе угла стоит железная дисциплина коллектива и если человек не справился с поставленными целями — наступает расставание). Руководитель проекта должен сочетать в себе два этих элемента: яблоко и кнут, подпускать людей к себе, чтобы разработчики вам доверяли, но и соблюдать субординацию, так как отношение-отношениями, а нацеленность на результат должна быть всегда.

Но куда важнее: как вы двигаетесь к поставленной цели, как организуете свой рабочий процесс… В этой статье хотелось бы поделиться с достопочтенной публикой одной из наших непрофессиональных видео-лекцией, которую мы снимали для себя. Думаю, в каждом коллективе наступает такой момент, когда что-то может идет не совсем так, как хотелось бы. Хочется каких-то изменений и лучше прежде всего начинать их с себя. Как говорится — если хотите изменить мир, то стоит это начать прежде всего с вас самих же и вашего ближайшего окружения.

Для удобства сделал субтитры к видео, чтобы смотреть было проще. Замечу лишь, что это не профессиональная видео-лекция и лектор нигде эту методологию не читает специально. Дина Насырова (Тим Лидер из Fujitsu) пришла к нам в знак уважения, чтобы помочь наладить процесс работы коллектива и заодно поделилась своим собственным богатым опытом. Встреча прошла год назад — с тех пор много воды утекло. Но спустя время до сих пор вспоминаю ее, так как информация представленная в ней мне очень сильно пригодилась.

image
Читать дальше →
Total votes 30: ↑19 and ↓11+8
Comments42

Полезные материалы для мобильного разработчика #65 (4-10 августа)

Reading time2 min
Views12K
На это неделе мы узнали как стать ниндзя Xcode, возмутились политикой Google Play, рассмотрели ему альтернативы, научились делать прототипы и встраивать планшет в автомобиль. Мобильная разработка не затихает даже в жарком августе!

Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments3

Маркетинг для финансовых институтов. Часть первая: кампании

Reading time6 min
Views9.4K
image
Sad but true

Чтобы хоть как-то систематизировать свои знания по digital marketing (модное нынче словосочетание) решил написать серию статей по тому, как мне лично довелось приводить в порядок маркетинг в финансовых институтах (aka банках).

Intro


Я долгое время занимался проектами по Oracle Siebel, но сейчас перешел в область бизнес-анализа, хотя и имею достаточно большой опыт внедрения решений на основе этого продукта (5+ лет). И каждый раз, совершенно на любом проекте по маркетингу, вижу, что не всегда со стороны заказчика есть внятное понимание, как делать маркетинг в реалиях 21 века.
Требую больше скандальных подробностей
Total votes 19: ↑16 and ↓3+13
Comments8

Deb.js: самый крохотный отладчик в мире

Reading time6 min
Views18K
Перевод статьи «Deb.js: the Tiniest Debugger in the World», Krasimir Tsonev

Мы, как разработчики, пишем код. Но мы не просто пишем код, мы также проверяем, работает ли написанный нами код. Мы тратим много времени и усилий, чтобы удостовериться, что наши программы делают то что долны делать. процесс отладки зачастую бывает болезненным. Особенно, если мы не используем подходящие инструменты. Чтобы справиться с данной проблемой, сегодняшняя заметка представляет Deb.js, маленькую JavaScript библиотеку, которая помогает при отладке в браузере.
Читать дальше →
Total votes 62: ↑53 and ↓9+44
Comments16

Кастомные события JavaScript

Reading time2 min
Views67K
Перевод статьи «JavaScript CustomEvent», David Walsh

С самого появления JavaScript, события были шлюзом ко взаимодействию пользователя в браузере. События сообщают нам не только о том, что происходит взаимодействие, но также вид взаимодействия, задействованные элементы и предоставляют методы для работы с событием. Создание и инициирование(triggering) кастомных событий всегда являлось более сложной задачей. С использованием JavaScript CustomEvent API, эта сложность может быть устранена. CustomEvent API позволяет разработчикам не только создавать кастомные события, но также инициировать их на элементах DOM, передавая данные по цепочке. Самое главное, что API максимально прост!
Читать дальше →
Total votes 37: ↑30 and ↓7+23
Comments17

JavaScript модули

Reading time4 min
Views18K
Перевод статьи «JavaScript Modules» с сайта jsmodules.io.

В новой версии JavaScript появится модульная система, главным образом вдохновленная идеей модулей Node.js.
В этой статье я расскажу, как это будет работать.

Создание модуля


В качестве упражнения, мы построим простой asap модуль, который позволит назначать выполнение действий «как только так сразу» асинхронным образом. В Node.js, вы можете сделать это при помощи process.nextTick, есть и разные подходы, которые работают во многих браузерах. Мы создадим модуль, который будет работать в любом окружении.1
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments10

Information

Rating
Does not participate
Registered
Activity