• Потратить час на поиск решения проблемы или за 5 минут получить ответ на сервисе?

    @MonkAlex
    C#, SQL, Delphi, C++ etc
    А можно подойти к этому вопросу математически и найти простое решение:
    1. Гуглим - 5-10 минут.
    2. Если не нагуглили - спрашиваем.
    3. Если нагуглили - разбираемся.

    В целом, при простых вопросах, чтобы разобраться самому потребуется меньше времени, чем на то, чтобы расписать ситуацию тому, у кого спрашиваем.

    В сложных вопросах иногда пары суток не хватает чтобы разобраться, и там задать вопрос всем возможным источникам - вполне допустимо, имхо.
    Ответ написан
    1 комментарий
  • Можно ли Вконтакте сделать автоматическое вступление в группу? возможно есть какой-либо скрипт для этого?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Да можно, и да, наверняка есть. Но это скрипты несут вредоносный характер (спам). Тут ВКонтакте не любят, но не настолько.
    Ответ написан
    Комментировать
  • Почему регулярка, которая отлично работает на php не работает на c#?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Потому что у регулярных выражений много диалектов.
    видимо C# не поддерживает какой-то метасимвол из тех, что вы использовали, или экранирование для C# провтыкали.
    Ответ написан
    Комментировать
  • Как вызывать методы класса с параметрами из xml файла или массива?

    artem_b89
    @artem_b89
    Сетевой бездельник
    Организуйте в своём коде некоторую структуру/класс в которой будете хранить имя вызываемого метода и его параметры. Например
    public class SampleContainer
        {
            public string MethodName { get; set; }
            public object[] Params { get; set; }
        }

    В XML может выглядить приблизительно так:
    <Method>
        <Name>Some_Method_Name</Name>
        <Params>
          <Param name = 'param1' value='value1'></Param>
          <Param name = 'param2' value='value2'></Param>
        </Params>
    </Method>


    Далее в коде парсите XML, сохраняете в свою структуру и вызываете нужный вам метод через Reflections, пример:
    using System;
    using System.Reflection;
    namespace ConsoleApplication2
    {
        public class Sample
        {
            public string SampleMethod(string param1, string param2)
            {
                return param1 + param2;
            }
        }
        
        class Program
        {
            static void Main(string[] args)
            {
                Sample sample = new Sample();
                var method = typeof(Sample).GetMethod("SampleMethod");
                object[] param = new object[] {"Hello ","World!"};
                string result = method.Invoke(sample, param) as string;
                Console.WriteLine(result);
                Console.ReadKey();
            }
        }
    }
    Ответ написан
    6 комментариев
  • Как конвертировать точечный массив в числовой в c#?

    Nipheris
    @Nipheris Куратор тега C#
    System.Drawing.Point[] points = ...
    float[,] data = new float[points.Length, 3];
    for (int i = 0; i < points.Length; i++)
    {
    	data[i, 0] = points[i].X;
    	data[i, 1] = points[i].Y;
    	data[i, 2] = 0.0f;
    }
    Ответ написан
    7 комментариев
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    @asd111
    Google - два парня Сергей Брин и Ларри Пейдж
    Facebook - начал Марк Цукерберг
    Instagram - два парня, один делал приложение для iPhone, другой делал сайт, потом заработали расширились
    MsDOS - первую версию сделал один человек, потом Баллмер у него купил за 50 000 $ и права перешли Microsoft
    Nginx - начал Игорь Сысоев
    Компьютер Apple I - дело рук Стива Возняка
    Linux - начал Линус Торвальдс
    Git - начал Линус торвальдс
    Redis - Salvatore Sanfilippo ( antirez )
    Minecraft - начал Маркус Перссон ( также известный как notch )
    Dropbox - начал Дрю Хьюстон
    Shadertoy - создан Iñigo Quilez ( также известен как iq )
    C++ - начал Бьёрн Страуструп
    Python - Гвидо ван Россум
    PHP - Расмус Лердорф

    SimplaCMS - начал один человек
    DLE CMS - начал один человек
    TYPO3 CMS - начал один человек

    P.S. ответ редактировался и дополнялся
    Ответ написан
    20 комментариев
  • Все ли знания важны?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    на каком-то курсе препод вам расскажет байку: "должен вам сказать, что из всего, что мы изучили на этом курсе, в жизни вам пригодится максимум половина, и самое плохое, что я не знаю, какая это половина"
    Ответ написан
    Комментировать
  • Важна ли корочка при устройстве на работу?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Ну, не совсем согласен с остальными.

    Если у Вас будет корочка МФТИ/МГУ(физтех/мехмат), то это круто и такая корочка важна.
    Если это госслужба/госскомпания - важна.
    Если у Вас корочка среднего ВУЗа или хуже - нет.

    Также не стоит забывать факт, что в странах СНГ очень многое решают связи.
    Ответ написан
    Комментировать
  • Научиться парсингу - с чего начать?

    kawabanga
    @kawabanga
    1) Нужно иметь представление, как загружаются и работают сайты. Тут необходимо иметь представление и о том, что полезный контент может появится на сайте и после загрузки через определенное время.

    2) Нужно иметь представление, как работает самый обычный способ получения контента - Curl. Попробуйте скопировать что то, поработать, представить в xml документ и тд. Тут вы определитесь с принципом работы парсера.
    - парсер получает вводую информацию -> с учетом программы и вводных данных, парсер запрашивает определенные данные -> парсер обрабатывает данные для пользователя -> при необходимости, парсер повторяет запрос (инициированный пользователем или рекурсий) -> конец

    3) Далее вы дойдете до механизмов защиты от парсинга:
    - ограничение запросов на 1 ip, на один клиент и тд
    - подгузка информации после загрузки контента
    - дополнительный запрос на подгрузку контента с CSRF и другими способами
    - блокирование ip
    Это откроет вам парсеры типа PhantomJs, Научит пользоваться прокси, мимикрировать под популярные браузеры и тд.
    Так же вы дойдете до многопоточности работы парсера, и подумаете о переходе на C и подобный язык программирования. Общаясь с сайтом уже посредством api.

    А дальше, сталкиваяь с новыми проблемами, будете их решать.
    Ответ написан
    1 комментарий
  • C# Paralllel.ForEach in Parallel.ForEach. Имеет ли смысл?

    @VanKrock
    Мне кажется, что в данном случае вы упретесь в чтение с диска
    Ответ написан
    Комментировать
  • Junior C#. Каков минимальный багаж знаний?

    Therapyx
    @Therapyx
    Data Science
    Я особо этим вопросом не задавался, но после всех вопросов на тостере как-то спросил у своего начальника, мол тяну ли я на Жуниора? - Ответ был, уверенно да. Но меня все равно смущают мои знания, ибо больше было самообучения и из-за этого чувствую кучу пробелов, но при этом.

    - Умение пользоваться поисковыми системами на трех языках (Ger, Eng, Rus)
    - Базовые запросы SQL (Update, Insert, Delete, Join, а также специфические в малом обьеме, но при нужде это гуглится, недопонимания спрашивались :)
    - Stored Procedures и основные методы защиты от всяких SQL-Injections
    - Планировка баз данных для маленьких проектов.

    - Asp.net webforms (довольно не плохие знания для создания сайтов)
    - Базовый с# (If, else, for, while, arrays, OOP)
    - Работать в связке с таблицами и тому подобному в сочетании Asp.net <-> c# <-> MS SQL
    - jQuery, JS на уровне копипейста
    - Не идеальный, но всеже хороший HTML, CSS(п.с. мануального :) никогда не учил CSS фреймворки, приходилось все ручками с нуля)

    В общем это все, что касается веб разработки, остальные мелочи не беру в учет. Но опять же, все таки есть мерзкие пробелы, которые и самого по сей день бесит, но упорно не борюсь с ними :)
    Заодно интересно будет послушать в комментах мнение тостерщиков, считаете ли вы, что это тянет на Juniora?=)
    Ответ написан
  • Как настроить Xml сериализатор?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    stackoverflow.com/questions/84449/xml-serialize-bo...

    [XmlIgnore]
    public bool MyValue { get; set; }
    
    /// <summary>Get a value purely for serialization purposes</summary>
    [XmlElement("MyValue")]
    public string MyValueSerialize
    {
        get { return this.MyValue ? "1" : "0" }
        set { this.MyValue = XmlConvert.ToBoolean(value); }
    }


    хотя.....от вашего практически не отличается
    Ответ написан
    1 комментарий
  • В чем суть конструкции и как такое возможно?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    class Set implements \ArrayAccess, \Countable, \IteratorAggregate

    Всё дело в том, что этот класс реализует интерфейс ArrayAccess.

    P.S.
    В \Slim\Helper\Set никаких магических методов нет имеется.

    Еще как имеются - https://github.com/slimphp/Slim/blob/2.x/Slim/Help...
    Ответ написан
    3 комментария
  • C#, как создать экземпляр класса по названию в string?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Вот хороший пример.

    Вот еще из msdn.
    Ответ написан
    Комментировать
  • Может ли юнит-тест метода класса зависеть также от других методов?

    @Mercury13
    Программист на «си с крестами» и не только
    Да, может. Всё, что я здесь пишу, — моё ИМХО, обусловленное вечной нехваткой времени и ошибками в базовых функциях (высокоуровневый код тестировать крайне сложно и я не в курсе, есть ли стандартные методы автоматизации тестирования).

    Излишне сложный код тестовых функций также приходится тестировать — поэтому нет ничего зазорного в том, чтобы использовать функции, проверенные другими тестами. Собственные низкоуровневые функции стоит использовать, если они либо проще, либо заводят объект в какое-то контролируемое состояние, которого сложно достичь общедоступным интерфейсом. Таким образом, код теста должен быть примерно такой.
    1. Собрать нужный нам список.
    2. Проверить, что список в нужном нам состоянии.
    3. Удалить один элемент.
    4. Проверить, что новое состояние правильное.

    В пунктах 2 и 4 проверок может быть много — например, в пункте 2 «список корректно связан, в нём 3 элемента и два последних Б, В», в пункте 4 — «список корректно связан, в нём 2 элемента и последний Б». Главное, чтобы а) проверялась одна концепция — например, «работает удаление с конца»; и б) все концепции, которые нужны для корректной работы теста — например, «конструируется пустой список», «добавить в пустой» и «добавить в конец» — тоже надо проверить.

    С зависимостью тестов друг от друга немного неоднозначно. Тесты не должны физически вмешиваться друг в друга: при отладке нужно запускать какое-то подмножество или даже один отказавший тест. Или изменилась внутренняя структура объекта и часть тестов вообще убираем, так как пропадает тестируемая концепция. А логическая — «если добавление не работает, этот тест бессмысленный» — да никаких проблем!
    Ответ написан
    2 комментария
  • Как правильно перекрыть или скрыть существующий родительский метод?

    xkeirainx
    @xkeirainx
    Фулстэк энтерпрайз разной степени кровавости
    При наследовании сначала создаются методы базового типа, а потом дополняются методами наследника. Вы инстанциируете класс GrandFather, что, кстати, странно. Отсюда получается два варианта:
    GrandFather gf = new GrandSon();
                Console.WriteLine(((GrandSon) gf).GetDescription());

    либо
    GrandSon gf = new GrandSon();
                Console.WriteLine(gf.GetDescription());
    Ответ написан
    5 комментариев
  • Как делаются скриптовые языки программирования?

    Короткий ответ: читаем книгу дракона. Есть и более навороченная литература, но начинают все с этой книги (нам по ней читали в универе курс трансляции языков).

    Длинный ответ: ваш транслятор принимает на вход последовательность символов (допустим, UTF-8 текст), "понимает" ее в соответствии со спецификацией вашего языка, и выплевывает в качестве вывода инструкции на другом языке (в виде текстового файла или файла спец. формата). Этим "друим языком" может быть язык ассемблера какой-то железной платформы (x86_64, ARM, SPARC), и результирующим файлом будет бинарник под указанную архитектуру (точнее - объектный модуль, бинарник потом будет собран линковщиком) - так компилятся, например, C/C++. "Другим языком" может быть язык виртуальной машины (LLVM/байткод Java/MSIL) - так компилятся С/C++ (если через LLVM), Java, Scala, C#, F#, VB. "Другим языком" может быть и более высокоуровневый язык - часто, чтобы не париться на начальных этапах развития языка генерацией машинного кода, делают транслятор, который генерит код на Си, и этот код на Си уже компилят известным компилятором в бинарник. Или к примеру, CoffeeScript/TypeScript транслируются в JavaScript, т.к. веб-браузеры кроме джаваскрипта исполнять пока ничего не умеют.

    Конечно же, вы можете написать интерпретатор, а не компилятор - тогда ваша программа будет сразу же исполнять инструкции на вашем языке, не генерируя какой-либо выходной файл. Так поступают довольно много систем, например Node.js. Python делает также, если отключить генерацию pyc-файлов (поправьте меня, если я ошибаюсь).

    На каком языке реализовать сам транслятор - не имеет особого значения. Более того, хорошим тоном считается реализовать на разрабатываемом языке компилятор этого же языка - это называется self-hosting. Обычно наличие компилятора языка на этом же языке считается первым этапом серьезного отношения к языку. Разумеется, первую версию компилятора нужно будет реализовать на уже существующем языке (или сделать bootstrapping, если уж вы совсем суровый разработчик).

    Т.к. в задачах разбора входного потока (parsing) уже набито очень много шишек, и люди посвятили свои жизни и научные карьеры изучению этого вопроса, то сделано и немало инструментов для помощи в разработке компилятора. Как правило, такие инструменты дают возможность описать грамматику вашего языка на некоем специализированном синтаксисе (вроде BNF), а потом по этому описанию генерят вам код лексера и парсера на удобном для вас языке (это модули, которые выполнят первичный разбор входного потока на вашем языке на токены, и построят абстрактное синтаксическое дерево (AST)). А вы уже дописываете к ним основную часть вашего компилятора. Как пример, при написании компиляторов на языке Си часто используют flex в связке с yacc/bison. Есть более комлексные пакеты, позволяющие генерить код парсеров на различных языках - ANTLR, GOLD. А можно и самому написать лексер и парсер, особенно если вы уже сделали первую версию компилятора и переписываете его на вашем же языке).
    Ответ написан
    Комментировать
  • Зачем нужны делегаты в C#?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Мы используем делегаты для реализации событийной модели. В коде генерируется событие, на которое подписываются различные обработчики: логгеры, мониторы производительности, контроллеры и т.п. Собственно, обработчики событий — это методы, вызываемые с помощью делегатов. В результате код остаётся чистым и понятным, а функциональность обработчиков - конфигурируемой и расширяемой.
    Ответ написан
    Комментировать