Pull to refresh
1
0
Владимир Щипанов @Zloy_pacifist

PHP-developer

Send message

Как дебажить переменные окружения в Linux

Reading time4 min
Views28K
Часто бывает так, что приходишь на машину и обнаруживаешь какой-то скрипт, запущенный под системным пользователем неделю назад. Кто его запустил? Где искать этот run.php? Или добавляешь запись в /etc/crontab, а скрипт там падает с ошибкой «command not found». Почему? И что делать? 

У меня есть ответы на эти вопросы.

Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments22

Приятное с полезным или разработка под ASIO на C++

Reading time6 min
Views12K

Будучи потенциальным программистом и любителем электрогитар, я не мог остаться в стороне от разработки музыкального ПО. Все кто когда-либо пытался подключить электрогитару к компьютеру на ОС Windows, используя какой-либо гитарный процессор, знают, что зачастую для этих целей требуется наличие интерфейса ASIO (Возможно и другие, но ASIO наиболее популярен). Это связано с тем, что для обработки звукового ввода и вывода тратится значительное время, и, как следствие, при игре на инструменте слышно неприятную задержку, которая весьма сильно затрудняет игру. ASIO позволяет пропустить этап микширования звука при его выводе и, соответственно, значительно уменьшить задержку. Подробнее об этом здесь.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments26

19 концепций, которые нужно изучить для того, чтобы стать эффективным Angular-разработчиком

Reading time14 min
Views35K
TODO-приложение во фронтенд-разработке — это то же самое, что «Hello world» в обычном программировании. При создании TODO-приложений можно изучить выполнение CRUD-операций средствами того или иного фреймворка. Но часто подобные проекты лишь весьма поверхностно касаются того, что на самом деле умеет фреймворк.

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



Для освоения Angular нужно очень много всего изучить. Многие разработчики застревают на начальных этапах освоения Angular. Происходит это из-за того, что они не знают о том, куда им двигаться, или не знают того, по каким ключевым словам им искать информацию, которая позволит им сделать шаг вперёд. Автор этого материала говорит, что ей, когда она начинала осваивать Angular 2+, хотелось бы, чтобы ей попалось бы руководство по данному фреймворку, похожее на это.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments11

Бенчмарки для Linux-серверов: 5 открытых инструментов

Reading time4 min
Views24K
Сегодня мы расскажем об открытых инструментах для оценки производительности процессоров, памяти, файловых систем и систем хранения данных.

В список вошли утилиты, предлагаемые резидентами GitHub и участниками тематических тредов на Reddit, — Sysbench, UnixBench, Phoronix Test Suite, Vdbench и IOzone.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments5

Делаем педаль реверберации с применением микросхем PT2399 (часть 1)

Reading time4 min
Views14K

Вступление


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


Рисунок 1. Реверберация в реальной ситуации

В старые добрые времена единственный способ воспроизвести эффект реверберации — использовать реальную реверберационную камеру — большую комнату со сложной геометрией и тщательно отобранным материалом для стен, с установкой громкоговорителей и микрофона в определенных местах внутри камеры. Первая попытка имитировать реверберацию в помещении без реальной реверберационной камеры осуществлялась с помощью реверберационного резервуара с пружиной (см. ссылку [1]). Основная конструкция пружинного ревербератора показана на рисунке 2.


Рисунок 2. Конструкция резервуара с пружинной реверберацией
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments5

Восемь малоизвестных опций Bash

Reading time3 min
Views43K
Некоторые опции Bash хорошо известны и часто используются. Например, многие в начале скрипта пишут

set -o xtrace

для отладки,

set -o errexit

для выхода по ошибке или

set -o errunset

для выхода, если вызванная переменная не установлена.

Но есть много других опций. Иногда они слишком путано описаны в манах, поэтому я собрал здесь некоторые из наиболее полезных, с объяснением.
Читать дальше →
Total votes 82: ↑79 and ↓3+76
Comments13

Изготовление печатных плат ЛУТ'ом от А до Я

Reading time8 min
Views131K
Доброго времени суток! Среди моих знакомых бытует мнение, что самостоятельно изготавливать печатные платы (ПП) бесполезно. Учитывая, что современные компоненты далеко ушли от DIP корпусов, то кустарно травить платы под них даже и не стоит пытаться. Тем не менее необходимость в быстрой оценке того или иного компонента всегда есть, и ждать несколько суток заказанной платы времени нет. И это учитывая, что заказ за «несколько суток» дорог, для одноразовой задачи.

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

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

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

Под катом подробности и трафик.
Подробности
Total votes 88: ↑86 and ↓2+84
Comments86

Музыка для ваших проектов: 12 тематических ресурсов с треками по лицензии Creative Commons

Reading time7 min
Views121K
Подборка пригодится разработчикам, дизайнерам, видеорежиссерам и контент-мейкерам, которые ищут музыку для своих проектов — приложений, игр или видеороликов.

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

Total votes 57: ↑56 and ↓1+55
Comments9

Ловушка (тарпит) для входящих SSH-соединений

Reading time4 min
Views37K
Не секрет, что интернет — очень враждебная среда. Как только вы поднимаете сервер, он мгновенно подвергается массированным атакам и множественным сканированиям. На примере ханипота от безопасников можно оценить масштаб этого мусорного трафика. Фактически, на среднем сервере 99% трафика может быть вредоносным.

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

Чаще всего тарпиты применяют для защиты. Технику впервые разработали для защиты от компьютерных червей. А сейчас её можно использовать, чтобы испортить жизнь спамерам и исследователям, которые занимаются широким сканированием всех IP-адресов подряд (примеры на Хабре: Австрия, Украина).
Читать дальше →
Total votes 86: ↑84 and ↓2+82
Comments66

Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения

Reading time8 min
Views20K


Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo.

Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер.

Недавно мы рассказывали о том, какими инструментами пользуемся для профилирования. Напомню: одним из инструментов для анализа производительности, когда непонятно, какие части кода повлияли больше всего на увеличение времени формирования ответа, является XHProf. Это расширение для PHP, которое позволяет профилировать код на боевом сервере и впоследствии  улучшать его.

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

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

В этой статье я расскажу о деталях реализации и особенностях использования этого инструмента.
Читать дальше →
Total votes 84: ↑84 and ↓0+84
Comments7

Магические жесты как вызов для электронщика

Reading time7 min
Views17K
Волшебная палочка — это круто, но куда круче творить волшебство просто движением рук. Чтобы это стало возможным, в 2014 году мы занялись распознаванием жестов и сделали перчатку на акселерометрах для ролевой игры. Проект получился сложным и с далеко идущими последствиями.


Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments40

Перчатка — устройства ввода. Датчик изгиба

Reading time4 min
Views19K

Предисловие


В данной статье рассмотрим как сделать руку-клавиатуру, а также самодельный датчик изгиба (сгибания). На одной руке, как правило, 5 пальцев — это дает сделать 32 (2^5) комбинации. Но на русский язык не потянет (33-32 символа), а вот на английский язык как раз, ещё и останется место для space/backspace/enter и т.д.


Немного идей: если подумать, то это интересный джойстик; если присоединить вторую руку, то это 1024 комбинации, а это возможно музыкальный инструмент; внедрить гироскоп/акселерометр и улучшить до мышки.

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

Не так страшен жидкий металл

Reading time4 min
Views107K


T-1000


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

Но почему же его не используют все и везде? У многих жидкий металл ассоциируется со страшной процедурой delidding (скальпирование, снятие верхней крышки процессора). Страх повредить драгоценный процесор, плюс страх перед сложностью нанесения (по сравнению с обычной термопастой). И главное — боязнь, что жидкий металл случайно попадет куда-то не туда и что-нибудь замкнет.

Да, все эти страхи обоснованы. Однако если Вы уверены, что руки растут из правильного места, то глупо хотя бы раз не попробовать воспользоваться магией под названием liquid metal. Ни один кулер никогда не даст вам такого прироста производительности системы охлаждения.

А в некоторых случаях даже в скальпировании нет необходимости. О чем и пойдет речь далее.
Читать дальше →
Total votes 62: ↑59 and ↓3+56
Comments176

Первое знакомство с командой ss

Reading time4 min
Views65K
В Linux есть программы, которые пригодятся программистам, специалистам по информационной безопасности, администраторам… короче говоря, каждый найдёт здесь то, что ему нужно.

Инструмент командной строки netstat был одним из тех средств, которыми часто пользовались системные администраторы. Однако команда netstat была признана устаревшей и на смену ей пришла более быстрая и удобная в использовании команда ss.



Сегодня мы поговорим о том, как применять ss для того, чтобы узнавать о том, что происходит с сетью на компьютере, работающем под управлением Linux.
Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments13

Возможности JavaScript, о существовании которых я не знал

Reading time5 min
Views48K
image На днях я читал материалы на MDN и наткнулся на некоторые довольно интересные возможности и API JavaScript, о существовании которых я не знал. Хочу сегодня о них рассказать.

Не берусь судить о том, пригодятся ли они кому-нибудь, но, полагаю, что раз уж всё это есть в языке, то об этом полезно, как минимум, знать.
Читать дальше →
Total votes 82: ↑74 and ↓8+66
Comments149

21 совет по эффективному использованию Composer

Reading time9 min
Views26K

Хотя большинство PHP-разработчиков умеют пользоваться Composer, не все делают это эффективно или лучшим возможным образом. Поэтому я решил собрать советы, которые важны для моей повседневной работы. Большинство из них опираются на принцип «От греха подальше»: если что-то можно сделать несколькими способами, то я выбираю наименее рискованный.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments7

Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

Reading time25 min
Views128K
Привет, Хабр! Встала передо мной недавно задача: настроить максимально надежный кластер серверов PostgreSQL версии 9.6.

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

Планируя кластер я проштудировал много статей, как из основной документации к PostgreSQL, так и различных howto, в том числе с Хабра, и пробовал настроить стандартный кластер с RepMgr, эксперементировал с pgpool.

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

В итоге где-то (уже не вспомню точно где) нашел ссылку на прекрасный проект Zalando Patroni, и все заверте…
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments69

Двенадцать советов по повышению безопасности Linux

Reading time8 min
Views54K
imageМы живём в опасное время: едва ли не каждый день обнаруживаются новые уязвимости, на их основе создают эксплойты, под ударом может оказаться и обычный домашний компьютер на Linux, и сервер, от которого зависит огромная организация.

Возможно, вы уделяете внимание безопасности и периодически обновляете систему, но обычно этого недостаточно. Поэтому сегодня мы поделимся двенадцатью советами по повышению безопасности Linux-систем на примере CentOS 7.
Читать дальше →
Total votes 43: ↑36 and ↓7+29
Comments84

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Lead
PHP
JavaScript
Node.js
TypeScript