Как стать автором
Обновить
3
Иван @ishamshurread⁠-⁠only

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

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

Практический опыт подачи электронной отчетности в Украине

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

Вводная


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

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

Исходные данные


Имеем небольшую фирму или оформились частным предпринимателем – добро пожаловать в налоговую, пенсионный, статистику и другие службы по роду деятельности. Опишу процедуру подачи отчетности от и до на примере юридического лица.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии44

Регистрируемся как частный предприниматель в Украине

Время на прочтение14 мин
Количество просмотров116K
Осознав необходимость выхода из тени или же просто смены формы деятельности из наемного работника в самозанятого гражданина приходим к тому, что надо бы зарегистрироваться в качестве частного предпринимателя (ЧП, ИП, СПД ФОП). О том, как зарегистрироваться, какую форму налогообложения выбрать IT-шнику, сколько и куда платить читаем под катом. В конце так же приложен бонус «Как получить деньги под открытие от Центра занятости» (на оплату налогов на первое время), какие виды деятельности выбрать согласно КВЭДа, а так же несколько примеров типичных документов. Актуально только для Украины.
Читать дальше →
Всего голосов 86: ↑75 и ↓11+64
Комментарии98

Руководство по собеседованию на вакансию PHP-программиста

Время на прочтение22 мин
Количество просмотров255K
Вездесущий… это определённо то слово, которым можно описать язык PHP по отношению к вебу. Он действительно вездесущ. В настоящее время, среди всех серверных языков программирования, PHP используется наиболее широко. На нём написаны более 80% сайтов, при этом следующий по популярности ASP.NET со своими 17% остаётся далеко позади.



Почему? Что позволило PHP стать настолько популярным и широко используемым? На этот вопрос нет однозначного ответа, но простота использования языка, безусловно, существенный фактор, поспособствовавший его успеху. Новички в PHP могут быстро выйти на достаточный уровень и разместить динамический контент на своих веб-сайтах с минимум познаний в программировании.

Именно в этом и заключается основная проблема поиска высококвалифицированных PHP-разработчиков. Относительно низкий порог вхождения и 20 лет развития языка привели к тому, что PHP-программисты стали такими же вездесущими, как и сам PHP. Многие из них могут на законных основания утверждать, что «знают» язык. Однако разработчики, которые действительно являются экспертами по PHP, способны создавать куда более функциональное, надёжное, масштабируемое и простое в сопровождении программное обеспечение.

Как же отличить тех, кто обладает реальной компетентностью в PHP (не говоря уже о тех, кто входит в 1% наиболее опытных кандидатов) от тех, у кого только поверхностные знания?
Читать дальше →
Всего голосов 96: ↑73 и ↓23+50
Комментарии107

Технические рекомендации к почтовым рассылкам

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


«Даже если вы получите какое-нибудь письмо, вы не сможете его прочитать»
(Марк Твен)

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

Итак, ваш проект набирает популярность и нравится пользователям, вы собираетесь оставаться с ними на связи. Вы ознакомились с административными требованиями (о которых мы писали ранее) и собираетесь ответственно и без спама организовать рассылку для тех пользователей, которые готовы ее получать. А может быть, вы просто собираетесь настроить корпоративную почту. Поднимаете из дистрибутива почтовый сервер, пишете скрипт, запускаете и… 70% получателей письмо не доставлено, у 15% оно попало в папку «Спам», а остальные не могут прочитать то, что в нем написано. О том, что делать, чтобы этого не случилось, я попробую рассказать в этой статье.
Читать дальше →
Всего голосов 54: ↑46 и ↓8+38
Комментарии25

Пара полезных команд, которые могут пригодиться при DDoS и не только

Время на прочтение3 мин
Количество просмотров82K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Всего голосов 105: ↑101 и ↓4+97
Комментарии21

Как я поборол DDoS за 15 минут

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


Привет, Хабр!

Сегодня я бы хотел рассказать об одном удачном опыте из своей жизни. О том, как я отбил DDoS атаку на свой сайт, не имея особых технических навыков. Эта статья может быть для вас полезна, а кому-то просто интересна. Сразу скажу, что это не универсальный метод и подходит не всем. Но для отражения мелких и средних атак самое то.
Читать дальше →
Всего голосов 71: ↑35 и ↓36-1
Комментарии28

Подборка полезных CSS рецептов, или чем мы занимаемся на голых пятницах

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


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

Итак, представляем вашему вниманию сборку интересных и (надеемся) малоизвестных HTML и CSS-рецептов. Будем рады, если каждый из вас узнает что-то новое!
Вперед!
Всего голосов 143: ↑122 и ↓21+101
Комментарии75

Пишем на картинках

Время на прочтение7 мин
Количество просмотров14K
В течение последнего времени что-то часто стали мелькать статьи про обработку изображений на php. Скругленные края уже были, тени были, мокрый пол был, еще куча всего было.

А вот надписей вроде еще не было. Значит будут. :-)

Представляю вашему вниманию не большой, но в тоже время достаточно богатый возможностями класс (на основе GD) написания текста на картинках TrueType-шрифтами.
Код и пример под катом
Всего голосов 104: ↑88 и ↓16+72
Комментарии36

Реализация быстрого импорта из Excel на PHP

Время на прочтение3 мин
Количество просмотров68K
Мы продолжаем рассказывать о технологиях, используемых на нашем сервисе email-маркетинга Pechkin-mail.ru. Одной из ключевых задач любого сервиса, связанного с данными клиентов, является загрузка этих данных на сервис. Для Печкина очень важно быстро и без проблем для пользователя загружать адресные базы, содержащие email-адреса, имена, фамилии и другие дополнительные данные.

Что использовать в качестве инструмента?


В качестве базового стандарта, используемого при импорте адресных баз, мы взяли Microsoft Excel. Объясняется это просто:
  • это стандартный инструмент, которым на базовом уровне владеют 100% пользователей компьютеров. Более того, в бизнесе — это де-факто корпоративный стандарт и используется даже, если на рабочих компьютерах Mac или Linux.
  • Практически все CRM-, CMS-, облачные или десктопные системы имеют экспорт в Excel или CSV, который простым пересохранением приводится к формату XLS или XLSX.
  • Известно также, что “90% ошибок ПО сидит в полуметре от монитора”. Не в обиду будет сказано рядовым пользователям, но мы должны учитывать самый базовый уровень подготовки и тех. поддержке для объяснения достаточно сказать “Загрузите Excel-файл”, а не объяснять процедуру подготовки файла в нужном формате.


Проблему пользователей при импорте адресных баз сняли. Но тут возникает уже проблема непосредственно разработки.
Прочитать о быстрой реализации импорта из Excel на PHP и LibXL
Всего голосов 32: ↑25 и ↓7+18
Комментарии23

Чеклист по оптимизации VPS на PHP/Mysql/Nginx

Время на прочтение3 мин
Количество просмотров45K
Как обеспечить более высокую производительность VPS сервера, который работает на Nginx + PHP + Mysql? В этой статье приведен чеклист основных настроек, которые позволят существенно оптимизировать работу сервера. Настройка займет не более 10 минут и не требует ничего, кроме редактирования конфигурационных файлов.
Читать дальше →
Всего голосов 34: ↑17 и ↓170
Комментарии21

Сессии в API на Yii c возможностью хранения в Redis

Время на прочтение7 мин
Количество просмотров20K
Не так давно у меня возникла необходимость написать API на Yii Framework, одним из функциональных требований в котором является авторизация. Для механизма авторизации я решил использовать сессии.
Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии8

Контролируем переполнение ячейки таблицы с помощью max-width

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


Допустим, мы хотим сделать двухколоночную раскладку с помощью свойства table-cell. Левая колонка будет занимать всю доступную ширину, правая же может иметь два варианта в нашем случае:

  • мы зададим этой колонке фиксированную ширину;
  • она будет равняться минимальной ширине контента → minimum content width (MCW).

Едем дальше
Всего голосов 31: ↑25 и ↓6+19
Комментарии21

Защита от ботов, основанная на различии в работе с большими числами в JavaScript и PHP

Время на прочтение8 мин
Количество просмотров19K
Недавно мне пришлось разбираться с защитой от ботов, используемой на нескольких довольно популярных ресурсах.
На первый взгляд защита показалась обычной установкой куки через javascript, справиться с которой — дело 15-ти минут. В самом деле, после небольшого исследования стало понятно где что делается и какие параметры куда передаются, остается только переписать небольшую функцию с javascript на php и дело в шляпе.
Но все оказалось не так просто. И хотя в итоге защита была сломана, на это потребовалось далеко не 15 минут, и сам принцип защиты оказался для меня новым и довольно интересным.

Итак, обо всем по порядку.
Читать дальше →
Всего голосов 81: ↑61 и ↓20+41
Комментарии44

CPU Load: когда начинать волноваться?

Время на прочтение5 мин
Количество просмотров227K
Данная заметка является переводом статьи из блога компании Scout. В статье дается простое и наглядное объяснение такого понятия, как load average. Статья ориентирована на начинающих Linux-администраторов, но, возможно, будет полезна и более опытным админам. Заинтересовавшимся добро пожаловать под кат.
Читать дальше →
Всего голосов 152: ↑143 и ↓9+134
Комментарии87

Делаем вебсокеты на PHP с нуля. Часть 2. IPC

Время на прочтение5 мин
Количество просмотров39K
После написания моей предыдущей статьи Делаем вебсокеты на PHP с нуля я понял, что у сообщества есть некоторый интерес к поднятой мною теме.

В прошлой статье я обещал, что опишу:
  • запуск нескольких процессов для обработки соединений
  • межпроцессное взаимодействие
  • разделение процессов мастер-воркер
  • проксирование вебсокетов с помощью nginx
  • запуск из консоли
  • интеграция с вашим фреймворком на примере yii
  • демонстрация


И, как обычно, — получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии15

Безопасное резервное копирование с помощью публичных сервисов

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

Часто бывает так, что существует множество различных проектов, которые необходимо регулярно бэкапить.
Но еще чаще бывает так, что поднимать свой собственный сервис резервного копирования лениво, и копии в лучшем случае делаются время от времени, а в худшем — не делаются вообще. Специально для ленивых людей придумали сервисы синхронизации файлов, такие как Dropbox, Yandex.Disk и иже с ними. Суть всегда одна: файл, загруженный на одном привязанном устройстве, появляется на всех остальных. Ура, решение найдено.
Но встает другой вопрос: безопасность загруженного контента. И если за фотки с Майорки можно особо не переживать, то боевую базу 1С так бэкапить чревато. И вот тут, в этой самой статье, есть небольшой HOW-TO про то, как остаться лентяем и сохранить файлы в безопасности.
Читать дальше →
Всего голосов 38: ↑33 и ↓5+28
Комментарии52

Делаем вебсокеты на PHP с нуля

Время на прочтение18 мин
Количество просмотров308K
Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

Так я решил написать необходимый для меня функционал с нуля.

Получившийся код и ссылка на демонстрационный чат в конце статьи.
Читать дальше →
Всего голосов 88: ↑76 и ↓12+64
Комментарии77

Сортировка при помощи HTML5 Drag'n'Drop API

Время на прочтение5 мин
Количество просмотров36K
Sortable.js — минималистичная библиотека для современных браузеров и touch-устройств, не требующая jQuery.

Как вы уже догадались из названия, библиотека предназначена для сортировки элементов при помощи drag’n’drop. Стандартным решением в таких случаях является jQuery UI/Sortable, а это ни много, ни мало 64 кб + 10 кб. Итого 75 кб gzipped в проекте, где jQuery не используется совсем. Относительно недавно на Хабре уже была статья о том, как реализовать похожий функционал, но опять же на jQuery, да и touch-устройства в предлагаемом решении не поддерживаются.

Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии44

Резервное копирование веб-проектов на Яндекс.Диск

Время на прочтение14 мин
Количество просмотров38K
В далекие детские годы я не понимал важность резервного копирования данных. Но, как говорится, понимание приходит с опытом. Зачастую опыт бывает очень горький. В моем случае хостинг два раза убивал базу сайта MathInfinity, созданного еще в студенческие годы.

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

Идея создания архивов на сервисах вроде Dropbox, Ubuntu One, Яндекс Диск, Диск Google и др. уже давно притягивала мое внимание. Десятки гигабайт бесплатного места, которое теоретически можно использовать для резервирования данных.

Теперь эта идея получила мое первое воплощение. В качестве сервиса для создания архивов был выбран Яндекс Диск.
Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии23

Хак сайта на WordPress, кому все это нужно и советы как этого избежать

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

Привет хабраUser!


Эта история началась около 2-х месяцев назад, когда мой хороший друг Александр, оказывающий услуги хостинга, при очередной проверке всех виртуальных машин антивирусом обнаружил подозрительный .js файл в корневой директории моего сайта, в VDS которую обслуживаю я сам, тогда я не придал этому значение… Но думаю любой администратор хостинга сразу забеспокоился бы.
Закончилось все, спустя только 2 месяца, после блокировки моего сайта корпорацией добра:
image

По тексту, я хочу рассказать Вам:


1. С какими проблемами я сталкивался и как воспринимал их.
2. Как нужно было бы реагировать на самом деле.
3. Кто мне помог в решении проблем и в чем заключалась помощь.
4. Какие выводы я сделал для себя, оказавшись на грани срыва.
5. Кому все это нужно?
6. Практические советы.
7. Подарю новогоднее настроение если позволит НЛО.


Краткое содержание:


Взлом, дальше с VDS начали происходить интересные вещи: Спам рассылки по нескольким тысяч адресатов, установка подозрительных скриптов, появление странных файлов в корне основного сайта. Скажу честно — было страшно… Но похоже я победил тьму).
Узнать подробности
Всего голосов 32: ↑17 и ↓15+2
Комментарии30

Информация

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