Как стать автором
Обновить
0
0
Артур @degart

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

Отправить сообщение

Отлаживаем сетевые задержки в Kubernetes

Время на прочтение17 мин
Количество просмотров11K


Пару лет назад Kubernetes уже обсуждался в официальном блоге GitHub. С тех пор он стал стандартной технологией для развёртывания сервисов. Теперь Kubernetes управляет значительной частью внутренних и публичных служб. Поскольку наши кластеры выросли, а требования к производительности стали более жёсткими, мы стали замечать, что в некоторых службах на Kubernetes спорадически появляются задержки, которые нельзя объяснить нагрузкой самого приложения.

По сути, в приложениях происходит будто случайная сетевая задержка до 100 мс и более, что приводит к тайм-аутам или повторным попыткам. Ожидалось, что службы смогут отвечать на запросы гораздо быстрее 100 мс. Но это невозможно, если само соединение отнимает столько времени. Отдельно мы наблюдали очень быстрые запросы MySQL, которые должны были занимать миллисекунды, и MySQL действительно справлялась за миллисекунды, но с точки зрения запрашивающего приложения ответ занимал 100 мс или больше.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии2

Database as Сode. Копаем глубже

Время на прочтение13 мин
Количество просмотров14K


В IT-проектах код пишут все. Инженеры с помощью нескольких строк управляют Kubernetes кластерами, разгоняют облака Terraform'ом и ворочают тонны конфигураций на Ansible, Chef и Puppet. QA пишут понятные бизнесу тестовые сценарии на Spock и Cucumber. Аналитики свободно, часто лучше разработчиков, разговаривают на SQL. Проектная документация в форматах Markdown, AsciiDoc или LaTEX "компилируются" в нужный формат на билд-сервере. Ну а сами разработчики, эти укротители кода, владеют сразу россыпью языков на каждый жизненный случай — клиентский, серверный, скриптовый, функциональный и пр.


Код уже давно перестал быть загадочной тарабарщиной и теперь в том или ином виде доступен и понятен многим, даже премьер-министрам. И весь этот код участвует в стандартном жизненном цикле — находится под управлением VCS, подвергается code review, автоматизированному тестированию, CI, CD. Используются общие инструменты и подходы, метрики производительности и качества. А все вместе это носит гордое название — "Everything as code".


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

Database as Code? Что за дичь?
Всего голосов 22: ↑22 и ↓0+22
Комментарии16

Реализация бизнес-логики в MySQL

Время на прочтение23 мин
Количество просмотров24K
Привет Хабр! Хочу рассказать в статье мой опыт реализации бизнес логики (БЛ) в MySQL.

Есть разные мнения насчёт вопроса стоит ли хранить БЛ в базе. Я много лет работаю с Oracle и философия Oracle подразумевает, что БЛ в БД это Best Practices. Приведу пару цитат Тома Кайта:

Tom Kyte. Effective Oracle by Design
If the database does something, odds are that it does it better, faster and cheaper, that you could do it yourself
Том Кайт. Oracle для профессионалов.
Прежде чем начать, хотелось бы объяснить вам мой подход к разработке. Я предпочитаю решать большинство проблем на уровне СУБД. Если что-то можно сделать в СУБД, я так и сделаю. [...] Мой подход состоит в том, чтобы делать в СУБД все, что возможно. [...]
При разработке приложений баз данных я использую очень простую мантру:

  • если можно, сделай это с помощью одного оператора SQL;
  • если это нельзя сделать с помощью одного оператора SQL, сделай это в PL/SQL;
  • если это нельзя сделать в PL/SQL, попытайся использовать хранимую процедуру на языке Java;
  • если это нельзя сделать в Java, сделай это в виде внешней процедуры на языке C;
  • если это нельзя реализовать в виде внешней процедуры на языке C, надо серьезно подумать, зачем это вообще делать...

В то же время в среде web-разработчиков приходится слышать мнения, что БЛ в БД это чуть ли не антипаттерн. Но я не буду останавливаться на вопросе стоит ли реализовывать БЛ в БД. Пусть каждый решает сам. Тем, кто хочет посмотреть, что у меня получилось в свете не столь обширного (по сравнению с Oracle) инструментария MySQL, добро пожаловать под кат.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии46

MyFin — удобный инструмент для ведения домашней бухгалтерии

Время на прочтение2 мин
Количество просмотров16K
Всем привет!

Хочу представить вам свою разработку. Это минималистичное и удобное средство для ведения домашней бухгалтерии. Вот скриншот для затравки:




Подробности под катом.
Читать дальше →
Всего голосов 110: ↑93 и ↓17+76
Комментарии87

Проверка ИНН в Google Spreadsheets

Время на прочтение2 мин
Количество просмотров6.3K
Ранее я публиковал уже пример генерации суммы прописью с помощью новых сервисов Google Spreadsheets
habrahabr.ru/blogs/google/104057

Теперь реализована также функция проверки правильности ввода ИНН.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии9

NASA организовало Интернет-трансляции с МКС

Время на прочтение1 мин
Количество просмотров1.3K
image
Американское аэрокосмическое управление NASA начало в прямом эфире транслировать в Интернете видео с Международной космической станции.
К сожалению, взглянуть на Землю и космос с орбиты можно лишь когда космонавты спят или отдыхают — в остальное время передатчики МКС необходимые в работе.
Съемку ведет внешняя камера МКС. То, что происходит внутри станции, решено не показывать, чтобы не превращать жизнь ее жителей на реалити-шоу и не нарушать их право на частную жизнь, передает агентство Associated Press.
Когда экипаж МКС отдыхает, пользователи Интернета могут наблюдать за Землей и звездным небом глазами космонавтов — с высоты в 350 км. над планетой. В остальное время демонстрируется заставка, которая показывает нынешнее положение станции, а также новости NASA о событиях в космосе.
Ранее аэрокосмическое управление ежедневно по часу передавало в телеэфир прямое включение со станции с комментариями из космического центра в Хьюстоне. Теперь эта программа будет также доступна и на сайте NASA.
Чтобы рассчитать, когда космонавты отходят ко сну, необходимо помнить: на МКС используется время UTC.

Трансляцию камеры МКС можно посмотреть здесь
Всего голосов 47: ↑43 и ↓4+39
Комментарии73

Как разобрать Dell Inspiron 1525 и ничего не сломать ;)

Время на прочтение6 мин
Количество просмотров71K

Конец уже содержится в начале. Джордж Оруэлл, 1948 год



Это не обычный обзор ноутбука, а скорее обзор некоторых технических возможностей и, главное, некая инструкция по полной безболезненной разборке/сборке.
Во время обзора будем стараться рассматривать его преимущества и недостатки.
Подопытный ноутбук Dell Inspiron 1525

как разобрать ноутбук
(осторожно, более 30 фото)
Приступим...
Всего голосов 62: ↑54 и ↓8+46
Комментарии71

Почему я не стану успешным

Время на прочтение3 мин
Количество просмотров6.5K
На протяжении некоторого времени я активно читал книжки и статьи про различные методы достижения успеха. Материалы эти были совершенно разные: брошюры «как изменить себя за 10 дней», статьи на некоторых интернет-ресурсах, книжки из серии «помоги себе сам», простенькие учебники по психологии, записки успешных людей.

Прочитав, осознав, и кое-что попробовав, я пришел к выводу: я не стану успешным.

Почему?
Читать дальше →
Всего голосов 314: ↑258 и ↓56+202
Комментарии421

Проблема самоопределения

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

Я не стал перечислять всё, чем мне хотелось бы владеть на уровне профессионала. Мне даже в некотором роде стыдно за это. Мне 22 года. У меня есть голова на плечах, но рассредоточенность мыслей меня губит. Многие успешные люди вторят друг другу: «Чтобы достичь в жизни чего-то, надо любить своё дело, быть ему преданным». Но как можно любить своё дело, если этих дел в голове тысяча?!

Это крик о помощи! Отчаянный крик. Для меня это огромная проблема. Наверняка у многих из вас в жизни тоже возникал такой вопрос.

Я редко обращаюсь за помощью к кому-либо, кроме себя.
Но это тот случай, когда тянуть дальше становится в прямом смысле опасным.
Всего голосов 53: ↑48 и ↓5+43
Комментарии98

Пару слов о программировании и непрограммистах

Время на прочтение4 мин
Количество просмотров2.9K
А также о тех, кто хочет научиться этому искусству. Очень субьективно.

Я горжусь своей профессией, но очень не люблю говорить людям мало сведущим в программировании и в ИТ в частности, кем я работаю.
Люди сходятся во мнении, что программист — это тот, кто связан с компьютерами. На этом сходства заканчиваются. Один думает, что я печатаю бумажки в Ворде, другой то, что ремонтирую компьютеры и прочую периферию. Я это не придумываю. Вот случай произошедший как-то в нашем замечательном военкомате. Узнав род деятельности, прапорщик обрадовался:
— О, а у нас принтер не печатает!
— Какой принтер?
— Ну такой, с лентой.
Читать дальше →
Всего голосов 163: ↑159 и ↓4+155
Комментарии200

Отличный сервис для скачивания файлов

Время на прочтение4 мин
Количество просмотров5.8K
Предыстория.

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

Из-за таких сложностей найти нужный дистрибутив удалось далеко не сразу, и только на одном китайском сервере. Я уже был даже готов скачать эти 4 гига, заплатить за трафф из собственного кармана, и ни о чём не беспокоясь, писать диплом… но, как оказалось, сервер отдавал файлы ОЧЕНЬ медленно, постоянно рвал соединение, и, как назло не поддерживал докачку (хорошо было хотя бы то, что дистрибутив был разбит на части).
А тут, собственно, начинается полезная часть рассказа.
Читать дальше →
Всего голосов 101: ↑89 и ↓12+77
Комментарии69

Украшаем Windows

Время на прочтение3 мин
Количество просмотров25K
Хочу поделиться с вами небольшой находкой. Я всегда использовал рабочий стол в компьютере не для хранения ярлыков, а скорее как красивую картинку. Ведь часто компьютер стоит просто влюченым, но не используется по прямому назначению. Можно поставить красивую обоину, прилепить пару нужных гаджетов, и вуаля! Сразу другой вид.

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

Господа, данный пост предназначен только для тех, кто заинтерисован в этом. Просьба не писать комментарии типа «А у меня стоит тема Windows Classic, черный монотонный фон, и вообще Far the best!». Спасибо.


Подробности...
Всего голосов 207: ↑150 и ↓57+93
Комментарии159

Загрузка Windows 7 с VHD-образа

Время на прочтение3 мин
Количество просмотров92K
В прошлый раз мы создали VHD-образ с Window 7 для Virtual PC. Понятное дело, что в виртуальной среде, конечно, есть свои преимущества, но тем не менее, хотелось бы, чтобы все работало пошустрее…

В случае с Window 7, также хотелось бы увидеть ее во всей красе, как минимум с запущенным aero-интерфейсом.

Далее речь пойдет о том, как загружаться с полученного VHD-образа наравне с установленной базовой системой. То есть для работы с системой не понадобится отдельный раздел и не нужно будет сносить существующую систему, Win 7 будет по прежнему храниться внутри VHD-файла, но в то же время она будет запущена в реальном окружении.

Читать дальше →
Всего голосов 47: ↑36 и ↓11+25
Комментарии50

Свободное ПО и его лицензирование

Время на прочтение1 мин
Количество просмотров4.2K
Нам с коллегой предложили подработать — установить парк машин с Ubuntu/FreeBSD в один из офисов финансовой компании, заменив ими Windows машины.
Тем самым решаются сразу две проблемы
  • апгрейд парка машин
  • проблемы с лицензионностью софта

Проблема заключается в том, что, ни Ubuntu, ни FreeBSD, насколько я знаю, не имеют сертификатов ФСТЭК, а имеется информация, что:
«Получение сертификата ФСТЭК необходимо для работы в органах государственной власти, муниципального самоуправления, образовательных и медицинских учреждениях, производственных, финансовых и других организациях, имеющих дело с конфиденциальной информацией и персональными данными.» (с) OpenNET

Отсюда вопрос:
Если придут ребята из ОБЭП и увидят на компьютерах компании Ubuntu/OpenOffice, а на серверах BSD, будет ли это ПО считаться лицензионным? Или же всё таки необходимо приобретать ALT Linux/Mandriva/Red Hat и Инфра-Ресурс Офис, с которыми в комплекте даются бумажки(читать лицензии).
Всего голосов 29: ↑27 и ↓2+25
Комментарии159

Мотивация, жизнь и работа, опять о ней

Время на прочтение3 мин
Количество просмотров2.1K
Научится заставлять себя что-то сделать для меня было нереально сложно. Мне очень повезло со способностями, поэтому все, что я брался делать выходило очень просто. Это ужасно расхалаживало меня последние пять лет. Когда я знаю, что для меня дело стоит в 30 минут, я дотяну до последних 30 минут и все сделаю «почти в срок». «Почти», потому что чем дальше я испытывал свои способности на прочность, тем чаще они давали осечки. Я банально не успевал, опаздывал со сдачей, на встречи и само собой переживал по этому поводу. Незавершенные, отложенные дела копились и копились, я оброс все большими обязательствами, идеями, проектами. Все это угнетало настолько, что мозг вырабатывал защитную реакцию — выкинуть все из головы, а значит задвинуть еще день, два, час, ахххррр!

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

Месяца три назад я стал искать решение и, кажется, оно уже было у меня в голове. С удовольствием расскажу об этом.

Читать дальше →
Всего голосов 108: ↑100 и ↓8+92
Комментарии62

Почему иногда не стоит изобретать велосипед

Время на прочтение3 мин
Количество просмотров30K
В продолжение темы, почему иногда нужно делать свой велосипед, хочу дополнить и расширить эти мысли причинами, по которым этого делать не стоит.



Причина 1. Вы не знаете, как такие велосипеды устроены


Посмотрите внимательно на предыдущий топик. Генри Форд — с детства изучал технику. Его сестра как-то сказала, что в детстве любую игрушку старались спрятать от него, потому что он ее тотчас разберет на винтики. Работал инженером в «Электрической компании Эдисона», был совладельцем «Детройтской автомобильной компании». Он точно знал, что это такое — автомобиль. Он точно знал технические нюансы. Он точно знал, что черная краска сохнет два дня, а любая другая — две недели! Ну не из-за прихоти же он однажды сказал, что автомобиль будет только черным.

Игорь Сысоев, прежде чем делать свой nginx, уже имел «достаточно неплохой опыт работы с Apache — и как у системного администратора, и как у программиста».

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

Мы как-то по просьбе своего заказчика сделали реализацию почтовой рассылки, которая делала рассылку новостей зарегистрированным пользователям. И каково было удивление нашего заказчика, когда после первой такой рассылки его заблокировали как спаммера. Пришлось копать дальше, но в итоге оказалось, что гораздо проще интегрироваться с каким-нибудь MailChimp или UniSender и не изобретать велосипеда. Там не только все продумано, но есть еще и отчеты — сколько прочитало, сколько кликало по ссылкам, сколько нажали «отписаться от рассылки» и другие очень важные моменты, которые заказчик, попросивший «сделайте нам возможность разослать новости нашим пользователям», может захотеть сделать сразу же после реализации базового функционала.

Читать дальше →
Всего голосов 65: ↑51 и ↓14+37
Комментарии30

Как выучить любой язык за 3 месяца?

Время на прочтение6 мин
Количество просмотров99K
Перевод статьи Тима Ферриса из его блога.

image

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)

Изучение языка не должно быть сложным.

Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

Время прочтения: 15 минут
Всего голосов 207: ↑186 и ↓21+165
Комментарии134

Online redo logs или Событие контрольной точки в Oracle

Время на прочтение7 мин
Количество просмотров56K
Довольно часто случается такая неприятность, что в alert.log базы одно за другим сыпятся сообщения типа «Checkpoint not complete». Стандартный совет в этом случае: «увеличьте количество и/или размер redo логов». А дальше вопрос, кто такие эти redo логи и с чем их едят.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

Развитие валидации форм

Время на прочтение9 мин
Количество просмотров22K

Валидация форм была педантичным занятием с момента появления web. Первой пришла серверная валидация. Затем она развилась в валидацию на стороне клиента для проверки результатов в браузере. Теперь у нас есть такие гиганты как HTML5 и CSS3: глава о формах HTML5 предлагает нам новые типы для input полей и атрибуты, которые делают возможным проверку ограничений поля. Базовый UI модуль CSS3 предоставляет несколько псевдо-классов, которые помогают нам стилизовать состояние валидности и менять внешний вид поля в зависимости от действий пользователя. Давайте взглянем на комбинацию обоих для создания валидатора форм основанного на CSS, который имеет достаточно широкую поддержку браузеров.

Чем больше мы можем дать подсказок пользователю, как правильно заполнять форму, в процессе заполнения, тем меньше шансов, что он сделает ошибку. Взгляните на пример CSS3 валидации форм в браузере поддерживающем CSS3 UI псевдо-классы, например Chrome 4+, Safari 5+ или Opera 9.6+. Я использовал CSS3 UI псевдо-классы и HTML5 атрибуты форм для создания валидации основанной на CSS. Давайте посмотрим как это работает.
Читать дальше →
Всего голосов 71: ↑69 и ↓2+67
Комментарии31

Установка Mercurial Server и использование авторизации по SSH

Время на прочтение2 мин
Количество просмотров32K
Несколько дней назад передо мной поставили задание — поднять mercurial-репозиторий на одной из локальных машин, и поставили одно условие — обязательная авторизация по SSH. Установка будет производится с использованием Mercurial Server на 64-битной серверной Убунте.
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии20

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность