• Какой GUI сейчас актуально использовать при разработке в MS VS 2013 на C++?

    Как раз под VS2013 и C++11 есть набирающая популярность кроссплатформенная библиотека Nana C++, про которую мало кто знает у нас. Поработать с ней еще не удалось, так что уверенно могу рекомендовать Ultimate++, у нее своя IDE. Жалею, что не нашел ее в свое время и мучался с WTL (Qt ну никак не хотелось принципиально). U++ идеальна для административных утилит (в базе работа с сокетами, SQLite, RegExp, JSON) со стандартными контролами и вычислительных задач, т.к. есть встроенные графики и Eigen.
    Ответ написан
    Комментировать
  • В чем проблема с SQL запросом к MySQL в PHP?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Косяк в пользователе, ибо он экранирует не то, что нужно, и не тем, чем нужно.
    Почитайте про mysql_real_escape_string() и исправьте ваш код.
    Ответ написан
    7 комментариев
  • Как вывести строку в Java содержащую спец. символы?

    FanKiLL
    @FanKiLL
    То есть по сути вам нужен json. Зачем вы его создаёте руками и мучаетесь с экранированием.
    Когда можно сделать java class с нужными вам полями, инициализировать его нужными параметрами и из него получить json строку, которую и сможете отправить куда надо.
    Воспользуетесь библиотекой gson от гугла - https://code.google.com/p/google-gson/

    Например:
    Сделаем класс:
    public class TalentESBData {
    
        @SerializedName("metadata.title")
        private String metadataTitle;
        @SerializedName("metadata.description")
        private String metadataDescription;
        @SerializedName("metadata.keywords")
        private String metadataKeywords;
        @SerializedName("metadata.robots")
        private String metadataRobots;
        @SerializedName("metadata.author")
        private String metadataAuthor;
        @SerializedName("config.enable_comments")
        private int configEnableComments;
        @SerializedName("config.primary_category")
        private int configPrimaryCategory;
        @SerializedName("jbzoo.no_index")
        private int jbzooNoIndex;
    
        // Геттеры и сеттеры опустим их любая ide сгенерирует...
    
        public String toJson(){
            Gson gson = new Gson(); //библиотека для генерации json
            String jsonResponse = gson.toJson(this);
            return jsonResponse;
        }
    }


    И теперь в как этим воспользоватся.

    public class TalentMain {
    
        public static void main(String[] args) {
    
            TalentESBData talentData = new TalentESBData(); //инициализируем класс
            talentData.setMetadataDescription(""); //заполняем поля какие надо
            talentData.setMetadataAuthor("");
            talentData.setMetadataKeywords("");
            talentData.setMetadataRobots("");
            talentData.setMetadataTitle("");
            talentData.setConfigEnableComments(1);
            talentData.setConfigPrimaryCategory(205);
            talentData.setJbzooNoIndex(0);
    
    
            System.out.println(talentData.toJson()); // Получаем json и выводим в консоль, в вашем случа
            // вместо консоли можете отправлять эти данные или что там нужно сними делать.
        }
    }


    На выходе имеем такой json,
    {
      "metadata.title": "",
      "metadata.description": "",
      "metadata.keywords": "",
      "metadata.robots": "",
      "metadata.author": "",
      "config.enable_comments": 1,
      "config.primary_category": 205,
      "jbzoo.no_index": 0
    }


    Теперь удобно добавлять новые поля, просто добавляете новые переменные в класс и генерируете новый json.

    Если что спрашивайте.
    Ответ написан
    2 комментария
  • Что почитать по Perl?

    @s1dney
    Ответ написан
    Комментировать
  • В чем отличия C++ и C# ?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    1) Это две разные вселенные. Но при этом можно переключать мозги на разработку в один промежуток времени на С++, а после чашки чая на C#. Если нужно быстро решить проблему и при этом не парится с эффективностью выполнения программы, то C#, иначе при написании системного кода который оооочень много работает на уровне байтов, word,dword то это С++.
    2) То что у них общий дедушка еще не значит что они похожи. Отличий много! Причем действительно много. Используются разные идиомы, трюки, подходы. К примеру C++ идиому traits попробуй повтори на C#. А иногда она очень выручает!!!
    Ответ написан
    Комментировать
  • Можно сделать gui приложение на python без установки интерпретатора?

    donkaban
    @donkaban
    Умею рисовать тени
    Нет. Можно раздеплоить приложение, то есть сделать бинарный пакет, который будет выполнятся на машине без интерпретатора, то есть на самом деле вклеить интерпретатор нужные библиотеки в этот бинарь. Разрабатывать вам все равно придется на машине с питоном и нужными библиотеками (gui то тоже требует каких то кроссплатформенных телодвижений, типа pySide)

    www.py2exe.org
    https://pythonhosted.org/py2app/
    cx-freeze.sourceforge.net
    Ответ написан
    Комментировать
  • Какие есть аналоги tcpdump с поддержкой отлова пакетов по шаблону данных?

    @throughtheether
    human after all
    Мне необходимо отсеивать пакеты по определенному шаблону (например, с определенными начальными двумя байтами данных). Погуглив, ничего не нашел по поводу отсеивания трафика по шаблонам данных в tcpdump.
    Посмотрите здесь, 11 страница. Вкратце, релевантный синтаксис Berkeley packet filter таков: protocol[start:count]=0xHEXTEMPLATE
    пример для "GET " в начале HTTP-сообщения (точнее, в начале поля данных TCP):
    tcp[20:4] = 0x47455420

    Если в tcpdump нет такой возможности, подскажите, пожалуйста, альтернативные снифферы, желательно не тяжелые и без гуя (для использования на сервере с CentOS).
    В tcpdump такая возможность (если я правильно понял вашу проблему) есть, но рекомендую обратить внимание на tshark, консольный вариант wireshark. Для захвата трафика они используют bpf-фильтры, фильтры для отображения трафика у них можно настроить более гибко, на мой взгляд.
    Еще один вариант решения вашей проблемы - захватить весь трафик (или с грубой фильтрацией), если это возможно (т.е. интенсивность трафика невелика) при помощи tcpdump и отфильтровать при помощи фильтров отображения (display filters) в wireshark/tshark.
    Ответ написан
    Комментировать
  • Как называется аналог пакета libshell-perl в CentOS?

    @brikstar
    yum install perl-CPAN может так?
    Ответ написан
    Комментировать
  • Как называется аналог пакета libshell-perl в CentOS?

    opium
    @opium
    Просто люблю качественно работать
    можно любой модуль перла поставить через CPAN
    что то вроде perl CPAN install
    Ответ написан
    Комментировать
  • Как реализовать мгновенную фильтрацию DataGrid'a, используя многопоточность (WPF)?

    @Sumor
    Вам не нужно для фильтрации пересобирать коллекцию. Для этого в wpf уже разработаны нужные механизмы.
    В первую очередь нужно коллекцию с которой вы работаете поместить в CollectionView. CollectionView привязать к DataGrid.
    У CollectionView есть встроенные механизмы фильтрации — результат будет отображаться в DataGrid.
    См. Свойство Filter CollectionView.

    Для использования CollectionView обёртывается ещё в CollectionViewSource или что-то подобное. Это подробно описывается в примерах. Его можно просто описать даже в Xaml.
    Пример, примерного кода с динамическим созданием CollectionViewSource над List и фильтрацией через TextBox:
    Xaml
    <Window x:Class="WpfApplication3.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">    
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="47*"/>
                <RowDefinition Height="275*"/>
            </Grid.RowDefinitions>
            <TextBox x:Name="filter" TextChanged="filter_TextChanged"/>
            <ListBox x:Name="lst" Grid.Row="1" />
        </Grid>
    </Window>


    C#
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            List<string> lstSource = new List<string>() { "1", "2","3" };
            viewSource = new CollectionViewSource();
            viewSource.Source = lstSource;            
            viewSource.Filter += viewSource_Filter;
            lst.ItemsSource = viewSource.View;
        }
    
        CollectionViewSource viewSource;
        void viewSource_Filter(object sender, FilterEventArgs e)
        {
            e.Accepted = ((string)e.Item).IndexOf(filter.Text) >=0;
        }
    
        private void filter_TextChanged(object sender, TextChangedEventArgs e)
        {
            viewSource.View.Refresh();
        }
    }
    Ответ написан
    2 комментария
  • Как осуществить нестандартную привязку данных к DataGrid в WPF?

    @Sumor
    Предлагаю воспользоваться не датагридом, а ItemsControl для вывода списка ваших параметров.
    Внешний ItemsControl перечисляет свойство класса типа List, второй ItemsControl — элемент этого списка типа byte[][], третий — byte[] и отображает TextBox для каждой цифры.
    За счёт связывания (Binding) вы меняя значения в текстбоксах, меняете его в свойстве вашего объекта.

    Xaml:
    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <ItemsControl x:Name="itemsData">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <ItemsControl BorderBrush="Black" BorderThickness="1" ItemsSource="{Binding}">
                            <ItemsControl.ItemTemplate>
                                <DataTemplate>
                                    <ItemsControl BorderBrush="Black" BorderThickness="1" ItemsSource="{Binding}">
                                        <ItemsControl.ItemsPanel>
                                            <ItemsPanelTemplate>
                                                <StackPanel  Orientation="Horizontal"/>
                                            </ItemsPanelTemplate>
                                        </ItemsControl.ItemsPanel>
                                        <ItemsControl.ItemTemplate>
                                            <DataTemplate>
                                                <TextBox Text="{Binding Path=.}" />
                                            </DataTemplate>
                                        </ItemsControl.ItemTemplate>
                                    </ItemsControl>
                                </DataTemplate>
                            </ItemsControl.ItemTemplate>
                        </ItemsControl>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Grid>
    </Window>


    C#
    namespace WpfApplication1
    {
        /// <summary>
        /// Логика взаимодействия для MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                var my = new MyClass();
                my.Data = new List<byte[][]>();
                my.Data.Add(new byte[][] { new byte[] { 0, 1 }, new byte[] { 2, 3 }, new byte[] { 4, 5 } });
                my.Data.Add(new byte[][] { new byte[] { 6, 7 }, new byte[] { 8, 9 }, new byte[] { 10, 11 } });
                itemsData.ItemsSource = my.Data;
            }
    
        }
    
        public class MyClass
        {
            public List<byte[][]> Data
            { get; set; }
        }
    }
    Ответ написан
    Комментировать
  • Почему приложение на C# съедает в 5 раз больше ожидаемого объема памяти?

    @asvishnyakov
    Программист
    1. List<> выделяет память кусками «про запас». Это называется capacity и отвечает за него одноимённое свойство. Если вы знаете, что ваш список в среднем будет содержать не больше N элементов, то это N нужно передать в соответствующий конструктор List<>.
    2. Можно подсчитать байты и использовать выравнивание. Процесс трудоёмкий, но если сейчас много «пустого места», то в итоге вполне могут выйти желанные ~80МБ.
    3. Ну и упомянутые утечки памяти. GC.Collect и memory profiling вам в помощь.

    Ну а людям ноющим о медленности «управляемых» языков, больших DLL и 100 МБ памяти для .NET по-умолчанию и предлагающих перейти на другие языки, я предлагаю пойти поучиться у англоязычных коллег, которые не ноют по каждому случаю, а стараются действительно помочь разобраться в проблеме, в данном случае — увеличить производительность. Извините, накипело.
    Ответ написан
    Комментировать
  • Почему sizeof(System.Char) == 2, а Marshal.SizeOf(System.Char) == 1?

    NekitoSP
    @NekitoSP
    msdn.microsoft.com/en-us/library/eahchzkf.aspx
    Marshal.SizeOf returns the size after the type has been marshaled, whereas sizeof returns the size as it has been allocated by the common language runtime, including any padding.

    и:
    msdn.microsoft.com/en-us/library/vstudio/5s4920fa(...
    The size of the specified type in unmanaged code.

    т.е. sizeof - размер типов в CLR, а Marshal.SizeOf - размер типа в unmanaged коде.

    И по первой ссылке есть пометка по этому поводу:
    Although you can use the Marshal.SizeOf method, the value returned by this method is not always the same as the value returned by sizeof.
    Ответ написан
    Комментировать
  • Какую "лёгкую" IDE посоветуете для C#?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Вам для работы или побаловаться? Реалии таковы, что лучше VS ничего нету.
    Ответ написан
    1 комментарий
  • Насколько хорошо сейчас дружат ASP.NET и Mono?

    @aimp-programming
    Ждите выхода ASP.NET vNext))
    Ответ написан
    Комментировать
  • WPF, работа с ListCollectionView в фоновом потоке - как исправить ошибку?

    @serdceder
    Создайте отдельный класс ViewModel, там создайте сво-во
    public ListCollectionView SearchResults
    {
    get { return _searchResults2; }
    set
    {
    _searchResults2 = value;
    RaisePropertyChanged("SearchResults");
    }
    }

    А это обработчик для команды:
    ...
    _searchResults2.Dispatcher.BeginInvoke(
    (Action)delegate
    {
    _searchResults2.Filter = new Predicate(o => ...)
    }, System.Windows.Threading.DispatcherPriority.Background);
    SearchResults = _searchResults2;

    И будет вам счастье. Учитесь работать через команды и не совмещайте логику и View.
    Ответ написан
    Комментировать