• САПР для печатных плат под linux?

    Zoominger
    @Zoominger
    System Integrator
    Хочу найти программу по функционалу максимально приближенным к P-CAD и Altium Designer для linux.

    Не найдёте. Есть KiCAD, LibrePCB и ещё одна (забыл название, но оно и не важно), но это тоже эрзац-поделки. Если хотите Альтиум - качайте Альтиум.
    Ответ написан
    1 комментарий
  • Как преобразовать массив байт в любой тип?

    shai_hulud
    @shai_hulud
    Что бы читать и писать примитивные типы достатоточно BinaryReader/BinaryWriter
    Ответ написан
    2 комментария
  • Как преобразовать массив байт в любой тип?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    попытайтесь понять тут https://docs.microsoft.com/ru-ru/dotnet/api/system...

    сериализатор сохраняет , по всей видимости, еще хоть что то о мета данных. а ДЕсериализатор, пытается их найти... с одним байтом этот фокус не проходит

    ps для понимания, опробуйте https://docs.microsoft.com/ru-ru/dotnet/api/system... это должно сработать. и только после этого, вернитесь к вопросам:
    - любой объект
    - сериализация
    - ДЕсериализация

    pps
    абсолютно рабочий код (!!! ну на самом деле тоже исправлено!) ;))
    using System;
    using System.IO;
    using System.Runtime.Serialization.Formatters.Binary;
    
    namespace stream_to_any
    {
        class Program
        {
            static void Main(string[] args)
            {
                var data = new byte[] { 1, 2 };
                using (var stream = new MemoryStream())
                {
                    var formatter = new BinaryFormatter();
                    formatter.Serialize(stream, data);
                    stream.Seek(0, SeekOrigin.Begin);
                    var endDataPacket = (byte[])formatter.Deserialize(stream);
                    Console.WriteLine(endDataPacket.GetType().ToString());
                    foreach(var d in endDataPacket)
                        Console.WriteLine(d);
                }
            }
        }
    }
    ppps если вы доберетесь от мемори-стримов, до реальных файлов, думаю у вас будет возможность заметить что же там "не так" )))
    Ответ написан
    2 комментария
  • Почему не работает Converter?

    petermzg
    @petermzg
    Самый лучший программист
    <Window.Resources>
          <local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
    </Window.Resources>
    Ответ написан
    2 комментария
  • Как вызвать замыкание через розетку?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Берете ТОНКУЮ МЕДНУЮ проволоку не более 0.5 миллиметра, а лучше 0.1-0.2, и длиной не более 10-20 сантиметров. Это для того, чтобы металла по стенам было меньше и быстрее перегорела.
    Выключаете рубильником розетки
    Вставляете проволоку, обкладываете или закрываете ее кафельной плиткой. Проволоку можно намотать на два гвоздя сотки и их вставить в ВЫКЛЮЧЕННУЮ РОЗЕТКУ.
    Убираете всех из данной комнаты .
    Включаете рубильник, ждете 1-20 секунд,
    Выключаете рубильник и смотрите результат.

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

    И да, скорее всего вам поставили УЗО., и это правильно. На почитать https://ru.m.wikipedia.org/wiki/Устройство_диффере...
    Ответ написан
    6 комментариев
  • Необычный hover эффект?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Событие mousemove или onEnterFrame(),
    пересчитать прозрачность каждой точки, как квадрат расстояния от позиции мыши.

    Сделал пример на canvas.
    upd. добавил инертности/плавности перехода цветов.
    Ответ написан
    3 комментария
  • Какой программой импортировать большую БД?

    Henryh
    @Henryh
    Веб-программист
    Проверенней программы, чем работа с базой через консоль - просто нет. Рано или поздно все подводят, а ей всё равно, будь база хоть 50гб.
    Разбить/слить и заодно очень серьёзно сжать большой файл можно там же в консоли архиватором.

    # Залить дамп в базу данных:
    mysql DBNAME -u DBUSER -p < dump.sql
    
    # Создать дамп:
    mysqldump -uDBUSER -p DBNAME > dump.sql
    
    # Импорт БД в sql.gZip:
    gunzip < dump.sql.gz | mysql DBNAME -u DBUSER -p


    А хостера, который ограничивает вас в таких простых вещах, думаю, стоит сменить)
    Ответ написан
    1 комментарий
  • Какой программой импортировать большую БД?

    dummyman
    @dummyman
    диссидент-схизматик
    Друг подсказал, есть такая прога Навикат
    Она поможет. После установки в папке с программой есть php-файл, его закачиваешь на хостинг. Прога через этот файл будет коннектиться. Есть режим синхронизации двух баз mysql, т.е. сама перестроит структуру БД если что изменилось, найдет новые строки, измененные, удаленные. Короче, что доктор прописал. Главное - не юзай кряк что в папке и не забудь заплатить автору по истечению триального периода.
    Ответ написан
    5 комментариев
  • Как подгружать новости не в хронологическом порядке?

    @MadridianFox
    Web-программист, многостаночник
    Просто используйте постраничную навигацию:
    SELECT *, something FROM `news`
    WHERE (некое условие для фильтрации по категориям) AND  date < "time of page hit"
    ORDER BY `something` ASC
    LIMIT 20, 20

    Я добавил в этот запрос всего два маленьких изменения. Первое - задал смещение для LIMIT, его надо высчитывать на PHP и вставлять в запрос. Первая цифра это просто номер страницы минус один, умноженное на количество постов на странице (page_num-1)*page_size. Вторая цифра - как обычно, количество постов на странице.
    Второе измененеие - добавил в where дополнительное условие: выбирать только те новости, которые уже были в базе, пользователь открыл страницу. Это необходимо, т.к. если в процессе подгрузки новостей добавится ещё одна, то страницы поедут (вы могли замечать это, когда листаете хабр и на следующей странице первым виден последний пост с предыдущей) и какая-то новость задублируется в общем списке на клиенте. Time of page hit должно храниться на клиенте и передаваться на сервер при подгрузке каждой следующей порции данных.

    Этот метод не зависит от того как вы сортируете новости - по дате, рейтингу, любому другому полю... главное чтобы первая подргузка и все последующие сортировались одинаково.
    Ответ написан
    5 комментариев
  • Интеграция Python'а в С/С++ для написания нейросети и последующее встраивание в микроконтроллеры?

    @aol-nnov
    для начала, кашу из головы надо переместить в более подходящее место.
    потом понять, что микроконтроллер - это аппарат с ограниченными ресурсами, а порой и ограниченным набором команд.

    прототип, написанный на коленке на жирнопитоне на восьмиядерном контупере придется *портировать* на диалект языка си, который будет понятен компилятору, собирающему объектный код для микроконтроллера, попутно соображая, сколько килобайт памяти будет в твоем распоряжении на целевой платформе.
    Ответ написан
    1 комментарий
  • Дает ли строгая типизация в PHP 7 прирост производительности?

    Начал писать ответ комментарий https://toster.ru/answer?answer_id=937197, но ответ получился большим и поэтому решил поместить его отдельно.

    DevMan , я попробую уточнить ваше утверждение, что немного снижает.
    На самом деле, при использовании скалярных тайпхинтов снижается производительность вызова функций, поскольку возникает некий дополнительный оверхед на валидацию аргументов и приведение значений к нужным типам (если не используется strict_types). Но! Так как внутри функции значения аргументов уже приведены к нужным типам, то при использовании аргументов не происходит неявного приведения типа.
    Поясню на синтетическом примере:
    function foo($x) {
        $result = 0;
        for ($i = 0; $i < 100; $i++) {
            $result += $i + $x;
        }
        return $result;
    }


    Если вызвать эту функцию так: "foo('123')", то в таком случае внутри цикла аргумент будет неявно приводится к целому числу 100 раз. Если вызвать функцию так: "foo(123)", то в таком случае аргумент не будет внутри цикла приводится к целому числу. Очевидно, что второй вариант более производительный:
    ~$ time php70 -r 'function foo($x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo("123");'
    
    real    0m0.860s
    user    0m0.855s
    sys     0m0.005s

    ~$ time php70 -r 'function foo($x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo(123);'
    
    real    0m0.508s
    user    0m0.500s
    sys     0m0.008s


    В то же самое время, если добавить к аргументу скалярный тайпхинт, то тогда значение аргумента один раз будет приведено к тайпхинту и внутри функции уйдёт весь оверхед связанный с неявным приведением типа:
    ~$ time php70 -r 'function foo(int $x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo("123");'
    
    real    0m0.502s
    user    0m0.498s
    sys     0m0.003s

    ~$ time php70 -r 'function foo(int $x) { $result = 0; for ($i = 0; $i < 10000000; $i++) { $result += $i + $x; } } foo(123);'
    
    real    0m0.504s
    user    0m0.495s
    sys     0m0.008s


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

    Зато использование строгой типизации не даст запустить функцию в неконтроллируемом состоянии: когда функция ожидает на вход целое число, а по какой-то причине подсунули массив:
    $var = $_GET['foo'];
    bar($var);
    , для get-параметра foo=123 вызов будет корректным, а для foo[]=123 вызов функции приведёт к TypeError; для foo=abc тоже будет TypeError. Разумеется, этот пример сильно надуман и тут нужно использовать "нормальный" валидатор.
    Ответ написан
    1 комментарий
  • Дает ли строгая типизация в PHP 7 прирост производительности?

    banderos120
    @banderos120
    Играю на балалайке
    По первому запросу:
    stackoverflow.com/questions/32940170/are-scalar-an...
    Ответ написан
    Комментировать
  • Есть ли готовые реализации Gaussian Blur opengl?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Стандартные средства с# для размытия я уже испытывал - тормозит

    Что-то не так делаете.
    c# wpf shader effect
    Есть даже на русском https://habrahabr.ru/post/194734/ (правда не гаусс, но думаю подкрутите под себя)
    Ответ написан
    2 комментария
  • Как объяснить кусок кода C++?

    @Mercury13
    Программист на «си с крестами» и не только
    Весь этот код (за исключением Close) — автогенерируемый.

    ///// Защита от повторного включения
    #ifndef Unit1H
    #define Unit1H
    
    ///// Хедеры VCL. Причём всё это сделано так, чтобы упростить написание ценой удлинения
    ///// компиляции. Более громоздкий, но и более удачный вариант.
    ///// В H:
    /////   namespace Controls { class TLabel; }
    /////   using namespace Controls;
    ///// В CPP:
    /////   #include <Controls.hpp>
    ///// Вот таким образом можно (было) избавиться от каскадного подключения
    ///// хедера Controls. А то каждый, кто использует главной форму,
    ///// автоматически подключает эти хедеры.
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    ///// Только от Forms.hpp избавиться таким макаром нельзя:
    ///// мы наследуемся от TForm.
    #include <Forms.hpp>
    
    ///// Класс формы. Все формы наследуются от TForm.
    class TForm1 : public TForm
    {
       ///// Особое право доступа Borland, для совместимости с Delphi.
       ///// Поля и свойства published не просто public, но включаются
       ///// в структуру рефлексии (aka reflection или introspection)
       ///// и программа о них знает при выполнении.
       ///// Применительно к формам — published-поля доступны
       ///// загрузчику.
    __published: // IDE-managed Components
       ///// Компоненты, которые мы установили на форме редактором.
    TLabel *Label1;
    TButton *Button1;
       ///// События, которые мы прописали в редакторе.
       ///// __fastcall — модель вызова, аналогичная Delphi.
       ///// Именно такая модель вызова принята в обработчиках
       ///// событий.
    void __fastcall Button1Click(TObject *Sender);
       ///// Пользователь пока не прописал никаких своих
       ///// полей и функций.
    private: // User declarations
    public: // User declarations
       ///// Конструктор. Раз уж у формы нетривиальный конструктор —
       ///// по правилам Си++ его надо повторить в подклассе.
       ///// Снова-таки, модель вызова __fastcall: в формах Delphi
       ///// используются т.н. виртуальные конструкторы, 
       ///// когда по имени класса можно создать объект этого класса.
       ///// Фабричный метод, только немного лучше.
       ///// Но это значит: у всех подчинённых классов
       ///// должен быть один и тот же набор параметров
       ///// и модель вызова.
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    ///// Как известно, переменная объявляется один раз.
    ///// Поскольку хедер может подключаться к огромному числу CPP,
    ///// её объявляют как extern (она есть, но в другом месте).
    ///// Макрос PACKAGE раскрывается в __declspec(package),
    ///// чтобы эту штуку можно было собрать как пакет.
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif

    Модель вызова — это как технически мы вызываем подпрограмму. Какая память и какие регистры на это используются, и кто подчищает стек. Ищи в Википедии.
    Ответ написан
    Комментировать
  • Какую плату и программатор купить для старта?

    Slavka_online
    @Slavka_online
    Интересная личность
    Берите отладочные платы на основе STM32. Arduino не берите ни в коем случае. Поймите принцип разработки на микроконтроллерах: прерывания, таймеры, интерфейсы(SPI, I2C, UART).
    Ответ написан
    5 комментариев
  • Как исправить ошибку Program "make" not found in PATH?

    Очевидно - найти исполняемый файл make (C:/MinGW/bin, предположу) и докинуть содержащую его директорию в PATH.
    Ответ написан
    3 комментария
  • Как растянуть контент по высоте?

    LenovoId
    @LenovoId
    svg, css,js
    calc (); работает везде : https://jsfiddle.net/Geyan/9z8u92dh/4/ , проверил с 4 устройств
    Ответ написан
    Комментировать
  • Как растянуть контент по высоте?

    AppFA
    @AppFA
    Frontend developer at Yandex
    Можно сделать с помощью flex-box так:
    https://jsfiddle.net/9z8u92dh/3/
    Ответ написан
    Комментировать