{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Блог: заметки с тегом хак",
    "_rss_description": "Мысли о программировании, жизни и христианстве.",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/starcoms.ru\/iwrite\/tags\/hak\/",
    "feed_url": "https:\/\/starcoms.ru\/iwrite\/tags\/hak\/json\/",
    "icon": "https:\/\/starcoms.ru\/iwrite\/pictures\/userpic\/userpic@2x.jpg?1501659238",
    "authors": [
        {
            "name": "Евгений Андреевич Куценко",
            "url": "https:\/\/starcoms.ru\/iwrite\/",
            "avatar": "https:\/\/starcoms.ru\/iwrite\/pictures\/userpic\/userpic@2x.jpg?1501659238"
        }
    ],
    "items": [
        {
            "id": "115",
            "url": "https:\/\/starcoms.ru\/iwrite\/all\/nastroyki-mamp-pro-dlya-slabogo-interneta\/",
            "title": "Настройки MAMP Pro для слабого интернета.",
            "content_html": "<p>Слабый интернет, поэтому я стряхнул пыль с MAMP Pro и начал работать в нем. Возникла необходимость обновить ядро проекта с интернета и я получаю ошибку 500, а в логах следующее:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">FastCGI: comm with server &quot;\/Applications\/MAMP\/fcgi-bin\/php5.6.10.fcgi&quot; aborted: idle timeout (30 sec)<\/code><\/pre><p>Выход был найден при прочтении «<a href=\"http:\/\/craftcms.stackexchange.com\/questions\/4661\/fastcgi-error-when-accessing-a-local-development-site-using-mamp-pro\">FastCGI error when accessing a local development site using MAMP Pro<\/a>».<br \/>\nПоследовательность действий:<\/p>\n<ol start=\"1\">\n<li>Перейти в MAMP Pro  File → Edit Template → Apache → httpd.conf<\/li>\n<li>Выполнить Find & Replace для MAMP_FastCgiServer_MAMP<\/li>\n<li>Закомментировать MAMP_FastCgiServer_MAMP<\/li>\n<li>Добавить линию конфигурации для вашей версии PHP с временным периодом, который вас устраивает:<\/li>\n<\/ol>\n<pre class=\"e2-text-code\"><code class=\"\">FastCgiServer \/Applications\/MAMP\/fcgi-bin\/php5.6.10.fcgi -idle-timeout 3600<\/code><\/pre><p>В результате в вас получится в httpd.conf следующее:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#MAMP_FastCgiServer_MAMP\r\nFastCgiServer \/Applications\/MAMP\/fcgi-bin\/php5.6.10.fcgi -idle-timeout 3600<\/code><\/pre><p>P.S. Важно не забыть вернуть все назад, когда появится нормальный интернет.<\/p>\n",
            "date_published": "2015-09-09T17:03:14+03:00",
            "date_modified": "2015-09-09T17:02:26+03:00",
            "tags": [
                "MAMP Pro",
                "инструменты",
                "кодинг",
                "совет",
                "хак"
            ],
            "_date_published_rfc2822": "Wed, 09 Sep 2015 17:03:14 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "115",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "113",
            "url": "https:\/\/starcoms.ru\/iwrite\/all\/time-machine-na-tomato-by-shibby-dlya-asus-rt-ac68u\/",
            "title": "Time Machine на Tomato by Shibby для Asus RT-AC68U",
            "content_html": "<p>Озадачился вот своим роутером. Надоела нестабильность стоковой прошивки и решил попробовать что-то новое. Решил поставить Tomato by Shibby. Про установку из под Windows достаточно подробно написано в публикации «<a href=\"http:\/\/www.shadowandy.net\/2014\/03\/asus-rt-ac68u-flash-tomatousb-rt-ac68u.htm\">ASUS RT-AC68U — How to flash TomatoUSB for RT-AC68U<\/a>». Но у меня уже стояла прошивка от Merlin с открытым Telnet, поэтому все ограничилось подключением к роутеру и командами <b>nvram erase<\/b>, затем <b>nvram commit<\/b>, выбором файла с последней (131) прошивкой на <a href=\"http:\/\/tomato.groov.pl\/download\/K26ARM\/\">её сайте<\/a> и установкой.<br \/>\nВ отличии от стоковой, у этой прошивки нет встроенной поддержки Time Machine, поэтому её пришлось добавить. Операция проходила в два этапа.<\/p>\n<h2>Этап первый: Установка репозитория Entware<\/h2>\n<p>Раньше нужно было сделать много манипуляций, но сейчас репозитории для моего роутера устанавливается достаточно просто. Проверьте доступ по SSH в роутере Administration → Admin Access и в путь.<br \/>\nДля флешки отформатированной в ext2\/ext3 с меткой <b>ENTWARE<\/b> делаем следующие настройки роутера в USB and NAS → USB Support:<br \/>\nВ поле <b>Run after mounting<\/b> вносим:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\r\n\/opt\/etc\/init.d\/rc.unslung start<\/code><\/pre><p>и в поле <b>Run before unmounting<\/b> следующее:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\r\n\/opt\/etc\/init.d\/rc.unslung stop\r\nsleep 15\r\nfor i in `cat \/proc\/mounts | awk &#039;\/ext3\/{print($1)}&#039;` ; do\r\n  mount -o remount,ro $i\r\ndone<\/code><\/pre><p>Не забываем сохранить изменения. Переходим в Administration → Scripts → Init page, вводим<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">echo &quot;LABEL=ENTWARE \/opt ext3 defaults 1 1&quot; &gt;&gt; \/etc\/fstab<\/code><\/pre><p>и вновь сохраняем. Перегружаем роутер и устанавливаем Entware. В текущей прошивке он устанавливается простой командой через Telnet.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">entware-install.sh<\/code><\/pre><p>Дополнительно об установке можно почитать в статье «<a href=\"http:\/\/www.zyxmon.org\/2015\/02\/14\/ustanavlivaem-entware-arm-na-marshrutizator-s-proshivkoj-tomato-versiya-s-kartinkami-i-kommentariyami-dlya-chajnikov\/\">Устанавливаем Entware.arm на маршрутизатор с прошивкой tomato от Shibby<\/a>»<\/p>\n<h2>Этап второй: Настройка Time Machine<\/h2>\n<p>Приступим к настройке Time Machine и начнём с установки нужных пакетов. Может они не все нужны, поэтому комментарии экспертов приветствуются!<br \/>\nУстанавливаем <b>netatalk<\/b> для реализации протокола AppleTalk нужного для Time Machine и  <b>avahi-daemon<\/b> с утилитами, для имитации сервиса Bonjour.  Bonjour нужен для наглядного представления Time Machine в Mac OS. Слухи ходят, что <b>netatalk<\/b> сам это умеет и он не нужен<br \/>\nПакет <b>busybox<\/b> даст нам возможность использовать некоторые недоступные Unix команды. Например, добавлять пользователей.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">opkg install netatalk avahi-daemon avahi-utils busybox<\/code><\/pre><p>Создаём файл <b>S00setup<\/b> с первой строкой #!\/bin\/sh для загрузки настроек нужных для Time Machine при перезагрузке роутера и кладём его в \/opt\/etc\/init.d\/<b>S00setup<\/b><br \/>\nТеперь сделайте его исполняемым<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">chmod +x \/opt\/etc\/init.d\/S00setup<\/code><\/pre><h3>Настраиваем avahi<\/h3>\n<p>Настройку <b>avahi<\/b> начинаем с создания файла <b>afpd.service<\/b> со следующем содержанием<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">&lt;?xml version=&quot;1.0&quot; standalone=&#039;no&#039;?&gt;&lt;!--*-nxml-*--&gt;\r\n&lt;!DOCTYPE service-group SYSTEM &quot;avahi-service.dtd&quot;&gt;\r\n&lt;service-group&gt;\r\n  &lt;name replace-wildcards=&quot;yes&quot;&gt;%h&lt;\/name&gt;\r\n    &lt;service&gt;\r\n    &lt;type&gt;_afpovertcp._tcp&lt;\/type&gt;\r\n    &lt;port&gt;548&lt;\/port&gt;\r\n  &lt;\/service&gt;\r\n  &lt;service&gt;\r\n    &lt;type&gt;_device-info._tcp&lt;\/type&gt;\r\n    &lt;port&gt;0&lt;\/port&gt;\r\n    &lt;txt-record&gt;model=TimeCapsule6&lt;\/txt-record&gt;\r\n  &lt;\/service&gt;\r\n&lt;\/service-group&gt;<\/code><\/pre><p>который кладём по следующему пути \/opt\/etc\/avahi\/services\/<b>afpd.service<\/b><br \/>\nРедактируем \/opt\/etc\/avahi\/<b>avahi-daemon.conf<\/b>, раскомментировав линию <b>host-name<\/b> и дав имя:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">host-name=TimeCapsule<\/code><\/pre><p>Чтобы <b>TimeCapsule<\/b> показывалась в Finder всем, нужно добавить группу <b> nogroup<\/b> для всех пользователей.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">addgroup nogroup<\/code><\/pre><p>Делаем автосоздание группы при перезапуске пользователя.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">echo &quot;addgroup nogroup&quot; &gt;&gt; \/opt\/etc\/init.d\/S00setup<\/code><\/pre><p>Запускаем <b>avahi<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/opt\/etc\/init.d\/S42avahi-daemon start<\/code><\/pre><p>и в боковой панели Finder должена появиться TimeCapsule.<\/p>\n<h3>Настраиваем netatalk<\/h3>\n<p>Приступаем к самому важному. Настраиваем <b>netatalk<\/b> начиная с редактирования файла \/opt\/etc\/netatalk\/<b>AppleVolumes.default<\/b>. Добавляем в конце следующую строку:<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/mnt\/LABELDISK\/TimeMachine &quot;TimeMachine&quot; volsizelimit:300000 \r\nveto:&quot;\/lost+found\/Network Trash Folder\/Temporary Items\/&quot; cnidscheme:dbd options:usedots,upriv,tm allow:USER<\/code><\/pre><p>, где \/mnt\/LABELDISK\/TimeMachine — путь к папке, где будут хранится бекапы;<br \/>\n«TimeMachine» — имя расшаренного ресурса, которое появится в настройках Time Machine в Mac OS;<br \/>\nvolsizelimit:300000 — максимальный размер бекапов (~314GB);<br \/>\nveto:«\/lost+found\/Network Trash Folder\/Temporary Items\/» — прячем не нужные папки;<br \/>\ncnidscheme:dbd — уменьшаем количество ошибок (может влиять на скорость создания бекапа);<br \/>\noptions:usedots,upriv,tm — показываем что можно использовать для создания Time Machine и кто может это делать;<br \/>\nallow:USER — пользователь имеющий доступ к папке для бекапов, которого мы сейчас создадим.<\/p>\n<p>Поменяем конфигурацию <b>netatalk<\/b> по следующему пути \/opt\/etc\/netatalk\/<b>afpd.conf<\/b> удалив или закомментировав старую и вставив новую<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">- -tcp -noddp -uamlist -uams_dhx.so,uams_dhx2_passwd.so -nosavepassword<\/code><\/pre><p>Эта конфигурация отключает гостевой доступ, возможность сохранить пароли локально и настраивает работу с паролями.<\/p>\n<p>Создаём пользователя <b>USER<\/b> с паролем <b>PASS<\/b> (это пример, пароль какой вы хотите) и даём ему права на папку для бекапов.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">adduser USER\r\nchown -R USER \/mnt\/LABELDISK\/TimeMachine\/<\/code><\/pre><p>Настраиваем автосоздание этого пользователя при перезагрузке роутера.<\/p>\n<pre class=\"e2-text-code\"><code class=\"\">echo &#039;adduser USER&#039; &gt;&gt; \/opt\/etc\/init.d\/S00setup\r\necho &#039;echo -e &quot;PASS\\PASS&quot; | passwd USER&#039; &gt;&gt; \/opt\/etc\/init.d\/S00setup<\/code><\/pre><p><b>Вот тут загвоздка!<\/b> Пользователь создаётся, но пароль ему не присваивается. Может кто подскажет?<\/p>\n<p>В результате у нас получается следующее содержимое файла \/opt\/etc\/init.d\/<b>S00setup<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">#!\/bin\/sh\r\naddgroup nogroup\r\nadduser USER\r\necho -e &quot;PASS\\PASS&quot; | passwd USER<\/code><\/pre><p>Перезапускаем <b>netatalk<\/b><\/p>\n<pre class=\"e2-text-code\"><code class=\"\">\/opt\/etc\/init.d\/S27afpd restart<\/code><\/pre><p>Или просто перезагрузите роутер целиком. Теперь вы должны подключиться к TimeCapsule как созданный выше пользователь и настроить Time Machine на Mac OS.<\/p>\n<p>P.S. Я ещё не достаточно долго тестировал работу Time Machine на Tomato by Shibby и мог что-то забыть, поэтому возможны неточности.<br \/>\nP.S.S. Дополнительно можно почитать «<a href=\"http:\/\/vena.net\/post\/86026368825\/using-an-asus-router-as-a-time-capsule\">Using an ASUS router as a Time Capsule<\/a>», «<a href=\"http:\/\/d43.me\/blog\/1660\/concisest-guide-to-setting-up-time-machine-server-on-ubuntu-server-12-04\/\">Concisest guide to setting up Time Machine server on Ubuntu Server 12.04, 14.04 & Debian<\/a>» и «<a href=\"http:\/\/wiki.openwrt.org\/timemachine\">Time Capsule on OpenWRT (Apple File Protocol Server with Time Machine Support<\/a>)».<\/p>\n",
            "date_published": "2015-09-08T18:02:18+03:00",
            "date_modified": "2015-09-09T00:05:18+03:00",
            "tags": [
                "ASUS RT-AC68U",
                "Mac OS",
                "Time Machine",
                "совет",
                "улучшаем жизнь",
                "хак"
            ],
            "_date_published_rfc2822": "Tue, 08 Sep 2015 18:02:18 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "113",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "system\/library\/highlight\/highlight.js",
                    "system\/library\/highlight\/highlight.css"
                ],
                "og_images": []
            }
        },
        {
            "id": "100",
            "url": "https:\/\/starcoms.ru\/iwrite\/all\/rabotaem-nad-oshibkami-ili-metod-rezinovogo-utyonka\/",
            "title": "Работаем над ошибками или метод резинового утёнка",
            "content_html": "<p main>Прочитал «<a href=\"http:\/\/habrahabr.ru\/post\/248565\/\">7 золотых правил одного программиста<\/a>» и первое напомнило о методе резинового утёнка. О нём мне рассказал друг программист, когда я жаловался ему на сложность нахождения ошибки в коде. В публикации даётся следующий совет при поиске ошибки:<\/p>\n<p aside>Ну что там у тебя? Поговорим? <img  alt=\"Резиновый утёнок\" src=\"\/\/starcoms.ru\/iwrite\/pictures\/little-duck@2x.jpg\"><\/p>\n<blockquote>\n<p>«Универсальный совет — идите спать! Ну или хотя бы отвлекитесь на чашку чая. Когда, через некоторое время, вы вернётесь к коду наверняка станет ясно, что тут лишний оператор отрицания, или перепутаны две переменные с похожими именами, или ещё какая-нибудь мелочь, в которой мы никогда никому не признаемся.»<\/p>\n<\/blockquote>\n<p>Совет отличный! В школе немало задач по физике решены следуя этому совету. Но что делать если сроки горят? Спать, чаёвничать или гулять не вариант! На помощь приходит метод резинового утёнка.<\/p>\n<p>Метод заключается в том, что на стол ставится игрушка (резиновый утёнок). А при поиске ошибки ты с ней ведёшь диалог. Объясняешь игрушке, что делается в каждой строке кода. И часто в этом диалоге и находишь спрятанную ошибку. Игрушку можно представлять в воображении и это может быть и не игрушка. Эйнштейн, ваш ребёнок или другая личность для мысленного диалога. Ну а если есть возможность пообщаться вслух, то это еще лучше. Тогда к поиску ошибки подключаются и ваши уши.<\/p>\n<p>У вас ошибка в коде? Резиновый утёнок спешит на помощь!<\/p>\n",
            "date_published": "2015-01-23T14:36:51+03:00",
            "date_modified": "2015-01-23T14:50:21+03:00",
            "tags": [
                "кодинг",
                "мысли",
                "совет",
                "улучшаем жизнь",
                "хак"
            ],
            "_date_published_rfc2822": "Fri, 23 Jan 2015 14:36:51 +0300",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "100",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [],
                "og_images": []
            }
        }
    ],
    "_e2_version": 4098,
    "_e2_ua_string": "Aegea 11.1 (v4098)"
}