Search
Write a publication
Pull to refresh
10
0
Павел @Unixspv

Frontend Developer

Send message

Отправляем SMS со своего номера Мегафон без GSM-аппарата

Reading time1 min
Views26K
Приветствую!

Некоторое время назад Yastrebon опубликовал найденную фичу отправки sms\mms через шлюз Мегафона. Причем отправлять со своего номера и оплачивать со своего-же счета (включая разные бонусные программы и пакеты).

Выдалось свободное время и я решил написать библиотечку-враппер над этим сервисом.

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

Используем console на полную

Reading time6 min
Views459K
Метод console.log() — отличный способ вывести отладочную информацию, не мешая пользователю. Но знаете ли Вы, что объект console имеет еще уйму других не менее полезных методов? Очень редко разработчики используют этот функционал, ограничиваясь неблокирующим alert'ом. Что-ж, давайте исправим это положение.

Вкусности console

Ищем быстро, еще быстрее

Reading time3 min
Views22K
Натолкнулся в разделе QA на интересный вопрос. Ответ на него заставил написать эту статью как бОлее полный ответ на вопрос «как организовать поиск по множеству параметров, как в Яндекс-маркете, например».

Я знаю, что на Хабре, да и вообще есть много сторонников noSQL решений (сам не без греха), но все же я сторонник сначала подумать, а уже потом выбирать решение.

Итак, что имеем в «ДАНО»
  • Имеем 120 чекбоксов — вариант 1/0
  • Имеем 30 «радио» с выбором «да/нет/не важно»
  • Имеем 2-3 слайдера для указания диапазона цен/размера чего нить
  • Имеем самое главное: 12 млн записей в БД.
  • Имеем Select * From tovar Where (wifi=true) and (led=false) and (type=3) and ….остальные параметры …; со временем выполнения близкому к истерике клиента.

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

TOP'ай сюда

Reading time5 min
Views184K
Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

top

Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

atop


Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
Читать дальше →

Как ретро радиоприемники Tivoli завоевали рынок аудиотехники

Reading time3 min
Views35K
История компании Tivoli – это классический пример реализации так называемой «американской мечты», когда упорство, труд, талант, и, конечно, немного везения позволяют достичь весьма серьезных результатов в бизнесе даже без огромных финансовых вложений.

image

Девять лет назад о компании Tivoli мало кто слышал, а теперь ее приемники стоят в номерах пятизвездочных гостиниц по всему миру, красуются на обложках модных журналов, дизайнеры выбирают их для самых изысканных интерьеров, а объемы продаж не снижаются даже в кризисные годы.
Читать дальше →

Базовые рекомендации для повышения безопасности *nix веб-сервера

Reading time3 min
Views25K
Вдохновившись статьей о поиске следов взлома, решил написать статью о предупреждении взлома и базовых шагах для сведения возможности взлома сервера к минимуму.
Все шаги крайне важны, и невозможно выделить самый-самый важный, либо второстепенный.
Данная статья не является пошаговой инструкцией, а лишь списком рекомендуемых шагов.
Читать дальше →

Квантификаторы в регулярных выражениях

Reading time8 min
Views77K
imageРегулярные выражения — это арифметика для алгоритмов. Они доступны во многих языках программирования, редакторах и настройках приложений. Как и сложение с умножением они просты в использовании.
Но для правильного и эффективного использования regexp-ов нужно понимание того, как они работают. Я постараюсь описать принцип работы регулярных выражений, покажу в каких случаях бывают проблемы и как их решать.

В продолжение общих советов.
Читать дальше →

Инструменты для дизайнеров и разработчиков

Reading time2 min
Views4.8K


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

Смотрим

Выпущена финальная версия среды разработки с открытым исходным кодом SharpDevelop 4.0

Reading time1 min
Views5.9K
imageЗавершена разработка четвертой версии открытой и бесплатной среды разработки SharpDevelop. Эта среда предлагается как среда разработки для языков на базе .NET: C#, VB.NET, Boo, IronPython, IronRuby, F#.

SharpDevelop содержит дизайнеры форм для проектов Windows Forms, WPF и моделей баз данных Entity Framework. Кроме того, в наличии все необходимые инструменты разработки: завершение кода, рефакторинг, отладка, анализ кода, unit testing ( c code coverage), профилирование кода. С помощью расширения можно добавить поддержку StyleCop.

SharpDevelop содержит встроенную поддержку систем контроля версий SVN и Git. Поддерживается мультитаргетинг для разных версий .NET. Среда поддерживает сборку проектов с распараллеливанием, если в системе есть многоядерный процессор.

Остальные возможности SharpDevelop 4.0 можно узнать по следующей ссылке на официальном сайте.

В четвертой версии SharpDevelop были добавлены следующие возможности:
  • WPF Designer
  • Entity Framework (EF) Designer
  • C# 4.0 support
  • VB.NET 10 support
  • New productivity features
  • Alt+Ins has been reimplemented
  • Code completion in IronPython
  • Unit testing with IronPython
  • Unit testing with IronRuby
  • Custom unit test runners
  • New Git source control addin
  • SharpDevelop supports the new Help Viewer
  • Grouping support in SharpDevelop Reports
Загрузить SharpDevelop 4.0 можно по следующей ссылке. Новая версия среды разработки требует предустановленный .NET Framework 4.0. Исходные коды проекта доступны по этой ссылке.

PHP и Dropbox. Удаленное хранилище пользовательских файлов

Reading time3 min
Views15K

Применение


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

Решение


В качестве решения я предлагаю схему PHP<->Dropbox. Dropbox нам интересен тем, что каждому новому пользователю выделяеся 2Gb виртуального дискового пространства, а так же возможность отката на предыдущие версии файлов. Это обеспечивает нам стабильное хранилище, в котором не возникнет случаев безвозвратно удаленных файлов.
Читать дальше →

Политика управления частотой процессора «ondemand» и iowait в Ubuntu

Reading time2 min
Views33K
В современных версиях Ubuntu по умолчанию включена политика управления частотой процессора «ondemand». Эта штука весьма полезна в плане энергосбережения, поскольку устанавливает частоту процессора на минимально возможную, когда нагрузка на процессор невелика.

Однако, недавно я заметил, что у неё есть один недостаток: «ondemand» воспринимает нагрузку на процессор, вызванную операциями ввода-вывода, как «idle». Что это значит? Это значит, что при загрузке процессора операциями ввода-вывода частота процессора зачастую остаётся на пониженном уровне, что создаёт проблемы, если ваша система страдает от печально известного линуксового бага с iowait.
Как это исправить?

Кто в ответе за user-generated content?

Reading time5 min
Views8.5K

Владельцы сайтов против правообладателей



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

На множестве сайтов можно найти контрафактный контент, который в отдельных случаях становится предметом судебных исков. Если его выкладывает сам владелец сайта, то в таких случаях никаких неясностей не возникает. Но вот кто должен отвечать за то, что выложено пользователем? Есть распространенное мнение о том, что «владелец несет полную ответственность за то, что публикуется на его сайте». Как правило, пропагандируют его «профессиональные истцы» и прочие пропагандисты «закручивания гаек» в области копирайта. Однако, в законодательстве и в судебной практике оно подтверждения не находит. В этом мы сейчас и убедимся.
Читать дальше →

База GeoIP – страны и города

Reading time1 min
Views75K
При разработке одного проекта встала задача – определить по IP-адресу посетителя его страну и город, на русском языке. Поиск готового решения оказался безуспешным – русскоязычные базы стран можно найти (например, wipmania.com), но баз городов нет. Помощь пришла из-за границы, в лице англоязычного maxmind.com. База была приведена к нормальному состоянию (MySQL) и частично переведена на русский язык с помощью нескольких справочников (~6,000 названий, с учетом городов-тезок ~15,500).   Результат этой работы доступен для свободного скачивания.
Читать дальше →

Геттеры и сеттеры в Javascript

Reading time5 min
Views49K
Javascript — очень изящный язык с кучей интересных возможностей. Большинство из этих возможностей скрыты одним неприятным фактором — Internet Explorer'ом и другим дерьмом, с которым нам приходится работать. Тем не менее, с приходом мобильных телефонов с актуальными браузерами и серверного JavaScript с нормальными движками эти возможности уже можно и нужно использовать прям сейчас. Но по привычке, даже при программировании для node.js мы стараемся писать так, чтобы оно работало в IE6+.

В этой статье я расскажу про интересный и не секретный способ указывать изящные геттеры и сеттеры и немножко покопаемся в исходниках Mootools. Частично это информация взята из статьи John Resig, частично лично мой опыт и эксперименты.
function Foo(bar){
    this._bar = bar;
}

Foo.prototype = {
    get bar () {
        return this._bar;
    },
    set bar (bar) {
        this._bar = bar;
    }
};


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

Серверный редирект на мобильную версию сайта

Reading time2 min
Views37K
image
Предлагаю вашему вниманию простое и дешевое (по ресурсам) решение для перенаправления пользователей мобильных устройств на легкую версию сайта. Решение ориентировано на highload сайты, оптимизация которых основана на кешировании гостевых запросов.
Проверка, является ли клиент мобильным устройством, производится веб-сервером nginx и в случае успеха клиент перенаправляется на поддомен или локейшн. Это существенно экономит ресурсы и позволяет добиться большей масштабируемости по сравнение с PHP методами.
Читать дальше →

Пикселькит теперь можно купить

Reading time2 min
Views3.4K
Летом я уже рассказывал Хабру о том, как можно втиснуть все ваши старые приставки внутрь геймпада от любой из них. Если кто-то забыл о чём речь, у нас с тех пор осталось демонстрационное видео:



В комментариях к тому посту я пообещал вам в течение 3х недель сделать комплект для самостоятельной сборки этого устройства. И вот, спустя 3 месяца, он готов к продаже.) Это отличный DIY–проект на выходной день для тех, у кого руки давно тянулись к паяльнику, но он не знал с чего начать. Если вы один из них — добро пожаловать под кат за подробностями.

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

Регистрация своей фирмы собственными руками, туду-лист

Reading time12 min
Views51K
Дисклаймер: описываю только свой личный опыт и мнения автора могут не совпадать с мнением автора. Статья огромная, читать много.

Пишу эту статью, и представляю себе тебя, читателя Хабра, которой в обеденный перерыв залез почитать что-нибудь для развития. А этот читатель, т.е. ты (да, не отворачивай глаза от букв, именно ты) давно наслышан, что своё дело – это круто. И, может быть, как раз не хватало лёгкого пинка, чтобы выйти из зоны будничного комфорта и что-нибудь, да предпринять.

Эта статья адресована тем, кто уже «на грани». Она почти лишена философии и туманных ссылок, просто тупо туду-лист. Бери и делай. Намеренно избавляю тебя от объяснений, зачем молодому проекту нужна госрегистрация, такая ли уж это свобода – быть собственником и от куда взять деньги на госпошлину. Статья адресована московским стартаперам, гео-патчи от других городов приветствуются в комментариях.
Будем считать, что с формой собственности определились — это ООО и упрощенка 6%. Если кому нужно ИП – там проще, справишься и без этой статьи.

Для создания фирмы необходимо:

Минимальный реквизит для создания своей компании
Подробности под кОтом.

MRP — золотая жила для консультантов. Но не для бизнеса

Reading time9 min
Views10K
Окончательный текст этой статьи сформировался у меня в голове, когда по телевизору увидел рекламу очередной бритвы. У нее пять лезвий и она — лучшее, что, когда либо, было в бритвенной промышленности. Так утверждает реклама. У меня бритва с тремя лезвиями, хотя до этого у меня была с двумя и прекрасно брила, но мне подарили с тремя. Зачем мне может понадобиться с пятью, я вообще ума не приложу. Но маркетинг побеждает здравый смысл, и люди, несомненно, эту штуку купят, хотя на вопрос «зачем она вам», ответить смогут не всегда. Одна сменная кассета к этой новой бритве из пяти лезвий наверняка будет стоить столько же, сколько вся моя бритва вместе с двумя сменными кассетами. Ниже вы поймете, почему именно этот пример я привел.

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

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

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →

Windows Aero эффект на чистом HTML+CSS+JS

Reading time1 min
Views7.5K
Вдогонку к посту «jQuery → Впечатляющие анимационные эффекты» решил показать свою поделку, созданную скорее для развлечения, а не для реального внедрения. Я попытался сделать эффект размытия заднего фона как в Windows Aero.



Вот пример, вместе с картинками весит 200 Кб. Довольно много.

Следующий шаг — использовать одну картинку для заднего фона, а размывать с помощью SVG. Пример с SVG почему-то работает только в Опере (как написано в комментариях, в других браузерах тоже работает) и грузит процессор на 100%.

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Fullstack Developer
Lead
Angular
JavaScript
TypeScript
Node.js
Web development
Adaptive layout
Linux