• Есть ли волонтерство в веб-разработке?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Ответ написан
    Комментировать
  • Что вы используете вместо FTP для внесения изменений на сервер?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Rsync + ssh
    Ответ написан
    Комментировать
  • Чем плохи комментарии на русском языке в коде?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Я вообще не пишу комментарии и не имею проблем
    Ответ написан
  • В каких вузах изучают CUDA?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Когда я учился в СПбГПУ на кафедре ИУС, одной из тем НИР, которую предлагал один научрук, было исследование и разработка инструментов, упрощающих (или автоматизирующих) распаралеливание алгоритмов на CUDA.
    Я не решился на такое потому что слишком сложно
    Ответ написан
    Комментировать
  • Почему видеоформат так ненавидим?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Потому что там рассказывают слишком медленно
    Ответ написан
    Комментировать
  • Html в pdf + QWebView + как повторить заголовок таблицы на следующей странице?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    У меня была подобная проблема с wkhtmltopdf (который внутри использует Qt Webkit)
    Решалось подобными хаками
    https://github.com/AAverin/JSUtils/tree/master/wkh...
    https://gist.github.com/zenden2k/dc706de2f638ea9bac5f

    может это вам как-то поможет
    Ответ написан
    Комментировать
  • Как передать через PHP CURL данные в "php://stdin"?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Вам надо запускать новый процесс PHP и как-то передавать туда данные.
    Чтобы вариант через curl работал, нужно, чтобы скрипт читал php://input а не php://stdin
    Ответ написан
    Комментировать
  • Что может быть вместо термопасты?

    Комментировать
  • Почему работодатели требуют знания linux?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Да не нужен он, мы делалы проекты на пхп а выкладывали на линукс через фтп.
    А в линуксе уже копался сисадмин. это не наши проблемы
    Ответ написан
  • Как хранить статьи, конфиги и свой опыт работы?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    KeepNote
    Заметки которые основаны на простой файловой структуре, и их можно просматривать и без программы.
    Некоторые вещи, которые вы считаете полезными для окружающих, можно постить в личном блоге.
    Ответ написан
    Комментировать
  • Какой делать выбор ученику закончивший 11 класс?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    >не буду учиться выпрут нафиг от туда
    Вы слишком высокого мнения о российских вузах. На самом деле многие бездельники дотягивают до выпуска.
    Я бы порассказывал вам историй... но не буду.
    Я учился не в самом плохом техническом вузе Санкт-Петербурга. И поверьте что там на 70% была халтура. Халтура как со стороны студентов, так и преподавателей. Преподаватели делают вид, что преподают, студенты делают вид, что учатся. Хотя тут тоже многое зависит от вашего желания. Я впитывал, как губка, все знания, которые мне встречались на пути. И совсем не жалею о потраченных годах.
    И да, программировать на по большому счету и не учили. Как-то предполагалось, что писать код мы научимся сами.
    Помимо фундаментальных наук, баз данных и т.д., нам пытались впарить: технологии промышленного производства ПО (которые вроде бы используются в компаниях с мировым именем, не знаю, не проверял), основы тестирования ПО, писать тест кейсы, спецификации и HLD (хз где это нужно), методологии разработки ПО (всякие scrum, agile, waterfall и т.д.), многопоточное программирование и синхронизация, основы построения операционных систем (всякие там планировщики задач в ос, RTOS, примитивы синхронизации (дедлок, race, инверсии приоритетов и т.д.)), теория формальных языков и компиляторов (самый мой любимый предмет, после матлогики), защита информации (криптография), сети и телекоммуникации (протоколы, сети, сетевое оборудование, кабели, разъемы xD), программирование для микроконтроллеров, электроника, разработка процессоров, VHDL....
    Я уже вижу как вы это всё изучаете самостоятельно онлайн. Не, конечно, чтобы делать сайтики на php, это всё знать не надо, но вы ведь хотите стать программистом, ведь так? Да даже если по большому счету это мало где пригодится, всё равно это весьма интересно и очень расширяет кругозор. А так называемые "технологии" (языки, библиотеки, фреймворки) вы всегда успеете выучить.
    А хабр не является отражением действительности, серьезные разработчики не сидят на хабре и обходят его стороной, здесь собираются любители скругливать уголки на CSS.

    >и там не будет друзей таких которые вечерам тебя просят выйти на улицу мешая тебе заниматься самообразованием за компьютером.
    Вы сказали, что будете жить в общежитии. Думаете, там кто-то вам даст заниматься самообразованием?
    Я жил в общежитии. Правда не в общежитии айтишного факультета, а вперемешку.
    И там было много быдла, в т.ч. приезжих из Казахстана и Киргизии, которым лишь бы "покурить анашу".
    Мне трудно было не только сосредоточиться на самообразовании, а даже просто заснуть нормально.
    В зависимости от вашего характера, вы можете втянуться в "общажную жизнь" или нет.
    Со мной этого, слава богу, не произошло. Потому что я не поддаюсь никакому влиянию и знаю, чего хочу.

    Ну Киргизия - это днище, конечно, бегите оттуда.
    Ответ написан
    Комментировать
  • Как думаете, почему для разработки android выбрали язык java?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Дураки потому что. Надо было на нативном коде делать.
    Поэтому ИОС рвет андроид как тузик грелку.
    Ответ написан
    6 комментариев
  • Для чего нужен данные предикаты?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Для поиска собак по кличке или породе?

    Предикаты- подмножество функторов, в которых тип возвращаемого значения operator() bool. Предикаты используются в алгоритмах сортировок, поиска, а также во всех остальных, имеющих на конце _if. Смысл в том, что объект-функция в случае использования предиката возвращает истину или ложь в зависимости от выполнения необходимого условия. Это либо удовлетворение объектом неких свойств, либо результат сравнения двух объектов по определенному признаку.
    Ответ написан
    Комментировать
  • Карьера программиста после 30+. Миф или реальность?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Я не вижу проблем, какая разница, сколько лет. Правда те, кто начинал программировать в 15-20 лет будут рвать вас, как тузик грелку, и вы ничего не сможете с этим поделать. Всё равно что начинать играть в футбол в 30 лет.
    Так что дерзайте.
    Ответ написан
  • Входит ли DirectX в стандартную поставку Windows XP различных редакций?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    В состав Windows XP входит DirectX 8.1 который можно обновить до DirectX 9.0c.
    Windows XP SP3 уже содержит DirectX 9.0c.

    DirectX может не содержаться только в Windows XP Embedded и Windows fundamentals for Legacy PC (можно отключить при установке)
    Ответ написан
    Комментировать
  • Как заполнить 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, плохо работают с юникодом.
    Ответ написан
  • Почему некоторые страницы сайта грузят dl.metabar.ru?

    zenden2k
    @zenden2k
    PHP & C++ programmer
    Ну, например, у меня стояло расширение SaveFromNet которое включает в себя metabar. Пришлось удалить, а жаль, полезное расширение.
    Ответ написан
    3 комментария