1

(2 відповідей, залишених у Python)

Її в любому випадку доведеться переписати, так як палець і мишка з клавою - це різні речі. Як мінімум GUI. Тож справді треба саме Qt, а не якесь там kivy?

2

(20 відповідей, залишених у Робота)

Ви нічого не втратите пройшовши безплатні курси (напр в SoftServe). Там на тестувальника основна вимога -це знання англ мови.

shtyegor написав:

наскільки я розумію можна автоматизовати нажимання, ввід тексту на певних ділянках екрану чи є якісь кращі способи, і з допомогою чого це можна реалізувати?

Вам потрібен перехоплювач запитів (sniffer) щоб подивитись, що робить браузер і чи зможете ви надіслати такий же запит. Якщо ні, то вам потрібний власний браузер, щоб цокати по потрібних тегах. Для Python є обгортки над FireFox та Chrome вроді.

4

(0 відповідей, залишених у Python)

В PyCharm 2017 зробили більш повну підтримку PEP 484. От тільки проблема в тому, що я не можу знайти, як тепер зробити .pyi файл в якому будуть оголошені лише деякі поля оригінального класу!

https://i.stack.imgur.com/W1gPa.png

5

(3 відповідей, залишених у Python)

Як відтворити помилку?

  • Надайте вхідні файли

  • Інструкцію що потрібно зробити, щоб відтворити проблему.

  • Опишіть, що ви хотіли отримати і що отримали.

Я хочу Вам допомогти, але мені влом догадуватись у чому проблема.

Прихований текст

тим більше, що код жахливий

Там графік не зовсім лінійний (точність вимірювання така собі). Почекайте ще з пару днів.
https://www.researchgate.net/profile/Laifa_Tao/publication/269861620/figure/fig4/AS:324336360673284@1454339222599/Capacity-degradation-curves-for-four-Li-ion-batteries-in-NASA-PCoE.png

7

(23 відповідей, залишених у Розваги та гумор)

0xDADA11C7 написав:

V1

Шукаю ментора

Всім доброго дня. Я шукаю ментора для допомоги у вивченні JavaScript або Python. Маю початкові знання цих мов, а також HTML і CSS. Буду вдячний за будь яку допомогу))) скайп lvova78.

V2

як видалити профіль?

підкажіть будь ласка як тут видалити свій профіль і тему яку я створив???

V3

шукаю ментора

Я хочу бути веб макакою, але навчитися хочу статевим шляхом, бо кажуть що так швидше знання передається. скайп lvova78

V4

як видалити профіль?

В мене просто нема слів від вашого хамства... підкажіть будь ласка як тут видалити свій профіль і тему яку я створив???

Ґітхаб йопта

Серйозно? "Вася дурак!"? Ми в дитячому садку?

8

(3 відповідей, залишених у Python)

Назва змінної self._pages не відповідає її значенню. По факту це останні сторінка, а не кількість.

BlackView A5

Найкраще, що я був знайшов тоді за такі гроші.

koala написав:

А покажіть іще, як ви цей RawDataParser.start() викликаєте.

Не думаю, що це сильно допоможе:

    def _parser_run_button_clicked(self):
        input_file_path = os.path.join(self.paths.measurement_result_folder, self.parserInputFileCBox.currentText())
        split_file_name = self.parserInputFileCBox.currentText().split('.')
        output_folder = os.path.join(self.paths.measurement_result_folder, PARSED_DATA_FOLDER)
        if not os.path.isdir(output_folder):
            os.mkdir(output_folder)

        output_path_pattern = os.path.join(output_folder, '.'.join(split_file_name[:-1]) + '_{}.' + split_file_name[-1])

        sel_chip_list = QListWidgetHelper.get_sel_items(self.parserChipsLstWgt)
        sel_temp_list = QListWidgetHelper.get_sel_items(self.parserTempLstWgt)

        parser = RawDataParser()
        self.general_signal_connector(parser)
        parser.find_incorrect_data_done.connect(self._incorrect_data_found)
        parser.start(
            input_file=input_file_path,
            output_path_pattern=output_path_pattern,
            check_data_exists=self.parserCheckDataExistsCBox.isChecked(),
            sel_chip_list=sel_chip_list,
            sel_temp_list=sel_temp_list,
            make_vertical_and_horizontal_tables=self.makeHVTablesCBox.isChecked(),
            custom_parameters_count=self.parserCustomParametersCountSBox.value(),
            check_data_correct=self.parserCheckDataValueCBox.isChecked(),
            columns=[i + self.parser_start_data_index
                     for i in QListWidgetHelper.get_sel_indexes(self.parserIncorrectFindColLstWgt)],
            coverage_factor=self.parserCoverageFactorSBox.value()
        )

Torbins написав:
ADR написав:
Torbins написав:

Якщо параметри однакові, і алгоритми також, то можна посилання на функцію "б" або "в" передавати. Типу такого:

TThread.Execute(@FunctionB, ParamB);

Можна й масивом по кілька посилань.

Проблема в тому, що вони з'єднані цепочкою, при чому не всі ланки цієї цепочки обов'язкові.

Важливо лише те, що у них спільного. Якщо спільне лише те, що вони виконуються послідовно, то доведеться робити клас/інтерфейс, з яким буде працювати потік, обробляти нащадків цього класу (імплементаторів інтерфейсу) по черзі. А потім робити нащадків з потрібними параметрами.
У будь якому випадку параметри для різних функцій треба тримати окремо.

Функція Б бере дані від функції А. Функція В бере дані або від функції Б (якщо така була), або від А.

Можна то все заховати в об'єкті, якось так (тільки, ви казали зробити окремими класами):

обгортка.функція_а_в_потоці(вхідний_файл, вихідна_папка)
обгортка.чекати_завершення()

якщо виконати_функцію_б то:
    обгортка.функція_б_в_потоці(параметри_для_функції_б)
    обгортка.чекати_завершення()
    
    
якщо виконати_функцію_в то:
    обгортка.функція_в_в_потоці(параметри_для_функції_в)
    обгортка.чекати_завершення()

11

(24 відповідей, залишених у Інше)

/KIT\ написав:
misha_bondar_2012 написав:
/KIT\ написав:

Зараз дуже багато кідалова, тому піратство підтримую
І взагалі зараз піратство - не така вже й проблема...

Ага-ага. Це ви кажете як користувач, сидячи з неліцензованого Віндовс(соррі якщо у Вас пінгвін, або Ви дійсно заплатили за ОС). А якщо ви б випускали книгу? Книга крута, ніби популярна, Ви на неї 2 роки витратили, а купили у Вас її 5 людей...і то Ваші друзі. Це можливо перебільшено написано, але правда.

Я мав на увазі те, що зараз є проблеми посерьозніше ніж піратство

Завжди є проблеми важливіші за любу проблему "X". То будемо 10 років чекати завершення війни та повернення Криму?

0x9111A написав:

Я би запхнув всі параметри в структуру з гарною назвою типу "thread_context" і передавав її

Це мало чим відрізняється від просто кучки параметрів)
Робити структуру, яка виконається рівно один раз... хм... може то в поля класу тоді запхати. (бо це насправді були методи, а не функції, але це не багато змінює)

Torbins написав:

ADR
Якщо параметри однакові, і алгоритми також, то можна посилання на функцію "б" або "в" передавати. Типу такого:

TThread.Execute(@FunctionB, ParamB);

Можна й масивом по кілька посилань.

Проблема в тому, що вони з'єднані цепочкою, при чому не всі ланки цієї цепочки обов'язкові.

koala написав:

Два варіанти, які, зрештою, зводяться до одного: або, як сказав 0x9111A, створити об'єкт з параметрів і передавати параметром один об'єкт; або ж створити об'єкт, який буде інкапсулювати всю діяльність цього потоку, виставляти його параметри і викликати його метод run, який вже створюватиме потік.

Параметри передаються з форми — все одно вийде, що буде фукнція, яка то все приймає...

Зараз воно виглядає так:

class RawDataParser(AbstractWorker):
    ...

    def start(
            self,
            input_file: str,
            output_path_pattern: str,
            check_data_exists: bool,
            sel_chip_list: List[str],
            sel_temp_list: List[str],
            make_vertical_and_horizontal_tables: bool = True,
            custom_parameters_count: int = 0,
            check_data_correct: bool = False,
            columns: List[int] = (),
            coverage_factor: float = 10
    ):
        self.__thread = threading.Thread(target=self.__parse,
                                         args=(input_file, output_path_pattern, check_data_exists,
                                               sel_chip_list, sel_temp_list, make_vertical_and_horizontal_tables,
                                               custom_parameters_count, check_data_correct, columns, coverage_factor))
        self.__thread.start()

    def __parse(self, input_file: str, output_path_pattern: str, check_data_exists: bool,
                sel_chip_list: List[str], sel_temp_list: List[str], make_vertical_and_horizontal_tables: bool,
                custom_parameters_count: int, check_data_correct: bool, columns: List[int], coverage_factor: float):
        ...

Робив нову версію і думав за одно зробити гарніше.

Параметри:

вхідний_файл = 'мій файл.тхт'
вихідна_папка = 'папка'

виконати_функцію_б = так/ні
виконати_функцію_в = так/ні

параметри_для_функції_б = 123
параметри_для_функції_в = 123

Функції:

результат_а = функція_а(вхідний_файл)

якщо виконати_функцію_б то:
    результат_б1, результат_б2 = функція_б(результат_а, параметри_для_функції_б)
    зберегти_на_диск(вихідна_папка, результат_б1)
    зберегти_на_диск(вихідна_папка, результат_б2)
    
    результат_а = результат_б1
    
якщо виконати_функцію_в то:
    результат_в = функція_в(результат_а, параметри_для_функції_в)
    зберегти_на_диск(вихідна_папка, результат_б2)

Суть в тому, щоб не виста GUIшка. Ну так, можна то все запхати в одну функцію, яка буде приймати кучу параметрів, але якось то мені не дуже подобається.

Який є більше елегантний підхід?

14

(14 535 відповідей, залишених у Інше)

FakiNyan написав:

замутив тако

 
Seed = Random.Range(0, Hash.Length);
...
public void Generate()
        {
            int countOfWalls = _wallsForGenerating.Count;
            for (int i =0; i<countOfWalls; i++)
            {
                Wall wall = _wallsForGenerating[GetHash(i+Seed)];
                Cell cell1, cell2;...

private int GetHash(int number)
        {
            return Hash[Hash[number & Hash.Length - 1]];
        }

        public static int[] Hash = {
            1097, 284, 723, 432, 664, 614, 70, 619, 1082, 863, 392, 673, 532, 778, 514, 667, 78, 1098, 167, 132, 459,
            392, 96, 857, 756, 727, 544, 644, 302, 627, 910, 756, 371, 953,
            555, 1095, 97, 1050, 135, 185, 923, 502, 811, 737, 148, 372, 1044, 527, 225, 973, 1013, 1051, 837, 322, 853,
            705, 187, 969, 778, 1039, 69, 528, 317, 455, 1055, 738, 301...

тепер, замість 2208 байтів треба передавати 2.

Ппц, я хтів зробити принципіяльно новий спосіб синхронізації лабиринту, і зекономив лишень 2кб =(

Не дуже розумію, що там відувається)
Скільки у вас варіантів лабіринту? Ви впевнені, що жодні два варіанти не будуть мати той самий хеш?
Що це за цифри у хеші? Де ви їх взяти і чому захардкодили такий довгий масив?


Якщо ви використовуєте генератор псевдовипадкових чисел, то ви можете передавати "номер" лабіринту. Функція "рандом" завжди генерує одну і ту ж послідовність, починаючи від старту (не пам’ятаю, як правильно цей "старт" називається)


щось типу так:

... generateLabyrinth(int number) {
    random.initRandom(number)
    
    
    // і дальше ваш алгорим генерації
    ...
    my_random_wall = random.randInt(...)
    my_random_wall = random.randInt(...)
    my_random_wall = random.randInt(...)
    my_random_wall = random.randInt(...)
    ...
}

numberOfLabyrinth = time.inMiliseconds(); // Випадковий номер нового лабіринту

15

(14 535 відповідей, залишених у Інше)

Вінда почала синхронізувати налаштування миші/розміщення головної панелі і т. д. між компами. Хтось вже знайшов як ту фігню виключити?

16

(14 535 відповідей, залишених у Інше)

хтось знає як подружити Komitex із TP Link? Минулого разу я методом проб і помилок добився того, щоб воно працювало. Тепер випадково ресетнув модем і можу відтворити цього чуда(

17

(53 відповідей, залишених у Робота)

Antoine написав:

То профільна освіта is a must have і без неї я бидлокодер?

Мусиш мати або освіту, і/або власний проект. І те і інше передбачає, що ти мав би щось знати.

18

(53 відповідей, залишених у Робота)

Antoine написав:

Наскільки перенасичений ринок девелоперами

Український ринок не настільки велики, щоб перенасичувати світовий попит при поточних зарплатах.
Буде більше кандидатів — буде більше робочих місць.

19

(116 відповідей, залишених у Робота)

221VOLT написав:
Прихований текст

індикатором успішності виступає лише власне відчуття задоволення собою:
хтось має 10тис зарплату і задоволений як слон,
а хтось - мільйони і мільярди і все незадоволений собою, все йому мало і ніяк не вгомониться...

У мене все ок. Навіть дуже. Які і у багатьох хто працює в ІТ. То чому б не зробити додатковий індикатор по зарплаті?

20

(116 відповідей, залишених у Робота)

tim написав:
P.Y. написав:

Професійні програмісти, які не моляться на гроші, в природі існують?

Є багато людей, які ставляться до грошей, як до інструменту, індикатора. Не спілкуюсь з програмістами особисто, деякий час на тему грошей. Тому "моляться" не зовсім коректний термін.

Підтримую. Вчив програмування не через гроші і того, що маю зараз цілком достатньо для життя. Тому приріст зарплати є для мене просто індикатором успішності.