Задать вопрос
Профиль пользователя заблокирован сроком с 16 октября 2023 г. и навсегда по причине: систематические нарушения правил сервиса
  • Стоит ли переходить с Python на C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    NET это общая платформа. C# только один из языков есть например IronPython https://ru.wikipedia.org/wiki/IronPython

    А в играх часто используют скриптовые языки поверх движка написанного на языке низкого уровня.
    Ответ написан
    Комментировать
  • Возможно ли настроить файл htaccess только на Российские ip адреса?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    2 ^32 верхний потолок адресов. На самом деле они выделяются блоками, поэтому записей у вас будет сильно меньше. Однако самая главная проблема в том что этими адресами торгуют и где этот клиент, определить очень сложно.
    Вот ссылка, с тех пор правда стало еще хуже
    forum.ixbt.com/topic.cgi?id=14:13947
    Ответ написан
  • Как послать сообщение по ssh ubuntu server?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    man wall
    man write
    Ответ написан
    Комментировать
  • Как осуществляется межпроцессное взаимодействие на C++?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как и в любых других языках пайпы сокеты сигналы общая память эвенты. По сути вам нужно настроить передатчик и приёмник и обернуть это все кодом.
    Ответ написан
    Комментировать
  • Какие распределенные реляционные базы данных бывают?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    MSSQL
    тут главное что вы подразумеваете под "распределенные"
    Ответ написан
    Комментировать
  • Какой софт использует расчеты на видеокарте?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Adobe Photoshop.
    Any of AAA games
    Ответ написан
  • Как пройтись по ComboBox'ам?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    У формы есть потомки, пройдитесь по ним.
    foreach (Control control in Controls)
                {
                    Debug.WriteLine(control.Name);
                }


    Другой вариант
    var cmBox = new List<ComboBox>();
     foreach (ComboBox box in cmBox)
                {
                    if(box.Name == "startCompound1"){
    // что то 
                          }
                }
    Ответ написан
  • Как создать счетчик запуска программ внутри самой программе(внутри поля класса)?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Выберите любое доступное хранилище.
    Реестр
    Облако
    Стрим в файле
    Ответ написан
    2 комментария
  • Как десереализировать json и значение объекта вставить в ComboBox?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ваш код не валидный
    [{
    		"name": "SiO2",
    		"h": 906,
    		"s": -477,
    		"a": 44,
    		"b": 67,
    		"c": 47
    	},
    	{
    		"name": "Al2O3",
    		"h": 805,
    		"s": -155,
    		"a": 53,
    		"b": 73,
    		"c": 62
    	}
    ]


    using (FileStream fs = new FileStream("db1.json", FileMode.OpenOrCreate))
                {
                    CompoundProps propss = JsonSerializer.Deserialize<CompoundProps[]>(fs.ReadToEnd());
                    var props = propss[0];
                    Console.WriteLine($"Name: {props.name}  H: {props.h} S: {props.s} a: {props.a} b: {props.b} c: {props.c}");
                }
    Ответ написан
    Комментировать
  • Как обстоят дела SEO с многостраничных приложений на Vue?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Как пример пререндеренга, выносите сюда что нужно индексировать
    // vue.config.js
    var path = require('path')
    const PrerenderSPAPlugin = require('prerender-spa-plugin')
    const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
    const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
    
    module.exports = {
        configureWebpack: {
            module: {
                rules: [
                    {
                        test: /\assets\/.*.css$/i,
                        use: ['style-loader', 'css-loader'],
                    },
                ],
            },
            plugins: [
                new BundleAnalyzerPlugin(),
                new PrerenderSPAPlugin({
                    // Required - The path to the webpack-outputted app to prerender.
                    staticDir: path.join(__dirname, 'dist'),
    
                    // Optional - The path your rendered app should be output to.
                    // (Defaults to staticDir.)
                    outputDir: path.join(__dirname, 'prerendered'),
    
                    // Optional - The location of index.html
                    indexPath: path.join(__dirname, 'dist', 'index.html'),
    
                    // Required - Routes to render.
                    routes: ['/', '/about'],
    
                    // Optional - Allows you to customize the HTML and output path before
                    // writing the rendered contents to a file.
                    // renderedRoute can be modified and it or an equivelant should be returned.
                    // renderedRoute format:
                    // {
                    //   route: String, // Where the output file will end up (relative to outputDir)
                    //   originalRoute: String, // The route that was passed into the renderer, before redirects.
                    //   html: String, // The rendered HTML for this route.
                    //   outputPath: String // The path the rendered HTML will be written to.
                    // }
                    postProcess(renderedRoute) {
                        // Ignore any redirects.
                        renderedRoute.route = renderedRoute.originalRoute;
                        // Basic whitespace removal. (Don't use this in production.)
                        renderedRoute.html = renderedRoute.html.split(/>[\s]+</gmi).join('><')
                        // Remove /index.html from the output path if the dir name ends with a .html file extension.
                        // For example: /dist/dir/special.html/index.html -> /dist/dir/special.html
                        if (renderedRoute.route.endsWith('.html')) {
                            renderedRoute.outputPath = path.join(__dirname, 'dist', renderedRoute.route);
                        }
    
                        return renderedRoute;
                    },
    
                    // Optional - Uses html-minifier (https://github.com/kangax/html-minifier)
                    // To minify the resulting HTML.
                    // Option reference: https://github.com/kangax/html-minifier#options-quick-reference
                    minify: {
                        collapseBooleanAttributes: true,
                        collapseWhitespace: true,
                        decodeEntities: true,
                        keepClosingSlash: true,
                        sortAttributes: true
                    },
    
                    // Server configuration options.
                    server: {
                        // Normally a free port is autodetected, but feel free to set this if needed.
                        port: 8001
                    },
    
                    // The actual renderer to use. (Feel free to write your own)
                    // Available renderers: https://github.com/Tribex/prerenderer/tree/master/renderers
                    renderer: new Renderer({
                        // Optional - The name of the property to add to the window object with the contents of `inject`.
                        // injectProperty: '__PRERENDER_INJECTED',
                        // Optional - Any values you'd like your app to have access to via `window.injectProperty`.
                        //  inject: {
                        //    foo: 'bar'
                        // },
    
                        // Optional - defaults to 0, no limit.
                        // Routes are rendered asynchronously.
                        // Use this to limit the number of routes rendered in parallel.
                        maxConcurrentRoutes: 4,
    
                        // Optional - Wait to render until the specified event is dispatched on the document.
                        // eg, with `document.dispatchEvent(new Event('custom-render-trigger'))`
                        // renderAfterDocumentEvent: 'custom-render-trigger',
    
                        // Optional - Wait to render until the specified element is detected using `document.querySelector`
                        // renderAfterElementExists: 'my-app-element',
    
                        // Optional - Wait to render until a certain amount of time has passed.
                        // NOT RECOMMENDED
                        // renderAfterTime: 5000, // Wait 5 seconds.
    
                        // Other puppeteer options.
                        // (See here: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions)
                        headless: true //  было false Display the browser window when rendering. Useful for debugging.
                    })
                })
            ]
        }
    }
    Ответ написан
  • Как в полной мере изучить c#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Какие курсы по C шарп лучше выбрать?
    Посмотрите мой ответ. Там целая куча экзаменов по C#, внизу описания курса идут ссылки на обучающие курсы.
    Ответ написан
    Комментировать
  • Как достать переменную?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Один из методов
    private _someValue;
    void FirstMethod(){
       _somevalue = value;
    }
    void SecondMethod(){
       var value = _somevalue;
    }
    Ответ написан
  • Выигрывает ли nodejs в производительности php на примере обычного сайта?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Конечный, ультимативный, окончательный ответ даст только профайлер и то на двух ветках написанных очень знающими людьми.
    Ответ написан
  • Textbox как отобразить?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
  • Как можно реализовать привязку данных TreeView к RichTextBox?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Первые 2 класса хранят данные, загружают из бд, ну тут сами придумаете. См LoadData
    Последний это форма обрабатываются события NodeMouseClick и TextChanged на текст боксах.
    Логика простейшая, но это в общем то пример, в реальности усложните по вкусу.
    using System.Collections.Generic;
    
    namespace TreeViewBinding.Code
    {
        public class TreeSource
        {
            public TreeSource()
            {
                Leaves = new List<TreeLeaf>();
            }
            public List<TreeLeaf> Leaves { get; set; }
    
            /// <summary>
            /// Load data stub. In this example use mock data. In real application load data from database or web service
            /// </summary>
            public void LoadData()
            {
                var first = new TreeLeaf { Description = "First description", Title = "First" };
                var firstSubs = new[]
                {
                    new TreeLeaf(first){Description = "First desc",Title = "First"},
                    new TreeLeaf(first){Description = "Second desc",Title = "Second"},
                    new TreeLeaf(first){Description = "Third desc",Title = "Third"}
                };
                first.Leaves.AddRange(firstSubs);
                var second = new TreeLeaf { Description = "Second description", Title = "Second" };
                var third = new TreeLeaf { Description = "Third description", Title = "Third" };
                Leaves.AddRange(new[]
                {
                    first,
                    second,
                    third,
                });
            }
        }
    }


    using System.Collections.Generic;
    
    namespace TreeViewBinding.Code
    {
        public class TreeLeaf
        {
            public TreeLeaf(TreeLeaf parent = null)
            {
                Leaves = new List<TreeLeaf>();
                Parent = parent;
            }
            public int Id { get; set; }
            public string Title { get; set; }
            public string Description { get; set; }
            public string Icon { get; set; }
            public List<TreeLeaf> Leaves { get; private set; }
            public TreeLeaf Parent { get; private set; }
        }
    }


    #region License
    // // Разработано: Коротенко Владимиром Николаевичем (Vladimir N. Korotenko)
    // // email: koroten@ya.ru
    // // skype:vladimir-korotenko
    // // https://vkorotenko.ru
    // // Создано:  09.05.2020 8:26
    #endregion
    
    using System.Collections.Generic;
    using System.Windows.Forms;
    using TreeViewBinding.Code;
    
    namespace TreeViewBinding
    {
        public partial class TreeViewBindingForm : Form
        {
            private TreeSource _treeSource;
            private TreeLeaf _currentLeaf;
            private TreeNode _node;
            public TreeViewBindingForm()
            {
                InitializeComponent();
                _treeSource = new TreeSource();
                _treeSource.LoadData();
                FillInTree(treeView.Nodes, _treeSource.Leaves);
            }
    
            private static void FillInTree(TreeNodeCollection  nodes, IEnumerable<TreeLeaf> leafs)
            {
                foreach (var leaf in leafs)
                {
                    var treeNode = new TreeNode(leaf.Title) {Tag = leaf};
                    nodes.Add(treeNode);
                    if (leaf.Leaves.Count > 0) FillInTree(treeNode.Nodes, leaf.Leaves);
                }
            }
    
            private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
            {
                if (e.Node.Tag is TreeLeaf item)
                {
                    _node = e.Node;
                    _currentLeaf = item;
                    titleTextBox.Text = item.Title;
                    descriptionTexBox.Text = item.Description;
                }
            }
    
            private void titleTextBox_TextChanged(object sender, System.EventArgs e)
            {
                if (_node != null)
                {
                    _currentLeaf.Title = _node.Text = titleTextBox.Text;
                }
            }
    
            private void descriptionTexBox_TextChanged(object sender, System.EventArgs e)
            {
                if (_node != null)
                {
                    _currentLeaf.Description = descriptionTexBox.Text;
                }
            }
        }
    }
    Ответ написан
    Комментировать
  • Как перенести переменную на другую страницу?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Вот вам пример. Создаете инстанс общий для всего приложения, в нем храните только нужные вам данные и вызываете по мере надобности
    public class DataContext
        {
            private static readonly object Lock = new object();
            private static DataContext _ctx;
            private static SQLiteAsyncConnection _database;
            private static SQLiteAsyncConnection _userDatabase;
    
            public static DataContext Instance
            {
                get
                {
                    lock (Lock)
                    {
                        if (_ctx != null) return _ctx;
                        var filePathOnPlatform = GetFilePathOnPlatform(Settings.DataBaseName);
                        var userDb = GetFilePathOnPlatform(Settings.UserDatabaseName);
                        _ctx = new DataContext(filePathOnPlatform, userDb); 
                        return _ctx;
                    }
                }
            }
    }
    Ответ написан
  • Нормальная windows 10. Миф или реальность?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Первое правило клуба не устанавливайте сборок
    Второе правило клуба не устанавливайте сборок
    Третье правило клуба не устанавливайте сборок

    Если же серьезно я сижу дома на yota, резервный канал на билайне.

    1. Отключены ВСЕ обновления навсегда и система не скачивает драйвера при появлении нового устройства
    Вам тогда не стоит ходить в инет

    2. Нет никакой синхронизации и отправки данных куда-либо. Вообще ничего, что может повлиять на работу моего интернета
    Настройте отключение отправки
    3. Вырезаны все обновления (где бы вообще список их узнать), которые влияют на скорость работы.
    Узнать в списке обновлений, удалять ну явно не стоит

    Пс ну добавьте памяти, она как грязь стоит. Ну коммон. Я когда ценники дизайнеров узнаю у меня просто ступор возникает.

    23ae188f85.jpg
    Ответ написан
    32 комментария
  • Как запустить Xamarin.Forms приложение на айфоне?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Нет
    Ответ написан
    Комментировать
  • Как хранить клиентские базы данных?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Базе с нормальной архитектурой плевать на миллион ваших записей.

    Вот вам пример запроса.

    9aa00fdc50.jpg
    Ответ написан
    Комментировать
  • Производительность 1-2 сокетных систем?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Все зависит от программ. Хорошо написанные увеличивают скорость практически линейно. Плохо работают сугубо на 1 ядре.
    Плюс еще шина обмена данными между ядрами, в хорошем случае обмена вообще не происходит, в общем целая куча факторов.

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

    Примеры плохо оптимизированных
    практически все игры
    настольные приложения
    javascript движки
    программы написанные в лоб.

    Только опять же нужно понимать есть у вас допустим куча процессов pnp-fpm и куча запросов больше количества ядер. Нагрузка равномерно распределится. А в случае того же фотошопа, лучше все таки взять высокоскоростной процессор.
    Ответ написан
    Комментировать