Задать вопрос
  • Как запустить WPF приложение из консоли?

    @Sumor
    using System;
    
    class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Console.WriteLine("Starting WpfApplication1.exe...");
    
            var domain = AppDomain.CreateDomain("WpfApplication1Domain");
            try
            {
                domain.ExecuteAssembly("WpfApplication1.exe");
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                AppDomain.Unload(domain);
            }
    
            Console.WriteLine("WpfApplication1.exe exited, exiting now.");
        }
    }
    Ответ написан
    2 комментария
  • Как защитить сайт от копирования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Единственный рабочий вариант при демонстрации вёрстки и удобный для всех:
    Виртуалка/VPS + браузеры в режиме киоска + TeamViewer/VNC
    teamviewer-logo-big.svg
    -------------------
    Демонстрация через Skype - абсолютно неприемлемый метод: не проверить в различных браузерах, не потестировать удобство и масштабирование, плохое качество при передаче изображения и т.д.

    Я бы не стал работать с верстальщиком, который для демонстрации использует исключительно Skype, а не нормальные средства, позволяющие Заказчику САМОМУ проверять корректность вёрстки в различных браузерах и валидность стандартов такой вёрстки.
    А изначально, при начале работы с новым человеком, я бы, всё-таки, давал микро-тест на вёрстку и выравнивание из 2-3 элементов, смотрел бы его GitHub и читал бы отзывы в портфолио и после, договаривался бы ПО-ЧЕЛОВЕЧЕСКИ, а не начиная взаимоотношения с негатива.
    Ответ написан
    1 комментарий
  • Как защитить сайт от копирования?

    gobananas
    @gobananas
    finishhim.ru
    1. Отсылать фотографию вёрстки и фотографию кода (если хотят посмотреть валидность)
    2. Показывать упрощённую вёрстку без скриптов
    3. При сдаче сдавать 1 страницу, брать оплату, сдавать ещё 1 ещё оплата
    4. Не работать с теми кому не доверяешь ))
    5. Ну про предоплату я не говорю, хотя категорическое отсутствие предоплаты бывает странно. Я когда от имени компании заказываю вёрстку (несложные проекты) всегда вносим около 30% как предоплату, понятно что даже если что-то пойдёт не так, то для компании это небольшие деньги.
    6. Демонстрация своего экрана
    Ответ написан
    Комментировать
  • Нужно ли учить ООП (PHP)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    но статья меня пугает, так нужно ли учить ООП или функциональное программирование: Welcome?


    ООП учить не нужно. Большинство вроде как и учат но выходит плохо. ООП надо понимать. Причем это скорее именно проектирование нежели программирование.

    Начать стоит со структурного программирования в принципе (ООП лишь развитие этих идей), разобраться с тем, чем все же плохи глобальные переменные, в том что намного проще жить когда не нужно учитывать время при разработке. О том как делать декомпозицию при помощи функциональных абстракций, структурировать код. Понятие связанности, управления зависимостями. Можете почитать послание Дейкстры народу. Все же надо понимать откуда у всего хайпа ноги растут а не статьи писать разобравшись в вопросе лишь частично.

    А так... скажем так, использовать классы вам придется. В PHP другого способа изолировать состояние нет. Просто не надо думать что ООП про наследование (о чем большая часть статьи), оно про изоляцию состояния, взаимодействие объектов/модулей посредствам "общения" (tell don't ask, закон деметры), про позднее связывание (возможность подменить реализацию)... А не как не про классы. Классы лишь способ. Инкапсуляция, полиморфизм, наследование - все это было до ооп. Разве что наследование в Simula67 сделали в более удобном виде. Но все же считать этот язык объектно ориентированным не стоит. На его основе потом Страуступ плюсы сделал, и так же не думал делать объектно-ориентированный язык. Он хотел структурировать процедурный Си, задать так сказать культуру разработки. Менять парадигму он не собирался.

    В основном проблема нынче в том что под ООП люди понимают только классы, паттерны и все. А зачем его придумывали и чем оно отличается (если отличается) от старого доброго процедурного - это уже не вкурсе.
    Ответ написан
    Комментировать
  • Стоит ли начать учить c# с этого ресурса?

    @GoldGoblin
    я иногда почитываю metanit.com
    Ответ написан
    Комментировать
  • Уроки Python + django, что посоветуете?

    aRegius
    @aRegius
    Python Enthusiast
    Django by Example
    Другие варианты (с подобной информацией) лично мне неизвестны.

    Кликните на изображении обложки книги (над которым стоит указатель со стрелкой Look inside), перейдите в раздел Table of Contents и ознакомьтесь с информацией о темах, представленных в книге.
    Ответ написан
    Комментировать
  • Как решить проблему с неотображением спрайтов в SFML?

    maaGames
    @maaGames
    Погроммирую программы
    запуск по F5? Рабочая директория та, где лежит sln файл, если явно её не перезадать. Для теста укажи полный путь к png, чтобы исключить все другие возможные ошибки.
    Ответ написан
  • Как найти неправильно поставленные скобочки { и } в C++?

    Olej
    @Olej
    инженер, программист, преподаватель
    В коде куча строк, но вот как найти среди них одну скобочку, которая ломает весь код...

    1. Куча - это сколько? 5000? 10000? ... а не нужно писать код простынями в один файл.
    2. Либо загнать код в редактор/IDE с разметкой (я люблю Geany), чтобы он вам показал разметку.
    3. Либо комментариями исключать внутренние блоки {} пока на верхнем уровне не выявится непарность.
    Ответ написан
    Комментировать
  • Две функции main?

    vit1251
    @vit1251
    Software Engineer
    Господа следует понимать, что Вы делаете:

    1. lua.c это интерактивный шелл и одновременно интерпритатор Lua (должен быть сборан с liblua);
    2. luac.c это транслятор в байткод Lua (должен быть соборан с liblua);
    3. liblua это статическая(или динамическая) библиотека (должна быть собрана без файлов [lua.c, luac.c]);

    Более подробно можно найти в директории с документацией в том же каталоге или в Makefile:

    lua is the stand-alone Lua interpreter. It loads and executes Lua programs, either in textual source form or in precompiled binary form. (Precompiled binaries are output by luac, the Lua compiler.) lua can be used as a batch interpreter and also interactively.

    luac is the Lua compiler. It translates programs written in the Lua programming language into binary files that can be loaded and executed with lua_dofile in C or with dofile in Lua.
    Ответ написан
    Комментировать
  • Две функции main?

    romy4
    @romy4
    Exception handler
    Lua должен быть собран как библиотека. Соответственно, там не будет main()
    Ответ написан
  • Как прочитать из файла определенную строку?

    AtomKrieg
    @AtomKrieg
    Давай я поищу в Google за тебя
    1) ofstream файл только для записи читать с него нельзя. Читать можно из ifstream. Или читать-писать через fstream
    www.cplusplus.com/reference/ostream/ostream
    2) getline по другому используется
    www.cplusplus.com/reference/string/string/getline
    Ответ написан
    2 комментария
  • Помощь в реализации или где копать, работа с файлами?

    @nirvimel
    Для логгирования ошибок лучше пользоваться стандартным logging, а не изобретать велосипеды.
    Ответ написан
    Комментировать
  • Помощь в реализации или где копать, работа с файлами?

    >>> Мне нужно сделать это в разных строках

    Использовать управляющую последовательность - "\n"

    >>> с указанием даты из компьютера

    Погуглить по ключевому слову: python datetime

    >>> Как проверить существует ли этот файл?

    import os
    
    print(os.path.exists("Ваш путь до (папки, файла)"))


    UPD

    По работе с файлами полезно почитать офф. документацию - https://docs.python.org/3.4/tutorial/inputoutput.h...
    Ответ написан
    Комментировать
  • Ошибка в отступах?

    В отступах надо использовать либо табы, либо пробелы. Например, везде 4 пробела. В коде, который я вижу, у тела функции global_func отступа нет. Кроме того, чисто для сведения, в питоне есть синтаксис для записи строк с сохранением переносов. То есть, можно сделать так:
    print("""И:
        Напишите '+', что бы Сложить два числа
        Напишите '-', что бы вычесть два числа
        Напишите '*', что бы умножить два числа
        Напишите '/', что бы делить два числа
        Напишите 'abc', что бы найти модуль числа
        Напишите '**', что бы возвести первое число в степень второго числа
        Напишите 'quit', что бы выйти из программы
    """)
    Ответ написан
    1 комментарий
  • Ошибка в отступах?

    @Pentblch
    Смотрю в сторону Web, начинающий
    Обратите внимание на вложенность цикла в вашей "global_func"
    да и в "start_func" отступы поехали.
    Ответ написан
    Комментировать
  • Ошибка в отступах?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Питон критически относится к отступам. По отступам он определяет блоки кода.
    Вам нужно разобраться и сделать отступы согласно блокам. Нужно подвинуть вызов global_func, чтобы было видно, что оно внутри блока if.
    Пробегитесь везде и поставьте пробелы правильно.

    def start_func(): 
      print("Для запуска напишите 'start'")
      user_input = input(": ")
      if user_unput == "start":
        print("Запуск программы")
        global_func()
      else:
        print("Не определено")
    Ответ написан
    2 комментария
  • Какие существуют фреймворки на C#?

    ImmortalCAT
    @ImmortalCAT
    C# loving
    а зачем тебе другие?)
    эт как с древнегреческой мифологией, богов дафига, а главный всё равно Зевс :)
    Ответ написан
    Комментировать
  • В чём польза readonly полей в C#?

    grigorylug
    @grigorylug
    readonly - это просто маркер матаданных, которые анализирует компилятор, нужен для того, чтобы обеспечить инкапсуляцию на уровне полей и дать возможность определения значения в конструкторе типа и запретить дальнейшее изменение в коде явным образом (это не значит, что мы не можем изменять такие поля), тоже самое можно сделать и с помощью свойств - закрыв сеттер для изменений вне класса, но если вспомнить историю, то readonly появился раньше свойств, и свойства имеют более широкую область применения, так же поле помеченное readonly можно рассматривать как некую оптимизацию, в сравнении со свойством, т.к. поле будет давать/принимать значение быстрее свойства, за счет того, что свойство преобразуется компилятором в методы get_ и set_, на что тоже уходит время.
    Ответ написан
    Комментировать
  • В чём польза readonly полей в C#?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Значения полей readonly можно менять динамически, в конструкторе класса. Последующие изменения невозможны.

    public class MyClass
    {
    
      public readonly int Value = 0;
    
      public MyClass()
      {
        this.Value = 123;
      }
    
    }


    Для чего это использовать - зависит от фантазии.

    Например, можно создать класс User и сделать readonly поле, содержащее идентификатор пользователя. Таким образом, идентификатор пользователя можно будет указать только при инициализации класса и, в последующем, изменить его будет невозможно. Это позволит избежать проблем в логике, которые еще предстоит придумать :-)

    Если сравнивать со свойствами и константами, то значения readonly свойств могут меняться в процессе жизненного цикла класса. Значения readonly полей, как уже было сказано ранее, можно указывать только при объявлении и в конструкторе класса.

    Значения констант являются фиксированными и изменять их программно невозможно. Количество типов для констант ограничено, в то время как поля могут иметь любой тип. Константы являются статическими, а поля не обязаны быть таковыми. В этом плане, readonly поля более гибкие, чем константы.

    В дополнение, немного кода (Console Application):
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using System.Timers;
    using System.Threading;
    
    namespace ConsoleApplication20
    {
    
      class Program
      {
        static void Main(string[] args)
        {
          // создаем экземпляр класса
          var t = new Toster(199065);
          // выводим значение константы ProjectName
          // доступ только через Toster
          Console.WriteLine(Toster.ProjectName);
          // доступа к локальным константам здесь нет
          // Toster.CounterPattern
          // t.CounterPattern
    
          // выводим заголовок вопроса
          Console.WriteLine(t.Title);
    
          // бесконечность - не предел!
          while (true)
          {
            // t.Id = 123;
            // мы не можем поменять идентификатор
            // следовательно, этот код, логически, будет работать правильно
    
            // выводим число ответов
            Console.WriteLine("Ответов: {0}", t.AnswersCount);
    
            // t.AnswersCount = 123
            // мы не можем менять значение readonly свойства,
            // но оно может меняться внутри экземпляра класса
    
            // пауза 10 сек.
            Thread.Sleep(10000);
          }
        }
      }
    
      public class Toster
      {
    
        // публичная константа, доступ через Toster
        public const string ProjectName = "Тостер";
    
        // локальная константа, доступна только в рамках этого класса
        const string CounterPattern = "<span class=\"section-header__counter\" role=\"answers_counter\">";
    
        // публичные поля только для чтения
        // значение может быть установлено в конструкторе
        public readonly string Title = "Нет данных";
        public readonly int Id = 0;
        
        // свойство только для чтения
        // значение может меняться в процессе жизни экземпляра класса
        // при помощи локальной переменной
        private int _AnswersCount = 0;
        public int AnswersCount
        {
          get
          {
            return _AnswersCount;
          }
        }
    
        // это просто таймер
        private System.Timers.Timer Timer = null;
    
        // а это конструктор<s>, но не Lego</s>
        public Toster(int id)
        {
          if (id <= 0) { return; }
          
          // получаем вопрос
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", id));
          // из шаблона url тоже можно сделать константу
          // либо в классе можно сделать readonly свойство, 
          // которое будет на лету формировать итоговый адрес:
          // return String.Format("https://toster.ru/q/{0}", this.Id)
    
          // устанавливаем значения для полей
          this.Id = id;
          this.Title = WebUtility.HtmlDecode
          ( 
            result.Substring
            (
              result.IndexOf("<title>") + "<title>".Length,
              result.IndexOf("</title>") - result.IndexOf("<title>") - "<title>".Length
            )
          );
          // выдергиваем число ответов на вопрос
          this.ParseAnswersCount(result);
    
          // запускаем периодическую проверку <s>Менделеева</s>
          Timer = new System.Timers.Timer(10000);
          Timer.Elapsed += Timer_Elapsed;
        }
        
        // обработчик истечения интервала времени 
        private void Timer_Elapsed(object sender, EventArgs e)
        {
          var web = new WebClient();
          web.Encoding = Encoding.UTF8;
          var result = web.DownloadString(String.Format("https://toster.ru/q/{0}", this.Id));
          this.ParseAnswersCount(result);
        }
    
        // выдергиватель количества ответов
        private void ParseAnswersCount(string value)
        {
          int startstart = value.IndexOf("Ответы на вопрос");
          int start = value.IndexOf(CounterPattern, startstart) + CounterPattern.Length;
          int len = value.IndexOf("</span>", start) - start;
          _AnswersCount = Convert.ToInt32(value.Substring(start, len));
        }
        
      }
    
    }
    Ответ написан
    Комментировать