Pull to refresh
7
0
Макс Дьяченко @Mendel

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

Send message

.phar — исполняемые PHP-архивы

Reading time4 min
Views53K
Данную статью я хочу посвятить одному интересному нововведению в PHP 5.2 (с версии 5.3 входит в стандартную поставку PHP) — PHAR.
image
PHAR — это утилита для создания исполняемых архивов в PHP, аналог JAR в Java.
PHAR ползволяет упаковать много файлов в один, в результате чего Ваше приложение может работать с целой библиотекой, как с одним файлом.
PHAR умеет создавать, читать, записывать и конвертировать такие форматы, как TAR, ZIP и, собственно, PHAR.
Доступ к файлам в архиве осуществляется напрямую, без необходимости распаковки архива, через PHP Stream Wrapper, тоесть с файлами из архива работают все функции, которые поддерживают PHP Stream Wrapper.
Читать дальше →
Total votes 137: ↑128 and ↓9+119
Comments80

Самоисполняемый phar как способ распространения веб-приложений

Reading time3 min
Views8.1K
Как уже, наверное, всем известно, в PHP 5.3 появилась поддержка специального типа архивов с расширением .phar. Те, кто не в курсе — могут почитать отличную статью .phar — исполняемые PHP-архивы
Область применения, которая сразу приходит на ум — это библиотеки/фреймворки в виде подключаемых *.phar архивов и установщики веб-приложений, например, CMS. О последних я и собираюсь рассказать подробнее и с примерами.

Постановка задачи


Цель — получить на выходе один файл, который будет сам по себе исполняемым, и будет содержать в себе все нужные файлы. Если провести аналогию c обычными приложениями — это приложение, которое запаковано в SFX (self-extracting archive).
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments13

Потрясающая, но невидимая глубина

Reading time5 min
Views172K


Вы только что зашли на страницу Google.

Просто, не так ли?

Что же на самом деле произошло?

Ну, если вы немного понимаете, как работают браузеры, то все не так просто. Вы только что задействовали HTTP, HTML, CSS, ECMAscript и прочее. В действительности, это такие невероятно сложные технологии, что от них у любого инженера голова пойдет кругом, стоит лишь попробовать поглубже вникнуть в них. И нет ни одной компании, которая могла бы справиться с ними в одиночку.

Давайте упростим.

Вы только что установили соединение с www.google.com.

Просто, не так ли?

Что же на самом деле произошло?
Читать дальше →
Total votes 309: ↑245 and ↓64+181
Comments307

Как я в армии в Warcraft III играл

Reading time6 min
Views142K
В данной статье я опишу способ скрытия приложений на компьютере, удобного запуска и быстрого скрытого их завершения на примере игры Warcraft III в Windows XP.

Так сложилось, что, проходя службу в нашей доблестной армии, у меня периодически появлялся доступ к компьютеру. И так сложилось, что, уходя в армию, я забыл выложить свою флешку, которую постоянно ношу с собой в кошельке. На этой флешке было много разного барахла, один миллион папок с названием «учеба» и архив с названием… tada! wc3.rar
Радости моей не было предела, но тут появился вопрос — как проводить вечера за любимой игрой и при этом остаться незамеченным? На все про все, у меня было 2-3 секунды на закрытие игры.
Читать дальше →
Total votes 278: ↑212 and ↓66+146
Comments188

Попытка номер раз создать почти идеальный htaccess

Reading time14 min
Views248K
    - Google выше ранжирует сайты, которые загружаются быстрее.
    - Если на eBay или Amazone увеличить время загрузки страниц на 9% они теряют 1% прибыли.
    - Сделать свой сайт быстрее, чтобы сэкономить на клиентском трафике и на числе обращений к серверу.


.htaccess — наш герой


Профессионалы знают, что такое htaccess.
Тем кто собираются уйти с народ.ру на php-хостинг только предстоит узнать, что это такое.
Те кто только что установил свои первые jooml'у или wordpress срочно должны узнать о нашем герое — htaccess

Зачем нам .htaccess ?


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

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

А ещё htaccess может решить некоторые вопросы с безопасностью вашего сайта.

А ещё…

Полезные советы по htaccess с разжевыванием для новичков
Total votes 85: ↑70 and ↓15+55
Comments77

Как выбрать VPS хостинг

Reading time4 min
Views24K
Неприятности начались с того момента, когда мой любимый американский хостер вдруг перенес мой многолетний аккаунт на новый сервер и установил хитрый лимит на память php для всего аккаунта. И вроде бы memory_limit 90M на первый взгляд достаточно для любого сайта, но этот лимит действует на весь аккаунт в целом. Т.е. сайты, расположенные на одном аккаунте, начинают «душить» друг друга. Начались проблемы с форумом phpbb посещаемостью всего 2000 уников в сутки. При превышении лимита памяти сервер отдавал 500 ошибку.

Опытные люди, не читая далее, сразу скажут, что предложила мне техподдержка: конечно же переход на их VPS. Для отечественного хостинга это обычное дело, но от буржуев я такое услышал впервые. Выход в таком случае один — переход на другой хостинг, ибо с «террористами переговоров не ведут» да и 15$ за их 300Mb VPS мне показалось несколько дороговато.

Выбрал Open VZ VPS в России 768Mb за ~500 рублей. Все поставил, вроде работает. Но тут черт меня дернул перед сменой DNS проверить нагрузку с помощью loadimpact.com и меня накрыл тихий ужас: при одновременном доступе к сайту 50 посетителей страницы грузились по 60 секунд.
Читать дальше →
Total votes 91: ↑82 and ↓9+73
Comments95

Как получить доступ ко всем свойствам объекта, не используя «отражение»

Reading time3 min
Views12K
Для чего получать доступ ко всем свойствам объекта и при этом не менять его интерфейс? Например, для того, чтобы написать свою сериализацию. Или чтобы передать объект в приемлемом виде используя http. Или для чего-нибудь ещё.
Читать дальше →
Total votes 23: ↑13 and ↓10+3
Comments21

Инспекция кода. Итоги

Reading time4 min
Views29K


Инспекция кода — это хорошо. Мы используем эту технику в своих проектах не так давно — около трех месяцев, — однако положительные результаты налицо. Мы уже рассказывали на Хабре о внедрении инспекций в процесс разработки, о документообороте при инспекциях, рассказывали о том, как можно оптимизировать процесс инспектирования с помощью инструмента Code Collaborator. Сегодня мы хотим подвести итоги и представить результаты, которых нам удалось достичь за время инспектирования. Поехали!..
Читать дальше →
Total votes 54: ↑52 and ↓2+50
Comments27

Introducing xdebug

Reading time9 min
Views46K
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments60

PHPUnit. Автоматические тесты

Reading time4 min
Views63K
Предисловие переводчика:
Недавно начал изучать PHPUnit (framework семейства xUnit) и с удивлением обнаружил, что на русском языке нет статей про автоматические тесты для самых-самых чайников.
В первой главе документации по PHPUnit на примерах очень доступно рассказывается, что такое автоматическое тестирование.


Даже хорошие программисты допускают ошибки. Разница между хорошим программистом и плохим заключается в том, что хороший программист как можно чаще использует тесты, чтобы найти свои ошибки.
Чем раньше Вы начнете тестировать, тем выше Ваши шансы найти ошибку, и тем ниже цена исправления.
Это объясняет, почему откладывание тестирования до момента передачи программы заказчику является очень плохой практикой. Большинство ошибок так и не будет найдено, а цена исправления станет такой высокой, что Вам придется составить большой график работы, т.к. сразу Вы не сможете их все исправить.
Читать дальше →
Total votes 41: ↑25 and ↓16+9
Comments31

Создаем рекурсивные ярлыки в Windows

Reading time5 min
Views123K
Все мы знаем, что такое ярлык. А что будет, если сделать ссылку ярлыка самого на себя?
Создание ярлыка на ярлык приводит к его копированию. И что будет, если принудительно создать побайтно такой ярлык?

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

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

Но тут не обошлось без ярлыка, и я расскажу, как это сделать и для чего можно использовать.
Читать дальше →
Total votes 237: ↑223 and ↓14+209
Comments105

Orbduino — механическая рука управляемая через интернет

Reading time1 min
Views6.1K
image
Эта механическая рука была собрана на Arduino. Запущена была еще в 12/15/2010. Любой желающий может зайти на страницу, пообщаться в чате и по управлять рукой.
Читать дальше →
Total votes 43: ↑36 and ↓7+29
Comments37

Пишем драйвер для самодельного USB устройства

Reading time13 min
Views176K
Целью этой статьи является пошаговая демонстрация процесса разработки всего набора программного обеспечения необходимого для организации связи самодельного устройства с компьютером посредством USB.

На данный момент, большинство радиолюбителей реализуют такой тип подключения используя чипы переходники USB в RS232 таким образом организуя связь со своим устройством посредством драйвера виртуального COM порта поставляемого с чипом переходником. Минусы такого подхода думаю понятны. Это как минимум лишний чип на плате и ограничения накладываемые этим чипом и его драйвером.
Мне же хочется осветить весь процесс организации такого взаимодействия так как оно и должно быть сделано, и как делается во всех серьезных устройствах.
В конце концов, сейчас 21-й век, модуль USB есть почти во всех микроконтроллерах. Именно о том, как наиболее быстро воспользоваться этим модулем и будет эта статья.
Читать дальше →
Total votes 152: ↑149 and ↓3+146
Comments29

Unit-тестирование от начинающего начинающим

Reading time5 min
Views79K
Здравствуйте.

На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.

Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments46

Мысли о скриншотах через JavaScript

Reading time1 min
Views39K
При разработке одного сервиса я столкнулся с необходимостью дать возможность пользователям сообщать об ошибках. Проблема заключалась в том, чтобы пользователь мог сделать скриншот без использования стороннего софта или сервиса.

Сначала эта задача показалась мне невыполнимой, но я нашел html2canvas.
Читать дальше →
Total votes 67: ↑63 and ↓4+59
Comments57

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views974K


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

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →
Total votes 1486: ↑1468 and ↓18+1450
Comments327

Теория шести рукопожатий: еще одно подтверждение

Reading time4 min
Views77K
Однажды в студеную зимнюю пору я столкнулся с упоминанием того, что кто-то в Facebook пытается подтвердить теорию шести рукопожатий. Для тех кто не в курсе, эта теория заключается в том, что все жители земли в среднем знакомы друг с другом через цепочку из пяти друзей (т.е. шести рукопожатий). Подробнее об истории этой теории можно прочитать в википедии, там же можно узнать о том, что Майкрософт несколько лет назад пыталась подтвердить эту теорию на основе данных о контакт-листах мессенджера MSN — в результате у них получилось 6,6 рукопожатий, что вполне вписывается в теорию.

Очень мне захотелось эту теорию подтвердить самому, используя данные, которые есть под рукой — ВКонтакте. Для претворения моей странной идеи в жизнь надо было решить целый комплекс проблем:
  1. На каких данных это все расчитывать.
  2. Где эти данные взять.
  3. Как эти данные сохранять.
  4. Каким алгоритмом воспользоваться для расчетов.
подробнее о том, что получилось
Total votes 211: ↑203 and ↓8+195
Comments102

К сожалению, мы не сможем сделать вам сайт…

Reading time4 min
Views3.7K
Статья посвящена людям, работающим не за деньги, а на результат. Справедливости ради замечу, что у них как правило, и с деньгами все в порядке.

В этой статье я не буду писать о том, как правильно разрабатывать сайты и как убеждать заказчика, что вы правы. Это опыт + полное документирование проекта на каждом этапе + умение грамотно вести диалог.

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

Думаю, никто не будет спорить, что контент – король. И именно с него обычно и начинается сайт, как информационный носитель.

Исходя из этого можно заключить, что сделать действительно хороший сайт без весьма плотного участия клиента не сможет ни одна веб-студия, т.к. своих потребителей и особенности рынка лучше заказчика не знает никто.
Под катом - кто наши клиенты?
Total votes 110: ↑94 and ↓16+78
Comments67

API Домашних Финансов

Reading time1 min
Views864
image В марте 2011 года мы запустили новую версию системы для ведения домашней бухгалтерии "Домашние Финансы — home.finance.ua". А сейчас подошло время публикации открытого API Домашних Финансов.

API Домашних Финансов предоставляет полный доступ к данным аккаунта пользователя системы посредством http/https post-запросов с JSON-содержанием. Использование API является бесплатным для разработчиков. При этом на его основе возможно создание как бесплатных, так и платных сервисов и приложений, которые мы обязательно анонсируем на нашем сайте.

API дает доступ к «сырым» данным: спискам операций, категориям расходов и доходов, счетам, финансовым целям и т.д. Вся аналитическая обработка (вычисление остатков, выполнение планов и т.п.) предполагается на клиентской стороне.

В данный момент API работает в боевом режиме: на него переведена работа нашего веб-интерфейса. Но мы будем рады комментариям и замечанием по работе и документированию API.
Total votes 5: ↑5 and ↓0+5
Comments0

Ошибки и заблуждения заказчиков при разработке корпоративного сайта

Reading time6 min
Views13K
Сайт — это отличный инструмент для решения задач, связанных с узнаваемостью бренда и повышением продаж. Казалось бы — закажи сайт, и проблема решена: потенциальные клиенты находят сайт компании через поисковую систему, знакомятся с услугами и товарами и покупают их.

Но зачастую всё бывает иначе. Сайт запущен, а клиентов не прибавляется. В то же время у конкурентов дела идут как нельзя лучше. Заказчик обвиняет во всем разработчиков сайта, обращается к новым разработчикам, сайт переделывается, но история повторяется. В чем же ошибка? Давайте разберемся.
Читать дальше →
Total votes 118: ↑95 and ↓23+72
Comments68

Information

Rating
Does not participate
Location
Кфар Саба, Хамеркац, Израиль
Date of birth
Registered
Activity