1. Работает хорошо, есть поддержка почти всех современных БД.
2. Свой XML парсер — есть.
3. Обычно хватает QT Asistant, там все хорошо изложенно. Однако 2 года назад даже вышла книга на русском языке по программированию на QT.
4. Никаких существенных, кроме драйверов для коммерческих БД.
5. Есть, все достаточно гладко. Конечно интерфейс заточенный под винду выглядит достаточно топорно под мак ос.
Есть интегратор для Eclipse и Visual Studio, который сам генерирует и вносит изменение в файл проекта.
Расставляйте приоритеты ;) Если хотите играть в группе, то зачем вам самореализовываться, как веб разработчику? А если пхп — это все-таки первоочередная цель, то гитаре следует подождать.
Безусловно, каждый случай индивидуален, об этом я успел упомянуть в комментариях. Я все же не писал статью, как достичь успеха, как стать богатым, я лишь описал те тезисы, до которых сам дошел, правдивость которых прочувствовал на собственной шкуре, а также о том, с чем мне еще предстоит в скором времени столкнутся. Да — это мой опыт. Не факт, что все, что я написал подойдет под каждый случай, но может быть кому-то понадобится или поможет сформулировать такие же тезисы, но лично для себя :)
Новость как-то очень слабо переведена. Цитата оригинала:
«DR places a hardware breakpoint on the syscall handler, and the
resulting trap places a memory watch on the syscall_table entry for the
__NR_syscall of the intercepted syscall. It does this for both INT 0x80
and sysenter based system calls.
When the memory watch for the syscall_table entry kicks in, the trap
handler then redirects execution for that syscall to a syscall hook.
»
Т.е. штука в том, что все вызовы кернел мод кода из юзер мод кода осуществляется через так называемое шлюзование, как в Linux, так и в Windows. Оно осуществляется посредством вызова инструкции syscall или sysenter, в зависимости от того, процессор какой фирмы у вас установлен. Также существует специальная таблица для того, чтобы проводить это шлюзование, эта таблица описывает соответствие аргумента, который был записан в регистр процессора, и функции ядра, которая должна быть вызвана. Ребята научились подменять эту таблицу таким образом, чтобы не модифицировать ее вообще. Т.е. система делает syscall, вместо оригинального обработчика срабатывает их обработчик, далее они чего-то делают и передают управление системе.
В общем говоря, они с помощью дебаг регистров процессора, устанавливают точку останова в момент вызова syscall_handler, функции, которая обслуживает syscall, и подменяют ее указатель в регистре eip на свой собственный syscall_handler. Далее они возобновляют выполнение. Их собственный syscall_handler уже производит все необходимые действия. Он содержит свою syscall таблицу. Таким образом они получают полный контроль над шлюзованием и таблицей шлюзования. Ничего нового, раньше можно было просто перезаписывать определенные области памяти, модифицируя syscall таблицу, в их же случае нету модификации памяти, просто подмена указателя syscall_handler. В этом и вся принципиальная новизна, подобные же техники перехвата существовали давно.
Да, такое возможно и в BSD. Думаю, что и в Windows тоже, но из-за закрытости этой ОС прийдется много реверс инжинирить. Да и вообще, подобный метод перехвата Native API функций описал еще для Windows 2000 Свен Шрайбер, и с тех пор большенство существующих файерволлов и руткитов этот метод эксплуатируют (они патчят таблицу шлюзования). Однако в 64 разрядных версиях, Microsoft применяет специальный patch guard, который призван не допустить пропатчивание ядра, но вроде бы он успешно обходиться :)
Если кому интересно, может напишу статью на эту тему с более понятными пояснениями, а не такими абстрактными.
Со своей колокольни могу сказать, что:
— Различные тим билдинги (выезды на природу, все общее поедание пиццы, боулинг, кейк пати и т.д.) не приносят особо никакого положительного эффекта. Более того, иногда идут только в минус: когда ты видишь, что коллектив на самом деле раздроблен. К примеру, каждый человек съевший торт, быстро отправляется на свое рабочее место, вместо того, чтобы поболтать минуту-другую с коллегой. Еще очень раздражает, когда тебя вырывают из рабочего процесса, ради очередного просмотра кино.
— Бонусы на проекте мотивируют, когда это действительно бонусы, а не 2 у.е. по окончанию цикла разработки :) Либо бонус есть и существенный, либо нету. Нету — значит работал не столь продуктивно, как надо.
— Мотивируют регулярные пересмотры зарплаты: раз в полгода или квартал.
— Но самая важная мотивационная часть — атмосфера в коллективе, без нее — денежные механизмы не способны мотивировать меня, как сотрудника в достаточной мере.
Последний пункт распишу детальнее:
— Очень важно, чтобы каждый сотрудник на проекте, знал чем занимается коллега. Какие основные линии развития продукта, перспективы, дальнейшие направления, цели. Нужно создавать ощущение причастности у человека.
— По возможности не проводить закрытые тим лид митинги. Они должны быть открыты, или хотя бы основные тезисы должны быть донесены до разработчиков.
— Не создавать излишней бюрократии на проекте.
— Не увеличивать искуственным образом время фидбека, от менеджмента к сотруднику, т.е. на любой вопрос по реализации проекта, ответ должен поступать максимально быстро, иначе создается впечатление, что см. предыдущий пункт.
— Коллеги по возможности должны фоллоу апить новичков, или сотрудников не разбирающихся в конкретной теме.
Кажется кое-что забыл, ну да ладно. Мне больше нравится скрам в этом плане, утренние митинги и т.д., именно он создает нужную атмосферу на проекте.
Для того, чтобы не пополнить ряды случайно пришедших, как раз и придуман пункт — «не идите в профессию ради денег».
Смена целей, или жизненных ценностей, или же профессии/места работы — проблема тогда, когда на тебе лежит большая ответственность за свою семью, и когда шаткое материальное положение может иметь не очень хорошие последствия. Или к примеру, прийдется себя некоторое время ограничивать при удовлетворении собственных материальных потребностей.
Да, я советую не боятся смены целей/сферы деятельности, или профессии. (У вас не появлялось желание прыгнуть с парашютом, без запаски? У меня появлялось. ) Впрочем, я нигде не говорил, что нужно хвататься за каждую идею, которая прийдет в голову. Нет. Анализ и здравое мышление я отключать не советую.
Однако этот спорный совет, как раз для вас :) Вы не можете придумать, чем заниматься дальше. Вы ведь опасаетесь чего-то, хотя бы подсознательно, ведь так? Ваша квалификация, которую вы обрели за 10 лет, исчезнет в миг, если вы вдруг смените род деятельности? Конечно нет, путь назад всегда есть, может не всегда, но в большинстве случаев. А вот вперед — кто знает, возможно шансов с каждым годом будет все меньше и меньше.
PS Я понимаю, что вопрос спорный. Что на подобные темы можно спорить бесконечно. Да, статья получилась не такая, какой я задумал ее изначально, но при внимательном прочтении, основная мысль прослеживается довольно четко, и противоречий — нет :)
Не поверите, но нашу работу-хобби превращают в рутину наши руководители проектов, а не мы сами. Я попросту судил по своему опыту. Мое хобби — системное программирование, и я планомерно развивался в этой сфере с 17 лет. Я просто грезил работать в Киеве в серьезной компании системным программистом. Я изучал материалы сам, у меня не было наставника, не было консультанта. Я смотрел чужой код, потом писал опен соурс драйвера, потом на заказ, и пошло поехало. Теперь я работаю системным программистом в хорошей компании, в области телекоммуникаций. У меня есть навыки по программированию драйверов под Mac OS X (в большей мере), и под Windows (в меньшей), опыт работы с RTOS, я консультирую своих иностранных коллег по аспектам реализации определенной части прошивки и т.д. В общем, я добился того, чего хотел.
Да, когда я пытался вести переговоры с Apple о включении моих патчей в USB стек, я сидел на работе до 11 ночи, приезжал домой в 12, и на следующий день опять ехал на 9 на работу (кстати говоря, мне еще потом за это досталось, дескать NDA инфу распространил, хоть я никакого NDA не подписывал).
Поразительно, но даже сейчас мой любимый менеджмент, превратил мой любимый проект в рутину. И это уже далеко не первый случай, который со мной происходит. Меня недогружают работой, т.е. не дают развиться как профессионалу в полной мере. И к сожалению, если смотреть по Киеву, ситуация в целом та же самая.
У меня есть интерес при этом в дизайне пользовательских интерфейсов, в программировании на Python. Так лучше я буду развиваться в этом направлении, а системное — оставлю как хобби.
Вот вам всего лишь один пример о том, что порой наши возможности не совпадают с нашими желаниями, и также не все зависит от нас.
Я бы сказал, когда перестает двигаться вперед. Так или иначе, чтобы чего-то добиться, надо пахать. И IT-шники, как самоучки, в большинстве своем, это прекрасно понимают.
Да и рутина бывает разная. Одно дело когда ты не можешь добиться поставленных высот, и нужно до изнемождения каждый день тренироваться. Другое дело, что ты программист, а тебя на проекте временно посадили тестировать функционал, и это временно тянется очень долго :) Я привел частный случай, вы привели другой частный случай. Универсальных советов не существует, по этому нужно поступать по ситуации. Но, согласен, работать над собой нужно всегда.
Это тоже правильно, но далеко не всегда. Я в статье не говорил, что не стоит делать работу своим хобби. Наоборот, хорошо, когда хобби и работа имею много общего и порой пересекаются. Просто однажды потеряв интерес к работе, можно также утратить и отдушину — свое любимое хобби :)
К тому же, рутина, которая имеет место быть в работе, в вашем случае вознаграждается видимым результатом. Радио работает! А вот программисту, порой очень тяжело увидеть результат своей работы, только строки кода. Разные профессии — разные подходы. Я вот например, некоторые свои проекты для души, могу не делать месяцами (если что-то не заладилось), зато потом с удовольствием возвращаюсь.
Остроумно вы подкололи :) Опечатка (баллы в связи со своей неграмотностью всегда писал с одной л, а тут видимо лишняя перестраховка). Поправил, спасибо :)
SDK — бесплатно. Поучавствовать в iPhone Developer Program — только за деньги. Тебе выдается сертификат разработчика, и ты им можешь подписывать приложения. Таким образом ты можешь их опробовать на реальном девайсе (до 5 девайсов), а также выложить приложение в AppStore.
Ну вместо одной транзакции — сделать две. И вообще, читайте «Валюта для ввода должна быть только национальная, а максимальная сумма транзакции – 5 000 грн.» Я так понимаю, что 5000 грн — это ограничение на транзакцию с вводом/выводом валюты, а не транзакция внутри системы между электронными кошельками.
Да и зря вы караулы бьете, конечно проблем прибавится, но это не смертельно.
Я скажу, что я им не пользуюсь. Я не говорил, что на Делфи нельзя писать хороших программ, я сам в прошлом Делфист. Я лишь говорю. что Борланд как всегда все делает «вовремя».
Когда еще крутились SOAP сервисы написанные на Делфи, у Борланд просили поддержку юникода и компилятор под 64 бита, они подвели своих пользователей тогда, а сейчас наконец исполняют обещанное, но не самым лучшим образом.
2. Я думаю, всю ситуацию вокруг OHA описывают их прессрелизы.
3. Инфракрасных или сенсорных — нет не верю, в ближайшем времени. Все остальные хар-ки устройства вполне обыденные, хотя 5 мегапиксельная камера — это излишество.
Не расписывайтесь за других, я читал :) Сходство есть в закругленных углах, и вот этой чудо штуке с кнопками под экраном. Однако у меня большие подозрения, что что-то из этой истории — фейк, или же это не HTC. Почему? Потому что T-Mobile продает телефоны под своей маркой, в новости же говорится о регистрации устройства от HTC, еще и модельный номер называют. Тут что-то не сходится определенно…
QT — это професиональный фреймворк, поддерживается очень хорошо, баги фиксятся тоже неплохо, и он свободен от многих детских болезней WxWidgets.
2. Свой XML парсер — есть.
3. Обычно хватает QT Asistant, там все хорошо изложенно. Однако 2 года назад даже вышла книга на русском языке по программированию на QT.
4. Никаких существенных, кроме драйверов для коммерческих БД.
5. Есть, все достаточно гладко. Конечно интерфейс заточенный под винду выглядит достаточно топорно под мак ос.
Есть интегратор для Eclipse и Visual Studio, который сам генерирует и вносит изменение в файл проекта.
«DR places a hardware breakpoint on the syscall handler, and the
resulting trap places a memory watch on the syscall_table entry for the
__NR_syscall of the intercepted syscall. It does this for both INT 0x80
and sysenter based system calls.
When the memory watch for the syscall_table entry kicks in, the trap
handler then redirects execution for that syscall to a syscall hook.
»
Т.е. штука в том, что все вызовы кернел мод кода из юзер мод кода осуществляется через так называемое шлюзование, как в Linux, так и в Windows. Оно осуществляется посредством вызова инструкции syscall или sysenter, в зависимости от того, процессор какой фирмы у вас установлен. Также существует специальная таблица для того, чтобы проводить это шлюзование, эта таблица описывает соответствие аргумента, который был записан в регистр процессора, и функции ядра, которая должна быть вызвана. Ребята научились подменять эту таблицу таким образом, чтобы не модифицировать ее вообще. Т.е. система делает syscall, вместо оригинального обработчика срабатывает их обработчик, далее они чего-то делают и передают управление системе.
В общем говоря, они с помощью дебаг регистров процессора, устанавливают точку останова в момент вызова syscall_handler, функции, которая обслуживает syscall, и подменяют ее указатель в регистре eip на свой собственный syscall_handler. Далее они возобновляют выполнение. Их собственный syscall_handler уже производит все необходимые действия. Он содержит свою syscall таблицу. Таким образом они получают полный контроль над шлюзованием и таблицей шлюзования. Ничего нового, раньше можно было просто перезаписывать определенные области памяти, модифицируя syscall таблицу, в их же случае нету модификации памяти, просто подмена указателя syscall_handler. В этом и вся принципиальная новизна, подобные же техники перехвата существовали давно.
Да, такое возможно и в BSD. Думаю, что и в Windows тоже, но из-за закрытости этой ОС прийдется много реверс инжинирить. Да и вообще, подобный метод перехвата Native API функций описал еще для Windows 2000 Свен Шрайбер, и с тех пор большенство существующих файерволлов и руткитов этот метод эксплуатируют (они патчят таблицу шлюзования). Однако в 64 разрядных версиях, Microsoft применяет специальный patch guard, который призван не допустить пропатчивание ядра, но вроде бы он успешно обходиться :)
Если кому интересно, может напишу статью на эту тему с более понятными пояснениями, а не такими абстрактными.
— Различные тим билдинги (выезды на природу, все общее поедание пиццы, боулинг, кейк пати и т.д.) не приносят особо никакого положительного эффекта. Более того, иногда идут только в минус: когда ты видишь, что коллектив на самом деле раздроблен. К примеру, каждый человек съевший торт, быстро отправляется на свое рабочее место, вместо того, чтобы поболтать минуту-другую с коллегой. Еще очень раздражает, когда тебя вырывают из рабочего процесса, ради очередного просмотра кино.
— Бонусы на проекте мотивируют, когда это действительно бонусы, а не 2 у.е. по окончанию цикла разработки :) Либо бонус есть и существенный, либо нету. Нету — значит работал не столь продуктивно, как надо.
— Мотивируют регулярные пересмотры зарплаты: раз в полгода или квартал.
— Но самая важная мотивационная часть — атмосфера в коллективе, без нее — денежные механизмы не способны мотивировать меня, как сотрудника в достаточной мере.
Последний пункт распишу детальнее:
— Очень важно, чтобы каждый сотрудник на проекте, знал чем занимается коллега. Какие основные линии развития продукта, перспективы, дальнейшие направления, цели. Нужно создавать ощущение причастности у человека.
— По возможности не проводить закрытые тим лид митинги. Они должны быть открыты, или хотя бы основные тезисы должны быть донесены до разработчиков.
— Не создавать излишней бюрократии на проекте.
— Не увеличивать искуственным образом время фидбека, от менеджмента к сотруднику, т.е. на любой вопрос по реализации проекта, ответ должен поступать максимально быстро, иначе создается впечатление, что см. предыдущий пункт.
— Коллеги по возможности должны фоллоу апить новичков, или сотрудников не разбирающихся в конкретной теме.
Кажется кое-что забыл, ну да ладно. Мне больше нравится скрам в этом плане, утренние митинги и т.д., именно он создает нужную атмосферу на проекте.
Смена целей, или жизненных ценностей, или же профессии/места работы — проблема тогда, когда на тебе лежит большая ответственность за свою семью, и когда шаткое материальное положение может иметь не очень хорошие последствия. Или к примеру, прийдется себя некоторое время ограничивать при удовлетворении собственных материальных потребностей.
Да, я советую не боятся смены целей/сферы деятельности, или профессии. (У вас не появлялось желание прыгнуть с парашютом, без запаски? У меня появлялось. ) Впрочем, я нигде не говорил, что нужно хвататься за каждую идею, которая прийдет в голову. Нет. Анализ и здравое мышление я отключать не советую.
Однако этот спорный совет, как раз для вас :) Вы не можете придумать, чем заниматься дальше. Вы ведь опасаетесь чего-то, хотя бы подсознательно, ведь так? Ваша квалификация, которую вы обрели за 10 лет, исчезнет в миг, если вы вдруг смените род деятельности? Конечно нет, путь назад всегда есть, может не всегда, но в большинстве случаев. А вот вперед — кто знает, возможно шансов с каждым годом будет все меньше и меньше.
PS Я понимаю, что вопрос спорный. Что на подобные темы можно спорить бесконечно. Да, статья получилась не такая, какой я задумал ее изначально, но при внимательном прочтении, основная мысль прослеживается довольно четко, и противоречий — нет :)
Да, когда я пытался вести переговоры с Apple о включении моих патчей в USB стек, я сидел на работе до 11 ночи, приезжал домой в 12, и на следующий день опять ехал на 9 на работу (кстати говоря, мне еще потом за это досталось, дескать NDA инфу распространил, хоть я никакого NDA не подписывал).
Поразительно, но даже сейчас мой любимый менеджмент, превратил мой любимый проект в рутину. И это уже далеко не первый случай, который со мной происходит. Меня недогружают работой, т.е. не дают развиться как профессионалу в полной мере. И к сожалению, если смотреть по Киеву, ситуация в целом та же самая.
У меня есть интерес при этом в дизайне пользовательских интерфейсов, в программировании на Python. Так лучше я буду развиваться в этом направлении, а системное — оставлю как хобби.
Вот вам всего лишь один пример о том, что порой наши возможности не совпадают с нашими желаниями, и также не все зависит от нас.
Да и рутина бывает разная. Одно дело когда ты не можешь добиться поставленных высот, и нужно до изнемождения каждый день тренироваться. Другое дело, что ты программист, а тебя на проекте временно посадили тестировать функционал, и это временно тянется очень долго :) Я привел частный случай, вы привели другой частный случай. Универсальных советов не существует, по этому нужно поступать по ситуации. Но, согласен, работать над собой нужно всегда.
К тому же, рутина, которая имеет место быть в работе, в вашем случае вознаграждается видимым результатом. Радио работает! А вот программисту, порой очень тяжело увидеть результат своей работы, только строки кода. Разные профессии — разные подходы. Я вот например, некоторые свои проекты для души, могу не делать месяцами (если что-то не заладилось), зато потом с удовольствием возвращаюсь.
Да и зря вы караулы бьете, конечно проблем прибавится, но это не смертельно.
Когда еще крутились SOAP сервисы написанные на Делфи, у Борланд просили поддержку юникода и компилятор под 64 бита, они подвели своих пользователей тогда, а сейчас наконец исполняют обещанное, но не самым лучшим образом.
3. Инфракрасных или сенсорных — нет не верю, в ближайшем времени. Все остальные хар-ки устройства вполне обыденные, хотя 5 мегапиксельная камера — это излишество.
Не расписывайтесь за других, я читал :) Сходство есть в закругленных углах, и вот этой чудо штуке с кнопками под экраном. Однако у меня большие подозрения, что что-то из этой истории — фейк, или же это не HTC. Почему? Потому что T-Mobile продает телефоны под своей маркой, в новости же говорится о регистрации устройства от HTC, еще и модельный номер называют. Тут что-то не сходится определенно…