• Доступ к localhost из докер контейнера?

    lssssssssssl
    @lssssssssssl Автор вопроса
    В docker-compose надо добавить
    extra_hosts:
          - "host.docker.internal:host-gateway"

    В коде использовать для обращения к localhost:8080 host.docker.internal:8080
    Ответ написан
    Комментировать
  • Что такое slug в разработке?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    это что то типа нашего ЧПУ (человекопонятный URL)
    Ответ написан
    1 комментарий
  • Что такое slug в разработке?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Чаще всего, как уже написали, встречается в URL, но все же его значение чуть более шире - slug это уникальная строка идентификатор, понятная человеку (в отличие от ID) и содержащая только "безопасные" символы:
    - 0-9
    - a-z (общепринято - в нижнем регистре)
    - символ -
    - иногда еще символ _
    Могут использоваться не только в URL для понятности, но и, например, в запросах к БД (в первую очередь - на уровне АПИ) - ведь
    SELECT * FROM pages WHERE category="some-slug"
    более понятно, чем
    SELECT * FROM pages WHERE category=126.
    На уровне API это выглядит как
    get_pages_in_category( 'some-slug' )
    или
    $object->get_pages_in_category( 'some-slug' ).
    В общем, это человеко-понятный уникальный идентификатор.
    Ответ написан
    1 комментарий
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    D3lphi
    Функция - подпрограмма, выполняющая какие-либо операции и возвращающая значение.
    Процедура - подпрограмма, которая только выполняет операции, без возврата значения.
    Метод - это функция или процедура, которая принадлежит классу или экземпляру класса.


    как бы да, но... только на самом начальном этапе, что бы угомонить хаос в голове новичка ))

    в дальнейшем, все интереснее все эти понятия контекстно зависимые, контекстом является парадигма программирования и/или конкретный язык

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

    в этом случае чаще принято уточнять что метод - это один из видов челнов класса (бывают еще поля, свойства, интерфейсы но это уже контекст конкретного языка) .. и как верно заметил Griboks - он реализуется функцией или процедурой

    но .. есть много языков, где понятия метод нет вообще

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

    2 - из контекста языков:

    понятие процедура в явном виде, чаще всего употребляют преподаватели, которые сами учились на языках типа Fortran, Pascal или родственных, и либо не имели другого опыта вообще, либо иной опыт был на много скромнее

    сейчас доминируют языки, основывающиеся на Си синтаксисе, даже java и js в данном вопросе станут родственниками классического Си

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

    смешение всего этого на примере C# - в этом языке, все есть объект. а любой исполняемый код это метод, и методы реализуются только функциями (в тч void функциями)
    Ответ написан
    2 комментария
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    Всё это можно свести к понятию - подпрограмма. Бывает, читаешь книгу, там автор пишет о своём куске кода как о методе, потом его начинает называть функцией.
    Ответ написан
    Комментировать
  • Чем отличаются понятия функции, процедуры и метода в программировании?

    @D3lphi
    Функция - подпрограмма, выполняющая какие-либо операции и возвращающая значение.
    Процедура - подпрограмма, которая только выполняет операции, без возврата значения.
    Метод - это функция или процедура, которая принадлежит классу или экземпляру класса.
    Ответ написан
    5 комментариев
  • Как в python 3 отсортировать двумерный список по двум столбцам?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Метод sort в Python использует устойчивую сортировку, так что вы можете отсортировать дважды - сначала по одному полю, потом по другому.
    Ответ написан
    Комментировать
  • Как в python 3 отсортировать двумерный список по двум столбцам?

    вот прям в лоб не сильно думая
    student_tuples = [
    ...         ('john', 'A', 15),
    ...         ('jane', 'B', 12),
    ...         ('dave', 'B', 10),
    ...         ('dave1', 'B', 11),
    ...         ('dave2', 'B', 1),
    ...     ]
    ... student_tuples.sort(key=lambda student: (student[1], student[2]))
    student_tuples
    [('john', 'A', 15), ('dave2', 'B', 1), ('dave', 'B', 10), ('dave1', 'B', 11), ('jane', 'B', 12)]
    Ответ написан
    Комментировать
  • Как получить текущий путь в BAT файле?

    @res2001
    Developer, ex-admin
    Именно так и узнавать текущий путь: %CD%
    Это не важно где лежит батник, т.к. исполняется не сам батник, а cmd.exe. Т.е. когда вы 2ПКМите на батнике, лежащем на раб.столе запускается команда: cmd.exe /c c:\users\user\Desktop\file.bat
    При этом путь где лежит батник никакого отношения к текущему пути не имеет. cmd.exe обычно запускается с текущим каталогом %SystemRoot%\System32.
    Чтоб перейти в каталог, где лежит батник, используйте команду: cd /d "%~dp0"
    Пути можно получать из параметров батника, указанным способом, то же самое можно делать для переменных цикла, и параметров процедур. Список доступных модификаторов (буквы после %~ доступны в описании команд call и for.
    Ответ написан
    1 комментарий
  • Ошибка [dcc32 Error] september_2016.pas(48): E2029 Declaration expected but end of file found как исправить?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    как исправить?

    end;
    end.

    Точка же подчеркнута красным — ошибка.
    Ответ написан
    Комментировать
  • Почему не создается файл app.module.ts?

    Xuxicheta
    @Xuxicheta Куратор тега Angular
    инженер
    Всё хорошо, в современном ангуляре не нужны модули.
    Разница с ноутом видимо в версии @angular/cli
    Ответ написан
    2 комментария
  • Почему не добавляет элемент в список?

    FoggyFinder
    @FoggyFinder
    Как уже правильно указали, проблема состоит в том, что вы каждый раз создаете новый экземпляр ManagerMeeting:

    public void Route(string answer)
    {
        var manager = new ManagerMeeting();


    Также оставлю несколько комментариев по поводу кода:

    1. Наследование применяете неправильно.

    2. Если в сеттерах свойств нет дополнительной проверки на корректность значений полей, то лучше использовать авто-свойства.

    3. Слишком сложная структура - классы Menu, Route кажутся избыточными. Для таких простых сценариев методы перечисленных классов проще перенести в Program.

    4. Класс ManagerMeeting слишком сильно связан с консолью, кроме того есть зависимость от Menu. Если хотите предоставить методы для управления коллекцией (список встреч), то выставите необходимые методы и уже работайте с ними.

    5. Для форматированного вывода собственных классов удобно переопределить метод .ToString()

    Немного переписанные классы с учетом указанного выше:

    class Meetings // Класс встреч
        {
            public string DateMeeting { get; set; }
            public string StartMeeting { get; set; }
            public string EndMeeting { get; set; }
    
            public override string ToString()
            {
                return $"Дата встречи: {DateMeeting}, Начало встречи: {StartMeeting}, Конец встречи: {EndMeeting}";
            }
        }
    
        class ManagerMeeting //  Класс управление встречами
        {
            public List<Meetings> MeetingList { get; } = new List<Meetings>();
            public void Add(Meetings meet)
            {
                MeetingList.Add(meet);
            }
            public string FormatMeetings()
            {
                StringWriter sw = new StringWriter();
                foreach (var meet in MeetingList)
                    sw.WriteLine(meet);
                return sw.ToString();
            }  
        }


    меню:

    class Program
        {
            static ManagerMeeting manager = new ManagerMeeting();
            public static void ShowMainMenu()
            {
                Console.WriteLine("Выберите действие: \n1. Показать все встречи\n2. Создать новую встречу");
            }
    
            public static bool Handler()
            {
                Console.Clear();
                ShowMainMenu();
                string answer = Console.ReadLine();
                switch (answer)
                {
                    case "1":
                        var result = manager.FormatMeetings();
                        if (string.IsNullOrWhiteSpace(result))
                            Console.WriteLine("Список пуск");
                        else
                            Console.WriteLine(manager.FormatMeetings());
                        return true;
                    case "2":
                        manager.Add(ReadMeeting());
                        return true;
                    default:
                        return false;
                }
            }
    
            public static void Main(string[] args)
            {
                while (Handler()) Console.ReadKey(true);
                Console.ReadKey(true);
            }
    
            public static Meetings ReadMeeting()
            {
                Console.WriteLine("Введите дату встречи:");
                var date = Console.ReadLine();
                Console.WriteLine("Введите время начала встречи:");
                var startMeeting = Console.ReadLine();
                Console.WriteLine("Введите время конца встречи:");
                var endMeeting = Console.ReadLine();
    
                Console.WriteLine("Встреча добавлена! \n ");
                //Для проверки, записываются ли поля - записываются
                Console.WriteLine(date + startMeeting + endMeeting);
                return new Meetings
                {
                    DateMeeting = date,
                    StartMeeting = startMeeting,
                    EndMeeting = endMeeting
                };
            }
        }


    Конечно, код выше тоже далек от идеального (всегда есть что улучшать). Например,:

    Предусмотрите проверку данных:

    В считывания информации с консоли:
    * используйте типы данных которые лучше всего подходят для описания свойств (DateTime для даты и времени вместо универсального string)
    * напишите вспомогательные методы GetInteger, GetDateTime и другие которые будут возвращать результат только после того как пользователь ввел корректные данные.

    В классе ManagerMeeting:

    * Пусть вместо void метод Add -возвращает bool в зависимости от успешности добавления (например, чтобы предусмотреть сценарии добавления давно прошедшей встречей).

    И так далее.
    Ответ написан
    2 комментария
  • Как реализовать переход по ссылке в скрипте jQuery?

    Функция для перехода:
    function go(url){
    location.href=url;
    }
    Ответ написан
    Комментировать
  • Как правильно обновить миграции и базу с помощью Entity Framework?

    sarapinit
    @sarapinit
    Точу водой камень
    Ваш вопрос - отличный пример вопроса, на который не хочется отвечать. Потому что, он в стиле "я что-то сделал и все поломалось, пойдите ко мне в репозиторий и разберитесь". Если хотите повысить шансы на ответ, вам нужно поработать над формулировкой, описать изменения в коде которые сломали ваше приложение, добавить описание ошибки, уточнить, применяли ли вы миграции к базе.

    UPD
    Судя по вашему комментарию вы выкачали из основной ветки коммиты в которых были добавлены поля к уже существующим моделям. Миграции могли быть созданы а могли и не быть созданы. Но суть в том что в запросе по умолчанию указываются все поля которые есть в классе. А их в вашей базе нет.
    Решений несколько:
    1) Если есть новые миграции, то попробуйте их применить
    2) Если нет миграций но есть изменения моделей, то сделайте миграции и примените их (плохой вариант, скорее всего в будущем из основной ветки вы получите конфликтные миграции и головную боль при объединении веток)
    3) Заигнорить недобавленные поля в настройке DbContext, если они вам не нужны
    Ответ написан
    2 комментария
  • Web Api как сделать несколько параметров в Get запросе? И делают ли так?

    Этот тестовый пример далек от реального проекта немного. Все зависит от предметной области (доменной области). Обычно такие вещи выносятся все-таки в гет-параметры
    /users?age=32&name=Tom

    а в сегменты url немного другие вещи. Сравните
    /users/blocked
    /users/active
    /users/1 - тут получаем конкретного юзера с id=1

    гуглите restful api design
    Ответ написан
    7 комментариев
  • Почему не получается работать с терминалом вс кода?

    @boikom
    Перезагрузи если тольки установил ноду и редактор в это время был открыт
    Ответ написан
    2 комментария
  • Как из Visual Studio Code перенести настройки и плагины на другой компьютер?

    @Dredlock
    Уже появилась новая функция внутри программы для этого. См. офф. документацию

    https://code.visualstudio.com/docs/editor/settings-sync
    Ответ написан
    Комментировать
  • Как работать с объектами JSON в Lua?

    JaxxDexx
    @JaxxDexx
    В Lua массивы индексируются с 1, а не с 0
    print("conditions:", data['weather'][1]['main'])
    Ответ написан
    Комментировать
  • Как написать запрос на lua к REST API?

    @kiriharu
    Python backend, Linux enjoyer
    В socket вроде как есть http, поэтому можно следующим образом:

    local http = require("socket.http")
    
    local body, code, headers, status = http.request("http://example.com/lua.php")
    
    if body then
       -- если есть ответ - пишем его
        print(body)
    else 
        -- если нет - скорее всего произошла какая-то ошибка. Выводим код ошибки.
        print(code)
    end
    Ответ написан
    Комментировать
  • Как работать с многоядерными процессорами в Python?

    Sly_tom_cat
    @Sly_tom_cat
    .
    from time import time
    from threading import Thread
    from multiprocessing import Process

    def count(n):
    while n > 0:
    n -= 1

    startTime = time()
    count(100000000)
    count(100000000)
    print('\nSequential execution time : %3.2f s.'%(time() - startTime))

    startTime = time()
    t1 = Thread(target=count, args=(100000000,))
    t2 = Thread(target=count, args=(100000000,))
    t1.start(); t2.start()
    t1.join(); t2.join()
    print('\nThreaded execution time : %3.2f s.'%(time() - startTime))

    startTime = time()
    p1 = Process(target=count, args=(100000000,))
    p2 = Process(target=count, args=(100000000,))
    p1.start(); p2.start()
    p1.join(); p2.join()
    print('\nMultiprocessed execution time : %3.2f s.'%(time() - startTime))

    Дает на 4-х ядерном проце:

    Sequential execution time : 6.83 s.

    Threaded execution time : 11.37 s.

    Multiprocessed execution time : 6.30 s.

    Но допустим распараллеливание запросов к http серверу и в thread варианте даст огромный выигрыш.
    Т.е. без учета специфики задачи - в многопоточность/многопроцессорность - лучше просто не соваться.
    Ответ написан
    1 комментарий