Задать вопрос
  • Можно ли перенести Windows 10 на новый комп, сохранив все настройки?

    @LaoTheLizard
    Somebody.
    Поделюсь личным опытом.
    На моём компьютере было 4790K/Z97-A, стало 11900K/Z590-V.
    На компьютере жены было 4790K/Z97-A, стало 11700/Z590-V.
    Спецификации указал лишь затем, чтобы было понятно, что старые и новые конфигурации, по сути, идентичны.

    На моём Windows 10 была перенесена без реинсталляции - просто перекинул старый M2.
    На жены, емнип, Windows 10 была перенесена программой R-Drive, поскольку там обычный SSD я заменил на новый M2.
    При включении "новых" компьютеров всё запустилось без проблем, скачали и поставили все недостающие драйверы, купили новые ключи для ПО (Windows/Office), и всё заработало.

    Прошло полтора года.
    В то время как комп жены всё это время проработал без проблем, у моего выявились странные особенности.
    1) При попытке застримить некоторую игру через Discord игра мгновенно вылетала (у моих друзей такого не было).
    2) При попытке застримить некоторое приложение через Discord стабильно вылетал неопознанный BSOD.
    3) При попытке использовать веб-камеру в одних приложениях она работала, в других отказывалась - не помогали никакие загугленные методики. Я думал, что это из-за того, что камера - дрянь китайская с Али, но однажды засунул её в комп жены - и там этой проблемы не выявилось.
    4) При попытке использования одной старой, но божественной программы (ACDSee 2.41) она зависала. На компе жены эта же программа работала без нареканий.

    В итоге две недели назад плюнул и переустановил Windows. Потратил время с утра до полудня - и оно того стоило. Ввёл предыдущие ключи Win/Office - они подошли. Но главное - все вышеперечисленные проблемы исчезли, всё работает.

    Выводы делайте (или не делайте) сами.

    Если решите всё же переустановить, вот вам пара лайфхаков:
    1) Если боитесь забыть, какие программы у вас стояли, UninstallTool умеет экспортировать список установленных программ в удобный HTML-список.
    2) Папку "Мои документы" можно временно скопировать или перенести на постоянку на другой SSD/HDD (вкладка "Расположение"), а после переустановки Windows скопировать обратно или заново подключить. И не забудьте сбэкапить папку "Рабочий стол", на которой (я - свидетель) отдельные индивидуумы умудряются хранить по 50+ Гбайт семейного фотоархива в единственном экземпляре.
    6711d7ab6a919196894895.jpeg
    3) Перед заменой железа сохраните образ старой Windows программой R-Drive на внешний носитель на случай, если решите откатить всё назад. Если что-то забудете сохранить, то этот образ можно будет подключить, как логический диск, и скопировать всё, что нужно. Чтобы образ весил меньше, перед этим максимально освободите папки "Рабочий стол" и "Мои документы".
    4) Закладки в Google Chrome сейчас сохраняются в профиле Google. Но если нужно, в chrome://bookmarks есть возможность экспортировать их в отдельный файл (а позже, если и когда нужно, импортировать обратно).
    5) Драйверы материнской платы выкачайте заблаговременно с сайта-производителя. Во-первых, Windows 10 подтягивает далеко не всё, и потом в диспетчере устройств болтаются "неизвестные". А во-вторых, очень вероятно, что на старте возникнут проблемы с доступом к интернету, потому что в Windows 10 для свежей материнской платы наверняка не найдётся драйвера сетевой карты. Но даже после установки всех драйверов обязательно зайдите в диспетчер устройств и убедитесь, что там порядок - в противном случае вручную ищите в интернете и установите все драйверы.
    6) Сейчас многие программы хранят свои данные в папке "C:\Users\учётка_пользователя" например, Minecraft, Skype, Telegram. Чтобы избежать досадных потерь, надо либо скопировать их сразу, либо смотрим п.3. При этом, если учётка локальная, то предпочтительнее на новой ОС новую учётку назвать точно так же: у меня среда разработки Eclipse переставала работать, потому что её папка лежала там и пути были прописаны туда.
    7) *в продолжение п.3* После того, как установили все обновления, драйверы и программы, идеальным вариантом будет сделать программой R-Drive новый образ Windows, чтобы в случае чего не повторять всё заново. При этом старый образ не стоит удалять ещё хотя бы пару недель - чтобы со временем можно было подобрать хвосты (забыли что-то скопировать).
    8) Через две-три недели, когда вы полностью обживёте новую ОС, создайте через R-Drive новый образ системы в текущем состоянии. И только после этого воспользуйтесь утилитой Dism++, чтобы удалить балласт, который после установки всех обновлений легко может превысить 15-20 Гбайт. Пользуйтесь компьютером ещё хотя бы неделю, и если проблем не возникает, можете смело удалять все накопившиеся бэкапы-образы и делать один последний, окончательный, который когда-нибудь спасёт вас от кривых рук или безвременно почившего системного SSD.
    Ответ написан
    5 комментариев
  • Возможно ли использовать модель LLAMA-405B на обычном железе 64GB + 8GB?

    @rPman
    Да, уже считал, и это действительно реально, с относительно небольшими затратами (16-20т.р.) если тебя устроит скорость исполнения в 15-30 секунд на токен (на твоем железе llama31-70b на процессоре и 64гб оперативке будет работать токен в 1-1.5 секунд).

    Необходимо собрать самый дешевый pcie nvme ssd программный raid0, купив контроллер pcie-x16 3.0 или 4.0 из четырех разъемов nvme либо четыре pcie-4x дешевых 3.0 и закупить самые дешевые nvme ssd диски от 128гб (со скоростями чтения от 2гбайт/сек).

    Затем собрать из них raid0 с чередованием (win/linux это поддерживают) и разместить на нем gguf файл. llama.cpp поддерживает загрузку файла с весами с диска, без выделения оперативной памяти (но она нужна на контекстное окно, в зависимости от его размера это будут десятки гигабайт). Файл будет считываться по кругу целиком, по разу на токен, а значит скорость будет определяться именно этим. 2гб/с*4 диска = 8гб/с, 256гб 4бит квантизация будет считываться за 32 секунды.

    Есть еще ограничения в скорости исполнения из-за процессора, но по уму, если бы была оперативная память то типовой десктопный процессор работал бы на скорости 15-20 секунд на токен.
    Ответ написан
    7 комментариев
  • Кто-нибудь знает что за неизвестная железка подключена посторонними к роутеру?

    anthtml
    @anthtml
    Системный администратор программист радиолюбитель
    https://www.raspberrypi.com/products/raspberry-pi-5/
    Стявят VPN прокси сервер (выходную TOR-ноду)
    Чтобы потом "товарищи" приходили к Вам, а не к ним или их клиентам
    Ответ написан
    1 комментарий
  • Как хранить номера банковских карт на сервере?

    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 комментариев