• Публикация на стене Вконтакте средствами php

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

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

    Читать дальше →
  • Три способа решения проблемы «Fatal error: Allowed memory size of XXX bytes exhausted»

      Когда вашему скрипту не хватает оперативной памяти для его выполнения (точнее он не укладывается в объём, который ему разрешён), возникает ошибка «Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes)».

      Для решения данной задачи предлагаю три варианта на выбор в зависимости от прав доступа на сервере и его конфигурации.

      Один из этих вариантов вам точно поможет.

      Способ первый:


      В файле настроек РНР (php.ini) пишем:

      memory_limit = 100M

      Обычно для простых смертных этот файл править не дают. Всё зависит от вашего хостинг-провайдера. Да и делать вам там нечего.

      Способ второй:


      В файле настроек сайта (.htaccess) пишем:

      php_value memory_limit 100M

      При определённой конфигурации сервера вы можете получить ошибку 500 – Internal Server Error.

      Способ третий:


      В теле вашего скрипта (например, config.php) пишем:
      <?php
      ini_set('memory_limit', '100M');
      ?>


      Самый простой и безопасный ход решения проблемы. Меня выручает постоянно.
    • Отображение статусов ICQ, Jabber, Skype и MRA на сайте в произвольном виде



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

      Для начала определим наши задачи:
      — по возможности использовать официальные сервисы определения статуса
      — в случае их отсутствия можно прибегнуть к посторонним
      — способ должен быть как можно проще, без излишков (всегда можно будет его потом расширить)
      — чтобы прорисовка страницы не висла на время запроса, сделаем буфер

      Рассмотрим 4 основных способа на примере ICQ, Jabber, Skype и MRA. Остальные можно сделать аналогично.
      Читать дальше →
    • arcticModal — jQuery-плагин для модальных окон

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

        Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
        Подробнее
      • Leaflet 0.4 — новая версия открытой JS-библиотеки для интерактивных карт



          После пяти с половиной месяцев разработки с момента выхода предыдущей версии, очень рад наконец представить вам Leaflet 0.4 — новую версию легковесной JavaScript-библиотеки для интерактивных карт, которая одинаково хорошо работает и на десктопных браузерах, и на мобильных устройствах.

          Этот релиз, к которому приложило руку 33 разработчика, несёт в себе более простой, удобный API и громадное множество улучшений и исправлений вместе с масштабным обновлением документации, запуском официального блога и страничкой плагинов. Давайте рассмотрим улучшения по порядку.
          Читать дальше →
        • The Modal — правильные модальные окна

            Очень часто модальные окна и диалоги делаются при помощи плагинов jQuery. Например, SimpleModal или jqModal. К сожалению, все они, в варианте по умолчанию, работают неправильно.

            Что же такое «правильно»?

            Модальное окно по определению блокирует работу пользователя с родительским окном до тех пор, пока пользователь его не закроет. То есть:

            1. Пользователю нельзя позволять прокручивать страницу под ним.
            2. При этом, если содержимого в модальном окне очень много, нужно позволить прокручивать содержимое.


            По этому принципу работает просмотр фото в Facebook и Вконтакте и, я считаю, что для модальных окон это правильный вариант.

            Чтобы не мучать вас заранее деталями реализации, покажу сначала демо плагина jQuery: http://rmcreative.ru/playground/modals_plugin/demo.html.

            Ну а теперь немного про реализацию.
            Читать дальше →
          • Как сделать группу инпутов удобной

              Когда я работал над сервисом заметок jotsky.com, еще до работы в Островке, надо было сделать ввод телефонного номера из двух инпутов. Примерно такой:



              Я сделал навигацию с помощью стрелочек. Сделал, чтобы по мере заполнения фокус переключался к следующем инпуту. А вот сделать правильную вставку из буфера обмена у меня никак не получалось.
              Читать дальше →
            • Сети для самых маленьких. Часть пятая. ACL и NAT

              • Tutorial


              Продолжаем развитие нашей маленькой уютной сети Лифт ми Ап. Мы уже обсудили вопросы маршрутизации и стабильности, и теперь, наконец, выросли для подключения к Интернету. Довольно заточения в рамках нашей корпоративной среды!
              Но с развитием появляются и новые проблемы.
              Сначала вирус парализовал веб-сервер, потом кто-то притаранил червя, который распространился в сети, заняв часть полосы пропускания. А ещё какой-то злодей повадился подбирать пароли на ssh к серверу.
              А представляете, что начнётся, когда мы подключимся к Интернету?!
              Итак, сегодня:
              1) учимся настраивать различные списки контроля доступа (Access Control List)
              2) пытаемся понять разницу между ограничением входящего и исходящего трафика
              3) разбираемся с тем, как работает NAT, его плюсы, минусы и возможности
              4) на практике организуем подключение к Интернету через NAT и увеличим безопасность сети, используя списки доступа.

              Читать дальше →
            • CSS хаки

              Браузеры и стандарты. Вечная погоня. Из-за несоответствий стандартам, из-за разных способов рендеринга страниц большая часть времени веб-дизайнера уходит на то, чтобы загладить эти несоответствия (использовать хаки). В итоге, вместо эффективной работы, дизайнер вступает в противоестественные отношения с браузерами, теряя драгоценное время.
              Читать дальше →
            • Type Folly — изумительно простой онлайн редактор CSS3




                По собственной инициативе выкладываю на суд сообщества проект моего друга, со сложно выговариваемым именем Mircea Piturca.

                Встречайте: Type Folly — очень простой и удобный онлайн редактор CSS. Для новичков самое оно.

                UPD: Автор внес изменения и поправил баги. Спасибо Хабрасообщству.

                Или если верстальщик заболел, например...
              • Оптимизация связки Nginx, Apache, PHP, MySql

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

                  Название сайта светить не буду — думаю, программисты сами узнают. Скажу лишь, что это приложение для социальной сети нагрузкой 70-150 тысяч посетителей в обычное время. Все усложняется тем, что периодически производится рекламная рассылка, которая привлекает около 200-300 тысяч посетителей за пару часов.

                  Итак, под катом описание всей борьбы на протяжении 4 дней.
                  Читать дальше →
                • [Личный опыт]: Починяем потерявшуюся загрузку по F8 в Windows 7

                    Disclaimer: не ждите откровений. У меня возникла проблема, решение не смог ни нагуглить, ни нахабрить — пришлось решать самому. Кому-то из гуру может показаться очевидным, кому-то может пригодиться.

                    Недавно возникла задача перегрузить компьютер с Win7 в Safe Mode. Все как обычно: Restart, список вариантов загрузки, F8… и ничего! Нажатие F8 вместо отображения меню с вариантами Safe Mode и прочими твиками просто загружает Windows обычным способом. Непорядок!
                    Читать дальше →
                  • Как отбить DDoS-атаку и обезопасить сеть от аномалий своими силами? – 14 мая на семинаре

                      Приглашаем всех желающих на семинар-тренинг «DDoS-атаки и защита от них». Участники получат набор эффективных контрмер от социального DDoS (в том числе от различных вариаций LOIC) + список основных причин сетевых аномалий.

                      Семинар-тренинг «DDoS-атаки и защита от них» пройдет 14 мая 2012 года в Экспоцентре на Красной Пресне в павильоне № 7 в рамках выставки «Связь-Экспокомм-2012» в интерактивной части Третьего российского форума по управлению интернетом RIGF-2012. Форум проводится «Координационным центром национального домена сети Интернет» при поддержке Министерства связи и массовых коммуникаций РФ. Проблематика форума в этом году – информационная безопасность сети. Регистрацию можно пройти на сайте rigf.ru/reg/reg.php до 10 мая включительно.

                      Читать дальше →
                      • +12
                      • 16.3k
                      • 8
                    • Настраиваем пользовательский синий экран смерти

                        Он посинел, ему плохо?


                        BSOD – реакция ядра на неразрешимую исключительную ситуацию. Если вы его видите, то это значит, что случилось что-то определенно нехорошее.

                        Среда ядра накладывает множество ограничений на свободу действий программиста: учитывай IRQL, синхронизируй доступ к разделяемым переменным, не задерживайся в ISR, проверяй любые данные из «юзерленда»… Нарушив хотя бы одно из правил, вы получите настоящий выговор из штампованных фраз в стандартном VGA-видеорежиме с худой палитрой.
                        Читать дальше →
                      • Сети для самых маленьких. Часть нулевая. Планирование

                        • Tutorial
                        Это первая статья из серии «Сети для самых маленьких». Мы с товарищем thegluck долго думали с чего начать: маршрутизация, VLAN'ы, настройка оборудования.
                        В итоге решили начать с вещи фундаментальной и, можно сказать, самой важной: планирование. Поскольку цикл рассчитан на совсем новичков, то и пройдём весь путь от начала до конца.

                        Предполагается, что вы, как минимум читали о эталонной модели OSI (то же на англ.), о стеке протоколов TCP/IP (англ.), знаете о типах существующих VLAN’ов (эту статью я настоятельно рекомендую к прочтению), о наиболее популярном сейчас port-based VLAN и о IP адресах (более подробно). Мы понимаем, что для новичков «OSI» и «TCP/IP» — это страшные слова. Но не переживайте, не для того, чтобы запугать вас, мы их используем. Это то, с чем вам придётся встречаться каждый день, поэтому в течение этого цикла мы постараемся раскрыть их смысл и отношение к реальности.

                        Схема сети

                        Начнём с постановки задачи. Есть некая фирма, занимающаяся, допустим, производством лифтов, идущих только вверх, и потому называется ООО «Лифт ми ап». Расположены они в старом здании на Арбате, и сгнившие провода, воткнутые в пожжёные и прожжёные коммутаторы времён 10Base-T не ожидают подключения новых серверов по гигабитным карточкам. Итак у них катастрофическая потребность в сетевой инфраструктуре и денег куры не клюют, что даёт вам возможность безграничного выбора. Это чудесный сон любого инженера. А вы вчера выдержали собеседование и в сложной борьбе по праву получили должность сетевого администратора. И теперь вы в ней первый и единственный в своём роде. Поздравляем! Что дальше?
                        Читать дальше →
                      • Сети для самых маленьких. Часть первая (которая после нулевой). Подключение к оборудованию cisco

                        • Tutorial


                        Тематику cisco на хабре нельзя назвать популярной, зачастую интересные статьи остаются почти незамеченными. Но нас приятно удивил ажиотаж вокруг нашей предыдущей публикации. Больше тысячи человек добавили её в избранное, и это определённо говорит о том, что продолжение необходимо.
                        Кроме того, много людей, имеющих опыт реального планирования и строительства сетей, делали очень правильные замечания по резервированию. Дело в том, что предложенная в прошлый раз схема сети — это макет, лаборатория, на который мы будем отрабатывать и понимать технологии, поэтому такими вещами мы не озадачивались. В реальной же жизни, особенно, если вы оператор связи/провайдер, необходимы различные схемы резервирования: VRRP, STP, Link Aggregation, протоколы динамической маршрутизации.
                        Все замечания мы постараемся учесть и в конце цикла, вероятно, рассмотрим то, как сеть должна строиться, чтобы через полгода после запуска инженеру не было мучительно больно.

                        Сегодня же мы обратимся к части немного скучной, но важной для начинающих: как подключиться, поставить или сбросить пароль, войти по telnet. Также рассмотрим существующие программы — эмуляторы ciscо и интерфейс оборудования.
                        Как и обещали, в этот раз всё по-взрослому: с видео.

                        Под катом то же в текстовой и чуть более подробной форме.
                        Итак, вот они приехали — заветные коробки с надписью Cisco на борту.
                        Что дальше?
                      • ikSelect — идеальный плагин для стилизации селектов

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

                          Недавно на хабре проскакивал Selectik — довольно неплохой плагин, но не без недостатков. Работа над ним, судя по GitHub, ещё идёт, но пока он не очень удобен, и его основные проблемы ещё имеют место быть.

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

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

                          Вот так он выглядит в закрытом виде:

                          Вот так в открытом:
                          Чем же он лучше остальных?
                        • Навигатор по бесплатным иконкам

                            Вчера в который раз возник вопрос по подбору нескольких иконок в очередном веб-проекте. В основном пользуюсь готовыми иконками из бесплатных наборов. До недавнего времени прибегал к услугам сайта iconpicker.deviantech.ru. Навигация по иконкам была хоть и не самая удобная, но явно лучше, чем просто проглядывать их в Finder'е (или Explorer'е). Однако в последнее время сайт недоступен.

                            В итоге решил сделать собственный навигатор по иконкам:


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