• Как хранить номера банковских карт на сервере?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    никак не хранить, предоставьте эквайринг банкам.
    исходя из того что вы задаёте такой вопрос - эти данные у вас гарантированно украдут.
    Ответ написан
    2 комментария
  • Что такое фикстуры и миграции?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Фикстуры - это по сути тестовые данные. Они нужны для unit-тестирования. Это могут быть как данные в базе, так и обычные файлы (обычно 2 варианта, до и после обработки так скажем). Каждый раз когда запускаются тесты, эти данные используются для установления начального состояния системы, что бы тесты всегда выполнялись предсказуемо.

    Для функционального тестирования (тестрирование контроллеров, интаграционных тестов) фикстуры не применяются, хотя суть там так же сходна. Если честно, то тут мнение расходится. Одни говорят что при функциональных тестах нельзя использовать даже моки, то есть система в процессе выполнения тестов полностью создает то состояние которое необходимо для других тестов. Например последовательное выполнение тестов на добавление статьи и ее просмотр. Другие же предпочитают для каждого тесткейса выставлять состояние с нуля. По сути это схоже с использованием фикстур, но реализация различается. У вас есть некое api для заполнения данными (скажем метод добавляющий пользователя), и перед выполнением тест-кейса происходит ресет данных и заполнение их новыми. Плюсы так же есть - можно распаралелить выполнение тестов. (но не верьте мне на слово)

    Миграции - механизм организации версионности структуры проекта. Вы можете написать миграцию для изменения местоположения статики (картинки, поменять ссылки в базе и т.д.), или же у вас добавляется новая таблица/поле. Обычно дополняется обратной миграцией, которая восстанавливает исходную структуру. Обязательно для работы в команде или при частом изменении организации данных в проекте, вообще я бы посоветовал использовать их всегда.
    Ответ написан
    Комментировать
  • Как удалить не используемые стили из CSS файла?

    dimakrsna
    @dimakrsna
    Front-end develorer
    Простой и быстрый сервис: https://uncss-online.com/
    Ответ написан
    Комментировать
  • Как получить фигуры из dxf?

    @Iv_and_S
    "фигур из dxf" - это неоднозначное определение того что у вас есть.
    если условно, круг нарисован одним примитивом, тогда:
    через "ваш CAD " API можно и так получить тип объекта (имеется ввиду тип CAD классификации), без каких либо проблем.
    обычно что то типо:
    id.ObjectClass.DxfName == "CIRCLE"
    или
    RXObject.GetClass(typeof(Line)
    однако, в случае если наш условный круг, состоит из 100500 отрезков, образующих круг такой способ конечно не подойдет.
    Ответ написан
    Комментировать
  • Как получить фигуры из dxf?

    avc
    @avc
    Инженер и программист
    Готовые решения - это API AutoCAD и всех его многочисленных клонов (на базе ODA Teigha). Если устраивает писать не отдельную программу, а плагин под любой этот CAD, то это будет самый простой вариант. Есть C++ API (ObjectARX), есть под .Net и, например, C# . Если в системе установлен именно AutoCAD - есть такая штука как AcCoreConsole с помощью которой можно вызывать API автокада из внешних программ. Ну и наконец есть дорогущие библиотеки от Autodesk (RealDWG) и ODA (Teigha) для полноценной работы с DWG и DXF без установки каких-либо CAD.
    В каких-то очень простых случаях можно прочитать и распарсить сам файл DXF - обычно это простой и понятный текст (хотя DXF теоретически может быть бинарным)
    Ответ написан
    Комментировать
  • Как заполнить PDF?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    На самом деле, вопрос не так прост, как кажется.
    После долгих мучений я так и не нашел идеального варианта.
    Почти все решения, имеющиеся в инете, имеют проблемы с юникодом.
    И тут проблема может быть не только в кодировке, а и то, что в pdf файле могут отсутствовать шрифты для нужных букв, или буквы отображаются каким-то нестандартным образом.
    Почти все портят pdf файл или поддерживают далеко не все файлы (например защищенные или запакованные файл). Тут уж как повезет.
    Еще решение зависит от того, нужно ли вам, чтобы поля оставались редактируемыми, или нет.
    Если поля вы оставите редактируемыми, то может оказаться, что скажем значение в поле правильное, а отображается неправильно. Или наоборот, отображается правильно, а редактируется неправильное значение. Или вообще не отображается (например, в гугл хроме)
    Все усложняется, если в форме есть комбобоксы, радиобаттоны и т.д.

    Сперва надо узнать список полей программой pdftk:
    pdftk samplex.pdf dump_data_fields

    Вот мои варианты:

    Вариант с zend1
    нужен патченный zend pdf.php https://drive.google.com/file/d/0B_RKTUl10DcrOF9uZ...
    весь архив с zend1 https://drive.google.com/file/d/0B_RKTUl10DcrbV8wN...

    set_include_path(implode(PATH_SEPARATOR, array(
        realpath('./zend1/library/'),//the path
        get_include_path(),
    )));
    require "Zend/Loader/Autoloader.php";
    $autoloader = Zend_Loader_Autoloader::getInstance();
    
    $pdf = Zend_Pdf::load('form.pdf');
    $pdf->setTextField("name","value");
    $pdf->save('outputfile.pdf');


    Вариант с FPDM:
    $pdf = new FPDM('template.pdf');
    $pdf->Load(array("field" => "value"), false); // second parameter: false if field values are in ISO-8859-1, true if UTF-8
    $pdf->Merge();
    $pdf->Output();


    Вариант с xfdf файлом:
    function createXFDF($file,$info,$enc='UTF-8'){
        $data=
            '<?xml version="1.0" encoding="'.$enc.'"?>
    <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve">
        <fields>';
        foreach($info as $field => $val){
            $data.='
            <field name="'.$field.'">';
            if(is_array($val)){
                foreach($val as $opt)
    //2013.01.17 - Jon Hulka - all non-ascii characters get character references
                $data.='
                <value>'.mb_encode_numericentity(htmlspecialchars($opt),array(0x0080, 0xffff, 0, 0xffff), 'UTF-8').'</value>';
            }else{
                $data.='
                <value>'.mb_encode_numericentity(htmlspecialchars($val),array(0x0080, 0xffff, 0, 0xffff), 'UTF-8').'</value>';
            }
            $data.='
            </field>';
        }
        $data.='
        </fields>
        <ids original="'.md5($file).'" modified="'.time().'" />
        <f href="'.$file.'" />
    </xfdf>';
        return $data;
    }
    
    $pdf = new FPDM('template.pdf', 'fields.fdf');
    $pdf->Merge();
    $pdf->Output();

    Вариант с программой pdftk:
    pdftk formfile.pdf fill_form fieldinfo.fdf output outputfile.pdf flatten

    Если убрать flatten поля останутся редактируемыми.
    fdf файл имеет формат:
    %FDF-1.2
    %,,oe"
    1 0 obj
    <<
    /FDF << /Fields [
    << /T (CheckBox1) /V /A>>
    << /T (CheckBox2) /V /Off>>
    << /T (CheckBox3) /V /Off>>
    << /T (ComboBox1) /V (Option 1)>>
    << /T (ListBox1) /V (Item2)>>
    << /T (MultiLineText1) 
    /V (This is a Multi-line text box. Note that the text wraps around to the next line!)>>
    << /T (RadioGroup1) /V /Yes>>
    << /T (TextBox1) /V (Sample Text)>>
    ]
    /F (testfile.pdf)>>
    >>
    endobj
    trailer
    <<
    /Root 1 0 R
    >>
    %%EOF


    Вариант со встроенным javascript и скриптом addjstopdf.py (заполнение полей внутри просмотрщика с помощью javascript, поля остаются редактируемыми, работает в adobe reader, foxit, x-pdf, не работает в google chrome, едва ли работает в firefox, не работает в линуксе):
    <?php
    class Helper_Pdf {
    
        protected function build_pdf_javascript(array $fields) {
            $js = "app.alert({cMsg: \"Please fill out this form.\",cTitle: \"Title\", nIcon: 3});";
            foreach ( $fields as $key => $value) {
                if ( $value === null ) {
                    $value = '';
                }
                $encodedValue = json_encode($value);
                $encodedValue = str_replace("\\u", "\\\\u", $encodedValue);
                $keyEncode = str_replace("\\u", "\\\\u", json_encode($key));
                $js .= " if ( this.getField($keyEncode) != null) {
                this.getField($keyEncode).value=$encodedValue;
                }
                ";
            }
    
            return $js;
        }
    
        function escapeJs($js) {
            $js = str_replace("(","\\(",$js);
            $js = str_replace(")","\\)",$js);
            $js = str_replace("/","\\/",$js);
            $js = str_replace("\r\n","\\r\\n",$js);
            return $js;
        }
        public function generate(){
    
            $addJsToPdfFilePath = DOCROOT . "plugins/addjstopdf/addjstopdf.py";
            $sourcePdf = DOCROOT . "data/pdf/rental_contract.pdf";
            $embeddedJsPath = DOCROOT . "data/pdf/js/" . uniqid().".js";
    
            $fields =
            array(
            'field1' => 'value'
            'field2' => 'value2'
            );
    
            $embeddedJs = $this->build_pdf_javascript($fields);
            file_put_contents($embeddedJsPath,$this->escapeJs($embeddedJs));
            $outFilePath = DOCROOT . "data/pdf/temp/" .  uniqid().".pdf";
            $pythonPath = Kohana::$is_windows ? "c:\\Python27\\python2.exe" : "/usr/bin/python2";
            $command = "$pythonPath $addJsToPdfFilePath -f $embeddedJsPath $sourcePdf $outFilePath";
            $command = str_replace( "\\","/", $command);
            system($command);
        }
    }


    Все варианты, кроме javascript, плохо работают с юникодом.
    Ответ написан
  • Как получить фигуры из dxf?

    @AlexSku
    не буду отвечать из-за модератора
    Возможно, сконвертировать в emf, а тот прочитать как список команд.
    Аналогично может получится и через svg, но надо искать способы извлечения команд.
    Ответ написан
    Комментировать
  • Fullstack: составить дорожную карту?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    я себя вижу как будующий фуллстек

    Я себя тоже когда-то видел новым Линусом Торвальдсом, но жизнь не щадит.

    поэтому можно по подробнее про бэк и фронт.

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

    Алгоритм действий для вас -
    1. Выбор сферы -> хочу работать там-то.
    2. Выбор языка -> определился со сферой, есть такие вот языки, на которых реализуется функционал.
    3. Изучения языка и инструментария по выбранным выше аспектам
    - Вопросы - (нужна ли математика в данной сфере, если нужна - то какой уровень математики, какой уровень computer science, что нужно знать из базы).
    - от фронта до бэка(если бизнес модель и задача позволяет одновременно реализовывать фронт и бэк без боли и огромного количества поглощаемой информации).
    4. Учитьсяи работать от 2-3 лет(если есть желание быть фуллстэком) и до бесконечности, желательно сразу идти в офис что бы перенимать опыт у более опытных товарищей).

    я себя вижу как будующий фуллстек

    Я когда вижу Резюме - фуллстэк - 2 года опыта, немного начинает подташнивать. Нормальный фронт, или нормальный бэк - это 2-3 года работы, когда задача решается так как нужно, и +\- не приходится переделывать. Нормальным фуллстэком вы станете лет через 5, поэтому начните с алгоритма, и далее если хватит сил - уже прыгайте на второй корабль.
    Ответ написан
    2 комментария
  • Как лучше отдавать связанные данные через rest api laravel?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Laravel
    Можно вместо ресурсов Лары использовать Fractal, там третий вариант поддерживается из коробки.
    Ну или вообще GraphQL использовать.
    Ответ написан
    Комментировать
  • Как лучше отдавать связанные данные через rest api laravel?

    @d-sem
    Посмотрите в сторону https://github.com/spatie/laravel-query-builder
    И фильтры по полям, и связи по требованию.
    Ответ написан
    1 комментарий
  • На youtub есть канал где читают код PHP?

    hack504
    @hack504
    Изучаю PHP рекомендуют читать чужой код.

    Даже спецы не читают чужой код, если их не заставят. Но было бы прикольно, действительно, посмотреть на youtub как разрабы читают чужой код, особенно на PHP
    1387209829_1176468776.gif
    Ответ написан
    10 комментариев