Search
Write a publication
Pull to refresh
4
0
trdm @trdm

Пользователь

Send message

Как мы писали SLA

Reading time6 min
Views93K
Всем привет. Я с моими коллегами работали(ем) в небольшой аутсорсинговой компании. Таких мелких компаний, предоставляющих услуги по обслуживанию инфраструктуры достаточно много, да и почти каждый Системный администратор или ИТ менеджер задумывался, а не начать ли мне подобный бизнес? Одному ли, или с партнером? Вопросов на этом этапе возникает много и я со своей позиции могу поделиться опытом по созданию подобной «конторы».
Начать хотелось бы с конца, ну или почти с конца — с написания SLA. На самом деле SLA просто необходима, даже если вы начинаете работать один и берете себе клиентов на фриланс. SLA сможет помочь вам мотивированно отказывать симпатичной секретарше в просьбе починить очередной чайник. Я конечно же утрирую, но истина не так далека от примера с чайником. Если вы хотите предоставлять конвеерные услуги, т.е. такие, которые бы были идентичны от клиента к клиенту, то SLA вам в руки. Его можно называть как угодно: доп. соглашением, соглашением уровня сервиса или просто приложением к договору.
Собственно мы столкнулись с задачей по написанию SLA, когда поняли, что клиенты недовольны тем, что мы не являемся по щелчку пальца и не решаем задачи по мановению волшебной палочки. Твердо решив узаконить отношения с клиентами был составлен юридически «правильный» договор и некое подобие SLA. Конечно многие ИТ менеджеры начнут кидать в меня помидоры, но все же, то что мы создали имеет право называться SLA, т.к. несет аналогичную смысловую нагрузку.
Читать дальше →

Итак, закон о мессенджерах: удивимся же вместе…

Reading time6 min
Views53K
Не успели ещё закончить обсуждение онлайн-касс, как на арену вышел новый закон. Почитать pdf-версию, можно, например, на Консультанте, а, собственно, текст со всеми заметками — здесь.

Опять ситуация, когда законопроект уже внесён, а обсуждение только началось. Я имею ввиду широкое обсуждение. Зачем оно?


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

Favicon сегодня: форматы, поддержка, автоматизация

Reading time10 min
Views132K
На сегодняшний день favicon — это не просто значок 16x16 во вкладке браузера. Он является важной составляющей интерфейса, а также играет немаловажную роль в прогрессивных веб-приложениях. Существует немало способов подключения и использования favicon, о которых я расскажу в данной статье.



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

Современный CMake: 10 советов по улучшению скриптов сборки

Reading time8 min
Views87K

CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.

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

Синхронизация состояний в многопользовательских играх

Reading time13 min
Views47K
image

Проблема многопользовательских игр


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

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

Обычно программа игры должна симулировать следующее:

изменения в окружении с учётом времени и вводимых игроками данных.

Игра — это программа, хранящая состояние, поэтому она зависит от времени (реального или логического). Например, PACMAN симулирует окружение, в котором постоянно перемещаются призраки.

Многопользовательская игра не является исключением, однако из-за взаимодействия игроков её сложность намного выше.
Читать дальше →

Лекции Технопарка. Базы данных (весна 2017)

Reading time3 min
Views49K


Всем жаждущим знаний предлагаем ознакомиться с новыми лекциями Технопарка, посвящённым базам данных. Курс ведёт Артём Навроцкий, ведущий программист в Allods Team.


Список лекций:


  1. Введение
  2. Модификация и выборка данных
  3. Выборка данных (продолжение)
  4. Транзакции. Триггеры и хранимые процедуры
  5. Индексы и производительность
  6. Оптимизация запросов. Оптимизация структуры данных
  7. Репликация, полнотекстовый поиск, JSON
  8. Сохранность данных

Почему рискованно запрещать детям заниматься рискованными вещами

Reading time14 min
Views59K
В прошлой статье серии, посвящённой причинам и следствиям современного тренда, развивающегося в сторону чрезмерной родительской опеки, мы исследовали правдивость главной причины, по которой родители всё сильнее опекают детей и отказываются от метода «свободных прогулок», по которому росли они сами: что сегодняшний мир стал опаснее, чем был ранее.

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

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

Это можно было бы считать разумным подходом к воспитанию ребёнка, если бы такая чрезмерная бдительность не приводила бы к своим собственным рискам и недостаткам. Но, к сожалению, у этой бдительности есть недостатки.
Читать дальше →

Чек-лист по выживанию сайта

Reading time11 min
Views43K


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

«Это все только для хайлода» — скажет вдумчивый и прозорливый читатель. Плох тот веб-проект, который не мечтает стать популярным хайлодом.

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

$126 за 5 минут: как использовать ценовую разницу для стран против маркетологов

Reading time4 min
Views94K
Привет, Geektimes! Не за горами 12 июня, а значит, нас снова ждут длинные выходные. Как и в мае, многие россияне улетят в небольшой отпуск, чтобы отдохнуть от суеты. Поэтому в преддверии июньских выходных мы решили коснуться интересной и прикладной темы — как сэкономить деньги, используя VPN.

Самое простое — экономия на аренде автомобиля.

Пример: бронируем автомобиль в Брисбане (Австралия), сначала используя швейцарский IP:


Теперь меняем IP-адрес на США и пробуем снова:


Сэкономили $9 в день. Представьте, что вы едете путешествовать по Австралии на 2 недели. Соответственно, вы сэкономите $126, что очень неплохо. Сервисы по аренде автомобилей предлагают разные цены и предложения в зависимости от страны. Если вы попробуете забронировать автомобиль, допустим, из США, России и Бангкока, цены будут отличаться.

Разберем подробнее и другие примеры:
Читать дальше →

Как стать веб-разработчиком в 2017 году — план действий

Reading time2 min
Views203K
Светлана Шаповалова, редактор «Нетологии» адаптировала заметку Quincy Larson, в которой он представил три возможных пути становления веб-разработчика: для фронтенда, бекэнда и DevOps.


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

Делаем любой объект потокобезопасным

Reading time30 min
Views77K
image

В этих 3-ех статьях я детально расскажу об атомарных операциях, барьерах памяти и о быстром обмене данными между потоками, а так же о «sequence-points» на примере «execute-around-idiom», а заодно постараемся вместе сделать что-нибудь полезное — умный указатель, который делает любой объект потоко-безопасным для любых операций с его членами переменными или функциями. А затем покажем как используя его достичь производительности высоко-оптимизированных lock-free алгоритмов на 8 — 64 ядрах.
Читать дальше →

Введение в криптографию и шифрование, часть первая. Лекция в Яндексе

Reading time20 min
Views261K
Чтобы сходу понимать материалы об инфраструктуре открытых ключей, сетевой безопасности и HTTPS, нужно знать основы криптографической теории. Один из самых быстрых способов изучить их — посмотреть или прочитать лекцию Владимира ivlad Иванова. Владимир — известный специалист по сетям и системам их защиты. Он долгое время работал в Яндексе, был одним из руководителей нашего департамента эксплуатации.


Мы впервые публикуем эту лекцию вместе с расшифровкой. Начнём с первой части. Под катом вы найдёте текст и часть слайдов.

Роскомнадзор пытается добить Rutracker. Блокировки серверов-анонсеров и методы обхода

Reading time5 min
Views122K
image

Rutracker толком не потерявший свою аудиторию вполне закономерно вызывает недовольство Роскомнадзора и других ведомств. Они все-таки старались, деньги тратили, выступали с заявлениями, а оно все работает и помирать не собирается. Под блокировкой был основной сайт rutracker.org, который, по сути, был просто каталогом magnet-ссылок и torrent-файлов. Новый виток борьбы привел в добавлению в списки блокировок серверов-анонсеров. Именно они поддерживают инфраструктуру ресурса и позволяют отдельным пирам найти друг друга.

Update
2 мая СМИ запестрели заголовками о начале массовой блокировки всех анонсеров и зеркал Rutracker: lenta.ru, Вести, Известия, Ведомости. Однако в интервью Газете.Ру представитель Роскомнадзора сообщил, что блокировки проводятся в плановом режиме и ничего глобального в плане тотальных блокировок они не производили за последние дни.
«Мы не проводим никакие массированные атаки. Мы ведем целенаправленную работу по повышению эффективности блокировки пиратского контента», — подчеркнул пресс-секретарь Роскомнадзора в беседе с корреспондентом «Газеты.Ru».

Он уточнил, что ни о каком замедлении трафика для пользователей трекера речи не идет, а блокировка RuTracker проводится в плановом режиме.

Тем не менее проблема реальна, сервера блокируются, а в посте есть полезные ссылки на открытые трекеры. Поэтому решил не удалять материал.
Читать дальше →

Виртуальная клавиатура, или новые функции контекста ввода Qt

Reading time1 min
Views4.2K
Привет. Хочу поделиться ссылкой на одну статейку, тема на русском языке нигде не освещена, да и на английском есть только один пример из состава Qt, но тем не менее думаю многим было бы интересно почитать нечто полезное по сабжу. Фишка в том, что описываемый метод создания виртуальной клавиатуры не использует самописные костыли для определения попадания курсора в какое либо из полей ввода и отработки необходимости показывать/скрывать виртуальную клаву, а пользует новый API контектсов ввода Qt, созданный давным давно и расширенный в версии 4.6 некоторыми плюшками… В общем смотрим, ругаемся, комментируем =)

qt.e-werest.org/blog/tutorial/2939.html

К сожалению:
1) Не могу опубликовать просто пост-ссылку, ибо чуток кармы не хватает.
2) Делать перепост по правилам не желательно, да и подсветить нормально код в хабравском редакторе та ещё задачка.

Работа с базами данных в Qt в многопоточном окружении

Reading time9 min
Views20K
Все кто разрабатывают приложения на Qt, рано или поздно сталкиваются с работой с БД в многопоточном окружении. И если невнимательно читать Ассистант, то можно натолкнуться на одни очень интересные грабли.
А в чем грабли?

Qwt и Qt Creator. Быстро и просто. Часть 2: элементы отображения и управления

Reading time8 min
Views29K


В примерах использованы Qt Creator 3.0.0 (MinGW) и Qwt-6.1.0.
Для понимания этой статьи читателю желательно:
  • иметь начальный опыт разработки windows-приложений в среде Qt Creator;
  • понимать концепцию «сигнал-слот»;
  • познакомиться с частью №1 цикла моих статей про Qwt: habrahabr.ru/post/211204


Qwt – графическая библиотека, позволяющая значительно упростить процесс визуализации данных в программе. Упрощение заключается в следующем: нет необходимости вручную прописывать элементы отображения, такие как шкалы координат, сетки, кривые данных и проч. Следует лишь задавать параметры этих элементов.

В части №1 (постепенно разрастающегося) цикла статей мы:
• подключили Qwt к Qt Creator;
• построили график;
• настроили оси координат;
• изменяли масштаб графика (приближали/удаляли его);
• перемещались по полю графика;
• отображали координаты рядом с курсором по щелчку мышкой.

В части №2 мы расширим функциональность нашего визуализатора:
• добавим строку состояния;
• сохраним координаты клика в переменных и отобразим их в строке состояния;
• добавим кнопку на панель управления;
• добавим на панель управления QwtCounter (поле для номера, значение которого можно изменять стрелками, см. картинку).
• зададим с помощью QwtCounter смещение графика x;
• нажатием на кнопку сместим график на ранее заданную величину х.

Примечание: В рамках этой статьи при добавлении элементов управления GUI не используется.

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

Правильное использование QThread

Reading time5 min
Views186K
В недавнем проекте с Qt пришлось разбираться с классом QThread. В результате вышел на «правильную» технологию работы c QThread, которую буду использовать в других проектах.
Читать дальше →

Организация сетевого взаимодействия на Qt

Reading time4 min
Views21K
В данной статье я бы хотел рассказать об одном из вариантов организации сетевого взаимодействия в программах, написанных на Qt, используя библиотеку QexRemint. Эта библиотека позволяет сериализовать/десериализовать сигналы и слоты. Дописав к ней сетевую часть, можно получить отличный и удобный механизм для удаленного вызова процедур (Remote Procedure Call).

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

Тест-тренировка зрительного внимания

Reading time3 min
Views35K
Если я напишу 2, потом 4, потом 6, тогда мы почувствуем себя хорошо, потому что мы знаем, что дальше идет 8. Мы можем это предвидеть, мы не в руках судьбы. Однако, к сожалению, это не имеет ничего общего с истиной...
х/ф «Оксфордские убийства»


Задача: обнаружить центральную фигуру среди сереньких фигур вокруг.

Данный проект — PsyMatchArea — задумывался в качестве альтернативы знаменитым таблицам Шульте. С теми же целями (тренировка зрительного периферического внимания), но с другими, более «отмороженными» исходными предпосылками. Во-первых, нужно было уйти от цифр и букв — символов, знакомых каждому практически с яслей и потому распознаваемых на автомате без активного вовлечения сознания в процесс. Во-вторых, чтобы внимание как можно меньше подменялось памятью (и вообще не расслаблялось), надо было обеспечить соответствующие «помехи» — смена позиций, мерцания, наложения и т.п.
Читать дальше →

Qt — статическая линковка библиотеки под Windows

Reading time2 min
Views59K
Всем доброго времени суток, решил написать эту статью специально для тех кто хочет или еще захочет чтобы его программка написанная c помощью Qt под Windows работала даже там где о Qt и не слышали, на Хабре есть статья где данная проблема решается сопровождением нашего .exe библиотечками от skazkin. Сам очень долго искал решение этого вопроса, но практически везде об этом говорили говорили, но ничего действенного так и не получалось. В итоге собирая и анализируя все что приходило мне из разных источников, я наконец-то сделал это и если кому ещё интересно всех прошу под кат
Читать дальше →

Information

Rating
9,115-th
Registered
Activity

Specialization

1C Developer
Middle
From 170,000 ₽