Аннотация:
В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux.
Требуется знание С++
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
возможно, что я чтото пропустил, но, в статье, по сути ничего, кроме введения, нету. в такой случае рановато вы ее выложили, имхо.
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
Здравствуйте, игппук, Вы писали:
И>возможно, что я чтото пропустил, но, в статье, по сути ничего, кроме введения, нету. в такой случае рановато вы ее выложили, имхо.
1. Анонс выложил не я, а от моего имени администрация форума.
2. Это — обычная практика на RSDN. Сначала выкладывается анонс статьи, чтобы покупали журнал. Затем, через некоторое время выкладывается вся статья.
Дима, раз уж взялся за это дело, ИМХО надо писать про другое.
Судя по анонсу статьи — это пересказ на русском нескольких PDF из нелпа типа "Coding Idioms for Series 60 Developers". Если человеку интересно — он прочитает это и сам, словарик, в крайнем случае, возьмет и прочитает
А писать надоо том, чего нет в документации — что такое активные объекты, обсерверы и прочие вещи, сугубо специфичные для Symbian и почти не отраженные в документации. Например, про обсерверы вообще ничего нет, или ткни носом
А то получится "Symbian для чайников за 21 день".
Не, такие книжки, конечно, тоже нужны, но в условиях дефицита информации по Symbian обидно, когда такой опытный человек, как ты, работает переводчиком с инглиша на русский.
Извини, если был резок, это не столько критика, сколько пожелание
Ждем новых, интересных статей
Здравствуйте, vog, Вы писали:
vog>Дима, раз уж взялся за это дело, ИМХО надо писать про другое. vog>Судя по анонсу статьи — это пересказ на русском нескольких PDF из нелпа типа "Coding Idioms for Series 60 Developers". Если человеку интересно — он прочитает это и сам, словарик, в крайнем случае, возьмет и прочитает
vog>А писать надоо том, чего нет в документации — что такое активные объекты, обсерверы и прочие вещи, сугубо специфичные для Symbian и почти не отраженные в документации. Например, про обсерверы вообще ничего нет, или ткни носом
vog>А то получится "Symbian для чайников за 21 день". vog>Не, такие книжки, конечно, тоже нужны, но в условиях дефицита информации по Symbian обидно, когда такой опытный человек, как ты, работает переводчиком с инглиша на русский.
vog>Извини, если был резок, это не столько критика, сколько пожелание vog>Ждем новых, интересных статей
имхо, для понимания наблюдателей надо паттерны учить, а не симбиан. вообче то в англ книгах по симбиану так и написано, что обсервер явялется одним из основных паттернов, на основе которого эта ось и построена. так что ничего нового он не скажет, если про обсерверы напишет.
Здравствуйте, vog, Вы писали:
vog>Дима, раз уж взялся за это дело, ИМХО надо писать про другое.
А другое уже готовится. Следующая статья как раз об активных объектах.
vog>Судя по анонсу статьи — это пересказ на русском нескольких PDF из нелпа типа "Coding Idioms for Series 60 Developers". Если человеку интересно — он прочитает это и сам, словарик, в крайнем случае, возьмет и прочитает
А ты суди не по анонсу.
Купи журнал — увидишь, что там не просто пересказ своими словами. В частности, довольно подробно разобран механизм Symbian исключений, причем не только "это так а вот это — эдак", а с примерами и пробной реализацией подобного механизма.
vog>А писать надоо том, чего нет в документации — что такое активные объекты, обсерверы и прочие вещи, сугубо специфичные для Symbian и почти не отраженные в документации. Например, про обсерверы вообще ничего нет, или ткни носом
Как уже правильно сказали, обсервер — это паттерн. То, что в Symbian он активно используется, не делает его Symbian specific.
vog>А то получится "Symbian для чайников за 21 день". vog>Не, такие книжки, конечно, тоже нужны, но в условиях дефицита информации по Symbian обидно, когда такой опытный человек, как ты, работает переводчиком с инглиша на русский.
vog>Извини, если был резок, это не столько критика, сколько пожелание vog>Ждем новых, интересных статей
В общем, купи журнал или дождись, когда статью выложат в электронном виде. Критику я принимаю, но пока что это даже не критика, уж извини.
На самом деле, это пробная статья — поглядеть на реакцию народа. Поэтому она довольно короткая и, в общем-то, не сильно в глубину вдается (за исключением подробного рассмотрения механизма Symbian exceptions). Следующая у меня уже готова, сегодня-завтра отошлю Купаеву. А там — ждем следующий номер.
Здравствуйте, CrystaX, Вы писали:
CX>А ты суди не по анонсу. CX>Купи журнал — увидишь, что там не просто пересказ своими словами. В частности, довольно подробно разобран механизм Symbian исключений, причем не только "это так а вот это — эдак", а с примерами и пробной реализацией подобного механизма.
Я сегодня в тех.книгу заскочу — обязательно посмотрю.
CX>Как уже правильно сказали, обсервер — это паттерн. То, что в Symbian он активно используется, не делает его Symbian specific.
Я знаю, что паттерн, а где про него можно почитать? Так, на память, не скажешь, где это расписано?
vog>>А то получится "Symbian для чайников за 21 день". vog>>Не, такие книжки, конечно, тоже нужны, но в условиях дефицита информации по Symbian обидно, когда такой опытный человек, как ты, работает переводчиком с инглиша на русский.
CX>В общем, купи журнал или дождись, когда статью выложат в электронном виде. Критику я принимаю, но пока что это даже не критика, уж извини.
Так я и написал "это не столько критика, сколько пожелание ". А то как в советские времена — мы Солженицина не читали, но тоже осуждаем
CX>В любом случае, спасибо за отзыв.
Пиши, за нами фидбэк не заржавеет
Здравствуйте, vog, Вы писали:
CX>>Как уже правильно сказали, обсервер — это паттерн. То, что в Symbian он активно используется, не делает его Symbian specific.
vog>Я знаю, что паттерн, а где про него можно почитать? Так, на память, не скажешь, где это расписано?
Ну, видимо, GoF.
Других столь же хороших книг о паттернах не знаю.
vog>Так я и написал "это не столько критика, сколько пожелание ". А то как в советские времена — мы Солженицина не читали, но тоже осуждаем
Ок, принято.
CX>>В любом случае, спасибо за отзыв. vog>Пиши, за нами фидбэк не заржавеет
Здравствуйте, vog, Вы писали:
vog>Проехался я тут по Пушкинской, Дому книги и Литейному vog>нету ни банды, ни журнала с твоей статьей vog>единственная польза — на Литейном лежит книга по ME.
GoF, насколько я знаю, можно в ДК Крупской купить без проблем. А вот с RSDN Magazine действительно пока проблема. Я тоже заходил — нет пока и не знают когда будет.
CX>Ну, видимо, GoF. CX>Других столь же хороших книг о паттернах не знаю.
можно еще почитать докторскую диссертацию Эриха Гаммы (на языке оригинала),
Влисиддеса "Примеры применения паттернов" (под рукой нет, в названии мог и ошибиться) — тоненькая такая книжка за 113 рублей.
Здравствуйте, Бабошин Андрей, Вы писали:
CX>>Ну, видимо, GoF. CX>>Других столь же хороших книг о паттернах не знаю. БА>можно еще почитать докторскую диссертацию Эриха Гаммы (на языке оригинала), БА>Влисиддеса "Примеры применения паттернов" (под рукой нет, в названии мог и ошибиться) — тоненькая такая книжка за 113 рублей.
Спасибо, я в прошлые выходные проехался по Питерским магазинам — не нашел.
взял про шаблоны и J2ME
и то хорошо
отдельное спасибо Диме Москальчуку за статью — немножко умного узнали
Кстати, Дима, а откуда знание таких тонкостей строения CleanupStack и вообще всего механизма исключений?
В доках я таких разьяснений не встречал.
Это от реверса, книжки умной или или, подкопив уе, ты стал Gold партнером?
Я по первому чтению эту часть пропустил, а тут вчитался и стало мне подозрительно
В общем, отзывов нет, потому, что нет журнала, я в Питере вообще его не видел в продаже. Давай, пиши дальше, все очень интерестно, потом книгой оформишь, ИМНО стоит. Если не трудно, вышли новые главы, может, я подскажу, чего добавить именно с точки зрения такого середнячка, как я
Успехов!
Здравствуйте, vog, Вы писали:
vog>Кстати, Дима, а откуда знание таких тонкостей строения CleanupStack и вообще всего механизма исключений? vog>В доках я таких разьяснений не встречал. vog>Это от реверса, книжки умной или или, подкопив уе, ты стал Gold партнером?
Нет, Gold партнером я не стал. Все это от размышлений да от реверса. Ну и плюс опыт работы с другими платформами. Замечаешь много общего, что потом и выливается в четкое понимание механизма внутреннего строения.
vog>Я по первому чтению эту часть пропустил, а тут вчитался и стало мне подозрительно vog>В общем, отзывов нет, потому, что нет журнала, я в Питере вообще его не видел в продаже. Давай, пиши дальше, все очень интерестно, потом книгой оформишь, ИМНО стоит. Если не трудно, вышли новые главы, может, я подскажу, чего добавить именно с точки зрения такого середнячка, как я vog>Успехов!
vog>>В общем, отзывов нет, потому, что нет журнала, я в Питере вообще его не видел в продаже. Давай, пиши дальше, все очень интерестно, потом книгой оформишь, ИМНО стоит. Если не трудно, вышли новые главы, может, я подскажу, чего добавить именно с точки зрения такого середнячка, как я vog>>Успехов!
CX>Ок, будем стараться
Вот по Java2ME я лично видел только 2 книги российских авторов. Но JavaME — это подмножество "нормальной явы", по которой полно книг.
С другой стороны, по С++ книг еще больше .
Но, когда я год с небольшим начал мучать Симбиан, моих, в общем-то, нормальных знаний С++ оказалось не то, что бы недостаточно...
Скажем по другому, недостаточно было и есть доков, и это беда.
Так что, Дима, продолжай свое благородное дело
Кстати, я бы выложил еще на NewLC, уж там всяко народу больше пасется по этой теме. В переводе (только осенью) могу посодействовать.
Успехов.
ЗЫ: и не пиши, то что прямо есть в доках, типа, на какие буквы начинаются такие-то типы. Если человеку интерестно — сам легко найдет, ибо лежит на поверхности. Интересуют именно подробности реализаций... ну что накопал
Здравствуйте, vog, Вы писали:
vog>Вот по Java2ME я лично видел только 2 книги российских авторов. Но JavaME — это подмножество "нормальной явы", по которой полно книг. vog>С другой стороны, по С++ книг еще больше . vog>Но, когда я год с небольшим начал мучать Симбиан, моих, в общем-то, нормальных знаний С++ оказалось не то, что бы недостаточно... vog>Скажем по другому, недостаточно было и есть доков, и это беда. vog>Так что, Дима, продолжай свое благородное дело vog>Кстати, я бы выложил еще на NewLC, уж там всяко народу больше пасется по этой теме. В переводе (только осенью) могу посодействовать. vog>Успехов.
Я с Эриком уже списывался на эту тему, он не против. Но только у меня пока что руки не доходят до перевода...
vog>ЗЫ: и не пиши, то что прямо есть в доках, типа, на какие буквы начинаются такие-то типы. Если человеку интерестно — сам легко найдет, ибо лежит на поверхности. Интересуют именно подробности реализаций... ну что накопал
На самом деле хоть описание префиксов и есть в доках, помню по себе, что на начальной стадии изучения это мне мало чем помогло. То же самое со строками (дескрипторами). Очень долго въезжал, о чем вообще речь. Поэтому, собственно, эти разделы и были включены в статью. Хотя сейчас, конечно, окидывая ее критическим взглядом, вижу, что написал мало. Надо было больше вглубь вдаться. Ну да ничего, исправлюсь в дальнейшем.
vog>В общем, отзывов нет, потому, что нет журнала, я в Питере вообще его не видел в продаже.
вчера (29 июля) купил на Пушкинской, 2
В Доме Книге на Невском, к сожалению, журнал был без диска
CX>Я с Эриком уже списывался на эту тему, он не против. Но только у меня пока что руки не доходят до перевода...
vog>>ЗЫ: и не пиши, то что прямо есть в доках, типа, на какие буквы начинаются такие-то типы. Если человеку интерестно — сам легко найдет, ибо лежит на поверхности. Интересуют именно подробности реализаций... ну что накопал
CX>На самом деле хоть описание префиксов и есть в доках, помню по себе, что на начальной стадии изучения это мне мало чем помогло. То же самое со строками (дескрипторами). Очень долго въезжал, о чем вообще речь. Поэтому, собственно, эти разделы и были включены в статью. Хотя сейчас, конечно, окидывая ее критическим взглядом, вижу, что написал мало. Надо было больше вглубь вдаться. Ну да ничего, исправлюсь в дальнейшем
Э-э- Дима, со строками я провел вивисекторские эксперименты и нужное понял. Это не суть. Мы же не о рецептах засаолки огурцов, мы о том, как и откуда эти самые огурцы родятся в закрытой консервной банке. Дима, очень интересны глубинные процессы, инфы мало...
Здравствуйте, Бабошин Андрей, Вы писали:
БА>В Доме Книге на Невском, к сожалению, журнал был без диска
Как обычно, занырили и продают за баксы в подземных переходах
[реклама удалена модератором]
Re[2]: Программирование под Symbian OS: начало
От:
Аноним
Дата:
08.11.05 18:15
Оценка:
vog>А писать надоо том, чего нет в документации — что такое активные объекты, обсерверы и прочие вещи, сугубо специфичные для Symbian и почти не отраженные в документации. Например, про обсерверы вообще ничего нет, или ткни носом
Про active objects тоже есть неплохой pdf
"Symbian_OS_Active_Objects_And_The_Active_Scheduler_v1_0_en.pdf"
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
Ещё хотелось добавить что немного удобней использовать TRAPD вместо TRAP.
Также позволю заметить уж слишком жидко про дескрипторы, могу добавить маленькую мелочь, буква C в конце имени типа дескриптора означает что его содержимое поменять нельзя. Ну конечно, надо было б поведать людям про _LIT(), ну и для ленивых _L(), Иначе никокого HelloWorld не получится
Когда вспомнили про контейнеры, почему то забыли про главные рабочие лошадки RArray, RPointerArray, ведь именно их рекомендуется использовать а не CArrayXXX классы.
ДМ>Для этого все динамические объекты, которые кладутся в ДМ>CleanupStack, должны быть производными от класса CBase, имеющего в ДМ>своем составе виртуальный деструктор, а все объекты, создаваемые в ДМ>стеке, должны быть производными от RHandleBase (в нем определен ДМ>виртуальный метод Close() ).
Ерунда. Пихать в CleanupStack можно всё что реализует оператор приведения к TCleanupItem да и просто void* например для T типов. Из второй части выражения вобще следует что переменные целого типа, которые располагаются в стека, не имеют права на жизнь, глупость.
ДМ>Параметр ELeave в выражении new означает «сгенерировать исключение, ДМ>если не удалось создать объект».
Опять не совсем верно, это означает что будет генерироватся исключени, если не удалось выделить память под объект, посмотрите на реализацию этого оператора, она есть в хедере.
ДМ>M – классы-интерфейсы, которые содержат чисто виртуальные методы и ДМ>предназначены исключительно для наследования.
Хочу пояснить почему М, это от слова Mixing, так принято назвать наследование когда один или более базовых классов являются pure virtual
ДМ>CloseSTDLIB(), объявленную в sys/reent.h. В ином случае возможны ДМ>проблемы с периодическим падением приложения при выходе.
Не обязательно падения, а утечка ресурсов обеспечана, в тех случаях когда stdlib использовала подключения к серверам, как то FileServer или SocketServer и пр.
ИМХО. Такого рода статьи не нужны есть масса чётко излагающих документов (forum.nokia.com) и книг. Очень чётко описано в Symbian explained в том числе и как устроено, и как правильно пользоваться. Увы не почерпнул из вашей статьи ничего нового.
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
"Tint64 64-битное беззнаковое целое. Реализован как класс C++, т.к. ARM архитектура не поддерживает 64-битные вычисления "(c)
Что подразумевается под ARM архитектурой в данном контексте ?
Если Процессоры ARM, то какие именно ?
1) TInt64 — знаковый тип. И в Symbian 8.x он не является классом, а просто typedef для long long.
2) Для рассматриваемых версий Symbian неверно утверждение, что TInt16 и TUint16 читаются по маске, потому что эти версии ОС требуют ARMv4, а в этой версии архитектуры ARM есть быстрые интсрукции для доступа к 16-битным значениям в памяти. И сборка (хоть с GCC, хоть с ADS/RVDS) производится с учётом этого факта.
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
Резюме будет такое:
Рановато тебе еще статьи писать. Статья КРАЙНЕ неструктурирована. Галопом по европам.
такое ощущение, как будто сам не понял, что хотел написать. Эдак.. руки дернулись. Сел и начал писать чего-то там... что в голову приходило...
Сам-то вдумайся: статью назвал "Программирование под Symbian OS: начало". и буквально первым же предложением идет параграф про механизм исключений.
Гммм... Ты в самом деле считаешь, что начинающему для того чтобы начать программировать Symbian OS, кровь из носа необходимо в первом же параграфе узнать про положение дел с исключениями?
Далее, нить повествования, как я понимаю, идет так: "ну раз уж начал писать про фреймы и исключения, как тут не коснутсья локальных объектов..".
Далее, после изряднейшего куска кода идут положения о именовании.. да кому это интересно? думаешь мне реально хоть сколько-нибудь было бы интересно узнать о том как кем-то из какой-то блажи придумано именовать переменные? Это как-то относится к Symbian?
Читаем далее помпезный заголовок: "Важнейшие идиомы". "С++ и машинная архитектура" (о как!) и узнаем о предифиненных типах. Далее нам быстренько вывалили несколько строк про статические данные, и наконец мы читаем апофеоз: "Symbian OS разработана с учетом того, что она будет работать на read-only носителях".
— А нет ли ощущения, что эта строчка должна пойти все-таки ПЕРВОЙ в статье?
Моё резюме — оценка статьи 2 балла по шкале из 5.
Статья НИ НА ЙОТУ не оправдывает ни свое называние, ни аннотацию.
Мои тебе советы:
1. Составь план того о чем собрался рассказать.
2. Статью раздели на несколько частей. Выдели основной кусок про исключения и оформи в виде отдельной статьи: "Исключения в Symbian OS". Данную статью уничтожь, она не оправдывает своего предназначения.
3. начни с того, какой инструментарий понадобится, опиши ситуацию на рынке, устройства, и опиши саму Symbian OS
4. Не замахивайся на "глобальные задачи" вроде написать "Как начать программировать под Symbian OS". Это очень нелегкое дело, лучше пиши мелкие локальные суб-статейки.
5. Не вставляй в статью куски кода длиннее 5-10 строк. Все равно никому этот код неинтересен.
С категоричностью предыдущего оратора не согласен. Нельзя научиться писать статьи, не написав и не опубликовав ни одной. Дмитрий пытается. И на мой, крестьянский, взгляд первый блин получился совсем не комом.
Но с некоторыми моментами солидарен.
AR>1. Составь план того о чем собрался рассказать.
+
В частности, мне бы показалось более логичным дать сначала информацию о том, что на SymbianOS есть из стандартных библиотек, затем перейти к соглашению об именовании, затем уже к исключениям, раз уж они так сильно сказываются (даже на именовании функций ).
AR>2. Статью раздели на несколько частей. Выдели основной кусок про исключения и оформи в виде отдельной статьи: "Исключения в Symbian OS".
Лично мне показалось, что приведение собственной реализации механизма исключений лежит совершенно не в рамках "Программирования под Symbian OS", тем более начала.
AR>3. начни с того, какой инструментарий понадобится, опиши ситуацию на рынке, устройства, и опиши саму Symbian OS
+
AR>5. Не вставляй в статью куски кода длиннее 5-10 строк. Все равно никому этот код неинтересен.
—
Не правда! Мне интересно. Но, жалко, что большой объем кода в этой статье к собственно Symbian OS не имел отношения.
AR>Удачи!
+
Удачи! И с почином!
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Большая просьба — побольше конструктива, поменьше лирики. И категоричности тоже поменьше, пожалуйста.
Теперь по делу.
Ты уж извини, но с советами твоими я по большей части не согласен. И вот причины:
AR>Мои тебе советы: AR>1. Составь план того о чем собрался рассказать.
+1
План был составлен, но, как сейчас вижу, совсем не идеально. Учту ошибки.
AR>2. Статью раздели на несколько частей. Выдели основной кусок про исключения и оформи в виде отдельной статьи: "Исключения в Symbian OS". Данную статью уничтожь, она не оправдывает своего предназначения.
-1
Многие, видимо, неверно поняли предназначение этой статьи. Она вовсе не рассчитана на начинающих вообще. Она рассчитана на начинающих в Symbian. Да, она не идеальна, но я знаю многих людей, кому она помогла. Так что извини, но уничтожать я ее не буду. Оставлю потомкам.
AR>3. начни с того, какой инструментарий понадобится, опиши ситуацию на рынке, устройства, и опиши саму Symbian OS
+1
AR>4. Не замахивайся на "глобальные задачи" вроде написать "Как начать программировать под Symbian OS". Это очень нелегкое дело, лучше пиши мелкие локальные суб-статейки.
-1
Я бы этот совет принял бы с большей степенью доверия, если бы его мне дал человек, мною уважаемый.
AR>5. Не вставляй в статью куски кода длиннее 5-10 строк. Все равно никому этот код неинтересен.
-1
Абсолютно не согласен. Факт в том, что многим этот код интересен.
А вот и мой тебе совет — побольше уважения к собеседнику и побольше внимательности в выборе формулировок. А не то так и останешься навсегда, хм... "предыдущим оратором".
Во-первых, извиняюсь за задержку с ответом — последние дни очень занят, RSDN почитать удается лишь изредка.
Во-вторых, хочу поблагодарить всех высказавшихся за конструктив. Честно говоря, я и сам сейчас от этой статьи не в восторге и многое переделал бы, но на тот момент она мне показалась правильной.
Во-первых, из ROM грузятся в RAM только те DLL, что находятся на карте памяти. Те же DLL, что лежат в основной памяти, никуда не грузятся — они просто отображаются в адресное пространство процесса. Но тем не менее, это действительно недочет статьи. Дело в том, что причина эта взята мною из Series 60 SDK. Конечно, нужно было все-таки покопать поглубже этот вопрос.
А>Ерунда. Пихать в CleanupStack можно всё что реализует оператор приведения к TCleanupItem да и просто void* например для T типов. Из второй части выражения вобще следует что переменные целого типа, которые располагаются в стека, не имеют права на жизнь, глупость.
Если Вы почитаете статью чуть дальше, вы найдете упоминание некого прокси-объекта, инкапсулирующего в себе объект и стратегию его удаления. Далее написано, что таким классом является TCLeanupItem. Так что претензия не совсем в кассу. Хотя, согласен, формулировка не совсем точна.
To Jakop:
J>"Tint64 64-битное беззнаковое целое. Реализован как класс C++, т.к. ARM архитектура не поддерживает 64-битные вычисления "(c)
J>Что подразумевается под ARM архитектурой в данном контексте ? J>Если Процессоры ARM, то какие именно ?
Подразумевалась, собственно, 32-bit ARM Instruction Set Architecture. Мой недочет, надо было указать в статье.
To Аноним:
А>1) TInt64 — знаковый тип. И в Symbian 8.x он не является классом, а просто typedef для long long.
Только что посмотрел в SDK для Series 60 2.0 Feature Pack 2 (Symbian 8.0a). TInt64 — класс. Может, в версиях выше это typedef, но сильно сомневаюсь. Очень уж много кода завязано на определенный синтаксис его конструктора и вызов методов. Приду домой, посмотрю.
А>2) Для рассматриваемых версий Symbian неверно утверждение, что TInt16 и TUint16 читаются по маске, потому что эти версии ОС требуют ARMv4, а в этой версии архитектуры ARM есть быстрые интсрукции для доступа к 16-битным значениям в памяти. И сборка (хоть с GCC, хоть с ADS/RVDS) производится с учётом этого факта.
Здесь я, видимо, не совсем удачно выразился. Да, конечно есть ассемблерные инструкции для чтения/записи 16-разрядных значений (равно как и 8-разрядных). Когда же я говорил о чтении/записи "по маске", я имел в виду тот факт, что на уровне процессора операция производится с 32-разрядными значениями, как того требует ARM 32-bit архитектура. А для того, чтобы пользователь работал с 8- или 16-разрядными значениями, применяется маска. Но для программиста это происходит прозрачно — можно использовать предназначенные для этого инструкции не задумываясь о том, как это происходит на аппаратном уровне.
Здравствуйте, eao197, Вы писали:
E>С категоричностью предыдущего оратора не согласен. Нельзя научиться писать статьи, не написав и не опубликовав ни одной. Дмитрий пытается. И на мой, крестьянский, взгляд первый блин получился совсем не комом.
Евгений, огромное спасибо за поддержку.
E>Но с некоторыми моментами солидарен.
AR>>1. Составь план того о чем собрался рассказать.
E>+
E>В частности, мне бы показалось более логичным дать сначала информацию о том, что на SymbianOS есть из стандартных библиотек, затем перейти к соглашению об именовании, затем уже к исключениям, раз уж они так сильно сказываются (даже на именовании функций ).
Ок, учту.
AR>>2. Статью раздели на несколько частей. Выдели основной кусок про исключения и оформи в виде отдельной статьи: "Исключения в Symbian OS".
E>Лично мне показалось, что приведение собственной реализации механизма исключений лежит совершенно не в рамках "Программирования под Symbian OS", тем более начала.
Видимо, название у статьи действительно не совсем удачное. Многие ее воспринимают как пособие для начинающих программистов. Но на самом деле я ее предназначал уже оформившимся программистам, которые начинают знакомство с Symbian. И в этом контексте разбор механизма исключений — самое первое, что нужно для ощущения почвы под ногами.
AR>>5. Не вставляй в статью куски кода длиннее 5-10 строк. Все равно никому этот код неинтересен.
E>- E>Не правда! Мне интересно. Но, жалко, что большой объем кода в этой статье к собственно Symbian OS не имел отношения.
В следующей будет намного больше Symbian specific.
E>Удачи! И с почином!
Спасибо. Будете у нас на Колыме (то бишь в Санкт-Петербурге) — заходите.
Здравствуйте, CrystaX, Вы писали:
E>>С категоричностью предыдущего оратора не согласен. Нельзя научиться писать статьи, не написав и не опубликовав ни одной. Дмитрий пытается. И на мой, крестьянский, взгляд первый блин получился совсем не комом.
CX>Евгений, огромное спасибо за поддержку.
Да завсегда.
C++ник С++нику глаз не выклюет.
Так же, как начинающий автор статей на RSDN такому же начинающему автору
CX>Видимо, название у статьи действительно не совсем удачное. Многие ее воспринимают как пособие для начинающих программистов. Но на самом деле я ее предназначал уже оформившимся программистам, которые начинают знакомство с Symbian. И в этом контексте разбор механизма исключений — самое первое, что нужно для ощущения почвы под ногами.
Нет, как раз я не воспринял ее как "пособие для начинающих", а как раз как начало ознакомления серьезной аудитории с серьезной, но относительно малоизвестной платформой. Мне как раз не очень понравилось, что обучение пошло сразу по "бразильской системе"
Лично мне было бы более комфортно, чтобы сначала сказали, что исключения в Symbian С++ есть, почти, но другие. Показали бы пример. Рассказали, что из этого вытекает (как раз _L и _LC функции, класс CleanupStack, классы CBase и RHandleBase и пр.). И на этом пока остановились, большей глубины при первом знакомстве пока не нужно. Так, более-менее поверхносно, затронули бы пару тем -- обозначили базис. Затем сказали бы: "Это все цветочки! Набирайте воздуха побольше, теперь самое интересное начинается..." и повторный проход, но уже с гораздо более глубоким погружением, с выявлением подводных камней и темных закутков. А затем можно делать и третий заход, и четвертый. Такое итеративное обучение (ознакомление), так сказать. На какой-то из последующих итераций твой код по имитации Symbian-овских исключений будет как раз в тему.
В таком подходе я вижу еще и тот плюс, что после первых, вводных статей, читатели тебе сами начнут подсказывать, чему уделить больше внимания.
E>>Удачи! И с почином!
CX>Спасибо. Будете у нас на Колыме (то бишь в Санкт-Петербурге) — заходите.
Спасибо, но я вообще-то по натуре домосед, да и природные габариты к путешествиям не располагают
Но у меня встречное предложение. Если сочтешь мое участие возможным и мнение заслуживающим внимания, то присылай черновой вариант следующей статьи мне на рецензию. Может чего путного и подскажу. Я тут еще одну статью для RSDN подготовил, так предварительно ее с несколькими RSDN-шиками обсудил, огромное им спасибо за участие . От их рецензий, имхо, статья только выиграла. Так что, welcome! Чем смогу -- помогу.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Нет, как раз я не воспринял ее как "пособие для начинающих", а как раз как начало ознакомления серьезной аудитории с серьезной, но относительно малоизвестной платформой. Мне как раз не очень понравилось, что обучение пошло сразу по "бразильской системе" E>Лично мне было бы более комфортно, чтобы сначала сказали, что исключения в Symbian С++ есть, почти, но другие. Показали бы пример. Рассказали, что из этого вытекает (как раз _L и _LC функции, класс CleanupStack, классы CBase и RHandleBase и пр.). И на этом пока остановились, большей глубины при первом знакомстве пока не нужно. Так, более-менее поверхносно, затронули бы пару тем -- обозначили базис. Затем сказали бы: "Это все цветочки! Набирайте воздуха побольше, теперь самое интересное начинается..." и повторный проход, но уже с гораздо более глубоким погружением, с выявлением подводных камней и темных закутков. А затем можно делать и третий заход, и четвертый. Такое итеративное обучение (ознакомление), так сказать. На какой-то из последующих итераций твой код по имитации Symbian-овских исключений будет как раз в тему.
В следующей статье, собственно, так и будет. Я и сам сейчас вижу, что статья вышла довольно сумбурной, но так вышло из-за неполного понимания ее направленности. Со второй будет, надеюсь, проще.
E>Спасибо, но я вообще-то по натуре домосед, да и природные габариты к путешествиям не располагают
Габариты и у меня немаленькие, но путешествиям это не должно мешать.
E>Но у меня встречное предложение. Если сочтешь мое участие возможным и мнение заслуживающим внимания, то присылай черновой вариант следующей статьи мне на рецензию. Может чего путного и подскажу. Я тут еще одну статью для RSDN подготовил, так предварительно ее с несколькими RSDN-шиками обсудил, огромное им спасибо за участие . От их рецензий, имхо, статья только выиграла. Так что, welcome! Чем смогу -- помогу.
CX>Видимо, название у статьи действительно не совсем удачное. Многие ее воспринимают как пособие для начинающих программистов. Но на самом деле я ее предназначал уже оформившимся программистам, которые начинают знакомство с Symbian. И в этом контексте разбор механизма исключений — самое первое, что нужно для ощущения почвы под ногами.
Если ты считаешь, что "для ощущение почвы под ногами", нужно первым же делом бросаться на рассмотрение исключений и тут же сходу предлагать свои реализации — то я повторяю,
статья написана крайне неструктурированно. Если подойти к моей критике с умом, то становится понятно что A.R. прав — стоит переименовать статью, исключить из нее лишнее, и получится блестящий, полезный материал о исключениях в Symbian OS.
А если оставить все как есть — получится бредовая статья, в которой автор настолько не представляет чем он занимается, что ДАЖЕ ЕЕ НАЗВАНИЕ НЕ СООТВЕТСВУЕТ СОДЕРЖИМОМУ. (С чем он сам соглашается). Я уж не говорю о последовательности подачи материала. Здесь не удастся завуалировать ситуацию выражениями "дескать, я адресовал материал advanced программистам".. Ничего подобного, попытки пересказать стандартную документацию вперемежку с объяснениями naming conventions (где-то в конце..) как раз выдают попытку адресовать материал начинающему (уж согласимся, наконец, что Advanced программистам такие детали на самом же первом шагу ну совершенно неинтересны).
Только я опять же повторяю. Все будет хорошо, если материал структуризовать, разделить. В итоге получится хорошая статья по исключениям и... зачатки будущего материала как начать программировать Symbian. А сейчас мы имеем совершенно бездарнейшую статью, в которой смешалось все — люди, кони.. Я за то, чтобы таких статей не было, тем более, под заголовками наподобие "начала программирования бла-бла-бла".
"Начала программирования" чего-либо должен писать опытный педагог, или человек с минимальным опытом написания материалов — меня волнует только это.
И не надо столь болезненно воспринимать критику и начинать выкидывать в эфир фразы наподобие "уважаемых людей". Нужно уметь абстрагироваться и засунуть свои эмоции подальше — никто не хочет причинить личную обиду. Это просто критика.
И последнее. Советую воспользоваться словарем и хорошенько выяснить значение термина "Идиома", "идиоматическое выражение". (В частности, выяснить КОНТЕКСТ в котором применяется термин "идиома" — а именно, лексический контекст ЯЗЫКА (как человеческой речи, так и языка программирования), но никак не операционной системы, и уж тем более, в кач-ве идиом никак нельзя подавать типы, строки и дескрипторы).
Здравствуйте, A.R., Вы писали:
AR>Если ты считаешь, что "для ощущение почвы под ногами", нужно первым же делом бросаться на рассмотрение исключений и тут же сходу предлагать свои реализации
Да, мне было интересно именно это, когда я начинал изучать Symbian. Я считал и считаю, что это — один из основных барьеров, который нужно преодолеть программисту для начала нормальной работы в Symbian. И чем раньше он будет преодолен, тем лучше.
AR> — то я повторяю, AR>статья написана крайне неструктурированно.
С этим в принципе согласен, и я об этом уже говорил чуть выше.
AR> Если подойти к моей критике с умом, то становится понятно что A.R. прав — стоит переименовать статью, исключить из нее лишнее, и получится блестящий, полезный материал о исключениях в Symbian OS.
Статья — она такая, какая она есть. Изменить ее нельзя. Можно написать новую, но эту изменить — нельзя.
AR>А если оставить все как есть — получится бредовая статья, в которой автор настолько не представляет чем он занимается, что ДАЖЕ ЕЕ НАЗВАНИЕ НЕ СООТВЕТСВУЕТ СОДЕРЖИМОМУ. (С чем он сам соглашается). Я уж не говорю о последовательности подачи материала. Здесь не удастся завуалировать ситуацию выражениями "дескать, я адресовал материал advanced программистам".. Ничего подобного, попытки пересказать стандартную документацию вперемежку с объяснениями naming conventions (где-то в конце..) как раз выдают попытку адресовать материал начинающему (уж согласимся, наконец, что Advanced программистам такие детали на самом же первом шагу ну совершенно неинтересны). AR>Только я опять же повторяю. Все будет хорошо, если материал структуризовать, разделить. В итоге получится хорошая статья по исключениям и... зачатки будущего материала как начать программировать Symbian. А сейчас мы имеем совершенно бездарнейшую статью, в которой смешалось все — люди, кони.. Я за то, чтобы таких статей не было, тем более, под заголовками наподобие "начала программирования бла-бла-бла". AR>"Начала программирования" чего-либо должен писать опытный педагог, или человек с минимальным опытом написания материалов — меня волнует только это.
В экую степь-то ударился... Сразу виден мастер печатного слова. Преклоняюсь перед твоим знанием предмета.
AR>И не надо столь болезненно воспринимать критику и начинать выкидывать в эфир фразы наподобие "уважаемых людей". Нужно уметь абстрагироваться и засунуть свои эмоции подальше — никто не хочет причинить личную обиду. Это просто критика.
Да-да. Я заметил.
AR>И последнее. Советую воспользоваться словарем и хорошенько выяснить значение термина "Идиома", "идиоматическое выражение". (В частности, выяснить КОНТЕКСТ в котором применяется термин "идиома" — а именно, лексический контекст ЯЗЫКА (как человеческой речи, так и языка программирования), но никак не операционной системы, и уж тем более, в кач-ве идиом никак нельзя подавать типы, строки и дескрипторы).
А я в свою очередь посоветую тебе пить зеленый чай по утрам — здорово нервы успокаивает. Опять же — агрессию как рукой снимает.
Если напрячься и выделить ту небольшую долю конструктива, что присутствует в твоих сообщениях, можно увидеть, что ты в чем-то прав. Но я отказываю тебе, и именно тебе, в праве критики. Причины просты. a priori я, ожидая критики от читателей статьи, настроен воспринимать таковую положительно — мне же лучше. Но подобное положительное восприятие относится только к критике, а не к наездам. Твой же поток эмоций — это в основном наезды и чуть-чуть конструктивной критики. Ок, быть может даже в этом случае я прислушался бы к ним, подавив естественную реакцию дать отпор, — но только если бы человек, от которого я подобное услышал, был бы мною уважаем. Я ведь не зря об этом сказал в предыдущем сообщении. По каким причинам я могу уважать человека? Рассмотрим их:
1. Я знаю этого человека лично. Не та ситуация. Это форум, здесь мы все более-менее анонимны.
2. Я знаком с трудами этого человека на ту же или смежную тему. Нет, с твоими трудами я не знаком, увы.
3. Я знаю этого человека по его высказываниям в форумах. Да, я немного тебя знаю. Особенно по топикам О вреде рефакторинга, повышенной абстракции и ООП
Так вот, когда появляется такой человек и с места в карьер начинает выливать (другого слова подобрать не могу) на меня свои эмоции (отрицательные, замечу, эмоции!), я к такому человеку отношусь как к пустозвону.
Поэтому попытайся все же уважительно относится к собеседнику. Критикуя — уважай. И тогда я только рад буду общению с тобой. Если же, вопреки здравому смыслу, конструктива в этой беседе не появится, я буду вынужден прекратить разговор в одностороннем порядке.
Я хотел узнать про ARM/не ARM потому, что я тоже работаю с ARM-ом и там целый 64-битный тип — это просто
встроенный тип. Уж не знаю поддерживает ли ARM этот тип непосредственно(думаю что нет), но обьяснение ,
что мол "архитектура не поддерживает поэтому сделано как класс" я не совсем понимаю . Интел тоже не поддерживает __in64
непосредственно — это головняк компилятора.
Здравствуйте, Jakop, Вы писали:
J>Я хотел узнать про ARM/не ARM потому, что я тоже работаю с ARM-ом и там целый 64-битный тип — это просто J>встроенный тип. Уж не знаю поддерживает ли ARM этот тип непосредственно(думаю что нет), но обьяснение , J>что мол "архитектура не поддерживает поэтому сделано как класс" я не совсем понимаю . Интел тоже не поддерживает __in64 J>непосредственно — это головняк компилятора.
Согласен. Но сделано так, как сделано. Сделать 64-битный тип C++ классом — это один из возможных путей решения проблемы, не нагружая компилятор. Там с компиляторами и так до недавних пор не все гладко было. Кроме того, разработчики Symbian не ставили перед собой задачу обеспечить возможность работы с TInt64 в других языках (C, например). В Symbian все API — это C++ классы. В этом смысле это уникальная система — во всех остальных известных мне операционных системах используется старый добрый C API.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[3]: Программирование под Symbian OS: начало
От:
Аноним
Дата:
11.11.05 09:40
Оценка:
CX>Только что посмотрел в SDK для Series 60 2.0 Feature Pack 2 (Symbian 8.0a). TInt64 — класс. Может, в версиях выше это typedef, но сильно сомневаюсь. Очень уж много кода завязано на определенный синтаксис его конструктора и вызов методов. Приду домой, посмотрю.
Хорошо, в 8.0a это класс. Однако, читаем здесь: "TInt64. Releases of Symbian OS prior to v8.0 had no built-in ARM support for 64-bit arithmetic, so the TInt64 class implemented a 64-bit integer as two 32-bit values. On Symbian OS v8.0, TInt64and TUInt64 are typedef’d to long long and use the available native 64-bit support."
CX>Здесь я, видимо, не совсем удачно выразился. Да, конечно есть ассемблерные инструкции для чтения/записи 16-разрядных значений (равно как и 8-разрядных). Когда же я говорил о чтении/записи "по маске", я имел в виду тот факт, что на уровне процессора операция производится с 32-разрядными значениями, как того требует ARM 32-bit архитектура. А для того, чтобы пользователь работал с 8- или 16-разрядными значениями, применяется маска.
В вашем тексте явно сказано: "16-битные целочисленные значения. Представлены 16-битным машинным «полусловом». Обязаны быть выровненными по 2-байтной границе. Доступ к ним организуется чтением 32-битного слова «по маске»."
То есть речь идёт именно о доступе к памяти (потому что говорится о выравнивании), а не о каких-то там "операциях на уровне процессора".
Удивляет, как статья с таким количеством неточностей и просто неверных фактов могли опубликовать в RSDN Magazine? Про структуру не буду говорить, A.R. хорошо написал.
А реакция автора на критику вида "покажите паспорт, прежде чем меня критиковать", плюс игнорирование справедливых замечаний и лепет про "неудачно выразился", заставляет усомниться в зрелости его ума.
Здравствуйте, <Аноним>, Вы писали:
CX>>Только что посмотрел в SDK для Series 60 2.0 Feature Pack 2 (Symbian 8.0a). TInt64 — класс. Может, в версиях выше это typedef, но сильно сомневаюсь. Очень уж много кода завязано на определенный синтаксис его конструктора и вызов методов. Приду домой, посмотрю.
А>Хорошо, в 8.0a это класс. Однако, читаем здесь: "TInt64. Releases of Symbian OS prior to v8.0 had no built-in ARM support for 64-bit arithmetic, so the TInt64 class implemented a 64-bit integer as two 32-bit values. On Symbian OS v8.0, TInt64and TUInt64 are typedef’d to long long and use the available native 64-bit support."
Тем не менее, пока что подтверждений этому я не нашел. Сегодня еще раз специально посмотрю как с этим дело в Symbian 8.1
CX>>Здесь я, видимо, не совсем удачно выразился. Да, конечно есть ассемблерные инструкции для чтения/записи 16-разрядных значений (равно как и 8-разрядных). Когда же я говорил о чтении/записи "по маске", я имел в виду тот факт, что на уровне процессора операция производится с 32-разрядными значениями, как того требует ARM 32-bit архитектура. А для того, чтобы пользователь работал с 8- или 16-разрядными значениями, применяется маска.
А>В вашем тексте явно сказано: "16-битные целочисленные значения. Представлены 16-битным машинным «полусловом». Обязаны быть выровненными по 2-байтной границе. Доступ к ним организуется чтением 32-битного слова «по маске»."
А>То есть речь идёт именно о доступе к памяти (потому что говорится о выравнивании), а не о каких-то там "операциях на уровне процессора".
А доступ к памяти это не "операция на уровне процессора"?
А>Удивляет, как статья с таким количеством неточностей и просто неверных фактов могли опубликовать в RSDN Magazine? Про структуру не буду говорить, A.R. хорошо написал.
А>А реакция автора на критику вида "покажите паспорт, прежде чем меня критиковать", плюс игнорирование справедливых замечаний и лепет про "неудачно выразился", заставляет усомниться в зрелости его ума.
ДМ>Авторы: ДМ> Дмитрий Москальчук
ДМ>Аннотация: ДМ>В статье затронуты вопросы основных отличий процесса программирования под Symbian от программирования под такие операционные системы, как MS Windows или Linux. ДМ>Требуется знание С++
Здравствуйте Дмитрий
Я прочитал статью и ее обсуждение полностью
Скажу Вам, что статья мне очень понравилась
правда чтобы понять все мне пришлось прочитать ее , немного попрограммировать в Simbian и прочитать ее снова
Полностью согласен с Вами что исключення и С++ апи очень важны для Windows программиста который переходит на Simbian
Очень хотылось чтобы Вы не останавливались на достигнутом, и продолжили свой цикл статей
Люди с неконструктивной критикой умеют ломать а не строить сами статей написали мало или не написали ввобще, с завышеной самооценкой
Для меня симбиан действительно новая платформа, и статья мне очень понравилась спасибо!
PS:
Simbian 9.1, CarbideC++1.1, Series S60 SP3 FP1
Здравствуйте, SashaDanchuk, Вы писали:
SD>Очень хотылось чтобы Вы не останавливались на достигнутом, и продолжили свой цикл статей
Поддерживаю. Описать AO, IPC, Etel API (CTelephony) и сертификацию/подписывание/тестирование на Symbian 9.x было бы очень хорошо.
SD>PS: SD>Simbian 9.1, CarbideC++1.1, Series S60 SP3 FP1
sYmbian, please
Re: Программирование под Symbian OS: начало
От:
Аноним
Дата:
23.01.08 00:25
Оценка:
Здравствуйте, Дмитрий Москальчук, Вы писали:
ДМ> T – классы-типы с тривиальными конструкторами и деструкторами. Некоторый аналог POD-типов.
Это не совсем верно. Согласно соглашению об именованиях деструктор у Т-классов не должен быть объявлен вообще т.к. вслучае исключения он вызван не будет.