• Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Да что собственно обсуждать.
    Из толкового - ты посоветовал исправить код - спасибо, исправил.
    Из не толкового - много поговорили не о чём.
    Тебе удачи с твоей прогой, мне удачи дообернуть мой скрипт - вроде всё
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Тяп ляп и готово! Ты наверное в Ubisoft работаешь?


    Когда пишу на незнакомом языке, который не собираюсь учить - да.
    Если ты всё делаешь идеально, то наверное когда пришла пора поточить нож - купил три разных точильных камня и ремень, что бы сначала грубо затачивать, потом среднюю, заточку, потом минимальную и довести?
    Или ты взял любую точилку под рукой и тяп-ляп да наточил нож?

    Эта прога для меня не работа. Можешь принять к сведению.
    Я не собираюсь написав её посвятить жизнь Питону. Мне есть чем заняться и без этого.

    Где ты читал что тут экономят время?

    Ты тревожишь людей, своими тупыми вопросами.

    Суть этого форума - получать ответы, что помогает в решении задач и экономит время.

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

    Это не говоря о том, что ты наверняка используешь операционную систему, которую не знаешь наизусть для решения задач.
    Как так - надо же наизусть её выучить, прежде чем использовать.

    Это не советы. Я даже не пытался давать совет. Я тыкнул носом.

    Пройдись по комментариям - ты делаешь предположения основанные на твоих фантазиях, называешь это фактами, читаешь сообщение наискосок, даже не пытаясь вникнуть в суть.
    И говоришь - тыкнул носом.
    Указал на недочёт в коде.
    Ок я исправил, всё остальное вроде

    С таким кодом никогда не написать установщик.

    Было скорее бесполезно и оскорбительно.
    Особенно этот заход хорош:

    рандомным ебаном

    Это уже прямое оскорбление.
    По сути на большинстве форумов можно пожаловаться и в бан за такое отправят.
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    И кстати, почему ты многое пропустил из моего пред-последнего коммента?

    Уточни. Я не заметил чего что требует конкретного ответа.

    Почему не логично? Ты пишешь на Js также как на Python?
    А пишешь, точнее учишь его, мягко сказать плохо.


    Моё высказывание "Пишу на Питоне как JS", было относительно того, как я получал расширение файла.
    Я сплитил по точке строку и брал последний элемент массива используя len(массив) -1.
    Для Питона с его os и методом os.path.splitext - это не нужно.

    Но JS не имеет такого метода и мой способ был бы логичен.

    Проще говоря "программист на фортране на любом языке напишет на фортране"(С. Макконел).
    И мой Питон код вполне возможно не идеален и не соответствует бест практикалс.

    Зато выполняет свою работу и мне не пришлось учить Питон в течении недель и месяцев, что бы выполнить задачу.

    И вот ты к этому прицепился и на основе этого делаешь вывод, что я всегда пишу плохо.
    Да. Если пишу 2 часа на незнакомом мне языке то не айс.

    Опять таки ты видишь смысл мой код превртаить в класс?
    Кто бы жалких 2 функции стали методами класса и внутри пришлось использовать self?

    От этого сразу уровень кода станет на порядок лучше?

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

    Суть этого форума и вопросов - экономить время.

    Полной инструкции не дали, но направление дали.
    Это сэкономит время.

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

    Опять тебя несёт. Ну хватит уже за других выдумывать.
    Если ты готов учить всё 24/7, то мне конечно интересно ради чего?
    Стать суперпрограммистом?

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

    Учить язык в нерабочее время, что бы соответствовать стандартам какого то левого чувака с форума - вот это на мой взгляд тупо.
    А написать небольшую программу, не сильно запариваясь насколько круто она сделана и обернуть её в установщик, следуя советам с форума, а не потратив на это свой лишний Х времени - я считаю абсолютно нормальным.
    Если не согласен с предложением выше буду рад видеть аргументированный ответ)
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Соболезную компаниям.

    Задачи выполнял. Когда было мало опыта хуже, когда стало больше - лучше.
    И всегда стараюсь находить компромисс между оставить код как есть, потому что сроки уже жмут или провести очередную итерацию рефакторинга.

    Делать вывод о моём подходе к программированию на основе примера Python кода - мягко говоря не логично.

    Просто представь - тебе для решения некоей задачи нужно использовать другой язык.
    Скажем для своего недельного десктопного приложения ты решил сделать GUI на JS используя Electron.
    Допустим ты не знаешь JS, если знаешь - представь любой другой язык который не знаешь.

    И по сути тебе того гуя надо отобразить пару выпадающих списков да пару кнопок.
    Вот ты реально пойдёшь с самых основ учить JS?
    Паттерны ООП JS?
    А если вдруг задача рабочая и у тебя нет недель и месяцев, как тогда?

    И нет, не только в онлайне. Люблю спорить.


    Есть греческий спор - в нём рождается истина.
    Суть его - спорящие стороны ищут истину и каждый готов к тому, что не прав.
    Это не важно для спорящего - истина важнее.

    А то, что тут у нас - ну ты с самого начала зашёл с козырей:
    С таким кодом никогда не написать установщик.


    И продолжал так на протяжении всего спора:
    Соболезную компаниям.

    Ты всю жизнь маме будешь программы делать?

    Тебе надо было зафигачить на блюдечке.


    Все эти вещи больше похоже на попытку перейти на личности.

    У тебя вот есть значок ревизор - "Отправил 10 полезных жалоб".
    Можно предположить, что ты в таком вот стиле отвечаешь на вопросы, пользователи тебя шлют куда то и ты на это жалуешься.
    Бывало такое?)

    Анивэй спорщик из тебя такой себе - споришь ради спора.
    Тролль из тебя тоже не лучший, до ребят с двачей - как раком до луны.
    Но буду верить, что ты хоть программист хороший.
    Жалко если ты по всем фронтам среднечок
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ты всю жизнь маме будешь программы делать?

    Уже как я 9 лет работаю на разные компании.

    Даже до конца не дочитал эти байки.

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


    Ты не мог вписать.
    NSIS Docs, NSIS Example.


    У всех свой опыт с разным софтом.
    И ищут по разному.
    Но досталось на блюдечке лишь частично.
    Но и того хватит.
    Дискутировать с тобой далее смысла не вижу.
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Цитирую. "Начитались своих Макконелов... ".

    считая книги про ООП глупыми, ты их читаешь

    Я считаю, что всему свое место.
    ООП имеет смысл там где оно нужно.
    Кончено у каждого своё суждение о том в какой момент сложность задачи и её реализация требует использования ООП.
    В коде который буду использовать только я, и который состоит из нескольких функций и переменных я не вижу смысла приводить всё к классу, хотя я уже глянул какой синтаксис у классов в Питоне и мог бы.

    Просто я не такой гордый как ты.

    Слышал про термин "дополненная реальность" из Крав-маги.
    Суть в том, что человек в своей голове видит мир не как другие. Типичный пример - место Шелдона на диване.
    Для любого нормального человека - это кусок дивана. Но для Шелдона - это его идеальное место.
    Так же дополненная реальность относится к случаем когда мы не знаем чего то, но предполагаем.
    Скажем ты сделал предположение, что я гордый и у меня ничего не выйдет и возможно нарисовал у себя в голове какой я на самом деле.
    Так вот.
    Я конечно очень обрадовался тому, что у меня удалось очень быстро написать скрипт, который к моему счастью ещё и действует.
    Но если ты думаешь, что я себе начну думать, что Питон простой язык и я не дай боже его знаю - ты ошибаешься.
    Это неплохой язык. У него простой базовый синтаксис и просто уйма областей использования, каждая из которых требует огромного количества времени и сил на изучение.
    Так что даже когда моя прога будет готова я просто буду рад этому и смогу дать её тому человеку, которому она нужна(моей Маме, она фотограф и у них есть определённый гемор требующий работы с файлами без дублей).

    Ты говоришь что нужно гуглить, задавая вопрос,

    Это техника.
    Ты тратишь Х времени задавая вопрос и начинаешь параллельно гуглить.
    Если повезёт ответ на форуме либо даёт тебе полный ответ, либо намёк.

    Плохо гуглил.
    Мог нагуглить тот самый nsis.

    Но я нашёл NSIS и даже сообщил тебе об этом раньше, чем увидел ответ(разница в 2 минуты, ответ дали пока писал коммент):

    Нужна консультация людей знакомых с тем как оборачивать Питон скрипты в установщик и добавлять выполнения скрипта из контекстного меню проводника Windows.
    Прогу для создания установщика я уже нашёл - WiX Toolset, но потом понял, что там громоздкий синтаксис - писать в XML.
    Сейчас читаю про NSIS, там синтаксис гораздо проще.
    Уверен, что скоро справлюсь.


    Зато в ответе есть ссылки на нужные статьи по NSIS.
    Если бы ответ не дали я бы нашёл сам. Но позже.
    Так что задать вопрос и гуглить имеет смысл.
    Это как выложить камнями SOS, а потом уже строить плот если попал на необитаемый остров
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    так как у тебя нет желания учить язык

    Конкретно Pyton - не сильное желание.
    Возможно поучу его что бы размять мозги перед Rust.

    ты считаешь что книги читать не нужно

    Вот этот вывод ты интересно откуда сделал. Я прочёл несколько книг по программированию. В том числе "Совершенный код" Макконела.
    Но так же по моему опыту прочитанных и не до конца прочитанных книг - в них много воды.
    По сути - моё мнение - нужно прочесть одну книгу по программированию в целом.
    Остальные знания без проблем даёт документация, стаковерфлов и гугл.
    И опять таки практические работы гораздо важнее книжек.
    Имеет смысл читать книги по своему основному языку. Когда есть время и желание.

    Ты и дня не проучил языка

    Верно

    за то ты уже пишешь программу, которая не по силу возможно даже самому разработчику Python'а

    Вот тут подробнее. Я написал скрипт. Итоговая версия пока:
    import os
    from shutil import copy
    
    def getFilenameWithoutExtension (someFilename):
        filename, file_extension = os.path.splitext(someFilename)
        return filename
    
    def getSingles():
        files = list(filter(os.path.isfile, os.listdir()))
        singles = []
        for file in files:
            matchCount = 0
            filenameWithoutExtension = getFilenameWithoutExtension(file)
            for anotherFile in files:
                if file != anotherFile:
                    anotherFileWithoutExtension = getFilenameWithoutExtension(anotherFile)
                    if filenameWithoutExtension == anotherFileWithoutExtension :
                        matchCount += 1
            if matchCount == 0 :
                singles.append(file)
        return singles
    
    singles = getSingles()
    
    if len(singles) > 0 :
        folderName = '__одиночные файлы'
        if not os.path.isdir(folderName):
            os.mkdir(folderName)
        for file in singles:
            #os.remove(file)
            print(file)
            copy(file, folderName + '/' + file)

    Она отрабатывает нормально.
    Невозможно обернуть этот скрипт в установщик и сделать, что бы при установке в контекстное меню проводника Windows добавился пункт, который будет вызывать скрипт внутри каталога?
    Не верю.
    Мне даже ответ уже дали, спасибо нашёлся человек.
    Уже курю в ту сторону и уверен справлюсь.
    А твоя неуверенность опять же меня удивляет.
    Возможно ты ещё не перерос этап "код ради кода".

    Ты противоречишь сам себе, ты имеешь неправильные представления, и это критично

    Примеры в студию.
    Если только тот что я гуглю ответы и написал тут вопрос.
    То это не противоречие тут просто задал вопрос и ищешь, иногда повезёт и ответ получаешь раньше чем нашёл сам.

    А самое главное что ты не можешь или не хочешь аргументировать данную тему. Судя из этого, мой предыдущий комментарий после этого комментария, явно теперь обоснованный. Теперь попытайся аргументировать что-то ты.

    Попробовал. С виду логично?
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder, делать не обоснованные выводы и категоричные утверждения, не утруждая себя написанием аргументов - так себе стиль.
    Продолжайте считать ваши мыслью реальностью.
    Позже повзрослеете.
    Возможно.
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    А как его тогда учить?!

    Для меня сейчас ключевое "когда".
    Текущая задача не требует понимать синаткис(концепции и синтаксис/паттерны для JS мне более чем ясны) ООП Питона.
    А если я решу его учить, скажем для работы, то уж буду идти с самых основ и до практических примеров.
    Но в планах пока нет.
    Рабочий язык - JS.
    Хочется изучить - RUST.
    Не вижу пока для себя веских причин учить ещё один язык с утиной типизацей и ~уровнем сложности задач.
    Питон по сути тот же JS только в профиль. Имею ввиду сложность, синтаксис, востребованность и ~уровень заработка в зависимости от умения разработчика
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Вы мне лог отправили? Удачи.

    Ты первый раз пишешь десктоп программу, ты не можешь утверждать что деск.прог делаються за 15 мин. Я делаю деск.проггу уже неделю если не больше

    Я просто поразился слегка вашей неуверенности и советам читать про ООП и язык в целом, хотя вопрос был не во владении Питоном, а в опыте работы с программами собирающими установщики.
    А то что вы делаете дектопную прогу около недели говорит об одном из двух:
    1) Она значительно сложнее чем проверка папки на файлы без дублирующих файлов с другим расширением.
    2) Вы делаете что то не так.
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder, возможно я задал вопрос не корректно.
    Программа уже работает.
    Сам Питон скрипт.
    Выполняет свою функцию.

    Нужна консультация людей знакомых с тем как оборачивать Питон скрипты в установщик и добавлять выполнения скрипта из контекстного меню проводника Windows.
    Прогу для создания установщика я уже нашёл - WiX Toolset, но потом понял, что там громоздкий синтаксис - писать в XML.
    Сейчас читаю про NSIS, там синтаксис гораздо проще.
    Уверен, что скоро справлюсь.

    Но справился бы быстрее - дай мне кто ответ из своего опыта, чего к сожалению не произошло.
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Это называется костыли, а может и говнокод. И это не утверждение а факт.

    С такими стандартами, хорошим программистом не стать.
    Тяп ляп и готово.

    Уже полчаса минимум висит отредактированная версия.
    Есть ли там к чему придраться?

    Какой вы самоуверенный.
    "А я завтра взломаю пентагон, и ФБР по приколу, за 5 мин"
    Что то похожее.
    Глупо.

    Каммон, это не рокет саенс. Это то что прогеры десктопных приложений делают за 15 минут.
    Я занимаюсь чистым фронтом ~4 года, до этого смесь js, php и верстки ~5 лет.
    Даже с нулевым знанием Питона и программ для создания установщиков, я точно понимаю, что это просто Х часов гугления.
    Надеялся что здесь есть люди которые подскажут прогу, ссыль дадут на конкретную страницу доки, но видимо не судьба.

    Отдельно про это
    Так может вы поучите ООП, что то другое.
    А не фигачить сразу свой установщик.


    Я про ООП читал в нескольких книгах.
    И писал в ООП стиле даже на JS.
    Данную программу я создаю с одной конкретной, очень простой целью.
    Не вижу не единого смысла писать лишний код только ради ООП стиля.
    В целом не понимаю людей которые пытаются любую простую логику обернуть ООП.
    Поначитаются своего Макконнелла и давай 3-строчные функции в класс превращать
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    как так?

    Отвечать в стиле:
    С таким кодом никогда не написать установщик.

    Это полностью не логичное утверждение.
    Т.к. я с почти 100% вероятностью сделаю установщик ещё до понедельника, а код в процессе отрефакторю.

    Да и если у вас первый скрипт, что да полегче взяли.

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

    Итог:
    Ваш первый комментарий не даёт ответа на поставленные вопросы, а даёт мнение о коде и рекомендацию не решать данную конкретную задачу.
    Т.е. не является ответом и с моей точки зрения абсолютно бесполезен
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Какой использовать софт для сборки установщика?

    Как правильно сделать что бы скрипт вызывался именно в папке где будет клик в контекстном меню?

    Ваш же первый ответ больше похож на мнение.
    Без примера как надо.
    Не надо так
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder,
    Есть

    Нужна инструкция, как через подобную программу создать установочный файл, который позволит вызывать скрипт через пункт контекстного меню. И инструкция как добавить пункт в установщик тоже.
    Про это и есть вопрос.
    Ответы есть?
  • Как сделать установщик программы с добавлением пункта в контекстное меню Windows?

    saimon108
    @saimon108 Автор вопроса
    Ultra-Bad Coder, есть программы для создания установочного файла.
    Первый скрипт на Питоне, так JS, поэтому я на Питоне пишу как на JS, не знаю тонкостей и наиболее правильного решения, коим было бы неплохо поделиться, вместо того что бы писать "такой код"
  • Какой дистрибутив linux использует самые свежие версии ядра?

    saimon108
    @saimon108 Автор вопроса
    Он точно подходит под требования:
    "Желательно не слишком сложный в плане привыкания/освоения"
    "Желательно высокопроизводительный, без лишнего предустановленного софта на старте и что бы установка простых инструментов вроде vs code, не превращалась в квест сборки из исходников."
    ?
  • Почему array.filter() в firefox выдает очень странные данные при тестах(es5 синтаксис) filter vs for loop?

    saimon108
    @saimon108 Автор вопроса
    Спасибо. Магия в бенчмарке пропала.
    Теперь это 95,157 vs 80,016 Ops/sec
  • Как реализовать запрет вертикального скролла при горизонтальном touchmove?

    saimon108
    @saimon108 Автор вопроса
    Владислав Радзимовский,
    Просто
    $('#main').on('touchmove', photoWrap, function(e){
    photoWrap и есть блоки с фотками.
    А само событие на #main, так как блоки меняются при помощи аякс при листании каталога фотографов.
    Получается прийдется после каждого листания и замены контента отбиндивать старые обработчики и биндить новые.
  • Как реализовать запрет вертикального скролла при горизонтальном touchmove?

    saimon108
    @saimon108 Автор вопроса
    Работает не так как нужно.
    Вот код :
    $('#main').on('touchmove', photoWrap, function(e){
                    if (touchNow) {
                        var touch = e.originalEvent.touches[0];
                        touchMoveX = touch.pageX;
                        touchMoveY = touch.pageY;
                        touchDiffX = (touchMoveX > 0) ? (touchMoveX - touchStartX) : 0;
                        touchDiffY = (touchMoveY > 0) ? (touchMoveY - touchStartY) : 0;
                        if (touchDiffX > touchDiffY) {
                            e.stopimmediatepropagation();
                            $(photos).css('left', (photosLeft + touchDiffX) + 'px');
                        }
                    } else {
                        return false;
                    }
                });

    При вертикальных свайпах - нормально скроллится - как и должно.

    При горизонтальных - листает фотки, но не выполняет :
    $(photos).css('left', (photosLeft + touchDiffX) + 'px');

    Т.е. не происходит красивого сдвига картинки засчет горизонтально touchmove.
    Логично что из за "e.stopimmediatepropagation();".
    Так что вопрос так и остается :
    Можно ли заблокировать только вертикальный скролл при событии touchmove?
    Не блокируя само событие touchmove