• Как подключиться к базе данных (она на VPS) другому сайту?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Я бы конечно порекомендовал сделать репликацию с хостинга на VPS, иначе все равно потеряете данные при переносе, это во-первых.

    А во-вторых нет таких вариантов, чтобы прямо без остановки сервиса, в любом случае надо будет тормозить сервис, вешать сообщение о том, что вы на обслуживании и за это время поменять всё и сразу, и параллельно протестировать.

    И не стоит боятся потерять пару десятков или сотен заказов, лучше так, чем когда люди закажут, оплатят и потом окажется, что их товар потерялся. Тот же магазин Apple вообще отключают на много часов даже ради того, чтобы добавить одну позицию товара.
    Ответ написан
    2 комментария
  • Как поставить другую ОС на SD карту в MacBook Pro?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Прямо как вы хотите, такого не сделать из-за специфики в отсутствии BIOS на маках, можно поставить параллельно в Bootcamp Windows, и тогда у вас будет при загрузке отображаться или нет, как пожелаете меню с выбором операционной системы.

    Также за все время пользования macOS/MacOS X я не нашел ничего того, чтобы вызывало необходимость отдельного линукса, т.к. сама macOS уже является *nix системой и большинство приложений под Linux либо уже скомпилировны под macOS и доступны в любом менеджере пакетов, например brew, либо их возможно откомпилировать лично из исходников.

    Вариант загрузки LiveCD с SD карты не правильный, да и не очень удобный, т.к. livecd не предназначены для полноценной работы, они скорее сделаны для ознакомления, поэтому правильным будет либо использовать виртуализацию, на моей практике лучше всего с этим справляется VMWare Fusion, лучшее Parallels Desktop и многократно лучше других аналогов.

    Касательно разработки под Linux — тогда самый лучший вариант VirtualBox, именно им я всегда пользуюсь если нужна изолированная linux среда.

    А для разработки сайтов никто еще лучше не придумал чем Vagrant. (ИМХО)
    Ответ написан
    Комментировать
  • Как и чем сделать распознавание речи записей разговоров в mp3 в linux без облачных сервисов?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Можете сюда посмотреть, очень качественные продукты, но не бесплатно: www.speechpro.ru/product
    Ответ написан
    Комментировать
  • Как создать поддомены при использовании Vagrant?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Ничего сложного, просто надо во-первых поменять на Virtualbox маппинг портов на 80 для http, а во-вторых, в своем hosts файле для вашего ip, адреса по которому вы подключаетесь к боксу прописать все ваши домены, а в свою очередь на виртуалке http-сервер должен обрабатывать виртуальные сервера, т.е. та сторона также должна быть настроена.

    UPD: Кстати почитал про ваш бокс, оказывается там вообще все подробно расписано про мультидомены: https://scotch.io/bar-talk/announcing-scotch-box-2...

    Читайте документацию.
    Ответ написан
    Комментировать
  • Почему vagrant после смены ключа не подключается?

    ArsenBespalov
    @ArsenBespalov Автор вопроса
    Сам себе разработчик
    Забыл про свой вопрос, в моем случае оказалось, что когда Vagrant меняет временный ключ, то не верно указывает права доступа новому ключу, а CentOS отказывается авторизовывать кого-либо по ключам с неверными правами доступа к файлу ключа, вот и вся загвоздка.

    И как я выяснил на практике Vagrant имеет такую проблему давно и никак её не фиксят, может сейчас исправили. А хорошо работает Vagrant только с Ubuntu.
    Ответ написан
    Комментировать
  • Можно ли что-либо добавить внутрь анонимной функции извне?

    ArsenBespalov
    @ArsenBespalov Автор вопроса
    Сам себе разработчик
    Сделал расширение для Google Chrome по мотивам данного вопроса:
    https://chrome.google.com/webstore/search/truecopy...

    Не нужно постоянно вводить в консоль разработчика ничего.
    Ответ написан
    Комментировать
  • Как запретить загрузку файлов с расширением .php в битрикс?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Вот здесь настраивается, но все зависит от кастомных модулей, в них могут быть уязвимости.

    nAyQq3Ki6vZPAZ.png
    Ответ написан
    2 комментария
  • Не отправляется почта через sendmail?

    ArsenBespalov
    @ArsenBespalov Автор вопроса
    Сам себе разработчик
    Все решил вопрос, в hostname по прежнему server.mycompany.ru, только добавил следующие опции:

    MASQUERADE_AS(`mycompany.ru')dnl
    FEATURE(masquerade_envelope)dnl
    FEATURE(masquerade_entire_domain)dnl
    MASQUERADE_DOMAIN(mycompany.ru)dnl
    Ответ написан
    Комментировать
  • MikroTik настройка IPv6: префикс есть, адреса нет?

    ArsenBespalov
    @ArsenBespalov Автор вопроса
    Сам себе разработчик
    Спасибо! Все настроил и все заработало, настройки брал от сюда:
    https://www.mikrotik-routeros.com/2011/12/ipv6-ove...
    Ответ написан
    1 комментарий
  • Как грамотно обновить ip атс?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    - хватит ли текущего железа?

    Сполна

    - необходимо ли менять дистрибутив?

    Нет необходимости

    - как максимально закрыть доступ (со статическими IP понятно, через permit "нужный IP", а с динамикой? просто сложный пароль?

    Используйте VPN — это максимальная защита.
    Ответ написан
    2 комментария
  • Как через denwer осуществить email рассылку?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Denver — это инструмент для разработчиков, а не для хостинга, по умолчанию все письма в Денвере складываются в текстовый файлик в одной из папок Денвера, однако на сайте раньше была инструкция о том как можно Денвер использовать как полноценный хостинг, в том числе каким образом настроить sendmail.

    www.denwer.ru/faq/other.html#h30-27 — Это про почту.

    Что касается CLI, то рекомендую почитать:
    https://habrahabr.ru/post/149545/

    Адрес интерпретатора php думаю сами найдете.

    Однако хочу заметить то, что с большой вероятностью все ваши письма будут валиться в СПАМ, из-за ряда настроек DNS, на основании которых почтовые сервера определяют честность отправителя.
    Ответ написан
  • Как поделиться картинкой в instagram?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Отправлять любые медиа-данные в Instagram возможно только через нативные приложения. Поэтому если вы разрабатываете мобильное приложение, то думаю и у мелкомягких есть функция поделиться, где пользователь сам выберет куда отправить картинку с вашего приложения, в том числе, если у него установлено, и в Instagram.

    Дополнительно акцентирую: в Instagram через API можно только лайкать, подписываться/отписываться и комментировать (да и комментарии тоже требуют отдельного разрешения от администрации Instagram).

    P.S. кстати интересно как C# относиться к Apple Developer?
    Ответ написан
    3 комментария
  • Как избавитья от лишнего запроса? Стоит ли его оставлять?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Скажем так, если у вас с БД через ваше приложение работает только один человек, то можно избавиться от лишних запросов к базе, сохраняя данные при первоначальном подключении, а далее просто по необходимости обрабатывать их.

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

    Вся ваша система частых обращений только лишь дополнительно тормозит пользователей при работе с вашим приложением, но не тормозит БД.
    Ответ написан
    Комментировать
  • Как показывать языковые версии сайта средставами php?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Можно, но все по большей части зависит от CMS движка вашего сайта, если вы занимаетесь изобретением велосипеда, тогда вот вам с ходу набросанная реализация того, о чем вы говорите:

    class Language
    {
    	var $language = null;
    
    	public function __construct()
    	{
    		if (($list = strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']))) {
    			if (preg_match_all('/([a-z]{1,8}(?:-[a-z]{1,8})?)(?:;q=([0-9.]+))?/', $list, $list)) {
    				$this->language = array_combine($list[1], $list[2]);
    				foreach ($this->language as $n => $v)
    					$this->language[$n] = $v ? $v : 1;
    				arsort($this->language, SORT_NUMERIC);
    			}
    		} else $this->language = array();
    	}
    
    	public function getBestMatch($default, $langs)
    	{
    		$languages=array();
    		foreach ($langs as $lang => $alias) {
    			if (is_array($alias)) {
    				foreach ($alias as $alias_lang) {
    					$languages[strtolower($alias_lang)] = strtolower($lang);
    				}
    			}else $languages[strtolower($alias)]=strtolower($lang);
    		}
    		foreach ($this->language as $l => $v) {
    			$s = strtok($l, '-'); // убираем то что идет после тире в языках вида "en-us, ru-ru"
    			if (isset($languages[$s]))
    				return $languages[$s];
    		}
    		return $default;
    	}
    }


    Вот таким образом уже будете использовать:
    // Определяем для кого будет выбираться русский язык
    $site_langs = array('ru' => array('ru', 'be', 'uk', 'ky', 'ab', 'mo', 'et', 'lv'));
    
    // Опеределяем язык пользователя и выбираем нужный для сайта
    $user_lang = new Language();
    $current_lang = $user_lang->getBestMatch('de', $site_langs);
    
    // Отправляем пользователя на нужный язык для его локали.
    if ($user_uri == '/') {
        if ($current_lang != 'de') {
            header("Location: http://site.de/" . $current_lang . "/");
        }
    }
    Ответ написан
    Комментировать
  • Как сгенерировать таблицу с суммирующими колонтитулами?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    А в чем проблема? Если у тебя генерируются путевые листы автоматом с какого-то php скрипта, то и делай соответствующие обращения для генерации колонтитулов.

    Например:
    wkhtmltopdf --margin-top 35mm --margin-bottom 27mm \ 
     --margin-left 10m --margin-right 10mm \ 
     --header-html <путь,имя шапки.php> \ 
     --footer-html <путь,имя подвала.php?параметр=значение> \ 
     <путь,имя исходного файла.php?параметр=значение> \ 
     <путь, имя выходного файла.pdf>


    вот подобную строку уже генерируй другим php, bash или любым другим скриптом скриптом.

    А далее склеивай получившиеся PDF файлы в один.

    Склеить можно разными способами, вот пример на PHP с помощью библиотеки FPDF:
    $pdffile = "Filename.pdf";
        $pagecount = $pdf->setSourceFile($pdffile);  
        for($i=0; $i<$pagecount; $i++){
            $pdf->AddPage();  
            $tplidx = $pdf->importPage($i+1, '/MediaBox');
            $pdf->useTemplate($tplidx, 10, 10, 200); 
        }


    или с помощью GhostScript можно склеить:
    gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ 
     -sOutputFile=<имя конечного файла.pdf> \ 
     <файл1.pdf> <файл2.pdf> <файл3.pdf> <...> <файлN.pdf>
    Ответ написан
  • Как так устроены ссылки на некоторых сайта?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Это динамические страницы. Вам надо для начала приступить к изучению какого-либо языка, тогда станет ясно как делать подобное.

    Если вы хотите такое же применять на PHP, то допустим для Apache есть вот такая конфигурация .htaccess

    Options +FollowSymLinks
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]


    Ну а в index.php вам нужно будет весь остаточный путь парить под свои нужды.

    UPD

    FX-Mercury: ну допустим если вопрос стоит именно в том, чтобы не перезагружать страницу, то это AJAX технология + работа с историей браузера, тогда вам надо использовать что-то подобное:

    Работает в браузерах Chrome, Safari, FF4+ и IE10pp4+!

    Пример:
    function processAjaxData(response, urlPath){
         document.getElementById("content").innerHTML = response.html;
         document.title = response.pageTitle;
         window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
     }


    Также можешь использовать windows.onpopstate для определения нажатия кнопок навигации браузера назад/вперед:

    window.onpopstate = function(e){
        if(e.state){
            document.getElementById("content").innerHTML = e.state.html;
            document.title = e.state.pageTitle;
        }
    };


    Для более глубокого изучения манипуляции с историей браузера читай MDN, там все расписано.

    Кстати, если надо что-то подобное использовать на IE7, то рекомендую смотреть в сторону history.js.

    Для тех, кто задается вопросом что такое IE10pp4+ — это Internet Explorer 10 версии и старше на Windows 8 Platform Preview 4 версии и старше
    Ответ написан
  • Почему PHP очень долго работает?

    ArsenBespalov
    @ArsenBespalov Автор вопроса
    Сам себе разработчик
    Проблема решена:

    1. Долгая авторизация по SSH и невозможность пользоваться Интернетом с сервера решилась заменой DNS провайдера, оказалось DNS не рабочие.
    2. Поменял формат логов Apache, т.к. выяснилось, что Apache даже с нормальными DNS тем не менее не может резолвить имена. Поставил чтобы писал в логи только IP адреса клиентов и тем самым скорость работы вернулась к прежней, даже стало работать чуть быстрее. Такие логи меня устраивают более чем, тем более что никогда не поздно преобразовать ip в имена посредством утилиты logresolve.

    В целом проблема оказалась на стороне провайдера. О своих приключения отписался в службу поддержки, посмотрим что они решат. Замечу что ничего подобного никогда не наблюдалось у Amazon. Почему всегда такое происходит с русскими компаниями, остается открытым вопросом.
    Ответ написан
    Комментировать
  • Что делать, если макет psd с разрешением 144dpi?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    72 dpi — это стандартная плотность пикселей для большинства мониторов, а
    144 dpi — подходит для мониторов где повышенная плотность пикселей, например Retina-дисплеи.

    Скажите что вы хотите сделать с макетом?

    Если вы собираетесь верстать шаблон, то в любом случае лучше использовать 144 dpi, т.к. графические элементы буду не такими мелкими на Retina-дисплеях, а для обычных дисплее логично использовать 72 dpi.

    А в CSS таблице уже конкретно указывать для каких разрешений какие графические элементы использовать.
    Ответ написан
    Комментировать
  • Почему не могу получить информацию со стороннего сайта по ссылке?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Вот уж действительно не знаю, почему вы не получаете данные, код правильный, все работает как надо, данные получаются.
    Ответ написан
    Комментировать
  • Как сделать поиск фотографий по городу через Instagram API?

    ArsenBespalov
    @ArsenBespalov
    Сам себе разработчик
    Может вопрос и устарел, но лично я составляю карту покрытия для каждого города с определенным радиусом, а потом делаю поиск по медиа: https://api.instagram.com/v1/media/search

    Так гораздо точнее можно получить фотографии, чем поиск по локациям.
    Ответ написан