Pull to refresh
3
0
bloknot @bloknot

User

Send message

Файл дескриптор в Linux с примерами

Reading time14 min
Views100K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».

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

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Total votes 136: ↑136 and ↓0+136
Comments20

Создаём собственный блокчейн на Ethereum

Reading time11 min
Views63K

Как создать приватный блокчейн Ethereum с нуля?


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

Инструкция включает в себя следующее:

  • Создание приватного блокчейна Ethereum с помощью geth.
  • Создание кошелька MetaMask для работы с приватным блокчейном.
  • Перевод средств между несколькими аккаунтами.
  • Создание, развёртывание и вызов смарт-контракта в приватном блокчейне с помощью remix.
  • Создание обозревателя блоков Ethereum поверх приватного блокчейна.
Читать дальше →
Total votes 28: ↑25 and ↓3+22
Comments5

Как создать временный файл на PHP, когда функция tmpfile() не подходит

Reading time10 min
Views24K

Когда PHP-программисту необходимо создать временный файл, он в мануале находит функцию tmpfile() и после изучения примеров начинает думать, как её лучше применить. Так было и со мной, когда мне потребовалось выгрузить данные сразу во временный файл, а не работать с ними через переменную. Но с файлом, созданным таким образом, в дальнейшем неудобно работать в силу того, что tmpfile() возвращает дескриптор, а не ссылку на локальный файл. Давайте немного углубимся в анатомию временного файла и рассмотрим подводные камни, с которыми мне пришлось столкнуться.

Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments16

Горизонтальное масштабирование. Что, зачем, когда и как?

Reading time17 min
Views118K
Александр Макаров

Александр Макаров ( SamDark )


Здравствуйте! Я Александр Макаров, и вы можете меня знать по фреймворку «Yii» — я один из его разработчиков. У меня также есть full-time работа — и это уже не стартап — Stay.com, который занимается путешествиями.

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

Что такое масштабирование, вообще? Это возможность увеличить производительность проекта за минимальное время путем добавления ресурсов.

Обычно масштабирование подразумевает не переписывание кода, а либо добавление серверов, либо наращивание ресурсов существующего. По этому типу выделяют вертикальное и горизонтальное масштабирование.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments17

PHP-Дайджест № 100 – интересные новости, материалы и инструменты (1 – 15 января 2017)

Reading time3 min
Views18K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments34

Книга «Алгоритмы: разработка и применение. Классика Computer Science»

Reading time11 min
Views42K
Привет, Хаброжители! У нас вышла новинка:

image Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.

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

Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments11

Низкая цена — не главное преимущество или чем зацепить, если не ценой?

Reading time6 min
Views21K
Разбираем, как привлечь новых клиентов, не рассчитывая исключительно на низкую цену. 9 основных факторов, влияющих на привлекательность предложения.

Я не знаю, откуда идут эти «тайные знания», но практически каждый «новичок» считает своим долгом «задавить» ценой своих конкурентов. Удачная ли это мысль — «давить» ценой вопреки всем обстоятельствам? Разберём некоторые стороны маркетинга, которые позволят отказаться от слишком низких цен.

Преимущество — это субъективное понятие, зависящее от потребности клиента.

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

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Эксплуатируем XSS уязвимость на сайте ipay.ua для кражи карточных данных

Reading time3 min
Views50K
Продолжая пентестинг отечественных платежных систем, я остановился на довольно популярном в Украине платежном сервисе ipay.ua.

Меня интересовало, на сколько PCI DSS сертификация платежными системами и проводимое ими ежеквартальное ASV-сканирование (в том числе на наличие XSS уязвимостей) гарантирует защиту данных клиентов.

Моё внимание привлекла форма p2p переводов по адресу www.ipay.ua/ru/p2p. Проверяя форму на фильтрацию вводимых данных, я добрался до поля для комментария (оно по умолчанию скрыто, что бы оно появилось, нужно поставить курсор в поле «Телефон получателя»). Как обычно, для первичной проверки, начал вводить текст:
<script>alert('XSS!')
… И только я закрыл скобку, как увидел на экране модальное окно с сообщением.

Читать дальше →
Total votes 98: ↑91 and ↓7+84
Comments61

Ansible — давайте попробуем

Reading time8 min
Views137K
Ansible — сравнительно молодая система управления конфигурацией, его история насчитывает чуть более трех лет. Но, несмотря на это, он стремительно и быстро ворвался в мир систем управления конфигурацией, потеснив Chef, Puppet и SaltStack.

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

Итак, чем же хорош ansbile:
  • низкий порог входа;
  • декларативный язык описания конфигурации;
  • на управляемые узлы не нужно устанавливать никакого дополнительного ПО;
  • просто написать дополнительный модуль.

Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments25

Роуминг своими руками

Reading time5 min
Views38K
Строим роуминг самиВсе любят путешествовать, например мне в этот раз удалось побывать в трех столицах: Праге, Вене, Будапеште. Но пост не об этом, а о том, что за неделю путешествия на телефонную связь я потратил всего 7 евро. Не ограничивая себя в разговорах с близкими, и даже работая. На настройку роуминга я потратил несколько минут перед поездкой.
На личном примере написана инструкция по построению роуминга своими руками. Кроме этого под катом вы найдете: этапы прохождения звонка в роуминге, варианты реализации каждого этапа своими руками, описание роуминговых SIM-карт полностью интегрированных с SIP и IP-АТС.

Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments19

Фактор «зачем» в управлении личными финансами

Reading time4 min
Views11K
Я больше десяти лет занимаюсь системным управлением собственными деньгами и разработал для этого собственную, весьма эффективную систему, которой я с удовольствием делюсь с окружающими. Довольно часто я вижу, что люди начинают заниматься учетом собственных финансов, а через какое-то время бросают это занятие, объясняя, что им недостаточно мотивации. Такие случаи меня очень расстраивают – потому что я искренне верю, что грамотное управление личными финансами делает жизнь человека лучше, пусть и несколько скучнее.

Я заметил, что большинство книг и систем управления личными финансами с первой страницы отвечают на вопрос «как?», практически не останавливаясь на вопросе «зачем?» Видимо, подразумевается, что ответ на этот вопрос очевиден. Однако, если бы полезность управления финансами была настолько очевидна, как например, полезность принятия пищи, или чистки зубов – этим занимались бы все, а вопрос мотивации не возникал бы настолько регулярно. В этой статье я буду анализировать управления финансами используя технику 5Y (“five why”), или «пяти зачем/почему». В этой технике вопрос «зачем?» последовательно задается пять раз, позволяя от поверхностного ответа перейти к глубинному смыслу того или иного действия.

Основой управления финансами, как личными, так и корпоративными, является качественная запись доходов-расходов. «Качественная» означает, что нужно точно записывать каждый свой расход (с доходами обычно проще), фиксируя, как минимум, сумму и категорию, а для крупных покупок – и детали покупки. Поскольку это действие является базовым практически в любой системе управления личными финансами, применим к нему метод 5Y, и спросим «Зачем нужно записывать все свои расходы?» Поехали! Дальнейшее повествование для удобства буду вести от первого лица.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments17

Как правильно вести себя с тяжелыми людьми

Reading time4 min
Views30K
image

У каждого из нас есть свой объектив, сквозь который он видит мир. В этой статье мы расскажем, о трех видах объективов, которые стоит испробовать, когда вы подвергаетесь негативным эмоциям.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments5

Работа с возражениями

Reading time6 min
Views3.7K
Что говорят люди, которые боятся внедрить у себя корпоративную социальную сеть

image

Мы занимаемся внедрением корпоративных социальных сетей, в первую очередь организационным, не технологическим, и на 80% это работа по управлению изменениями. Часто, чтобы продать услугу внедрения, приходится вначале продать клиенту идею самой корпоративной социальной сети. Когда я общаюсь на эту тему с потенциальными клиентами и просто со своими знакомыми, практически никто не относится к вопросу безразлично. Людям тема интересна. Но я очень-очень часто слышу различные возражения: о том, что есть риск нецелевого использования корпоративной социальной сети; о том, что она не для работы; кто-то, перебивая меня, начинает рассказывать о своих взаимоотношениях с Facebook или ВКонтакте.

Здесь я собрал несколько наиболее интересных вопросов и возражений и ответы на них.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments2

SonarQube. Проверяем код на качество

Reading time2 min
Views92K


SonarQube — платформа для проверки кода на качество по правилам, основанным на соглашениях и стандартах. Поддерживает более 20 различных языков программирования.

Вот здесь можно посмотреть все эти правила.

Хочу поделиться небольшим руководством, как подружить sonarQube, PhpStorm и ваш проект. Все действия описаны для Windows, но все так же настраивается и под другую ОС.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments6

Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

Reading time9 min
Views95K
Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

Определяем доступную память и активность swap.

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

$ free -m

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

$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


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

Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



Здесь представлен список сервисов, которые я изменил.

  • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
  • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
  • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Читать дальше →
Total votes 131: ↑81 and ↓50+31
Comments85

Как перестать беспокоиться и начать снимать панорамы

Reading time3 min
Views59K
image

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

Например, один из моих любимых объектов съемки — облака. Я очень люблю наблюдать за небом, как облака появляются, перекатываются из одной фигуры в другую, исчезают, и на их месте появляются новые. Но для того, чтобы сделать красивую фотографию облаков зачастую недостаточно разрешения и угла обзора цифровой камеры, поэтому приходится делать панорамы. Панорамная фотография — это общая фотография, собранная из множества отдельных кадров с фрагментами сцены. Процесс сборки панорамы в редакторе называется склейкой панорамы. Я не буду расписывать каждый шаг — дам общую информацию, которая позволит начать клеить панорамы, а уж детали программ разберете сами, если будет желание.
Читать дальше →
Total votes 54: ↑45 and ↓9+36
Comments94

Изучение «рабочих» диафрагменных чисел объектива на примере Canon EF 1.8/50 II

Reading time5 min
Views36K

Введение


Зачастую мы задаемся вопросами: на какой диафрагме лучше снимать портрет, пейзаж, на какой диафрагме количество искажений изображения будет минимальным; какой из двух объективов дает на равных диафрагмах более резкую картинку?
Читать дальше →
Total votes 33: ↑22 and ↓11+11
Comments44

Как начать летать самостоятельно, хоть на чем-то, с мотором

Reading time10 min
Views232K
Вторая статья для желающих начать летать самостоятельно.
Сегодня мы будем рассматривать варианты сжигания дохлых мамонтов (бензина) для приобретения кинетической энергии.

Парящий полет (первая статья)
  • Параплан
  • Дельтаплан
  • Планер

Моторный полет (под катом)
  • Самолет
  • Мотодельтаплан (дельталет)
  • Паратрайк (аэрошют)
  • Парамотор (карлсон, мотопараплан)
  • Мотопланер



Первый раз за штурвал самолета я сел в 18 лет. До первого самостоятельного вылета налетал 25 часов и совершил около 100 взлетов и посадок. Сейчас мой суммарный налет на всем, что летает — порядка 400 часов. Это жутко мало, чтобы считать себя опытным пилотом, но достаточно, чтобы подсесть на “летную иглу”. Приглашаю и вас стать авиазависимыми.
Запустить двигатель
Total votes 142: ↑133 and ↓9+124
Comments176

Вдогонку про самолёты и правила

Reading time5 min
Views128K
Собирался написать комментарий, но незаметно вырос целый пост.

Не согласен с половиной пунктов и этого топика, но это мои личные заморочки.
Кроме того, отсутствует самый главный — «Избегайте сдачи чего-либо в багаж любой ценой». Я давным -давно использую во всех поездках исключительно рюкзак и «разгрузки». Причина одна — среди моих знакомых уже, наверное, половина стали жертвами недоставки багажа. Некоторые — даже по два раза.
Таки чего он хочет нам сказать?
Total votes 202: ↑168 and ↓34+134
Comments222

Жесткий диск — последний шанс

Reading time2 min
Views1.2K
image
Однажды приходит время и не взирая на все наши ухищрения жесткий диск умирает. Существует масса утилит которые позволяют вытащить данные с полуживого винчестера, но что делать когда он вообще перестает читаться. На днях пришлось вспомнить один не новый, но интересный, а в отдельных случаях самый простой и эффективный рецепт «последней попытки» выуживания данных с мертвого устройства, о котором кому-то я напомню, а кому-то открою как новшество — это не последствия первоапрельского безумия, несмотря на необычность подхода.
Читать дальше →
Total votes 97: ↑86 and ↓11+75
Comments113

Information

Rating
Does not participate
Location
Россия
Registered
Activity