Однако задача правильного воспитания очень широка. На тему «как привить ребенку правильные увлечения» написана не одна статья, книга, диссертация, и однозначного ответа так и не нашлось — слишком уж разные бывают дети.
Я же вам предлагаю решение лишь одного из ее аспектов — задачи «оградить ребенка от пагубного влияния рекламы и современных мусорных ТВ-передач».
Понятное дело, что мультимедиа-проигрыватель с записанным «томом и джерри» не заменит игры с отцом в догонялки, но это уже совсем другая история…
Если возможности жить отдельно от родителей нет, то возможности отгородиться от телевизора нет по определению.
Ибо запретить родителям смотреть телевизор — это неуважение их интересов. А выгонять ребенка из комнаты — телевизор запретным плодом, который, как известно, самый сладкий.
Если есть возможность жить отдельно, и при этом вы на самом деле хотите оградить ребенка от его пагубного влияния — сделайте волевое усилие и обрежьте телевизионный кабель. Да совсем. Да-да, под корень.
При этом сам телевизор выкидывать не надо — достаточно организовать подключение его к компьютеру (или, на худой конец — DVD плееру) и обеспечить ребенка всеми фильмами и мультфильмами без рекламы и дома 2.
При этом важно:
— Посмотреть мультик должно быть так же просто как включить телевизор. Трехлетнее дитя не сможет включить компьютер и выбрать что-нибудь в ваше отсутствие. Не жадничайте, потратьтесь на хороший мультимедиа-проигрыватель с пультом, благо это добро уже есть на рынке.
— Мультиков должно быть в избытке, ведь что-то, наверно, ему не понравится.
— Обеспечить ребенка в том числе и современным творчеством, чтобы ваше чадо не чувствовало себя обделенным при общении со сверстниками.
В части фактов вы практически угадали: доход сравним со средним или высоким доходом московского офисного работника. А это в пару-тройку раз больше чем средний доход местного офисного работника.
В плане иностранных бирж – здесь дело вовсе не в английском языке. Я не хочу ходить по тем граблям, про которые вы говорите. Поэтому я учусь… Всему – методам, техникам, практикам, трюкам, английскому языку, культуре и даже философии и художественной литературе. Стараюсь, чтобы каждая моя новая программа была лучше предыдущей, стараюсь брать разные заказы, чтобы каждый пополнял мой опыт, даже если это мне не выгодно по деньгам.
Когда я пойму что готов – я пойду туда. Впрочем, этого может и не случится, т.к. ко мне по каким-то непонятным для меня путям уже приходят приглашения к долгосрочному сотрудничеству от западных заказчиков. Пока безответные.
Если на ввод ответов в ваш сервис будет тратиться столько же времени, сколько и на формирование этого ответа в ворде (при сохранении качества результата) — то да, это существенным образом изменит ситуацию в вашу пользу. Результаты ведь в любом случае набивать надо.
Другое дело, что «не сложней чем в ворде» подразумевает не просто WYSIWYG редактор, а так же ввод формул, картинок и прочего уже упомянутого добра. При этом следует учиытвать, что далеко не каждый, например студент-физик, обладает знаниями в области ввода формул в формате TeX или подобном. А если из группы только 1-2 человека сможет воспользоваться продвинутым редактором, то, согласитесь, вся затея потеряет свой смысл, ибо массовость здесь очень важна.
P.S: подумайте над импортом из ворда (например, пользователь грузит вордовый файл, а система сама его конвертирует в HTML ответ).
Но для физики, химии, математики и почти что любой другой естественно-математической науки время на то, чтобы сверстать ответ в разы превысит время подбора материала. Т.к. там важны формулы — как математические, так и химические, графики, иногда диаграммы, гистограммы, матрицы и много-много еще чего.
А время перед экзаменом — на вес золота. Никто не будет тратить лишний час на вопрос — это ведь целых 30-60 часов на все вопросы, пусть даже и распределенные на несколько человек!
Так что как сферическая задумка в вакууме — вы молодец, идея хороша. Но реальный круг применения — увы, только гуманитарные науки и прочие им подобные (где нет никакого маломальски сложного форматирования).
Софт в основном под Windows, но разрабатывается не на технологиях MS.
Я выбрал для себя сегмент малых программ – до 2 рабочих недель на программу. Особенностью этого сегмента является то, что клиент ставит задачу и описывает накладываемые ограничения, и ему все равно, сделано это на технологиях MS или на каких-то других. Конечно, бывают и те, у которых, например, уже есть часть софта и им его надо дописать, либо надо написать макрос для MS Office, но от таких я просто отказываюсь.
Хм… Возможно мы живем в параллельных вселенных, но сам лично ушел из веба именно в прикладное т.к. здесь:
1) Порог вхождения выше — прикладные программы нельзя писать нормально, прочитав один лишь «Самоучитель PHP» или «Создание сайтов для чайников». А значит конкуренция на порядок ниже.
2) Меньше непрофессионалов — меньше демпинга. Нет предложений «сверстать страничку за 5 баксов».
3) Здесь есть возможность в большей мере применить те знания и методы, которым меня учили в университете (и, кстати, по моему субъективному мнению, именно такой подход к заказам определяет большой поток клиентов).
4) Количество задач крайне высоко.
В результате, даже не имея активных аккаунтов ни на фриланс.ру, ни на веблансере, ни на какой-либо другой бирже, имею стабильный поток заказов, превышающий мои производственные возможности и денежные потребности.
При этом да, иногда попадаются заказы на совершенно дикие сочетания технологий, но т.к. заказов все равно больше чем моего времени, то есть возможность от них отказаться, либо посоветовать исполнить заказ на более удобной мне технологии (в 95% случаев клиенту не важно как это сделано, а значение имеет лишь как это реально работает).
От «излишков» приходится отказываться, ибо передавать другим я не буду — не хочу отвечать своей репутацией за чужой труд, и фирму организовывать я тоже не хочу — я не люблю руководить, а перспектива стать «менеджером» вызывает рвотные позывы.
Вы можете оставить есть, но если первый клик попадает на бомбу, то перегенерировать поле. В таком случае долгий отклик будет лишь в 1 из 10 случаев, что не критично.
Либо генерировать перед началом 2 поля, в таком случае вероятность того что вы тыкните в клетку, которая будет в обеих полях бомбой — 0,1*0,1 = 0,01, что уже совсем ничтожно мало.
Те, кого вы называете «копирастами» на самом деле не имеют каких-то отличительных черт в IP-адресе. Им необходимо снять логи, активных пиров и т.д. и они вам даже на суде не скажут, от какого IP они это сделали.
Более того, эти ваши «копирасты» пользуются не каким-нибудь супер-провайдером «Копираст-линк», а самыми что ни на есть обычными провайдерами. Да-да, возможно даже тем же, что и вы!
И, кроме того, они могут провайдеров менять и даже могут иметь динамический IP адрес.
Нет, не поимеете. Сигналы и слоты это не просто вызов функций, а целый механизм, включающий в себя как прямой вызов слотов, так и отложенный.
Вот что написано в этом в документации Qt:
enum Qt::ConnectionType
This enum describes the types of connection that can be used between signals and slots. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time.
Qt::DirectConnection — When emitted, the signal is immediately delivered to the slot.
Qt::QueuedConnection — When emitted, the signal is queued until the event loop is able to deliver it to the slot.
Qt::AutoConnection — If the signal is emitted from the thread in which the receiving object lives, the slot is invoked directly, as with Qt::DirectConnection; otherwise the signal is queued, as with Qt::QueuedConnection.
Последний вариант используется в Qt по умолчанию. Работоспособность этого дела с нативными питон-нитями была мною уже не раз проверена и активно используется в разработке.
Да, вариант ol-li получше и он нормально копируется больше чем в половине случаев.
На другой сайт идти согласен, не очень хорошо.
Однако если код таки не скопировался, то гораздо приятней сходить на другой сайт, чем вручную расставлять попорченые отступы. Если предложите красивый способ, который всегда и из любого браузера будет копироваться без перехода на другой сайт, порчи переносов и доступными для хабра методами — респект и уважуха :-).
С ходу отмечу небольшой просчет — когда вы показываете концепцию логирования в QTextEdit (второй листинг в этой статье), то показывайте именно концепцию.
Приведенная довольно страшненькая конструкция для перевода выводимого текста будет бесполезна в 99% случаев.
Согласен, что от нее может быть иногда толк, но она явно не относится к необходимому для логирования на форму, а перегрузка ненужными деталями затрудняет восприятие примера. К тому же неопытный читатель может так бездумно и вставить все это дело себе в код, так и не поняв что это и зачем оно на самом деле надо.
Второе, что хотел бы я отметить: то, что вы пишете — это хорошо и правильно, но только для малых (и с большой натяжкой — для средних) приложений.
Для средних же и крупных необходимо отделение логики от представления. В идеале, вся работа с Qt должна быть изолирована либо в модуле gui, либо в package с таким или подобным именем.
Ядро же программы желательно должно оставаться девственно чистым от Qt-кода (в том числе Qt-потоков):
— Это облегчит тестирование (для того, чтобы провести юнит-тестирование Qt-потока, надо инициализировать QApplication, а для некоторых других вещей — создавать главное окно).
— Это позволит снизить сложность ядра программы: разработчику ядра не обязательно держать в голове все требования и особенности Qt-реализаций.
— Это позволит легко тестировать программу в консольном режиме.
— И, наконец, это позволит держать код в едином стиле, не перемешивая методы с подчеркрутыми_именами (питон-стиль) с теми, что написалы в camelCase, не перемешивая u'Строки в юникоде' с QString-ами.
Спасибо! Если брать именно подсветку, то качественно и красиво.
Но, скажем в соседнем топике используется сервис Source Code for Me (с очень интересной фавиконкой), который, кроме того, добавляет к коду номера строк и ссылки на копирование исходного поля из textarea.
Номера строк удобны тем, что в статье можно теперь говорить «в 20-й строке вы видите...», а копирование и вовсе незаменимо для питона, ибо при копировании из странички стандартными средствами браузера портятся отступы. В питоне же правильные отступы критичны.
Единственная неприятность — не получается изменить цвет фона на хабре, что делает не все цветовые стили pygments пригодными для использования.
Подсветка кода — это не игрушка, а инструмент, предназначенный для более легкого восприятия. Если каждый начнет самовыражаться и делать статьи то белыми буквами по черному фону, то зелеными по красному, то ничего хорошего, уверяю вас, не получится.
Если вы не собираетесь писать локализуемое приложение, то тем более непонятно зачем делать метод toUtf, то возможно проще писать так, да и работать будет явно быстрее: MainWindow.setWindowTitle(QString.toUtf8("ХабраОкно 2.0"))
А можно еще проще — MainWindow.setWindowTitle(u"ХабраОкно 2.0")
Однако задача правильного воспитания очень широка. На тему «как привить ребенку правильные увлечения» написана не одна статья, книга, диссертация, и однозначного ответа так и не нашлось — слишком уж разные бывают дети.
Я же вам предлагаю решение лишь одного из ее аспектов — задачи «оградить ребенка от пагубного влияния рекламы и современных мусорных ТВ-передач».
Понятное дело, что мультимедиа-проигрыватель с записанным «томом и джерри» не заменит игры с отцом в догонялки, но это уже совсем другая история…
Ибо запретить родителям смотреть телевизор — это неуважение их интересов. А выгонять ребенка из комнаты — телевизор запретным плодом, который, как известно, самый сладкий.
Если есть возможность жить отдельно, и при этом вы на самом деле хотите оградить ребенка от его пагубного влияния — сделайте волевое усилие и обрежьте телевизионный кабель. Да совсем. Да-да, под корень.
При этом сам телевизор выкидывать не надо — достаточно организовать подключение его к компьютеру (или, на худой конец — DVD плееру) и обеспечить ребенка всеми фильмами и мультфильмами без рекламы и дома 2.
При этом важно:
— Посмотреть мультик должно быть так же просто как включить телевизор. Трехлетнее дитя не сможет включить компьютер и выбрать что-нибудь в ваше отсутствие. Не жадничайте, потратьтесь на хороший мультимедиа-проигрыватель с пультом, благо это добро уже есть на рынке.
— Мультиков должно быть в избытке, ведь что-то, наверно, ему не понравится.
— Обеспечить ребенка в том числе и современным творчеством, чтобы ваше чадо не чувствовало себя обделенным при общении со сверстниками.
На всякий случай отписываюсь тут, чтобы если сляжет окончательно и бесповоротно, то был proof того факта, что отправлял до обозначенного дедлайна :-)
Еще раз спасибо! С Новым Годом вас!
В плане иностранных бирж – здесь дело вовсе не в английском языке. Я не хочу ходить по тем граблям, про которые вы говорите. Поэтому я учусь… Всему – методам, техникам, практикам, трюкам, английскому языку, культуре и даже философии и художественной литературе. Стараюсь, чтобы каждая моя новая программа была лучше предыдущей, стараюсь брать разные заказы, чтобы каждый пополнял мой опыт, даже если это мне не выгодно по деньгам.
Когда я пойму что готов – я пойду туда. Впрочем, этого может и не случится, т.к. ко мне по каким-то непонятным для меня путям уже приходят приглашения к долгосрочному сотрудничеству от западных заказчиков. Пока безответные.
Другое дело, что «не сложней чем в ворде» подразумевает не просто WYSIWYG редактор, а так же ввод формул, картинок и прочего уже упомянутого добра. При этом следует учиытвать, что далеко не каждый, например студент-физик, обладает знаниями в области ввода формул в формате TeX или подобном. А если из группы только 1-2 человека сможет воспользоваться продвинутым редактором, то, согласитесь, вся затея потеряет свой смысл, ибо массовость здесь очень важна.
P.S: подумайте над импортом из ворда (например, пользователь грузит вордовый файл, а система сама его конвертирует в HTML ответ).
Но для физики, химии, математики и почти что любой другой естественно-математической науки время на то, чтобы сверстать ответ в разы превысит время подбора материала. Т.к. там важны формулы — как математические, так и химические, графики, иногда диаграммы, гистограммы, матрицы и много-много еще чего.
А время перед экзаменом — на вес золота. Никто не будет тратить лишний час на вопрос — это ведь целых 30-60 часов на все вопросы, пусть даже и распределенные на несколько человек!
Так что как сферическая задумка в вакууме — вы молодец, идея хороша. Но реальный круг применения — увы, только гуманитарные науки и прочие им подобные (где нет никакого маломальски сложного форматирования).
Я выбрал для себя сегмент малых программ – до 2 рабочих недель на программу. Особенностью этого сегмента является то, что клиент ставит задачу и описывает накладываемые ограничения, и ему все равно, сделано это на технологиях MS или на каких-то других. Конечно, бывают и те, у которых, например, уже есть часть софта и им его надо дописать, либо надо написать макрос для MS Office, но от таких я просто отказываюсь.
1) Порог вхождения выше — прикладные программы нельзя писать нормально, прочитав один лишь «Самоучитель PHP» или «Создание сайтов для чайников». А значит конкуренция на порядок ниже.
2) Меньше непрофессионалов — меньше демпинга. Нет предложений «сверстать страничку за 5 баксов».
3) Здесь есть возможность в большей мере применить те знания и методы, которым меня учили в университете (и, кстати, по моему субъективному мнению, именно такой подход к заказам определяет большой поток клиентов).
4) Количество задач крайне высоко.
В результате, даже не имея активных аккаунтов ни на фриланс.ру, ни на веблансере, ни на какой-либо другой бирже, имею стабильный поток заказов, превышающий мои производственные возможности и денежные потребности.
При этом да, иногда попадаются заказы на совершенно дикие сочетания технологий, но т.к. заказов все равно больше чем моего времени, то есть возможность от них отказаться, либо посоветовать исполнить заказ на более удобной мне технологии (в 95% случаев клиенту не важно как это сделано, а значение имеет лишь как это реально работает).
От «излишков» приходится отказываться, ибо передавать другим я не буду — не хочу отвечать своей репутацией за чужой труд, и фирму организовывать я тоже не хочу — я не люблю руководить, а перспектива стать «менеджером» вызывает рвотные позывы.
Либо генерировать перед началом 2 поля, в таком случае вероятность того что вы тыкните в клетку, которая будет в обеих полях бомбой — 0,1*0,1 = 0,01, что уже совсем ничтожно мало.
В оригинальном же сапере положение мин рассчитываются после первого клика и таким образом, что бы на нажатой клетке мин не было.
Более того, эти ваши «копирасты» пользуются не каким-нибудь супер-провайдером «Копираст-линк», а самыми что ни на есть обычными провайдерами. Да-да, возможно даже тем же, что и вы!
И, кроме того, они могут провайдеров менять и даже могут иметь динамический IP адрес.
Вот что написано в этом в документации Qt:
Последний вариант используется в Qt по умолчанию. Работоспособность этого дела с нативными питон-нитями была мною уже не раз проверена и активно используется в разработке.
На другой сайт идти согласен, не очень хорошо.
Однако если код таки не скопировался, то гораздо приятней сходить на другой сайт, чем вручную расставлять попорченые отступы. Если предложите красивый способ, который всегда и из любого браузера будет копироваться без перехода на другой сайт, порчи переносов и доступными для хабра методами — респект и уважуха :-).
С ходу отмечу небольшой просчет — когда вы показываете концепцию логирования в QTextEdit (второй листинг в этой статье), то показывайте именно концепцию.
Приведенная довольно страшненькая конструкция для перевода выводимого текста будет бесполезна в 99% случаев.
Согласен, что от нее может быть иногда толк, но она явно не относится к необходимому для логирования на форму, а перегрузка ненужными деталями затрудняет восприятие примера. К тому же неопытный читатель может так бездумно и вставить все это дело себе в код, так и не поняв что это и зачем оно на самом деле надо.
Второе, что хотел бы я отметить: то, что вы пишете — это хорошо и правильно, но только для малых (и с большой натяжкой — для средних) приложений.
Для средних же и крупных необходимо отделение логики от представления. В идеале, вся работа с Qt должна быть изолирована либо в модуле gui, либо в package с таким или подобным именем.
Ядро же программы желательно должно оставаться девственно чистым от Qt-кода (в том числе Qt-потоков):
— Это облегчит тестирование (для того, чтобы провести юнит-тестирование Qt-потока, надо инициализировать QApplication, а для некоторых других вещей — создавать главное окно).
— Это позволит снизить сложность ядра программы: разработчику ядра не обязательно держать в голове все требования и особенности Qt-реализаций.
— Это позволит легко тестировать программу в консольном режиме.
— И, наконец, это позволит держать код в едином стиле, не перемешивая методы с подчеркрутыми_именами (питон-стиль) с теми, что написалы в camelCase, не перемешивая u'Строки в юникоде' с QString-ами.
Но, скажем в соседнем топике используется сервис Source Code for Me (с очень интересной фавиконкой), который, кроме того, добавляет к коду номера строк и ссылки на копирование исходного поля из textarea.
Номера строк удобны тем, что в статье можно теперь говорить «в 20-й строке вы видите...», а копирование и вовсе незаменимо для питона, ибо при копировании из странички стандартными средствами браузера портятся отступы. В питоне же правильные отступы критичны.
Подсветка кода — это не игрушка, а инструмент, предназначенный для более легкого восприятия. Если каждый начнет самовыражаться и делать статьи то белыми буквами по черному фону, то зелеными по красному, то ничего хорошего, уверяю вас, не получится.
А можно еще проще —
MainWindow.setWindowTitle(u"ХабраОкно 2.0")
PyQt отлично умеет мэппить unicode в QString :-)