<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6979112859134786186</id><updated>2012-01-26T18:54:03.173+04:00</updated><category term='MVVM'/><category term='javascript'/><category term='vertical progress bar'/><category term='progressbar'/><category term='ping'/><category term='quick start'/><category term='eval'/><category term='option'/><category term='selenium'/><category term='layer-list'/><category term='маюсь дурью'/><category term='c#'/><category term='base64'/><category term='PackageManager'/><category term='ping pong'/><category term='Pico'/><category term='NDK'/><category term='mobile processing'/><category term='.net'/><category term='xhtml'/><category term='wml'/><category term='custom component'/><category term='quick-and-dirty'/><category term='DragableSpace'/><category term='Gallery'/><category term='linux'/><category term='чпу'/><category term='Intent'/><category term='select'/><category term='java'/><category term='php'/><category term='text-to-speech'/><category term='tutorial'/><category term='log4php'/><category term='ffmpeg'/><category term='xslt'/><category term='копипаста'/><category term='App.config'/><category term='life'/><category term='squid'/><category term='Loquendo'/><category term='android'/><category term='j2me'/><category term='styleable'/><category term='AdapterView'/><category term='eyes-free'/><category term='html'/><category term='drawable'/><category term='adapter'/><category term='log4net'/><category term='asp.net'/><category term='SimpleAdapter'/><category term='selector'/><category term='fling'/><category term='codedom'/><category term='testing'/><category term='SVOX'/><category term='tree'/><category term='pde'/><category term='WPF'/><category term='логгирование'/><category term='chooser'/><category term='shape'/><category term='prototype'/><category term='TextToSpeechBeta'/><category term='игра'/><title type='text'>Somethings</title><subtitle type='html'>problems and solutions</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-664920097431488852</id><published>2011-10-01T21:28:00.001+04:00</published><updated>2011-10-01T21:30:45.516+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PackageManager'/><category scheme='http://www.blogger.com/atom/ns#' term='Intent'/><category scheme='http://www.blogger.com/atom/ns#' term='chooser'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Реализация собственного AppChooser-а</title><summary type='text'>В прошлой статье шла речь о работе с PackageManager. Вдогонку к ней расскажу я, как можно реализовать chooser приложений

Допустим, нам нужно выполнить действие с помощью внешней программы. К примеру, открыть страницу в браузере. Для этого мы пишем такой простой код:    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("http://www.google.com"));
    startActivity(intent</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/664920097431488852/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=664920097431488852&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/664920097431488852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/664920097431488852'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/10/appchooser.html' title='Реализация собственного AppChooser-а'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3587234337057152321</id><published>2011-10-01T21:10:00.001+04:00</published><updated>2011-10-01T21:13:13.025+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PackageManager'/><category scheme='http://www.blogger.com/atom/ns#' term='копипаста'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Работа с пакетами в Android</title><summary type='text'>Мне время от времени приходится решать задачи, связанные с работой с пакетами в Android. В этой статье я приведу несколько сниппетов для решения этих задач.

AndroidManifestВ любом приложении под Android есть файл AndroidManifect.xml. В нём публикуется вся необходимая системе информация о приложении и его компонентах. Кроме того, при необходимости можно обратиться к системе и получить эти данные.</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3587234337057152321/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3587234337057152321&amp;isPopup=true' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3587234337057152321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3587234337057152321'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/10/android.html' title='Работа с пакетами в Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-629454252334696548</id><published>2011-07-23T17:59:00.002+04:00</published><updated>2011-07-23T18:03:17.716+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pico'/><category scheme='http://www.blogger.com/atom/ns#' term='Loquendo'/><category scheme='http://www.blogger.com/atom/ns#' term='SVOX'/><category scheme='http://www.blogger.com/atom/ns#' term='text-to-speech'/><category scheme='http://www.blogger.com/atom/ns#' term='TextToSpeechBeta'/><category scheme='http://www.blogger.com/atom/ns#' term='eyes-free'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Синтез речи в Android-приложении</title><summary type='text'>Не так давно пришлось прикручивать к нашему приложению озвучку с помощью Text-to-Speech (TTS). Об этом-то я и хочу сегодня рассказать.

Quick StartTTS можно использовать двумя способами. Во-первых, можно завязываться на конкретный движок, покупать библиотеку и работать через неё. Про этот вариант ничего не могу сказать, знаю только теоретически. Второй, общеизвестный вариант — использовать </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/629454252334696548/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=629454252334696548&amp;isPopup=true' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/629454252334696548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/629454252334696548'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/07/android.html' title='Синтез речи в Android-приложении'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5116638881625960882</id><published>2011-05-03T23:01:00.004+04:00</published><updated>2011-05-03T23:27:48.216+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fling'/><category scheme='http://www.blogger.com/atom/ns#' term='DragableSpace'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='Gallery'/><title type='text'>Чем заменить Gallery</title><summary type='text'>Каждый раз, когда мне приходится использовать компонент Gallery, я поражаюсь его бестолковости. Кое с чем мириться просто невозможно:

Реализация листанияЖест fling пролистывает сразу кучу элементов, а чаще хочется, чтобы происходил переход на один элемент (как в андроидовском home screen). Конечно, можно унаследоваться от галереи и добиться нужного поведения с помощью вот такой перегрузки </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5116638881625960882/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5116638881625960882&amp;isPopup=true' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5116638881625960882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5116638881625960882'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/05/gallery.html' title='Чем заменить Gallery'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-6545525524730934581</id><published>2011-03-13T18:26:00.001+03:00</published><updated>2011-03-13T18:29:24.209+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='progressbar'/><category scheme='http://www.blogger.com/atom/ns#' term='drawable'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Стилизация бесконечного ProgressBar</title><summary type='text'>Хотела написать про эту фичу в статье про XML drawables, но как-то не вместилось. Так что пусть будет аддоном.Например, хочется нам, чтобы в прогрессе крутилась не стандартная крутилка, а какая-нибудь такая:Добавляем картинку в drawables-dpi, называем custom_spinner_image.png. И создаем xml-ресурс с таким содержанием:spinner_png.xml&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;animated-rotate xmlns:</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/6545525524730934581/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=6545525524730934581&amp;isPopup=true' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6545525524730934581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6545525524730934581'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/03/progressbar.html' title='Стилизация бесконечного ProgressBar'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5604899251695147184</id><published>2011-03-13T11:38:00.003+03:00</published><updated>2011-03-13T11:49:34.948+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selector'/><category scheme='http://www.blogger.com/atom/ns#' term='drawable'/><category scheme='http://www.blogger.com/atom/ns#' term='layer-list'/><category scheme='http://www.blogger.com/atom/ns#' term='shape'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Android XML Drawables</title><summary type='text'>В Android довольно продуманная система организации ресурсов. И особого внимания заслуживают ресурсы-изображения.О самих картинках сказать можно мало что. Основная фича тут такая: можно адаптировать картинки для разных разрешений и размеров экранов и складывать в специализированные папки. Для различных разрешений экрана используются drawable-hdpi, drawable-mdpi и пр.. Аналогичное деление для </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5604899251695147184/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5604899251695147184&amp;isPopup=true' title='Комментарии: 12'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5604899251695147184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5604899251695147184'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2011/03/android-xml-drawables.html' title='Android XML Drawables'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5691291815495145653</id><published>2010-12-15T09:44:00.004+03:00</published><updated>2010-12-15T09:55:37.952+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom component'/><category scheme='http://www.blogger.com/atom/ns#' term='styleable'/><category scheme='http://www.blogger.com/atom/ns#' term='vertical progress bar'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Создание атрибутов разметки для собственных компонентов в Android</title><summary type='text'>Относительно недавно мы рассматривали способ, как писать собственые компоненты на примере VerticalProgressBar. Однако была в той реализации некоторая некрасивость: свойства компонента (такие как progress и max) можно было инициализировать только в коде: mProgressBar = (VerticalProgressBar)findViewById(R.id.progress);
mProgressBar.setMax(100);
mProgressBar.setProgress(0);
А было бы лучше </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5691291815495145653/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5691291815495145653&amp;isPopup=true' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5691291815495145653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5691291815495145653'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/12/android.html' title='Создание атрибутов разметки для собственных компонентов в Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_j6rWiCD_MnA/TQhkOlIDDeI/AAAAAAAAB88/YhV5_9vCiZk/s72-c/customized_progress.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-1284939281513135953</id><published>2010-09-19T21:41:00.002+04:00</published><updated>2011-03-04T08:13:51.946+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='NDK'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Собираем ffmpeg для Android</title><summary type='text'>Недавно возникла задача по генерации видео в Android. Стандартных средств для этого в SDK нет, так что пришлось искать сторонюю библиотеку. В конечном счете пришлось использовать ffmpeg.

ffmpeg — это, в первую очередь, очень удобная консольная утилита для работы с видео, и только потом библиотека, которую можно использовать в своих проектах. Соответственно, и информации по консольной утилите в </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/1284939281513135953/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=1284939281513135953&amp;isPopup=true' title='Комментарии: 14'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1284939281513135953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1284939281513135953'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/09/ffmpeg-android.html' title='Собираем ffmpeg для Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_j6rWiCD_MnA/TJZHF5D55oI/AAAAAAAABa0/okuluAXvl3c/s72-c/project_structure.png' height='72' width='72'/><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-6677025649903878561</id><published>2010-09-18T18:27:00.000+04:00</published><updated>2010-09-18T18:27:49.163+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom component'/><category scheme='http://www.blogger.com/atom/ns#' term='vertical progress bar'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Вертикальный ProgressBar в Android</title><summary type='text'>Возникла недавно необходимость в оном. Стандартного не оказалось, пришлось писать свой.


Собственные контролы в андроиде бывают нескольких видов:
Расширение существующего контрола. Например, при написании собственного ToggleButton имеет смысл наследоваться от Button.
Составные компоненты. Например, контрол NumberPicker можно представить, как комбинацию двух кнопок (+ и −) и TextView, в котором </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/6677025649903878561/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=6677025649903878561&amp;isPopup=true' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6677025649903878561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6677025649903878561'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/09/progressbar-android.html' title='Вертикальный ProgressBar в Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_j6rWiCD_MnA/TJTLm2rQL0I/AAAAAAAABak/CGozEUuujvg/s72-c/example.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-7453388847123040869</id><published>2010-07-05T16:39:00.001+04:00</published><updated>2010-07-05T16:55:14.466+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AdapterView'/><category scheme='http://www.blogger.com/atom/ns#' term='adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='SimpleAdapter'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Адаптеры в Android</title><summary type='text'>Давно я не занималась андроидом, но теперь, в связи с обретением девайса, намерена возобновить свои изыскания.
Нынешняя статья будет посвящена такой важной теме, как адаптеры. Ведь каждому, кому приходится сталкиваться с ListView или Spinner или там ListActivity волей-неволей приходится с ними разбираться.

Итак, адаптеры. Это прослойка между контролом, реализующим интерфейс AdapterView, и </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/7453388847123040869/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=7453388847123040869&amp;isPopup=true' title='Комментарии: 22'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/7453388847123040869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/7453388847123040869'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/07/android.html' title='Адаптеры в Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-97143200064591217</id><published>2010-04-26T16:07:00.002+04:00</published><updated>2010-06-18T09:22:34.513+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='log4php'/><title type='text'>Багофича в LoggerAppenderDailyFile</title><summary type='text'>Нашла некую особенность в работе аппендера LoggerAppenderDailyFile. И не могу понять, бага это или фича.

Вот есть конфиг:
&lt;log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" threshold="all" debug="false"&gt;
    &lt;appender name="default" class="LoggerAppenderDailyFile"&gt;
        &lt;param name="datePattern" value="Y-m-d" /&gt;
        &lt;param name="file" value="logs/%s.log" /&gt;
        </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/97143200064591217/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=97143200064591217&amp;isPopup=true' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/97143200064591217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/97143200064591217'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/04/loggerappenderdailyfile.html' title='Багофича в LoggerAppenderDailyFile'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3086544264140844902</id><published>2010-04-25T04:43:00.002+04:00</published><updated>2010-04-27T09:15:17.021+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='log4php'/><title type='text'>Введение в Log4php, часть 2. Использование</title><summary type='text'>Итак, в первой части мы подключили к проекту log4php, сконфигурировали его. А что дальше?




Базовое использование
У логгера log4php есть все те же уровни, что у логгера log4net. И, в соответствии с ними, функции (в порядке возрастания уровня):

trace
debug
info
warn
error
fatal

Все эти функции имеют одну и ту же сигнатуру: &lt;functionName&gt;(mixed $message, [mixed $caller  = null]). $message — это</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3086544264140844902/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3086544264140844902&amp;isPopup=true' title='Комментарии: 6'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3086544264140844902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3086544264140844902'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/04/log4php-2.html' title='Введение в Log4php, часть 2. Использование'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-8968372072179410282</id><published>2010-04-24T18:23:00.008+04:00</published><updated>2010-07-05T16:25:44.365+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='log4php'/><title type='text'>Введение в Log4php, часть 1. Конфигурация</title><summary type='text'>Как известно, писать логи хорошо и полезно. Данная статье посвящена одному из самых мощных логгеров для PHP — log4php.
Log4php относится к тому же семейству, что и любимый мной log4net, так что многие понятия повторяются. И, кстати, у log4php имеется достаточно хорошая документация. Настолько хорошая, что в этой моей статье, в общем-то, нет ровно ничего оригинального.

УстановкаДля начала стоит </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/8968372072179410282/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=8968372072179410282&amp;isPopup=true' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8968372072179410282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8968372072179410282'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/04/log4php-1.html' title='Введение в Log4php, часть 1. Конфигурация'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_j6rWiCD_MnA/S9L_tmsQ8iI/AAAAAAAABWM/ZXJ5d-ulWRM/s72-c/project_structure.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-4116954307190756258</id><published>2010-04-09T16:23:00.018+04:00</published><updated>2010-04-10T13:47:11.779+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVVM'/><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Шпаргалка по MVVM в WPF</title><summary type='text'>Тема, конечно, неоднократно поднятая, но я все равно напишу шпаргалку на тот случай, если вдруг когда-нибудь забуду. А то с WCSF тоже вроде разобралась, а прошло два месяца со сдачи проекта, и уже ничего и не помню...Сразу предупрежу, что статья предназначена для того, чтобы быстро въехать в MVVM или быстро его вспомнить. Так что описание будет предельно краткое и схематичное.

Итак, MVVM. </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/4116954307190756258/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=4116954307190756258&amp;isPopup=true' title='Комментарии: 25'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4116954307190756258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4116954307190756258'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/04/mvvm-wpf.html' title='Шпаргалка по MVVM в WPF'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_j6rWiCD_MnA/S78drr69gUI/AAAAAAAABVI/p1ejdlIGMKA/s72-c/mvvm+template.png' height='72' width='72'/><thr:total>25</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-1484710512358584599</id><published>2010-03-30T17:05:00.006+04:00</published><updated>2010-03-30T17:17:35.430+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='codedom'/><category scheme='http://www.blogger.com/atom/ns#' term='eval'/><title type='text'>eval в .NET</title><summary type='text'>В данном случае eval — это вовсе не Eval, который используется в дотнетовском датабиндинге. Здесь речь пойдет о том, как изобразить на .NET что-то, похожее на джаваскриптовый eval.
А дело вот в чем. Сейчас я занимаюсь одним большим вычислительным проектом. И вот, возникла у меня следующая задача. Пользователи, которым нужно проводить эти вычисления, захотели интерфейс для того, чтобы самим </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/1484710512358584599/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=1484710512358584599&amp;isPopup=true' title='Комментарии: 13'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1484710512358584599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1484710512358584599'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2010/03/eval-net.html' title='eval в .NET'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-326754883245024439</id><published>2009-08-09T20:18:00.000+04:00</published><updated>2009-08-09T20:20:09.551+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='логгирование'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='log4net'/><title type='text'>Ежедневные логи на log4net</title><summary type='text'>Недавно поступил вопрос:A есть возможность писать лог каждый день в новый файл? Чтобы частью имени файла была дата?Сделать такое можно. Нужно только в конфигурации appender-а написать следующее:&lt;appender name="DebugFileAppender" type="log4net.Appender.RollingFileAppender"&gt;
     &lt;lockingModel type="log4net.Appender.FileAppender+MinimalLock" /&gt;
     &lt;file value="debug" /&gt;
     &lt;appendToFile value="</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/326754883245024439/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=326754883245024439&amp;isPopup=true' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/326754883245024439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/326754883245024439'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/08/log4net.html' title='Ежедневные логи на log4net'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-4329123385620389802</id><published>2009-07-22T07:17:00.004+04:00</published><updated>2009-07-22T07:24:35.285+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='option'/><category scheme='http://www.blogger.com/atom/ns#' term='select'/><category scheme='http://www.blogger.com/atom/ns#' term='tree'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='xslt'/><title type='text'>Дерево в выпадающем списке средствами XSLT</title><summary type='text'>ЗадачаДопустим, у нас на сайте есть у нас нечто иерархическое. Например, категории товаров. У категорий есть подкатегории и так далее. И эта структура выражается в следующей XML-ке:&lt;categories&gt;
    &lt;category id="1" title="Процессоры"&gt;
        &lt;categories&gt;
            &lt;category id="2" title="Intel"&gt;
                &lt;categories&gt;
                    &lt;category id="3" title="Intel Core LGA775"&gt;
</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/4329123385620389802/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=4329123385620389802&amp;isPopup=true' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4329123385620389802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4329123385620389802'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/07/xslt.html' title='Дерево в выпадающем списке средствами XSLT'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_j6rWiCD_MnA/SmaFydduniI/AAAAAAAAA2c/XpJ9THKd6O0/s72-c/list.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-4006833749655746082</id><published>2009-03-27T15:38:00.001+03:00</published><updated>2009-04-01T08:58:14.802+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping pong'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Пишем игру для Android. Часть 1. Surface</title><summary type='text'>На прошлую статью про Android я получила хорошие отзывы, вдохновилась и решила продолжать. Эта серия статей будет посвящена написанию игры для Android.Писать мы будем игру в пинг-понг. Изначально задумывался арканоид, но для мануала получалось слишком громоздко, так что я решила упростить до пинг-понга. Итак, есть прямоугольное поле, на нем две ракетки, управляемые игроками, и мячик. Мячик летает</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/4006833749655746082/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=4006833749655746082&amp;isPopup=true' title='Комментарии: 20'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4006833749655746082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4006833749655746082'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/03/android-1-surface.html' title='Пишем игру для Android. Часть 1. Surface'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-2783778605206787175</id><published>2009-03-27T15:35:00.003+03:00</published><updated>2009-04-01T08:59:01.525+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping pong'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Пишем игру для Android. Часть 2. Игровые объекты</title><summary type='text'>Добавим в нашу игру экшена. Как известно, в пинг-понге три действующих лица: мячик и две ракетки. Имеет смысл реализовать соответствующие классы — Ball и Racquet. А, поскольку имеются некоторые свойства, присущие обоим этим сущностям (как то: расположение, изображение, размеры и т.д.), то можно сделать базовый класс под названием GameObject. Диаграмма классов будет такая:У всех игровых объектов </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/2783778605206787175/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=2783778605206787175&amp;isPopup=true' title='Комментарии: 11'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2783778605206787175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2783778605206787175'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/03/android-2.html' title='Пишем игру для Android. Часть 2. Игровые объекты'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5049683454255603771</id><published>2009-03-27T15:32:00.006+03:00</published><updated>2009-04-01T08:59:53.733+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping pong'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Пишем игру для Android. Часть 3. Управление игровыми объектами</title><summary type='text'>table.data { border-collapse: collapse; }table.data td { border: 1px solid black; padding: 10px; }table.data td.empty { border: 0px }table.data th { border: 1px solid black; background-color: #e0e0e0; padding: 10px; }В этой статье мы рассмотрим две темы: управление игровыми объектами и их взаимодействие. Мячик у нас уже летает, осталось сделать, чтобы он отражался от стен и ракеток; также стоит </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5049683454255603771/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5049683454255603771&amp;isPopup=true' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5049683454255603771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5049683454255603771'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/03/android-3.html' title='Пишем игру для Android. Часть 3. Управление игровыми объектами'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-4434877156103672809</id><published>2009-03-27T15:05:00.010+03:00</published><updated>2009-04-01T09:02:54.395+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping pong'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Пишем игру для Android. Часть 4. Игровой процесс</title><summary type='text'>В этой части мы напишем обработку выигрышей-проигрышей, реализуем подсчет очков, а также сделаем, чтобы игру можно было ставить на паузу. Собственно, пауза тут несколько не в тему, но девать ее некуда, так что сделаем ее в этой части.Обработка проигрышаПомнится, мы заводили в классе Racquet поле mScore, в котором собирались хранить количество очков у игрока. Теперь самое время начать использовать</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/4434877156103672809/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=4434877156103672809&amp;isPopup=true' title='Комментарии: 15'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4434877156103672809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4434877156103672809'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/03/android-4.html' title='Пишем игру для Android. Часть 4. Игровой процесс'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3166851703866915612</id><published>2009-03-27T14:54:00.005+03:00</published><updated>2009-04-01T09:03:39.346+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping pong'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='игра'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Пишем игру для Android. Часть 5. Хранение настроек</title><summary type='text'>Вот мы и добрались до конца. Осталось сделать только главное меню приложения, а также сделать игре настройки (собственно, меню только для того и нужно, чтобы было откуда настройки вызывать). Ну первое мы еще с прошлой статьи умеем, так что особых сложностей быть не должно. А вот второе следует рассмотреть подробнее. Итак, приступим.Окно приветствияВ одной из прошлых статей подробно рассматривался</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3166851703866915612/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3166851703866915612&amp;isPopup=true' title='Комментарии: 39'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3166851703866915612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3166851703866915612'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2009/03/android-5.html' title='Пишем игру для Android. Часть 5. Хранение настроек'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>39</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-2060124912983086068</id><published>2008-12-21T05:48:00.005+03:00</published><updated>2009-08-09T20:22:10.344+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='логгирование'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='log4net'/><title type='text'>Еще про log4net</title><summary type='text'>В комментариях к прошлой статье про log4net задал мне товарищ следующий вопрос:Вопрос: ты знаешь, как заставить log4net создавать лог-файлы для каждого экземпляра интерфейса ILog?
Т.е. есть у меня
static log4net.ILog log = log4net.LogManager.GetLogger("My_mega_logger");
Теперь я хочу, чтобы лог-файл назывался "log_My_mega_logger.log".Я подумала-подумала, да и придумала решение. Заодно, кажется, </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/2060124912983086068/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=2060124912983086068&amp;isPopup=true' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2060124912983086068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2060124912983086068'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/12/log4net.html' title='Еще про log4net'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-6928602759241654564</id><published>2008-11-18T05:20:00.004+03:00</published><updated>2008-11-19T05:38:03.372+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='wml'/><title type='text'>Доступ к функциям телефона из web-страницы</title><summary type='text'>Например, добавили мы на наш сайт некий платный сервис. Для доступа к нему нужно послать SMS с текстом таким-то на номер такой-то. Однако, на наш сайт ходят люди с телефонов, и им, для того, чтобы этим воспользоваться, надо закрыть браузер, написать SMS (еще вспомнить, что там вообще писать надо), а потом открыть браузер обратно. Получается довольно-таки неудобно.
Однако, есть выход. Оказывается,</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/6928602759241654564/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=6928602759241654564&amp;isPopup=true' title='Комментарии: 4'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6928602759241654564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6928602759241654564'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/11/web.html' title='Доступ к функциям телефона из web-страницы'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-4539133871521984806</id><published>2008-11-13T16:32:00.004+03:00</published><updated>2008-11-14T04:41:46.961+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ping'/><category scheme='http://www.blogger.com/atom/ns#' term='маюсь дурью'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='quick-and-dirty'/><title type='text'>Программа для отображения состояния коннекта</title><summary type='text'>Переехала наша компания в другой офис. Неделю уже там живем, а интернет от распрекрасной Дальсвязи все такой же - то потухнет, то погаснет. А сервера еще не переехали, так что к базам и прочим нужным штукам мы стучимся тоже по интернету, а вовсе не через локалку. Так что картина получается грустная.
Так что приходилось располагать окошки так, чтобы видеть консоль с ping -t google.ru. А потом мне </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/4539133871521984806/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=4539133871521984806&amp;isPopup=true' title='Комментарии: 10'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4539133871521984806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/4539133871521984806'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/11/blog-post.html' title='Программа для отображения состояния коннекта'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_j6rWiCD_MnA/SRwtAxIyMhI/AAAAAAAAAXc/XysIbsB4250/s72-c/Ping.JPG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-7757868547323004076</id><published>2008-11-12T14:19:00.007+03:00</published><updated>2008-11-12T15:19:04.726+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='pde'/><category scheme='http://www.blogger.com/atom/ns#' term='mobile processing'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><title type='text'>Mobile Processing</title><summary type='text'>Думала, мой следующий пост (вернее, следующая серия) будет опять про Андроид, ан нет :) Недавно попалась мне одна удивительная штука под названием Mobile Processing. Это инструмент, облегчающий процесс создания мобильных приложений. Обычно, если хочется написать мобильное приложение, надо учить Java, разбираться, как устроен мидлет, какие у него там события, каков жизненный цикл. И, если честно, </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/7757868547323004076/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=7757868547323004076&amp;isPopup=true' title='Комментарии: 7'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/7757868547323004076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/7757868547323004076'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/11/mobile-processing.html' title='Mobile Processing'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_j6rWiCD_MnA/SRq-ZLta0WI/AAAAAAAAAXM/lHLrrEN3ZXY/s72-c/ide.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3418877904875898042</id><published>2008-10-16T07:24:00.002+04:00</published><updated>2010-11-22T02:59:06.408+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Знакомство с Android. Часть 1: Простое приложение для Android</title><summary type='text'>Недавно заинтересовала меня платформа Android. Как-то много говорят о нем в последнее время, да и вообще хотелось узнать, такая же ли там ужасная Java, как в мидлетах. Так что потратила я некоторое время на копание в нем, написала простое приложение, и сейчас вот буду делиться опытом.
UPDATEСерия статей по игре Life обновлена 03.11.2010. Исправлены ошибки и проведена адаптация под Android версии </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3418877904875898042/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3418877904875898042&amp;isPopup=true' title='Комментарии: 33'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3418877904875898042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3418877904875898042'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/10/android-1-android.html' title='Знакомство с Android. Часть 1: Простое приложение для Android'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_j6rWiCD_MnA/TNUZ2zRSq8I/AAAAAAAABr8/8cpxrsuJCUw/s72-c/new_project.png' height='72' width='72'/><thr:total>33</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-2508267654252249824</id><published>2008-10-16T07:23:00.014+04:00</published><updated>2010-11-22T02:59:43.116+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Знакомство с Android. Часть 2: Переходы между формами</title><summary type='text'>Итак, продолжим. В этой части мы добавим в проект ещё одну форму и будем открывать её по нажатию кнопки Run. Также сделаем так, чтобы параметры, которые были введены в первой форме, передавались во вторую (они там ещё пригодятся). Однако, ничего страшного мы пока с ними делать не будем, а просто напишем "Введены такие-то числа"

Обработка нажатия кнопкиНапишем в StartActivity.java следующее:
</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/2508267654252249824/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=2508267654252249824&amp;isPopup=true' title='Комментарии: 16'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2508267654252249824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/2508267654252249824'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/10/android-2.html' title='Знакомство с Android. Часть 2: Переходы между формами'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_j6rWiCD_MnA/TNUb6t9Y5ZI/AAAAAAAABsE/8CJ5ob80W_I/s72-c/parameters.png' height='72' width='72'/><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3878098717273067548</id><published>2008-10-16T07:15:00.010+04:00</published><updated>2010-11-22T03:00:16.789+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Знакомство с Android. Часть 3: Использование диалогов</title><summary type='text'>В этой части мы сделаем проверку вводимых параметров по следующим правилам:
Число столбцов должно быть не меньше 5 и не больше 25.
Число строк должно быть не меньше 5 и не больше 35.
Начальное количество клеток должно быть не больше, чем ячеек на поле.
Если какое-то из этих условий не выполняется, будем выводить соответствующее предупреждение
Кроме того, мы добавим кнопку Close, при нажатии на </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3878098717273067548/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3878098717273067548&amp;isPopup=true' title='Комментарии: 9'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3878098717273067548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3878098717273067548'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/10/android-3.html' title='Знакомство с Android. Часть 3: Использование диалогов'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_j6rWiCD_MnA/TNUcwAYpbKI/AAAAAAAABsI/cd8_kg5pw1Q/s72-c/params_alert.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-6176565570591471533</id><published>2008-10-16T07:11:00.011+04:00</published><updated>2010-11-22T03:00:55.989+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='life'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Знакомство с Android. Часть 4: Использование GridView</title><summary type='text'>Итак, в нашем приложении осталось всего ничего: реализовать собственно алгоритм игры Life и отобразить его в GridView. Этим-то мы сейчас и займёмся.

Класс, реализующий логику LifeДобавим в проект новый класс, назовем его LifeModel. Тут у нас будет реализована вся логика Life
LifeModel.javapackage demo.android.life;

import java.util.Random;

public class LifeModel
{
    // состояния клетки
    </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/6176565570591471533/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=6176565570591471533&amp;isPopup=true' title='Комментарии: 29'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6176565570591471533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6176565570591471533'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/10/android-4-gridview.html' title='Знакомство с Android. Часть 4: Использование GridView'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_j6rWiCD_MnA/TNUdkNiOZJI/AAAAAAAABsQ/44azhqz5Sao/s72-c/life_init.png' height='72' width='72'/><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5607122890772230987</id><published>2008-08-07T12:10:00.005+04:00</published><updated>2008-08-13T04:04:13.472+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='чпу'/><title type='text'>URL rewriting в ASP.NET</title><summary type='text'>URL rewriting - это такая штука, которая позволяет из некрасивых урлов с параметрами, вроде
www.somesite.ru/?cat=blogs&amp;author=darja&amp;year=2008&amp;month=8
позволяет делать красивые, т.н. Человеку понятные урлы (ЧПУ), вродеwww.somesite.ru/blogs/darja/2008/8
Возникла у меня такая задача. Есть табличка (вернее, ListView), данные в которой располагаются на нескольких страницах. Пейджер у таблицы устроен </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5607122890772230987/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5607122890772230987&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5607122890772230987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5607122890772230987'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/08/url-rewriting-aspnet.html' title='URL rewriting в ASP.NET'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-8885018010625760647</id><published>2008-07-29T07:33:00.000+04:00</published><updated>2008-07-29T07:39:34.159+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='base64'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><title type='text'>Не надо использовать ничего из com.sun.*</title><summary type='text'>В общем, я почти дописала свой мидлет. И оказалось, что на целевой телефон (Nokia N73) он вообще отказывается ставиться. Authorisation error и все. Погуглив, узнала, что во всем виноват пакет com.sun.midp.io.Base64. Люди пишут, что вообще не стоит использовать какие-либо возможности из пакетов, которые называются com.sun.*, ибо это приводит к несовместимости мидлета с некоторыми устройствами.
А </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/8885018010625760647/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=8885018010625760647&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8885018010625760647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8885018010625760647'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/07/comsun.html' title='Не надо использовать ничего из com.sun.*'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-1792933960159635724</id><published>2008-07-15T07:59:00.002+04:00</published><updated>2008-07-29T07:42:31.406+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><title type='text'>Upload картинки из мидлета на сервер</title><summary type='text'>Сначала следует отметить, что у мидлета есть ограничение: он может передать по HTTP файл размером не больше чем в 2Кб. Так что будем передавать файл кусочками, а потом на сервере склеивать. Кроме того, картинку следует передавать не абы как, а в кодировке base64, иначе, опять же, будут возникать непонятные проблемы передачи (по крайней мере, у меня возникали).
Клиент
Пусть мы каким-то образом </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/1792933960159635724/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=1792933960159635724&amp;isPopup=true' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1792933960159635724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1792933960159635724'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/07/upload.html' title='Upload картинки из мидлета на сервер'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3389997680299840597</id><published>2008-06-26T04:12:00.003+04:00</published><updated>2008-07-29T07:43:52.315+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='j2me'/><title type='text'>Простейший мидлет с возможностью работы с HTTP</title><summary type='text'>Задача: написать мидлет, который будет посылать некоторый POST-запрос на сервер и выводить ответ.
Аппаратное обеспечениеПроверялось на Sony Ericsson k320i и на Nokia 2600 classic.
Сервер
На сервере у нас простое Web-приложение, написанное на ASP.NET. Для этого приложения напишем хэндлер Handler.ashx, который будет принимать и обрабатывать запросы. К примеру, он будет получать значение переменной </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3389997680299840597/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3389997680299840597&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3389997680299840597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3389997680299840597'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/06/http.html' title='Простейший мидлет с возможностью работы с HTTP'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-8256854609637731370</id><published>2008-06-12T15:35:00.003+04:00</published><updated>2008-06-12T16:28:14.656+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='App.config'/><title type='text'>Коллекции в конфиге приложения</title><summary type='text'>Задача была следующая. Нужно было написать робота, который будет ходить по тестовому сайту, делать там хиты, прикидываться разными пользователями, делать несколько сессий, да еще и работать на нескольких браузерах. Робот реализован в виде консольного приложения, для работы с браузерами используется Selenium, параметры (количество пользователей, сессий и хитов, а также список браузеров) хранятся в</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/8256854609637731370/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=8256854609637731370&amp;isPopup=true' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8256854609637731370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/8256854609637731370'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/06/blog-post.html' title='Коллекции в конфиге приложения'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-6070454672601887800</id><published>2008-06-02T07:34:00.007+04:00</published><updated>2009-08-09T20:22:10.345+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='логгирование'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='log4net'/><title type='text'>Отключение internal log в log4net</title><summary type='text'>log4net имеет обыкновение выводить в консоль еще и свой собственный вывод. Выглядит это примерно так:
log4net: XmlHierarchyConfigurator: Configuration update mode [Merge].
log4net: XmlHierarchyConfigurator: Logger [root] Level string is [ALL].
log4net: XmlHierarchyConfigurator: Logger [root] level set to [name="ALL",value=-2147483648].
...
Называется это internal log. Когда мы пишем </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/6070454672601887800/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=6070454672601887800&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6070454672601887800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/6070454672601887800'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/06/internal-log-log4net.html' title='Отключение internal log в log4net'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-3873858498873822280</id><published>2008-05-26T11:09:00.001+04:00</published><updated>2008-05-26T11:19:21.522+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>GUI-тесты на Selenium</title><summary type='text'>Задача следующая: надо провести один и тот же набор GUI-тестов на разных браузерах.
Как завести Selenium Server
Сначала идем по адресу и качаем последнюю версию Selenium RC.
В архиве будет много папочек с названиями типа selenium-dotnet-client-driver. В конце будет папочка selenium-server. Ее надо распаковать в какое-нибудь известное место.

Selenium server запускается примерно такой командой:
</summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/3873858498873822280/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=3873858498873822280&amp;isPopup=true' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3873858498873822280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/3873858498873822280'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/05/gui-selenium.html' title='GUI-тесты на Selenium'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-1331090766133902889</id><published>2008-04-25T08:57:00.009+04:00</published><updated>2009-08-09T20:22:10.346+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='логгирование'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='log4net'/><title type='text'>Написание своего фильтра для log4net</title><summary type='text'>Например, я использую NHibernate. Он использует log4net чтобы выводить свои сообщения, а я использую log4net  для своих целей. И куча хибернейтовских сообщений мне мешают. Очевидное решение данной проблемы - написать собственный фильтр. Фильтр должен наследоваться от абстрактного класса FilterSkeleton. Вот, что получилось у меня:
using System;
using log4net.Filter;

namespace Common
{
  class </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/1331090766133902889/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=1331090766133902889&amp;isPopup=true' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1331090766133902889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1331090766133902889'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/04/log4net_25.html' title='Написание своего фильтра для log4net'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-705743283069503045</id><published>2008-04-09T15:08:00.012+04:00</published><updated>2009-08-09T20:22:10.347+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='логгирование'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='quick start'/><category scheme='http://www.blogger.com/atom/ns#' term='log4net'/><title type='text'>Использование log4net</title><summary type='text'>log4net - логгер для .net-приложений, позволяющий выводить любые сообщения в файл, несколько файлов, в БД или еще куда-нибудь. Кроме самого пользовательского сообщения, может вывести подробную информацию (время, класс, метод, и т.д., где был вызван вывод данного сообщения).
Подключение
Web Application
Добавить log4net.dll в References приложения
Добавить в AssemblyInfo.cs строку
[assembly: </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/705743283069503045/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=705743283069503045&amp;isPopup=true' title='Комментарии: 41'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/705743283069503045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/705743283069503045'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/04/log4net.html' title='Использование log4net'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>41</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-1363902343734049941</id><published>2008-03-17T04:09:00.001+03:00</published><updated>2008-06-26T04:27:44.022+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><title type='text'>descendants, childNodes и тому подобное</title><summary type='text'>descendants - возвращает список ВСЕХ объектов, вложенных в данный объект (т.е. потомков, потомков потомков и т.д.)
immediateDescendants, childElements - возвращает список только прямых потомков.
Стандартный childNodes также возвращает список только прямых потомков. Отличие childNodes от immediateDescendants состоит в том, что методы prototype пропускают узлы типа TEXT_NODE и возвращают список </summary><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1363902343734049941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/1363902343734049941'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/03/descendants-childnodes.html' title='descendants, childNodes и тому подобное'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-9056689278967648060</id><published>2008-02-12T05:59:00.000+03:00</published><updated>2008-02-12T07:35:33.669+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'></title><summary type='text'>Например, надо нам в ASP.Net обработать нажатие кнопочки на стороне сервера, а потом еще выполнить какой-то JavaScript на стороне клиента. Например, мы хотим загрузить во фрейм с именем frmTree страницу Tree.aspx.
1) Можно использовать массив Attributes, т.е. написать: 
btnOk.Attributes.Add("onclick", "parent.frmTree.location='Tree.aspx';"). 
Такой способ лично у меня не заработал. 
2) Другой </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/9056689278967648060/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=9056689278967648060&amp;isPopup=true' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/9056689278967648060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/9056689278967648060'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/02/asp.html' title=''/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6979112859134786186.post-5178315182490070357</id><published>2008-02-07T15:36:00.001+03:00</published><updated>2008-10-26T16:09:43.173+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='squid'/><title type='text'>squid.conf</title><summary type='text'>Простейшая настройка squid для нашей домашней сети

http_port 192.168.0.1:3128

acl QUERY urlpath_regex cgi-bin \? # задали псевдоним QUERY для всех адресов, содержащих 'cgi-bin'
no_cache deny QUERY # запретили кэширование для этих адресов (т.к. это динамические страницы)

# cache settings
cache_mem 64 MB

cache_swap_high 95
cache_swap_low 90

# access permissions
acl all src 0.0.0.0/0.0.0.0
acl </summary><link rel='replies' type='application/atom+xml' href='http://megadarja.blogspot.com/feeds/5178315182490070357/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6979112859134786186&amp;postID=5178315182490070357&amp;isPopup=true' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5178315182490070357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6979112859134786186/posts/default/5178315182490070357'/><link rel='alternate' type='text/html' href='http://megadarja.blogspot.com/2008/02/squidconf.html' title='squid.conf'/><author><name>darja</name><uri>http://www.blogger.com/profile/09453917065780497340</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_j6rWiCD_MnA/SQFXu-HjUfI/AAAAAAAAAJQ/JCbQjglVnyQ/S220/1640970691.jpg'/></author><thr:total>3</thr:total></entry></feed>
