<?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-7170477132486735645</id><updated>2011-09-20T02:34:35.697+03:00</updated><category term='PHP'/><category term='цикли'/><category term='інтерфейс'/><category term='utf-8'/><category term='графіка'/><category term='CSS'/><category term='програмування'/><category term='мова'/><category term='кодування'/><category term='HTML'/><title type='text'>Блог Віталія Яреги</title><subtitle type='html'>Про знання та їх застосування</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7170477132486735645.post-770321480921722021</id><published>2009-10-24T14:38:00.003+03:00</published><updated>2009-10-24T14:46:08.980+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='програмування'/><title type='text'>10 кроків до швидкого вивчення нової мови програмування</title><content type='html'>Вивчення нової мови може здатися страшним завданням. Тим не менш, як і в будь-якому вигляді навчання, тут існують певні техніки і прийоми, які допоможуть вам вивчити нову мову швидше й ефективніше. В цій статті представлено 10 найкращих прийомів, які можуть використовувати цілеспрямовані програмісти, щоб швидко почати писати, використовуючи нову мову.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Встановіть часові зобов'язання у навчанні &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Дуже часто ми думаємо, що зможемо вивчити нову мову, приділяючи на це півгодини на день протягом тижня. Незважаючи на те, що це в кінцевому результаті все-таки спрацює, це далеко не так ефективно, як повністю приділити день або два, протягом яких ви не будете робити нічого іншого, крім вивчення мови. Вивчення великими, нерозділеними блоками - це найкращий спосіб щоб дійсно поринути у мову.&lt;br /&gt;&lt;br /&gt;Заняття невеликої тривалості не дуже продуктивні для вивчення мови, тому що більша частина часу витрачається на повернення до того темпу, який ви набрали під час минулого заняття. Повторення само по собі може зайняти половину часу, відведеного на день.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Заведіть шпаргалки &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Шпаргалки можуть виявитися більш цінними, ніж це може здатися на перший погляд. Шпаргалки - це один із найбільш корисних джерел інформації, які є в нашому розпорядженні при вивченні мови. Шпаргалки - це не тільки корисні нагадування, вони також надають швидкий огляд зразків і команд, які допомагають визначити мову. Просто глянувши на шпаргалки, ви можете швидко схопити синтаксис мови, що робить його розуміння набагато простішим.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;b&gt;3. Зберіть всі необхідні матеріали &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Є безліч ресурсів для вивчення мов. Одні вам підійдуть, інші не дуже. Збір великої кількості інформації - це хороший спосіб використання «холістичного» підходу до мов, це допоможе вам швидко розпізнавати стилі написання і джерела, що ви розумієте краще за інші. Знайти пристойний підручник з програмування - теж гарна ідея, але в багатьох випадках, коли ви намагаєтеся знайти початкову інформацію про мову, найкращим кроком для вас буде зайти в Гугл і почати збирати інформацію. Ви можете зібрати таку інформацію:&lt;br /&gt;&lt;br /&gt;• Керівництва&lt;br /&gt;• Статті-підказки&lt;br /&gt;• Кращі прийоми&lt;br /&gt;... І будь-який інший матеріал, пов'язаний зі вступними темами.&lt;br /&gt;&lt;br /&gt;Відмінне джерело, хоч і платне, це членство в онлайн біблиотеці O'Reilly, що надає доступ до всіх відмінних посібників та книг O'Reilly в міріаді тем з програмування.&lt;br /&gt;&lt;br /&gt;Одну річ можна сказати напевно: вам необхідно розраховувати на людей, які вважаються експертами в тій мові, який ви вивчаєте. У цьому випадку ви можете бути впевнені, що вивчаєте кращі прийоми з самого початку, і не підхоплює ніякі погані звички.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. По-справжньому, чесно розумійте документацію &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Занадто часто люди намагаються швиденько пройти інформацію, представлену в документації для початківців. За мною теж є цей гріх. Я намагаюся швидко пробігти основи мови програмування і відразу ж перескочити до вказівкок і прикладів застосування. Керівництва - це відмінна допомога в розумінні мови, але вони не готують до розвитку, розвиток в мові, як це роблять основи. Перед тим як почати ходити, треба поповзати.&lt;br /&gt;&lt;br /&gt;Перечитуйте інформацію. Переконайтеся, що ви повністю зрозуміли основи мови, перед тим, як поринати в роботу з прикладами. Розуміння основ дозволяє вчитися швидше, так як у вас є твердий фундамент перед тим, як ви почнете будувати на цих засадах.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. Дайте інформації устоятися і зробіть перерву &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Після того, як ви зібрали матеріали, прочитали і зрозуміли основи, здається природнім - ринутись прямо до створення пробних програм. Але все-таки, щоб відбувалося належне навчання, необхідно, щоб інформація «замаринувалась» у вашій голові протягом кількох годин. Відпочиньте, розважтесь, робіть щось абсолютно не пов'язане з мовою програмування, щоб дозволити своєму мозку підсвідомо систематизувати вивчене.&lt;br /&gt;Відмінний прийом - присвятити день вивченню основ мови, потім дати інформації устоятись у вашій голові протягом доби, і почати працювати над пробними додатками на наступний день.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Створіть спробну програму з базою даних &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Після того, як ви зібрали всі матеріали і присвятили достатній час вивченню будови блоків мови, настає етап створення пробної програми.&lt;br /&gt;&lt;br /&gt;У більшості мов є навчальні приклади, які ви можете використовувати для створення чогось робочого, щоб зрозуміти основи того, як складаються програми. Спробуйте знайти прості програми, які мають інтерфейс з базою даних, такі як блог або списки todo. Ці типи програм дозволяють зрозуміти, яка різниця між мовами, і інформують вас з приводу нюансів.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. Боріться з багами &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Розуміння того, як виправляти помилки - це суттєва частина вивчення нової мови. А їх ви точно зустрінете під час навчання. Деякі новачки кидаються в сльози, коли знаходять помилки в своєму коді, і не досить борються, щоб з'ясувати, що змусило код дати збій.&lt;br /&gt;&lt;br /&gt;Дізнаватися, що ви не можете зробити, так само важливо, як і дізнаватися, що ви можете зробити за допомогою цієї мови.&lt;br /&gt;&lt;br /&gt;Провали - це неминучий і корисний аспект вивчення. Вінстон Черчіль одного разу сказав, що «успіх - це шлях від провалу до провалу без втрати ентузіазму». Не здавайтеся перед мовою програмування, якщо ви не можете моментально змусити її працювати.&lt;br /&gt;&lt;br /&gt;Навряд чи якась мова настільки легка у вивченні. Якщо ви дійсно застрягли, наступні кроки послужать вам допомогою.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Розраховуйте на реальних людей &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Вивчення мови не повинно бути одиночною спробою. Є багато людей, які вчинили ті ж самі помилки, що і ви, так що прохання про допомогу - це відмінний спосіб пробитися крізь найжорсткіші баги. Якщо ви не можете отримати відповідь на форумах, які присвячені мові програмування, чи на IRC каналах, використовуйте також такі ресурси:&lt;br /&gt;&lt;br /&gt;• Webmasterworld&lt;br /&gt;• Форуми, присвячені вивченню мов програмування&lt;br /&gt;• IRC - один з найбільш цінних ресурсів, які надають більшість проектів з мов програмування. Тільки подумайте: на IRC повно активних гуру, які швидше за все, із захопленням дадуть відповідь на будь-які ваші питання. Навіть якщо вам вдасться поставити в безвихідь цих неймовірно розумних людей, як правило, вони зі шкіри вилізуть, щоб допомогти вам знайти відповідь.&lt;br /&gt;&lt;br /&gt;У IRC груп з мов програмування іноді погана репутація «снобіської еліти», яка не спілкується з новачками. Я ніколи в цьому не переконувався. Я вірю, що якщо ви поважаєте час цих гуру та формулюєте ваше запитання чемно, ви отримаєте ввічливу відповідь. Потрібно пам'ятати, що ці люди викликаються витратити їх цінний час на допомогу таким новачкам, як ми, у вивченні мови, що вони знають досконало.&lt;br /&gt;&lt;br /&gt;* Twitter - готовий посперечатися, ви не думали, що Twitter може бути хорошим джерелом для програмування. А Twitter - дійсно чудовий ресурс, щоб запитати у друзів поради.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;9. Повторюйте &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Тепер, коли ви пробралися через пробні програми, і відчули ейфорію від створення чогось дійсно робочого, дуже важливо переглянути, що ви вивчили. Це допоможе закріпитися у вашому мозку того, що потрібно для створення програми. Наступного разу вам не знадобиться вчитися так багато, що довелося робити для створення цієї програми.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;10. Дайте зобов'язання практикуватися &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;І нарешті, коли ви успішно вивчили нову мову програмування, важливо дати собі зобов'язання практикуватися і розширювати вивчене. Практика - ключ до вивчення, так що важливо регулярно виділяти час для застосування нових знань. Інакше через деякий час ви втратите більшість того, що вже вивчили.&lt;br /&gt;&lt;br /&gt;Чим більше мов ви навчаєте, тим простіше стає вчити нові. Виникають образи, і процес стає дуже знайомим. Незважаючи на відмінності в тому, як кожна з мов працює і веде себе, у всіх є спільна фундаментальна база.&lt;br /&gt;&lt;br /&gt;Оригінал: &lt;a href="http://net.tutsplus.com/articles/10-steps-to-learning-a-new-coding-language-fast/"&gt;10 Steps to Learn a New Coding Language Fast&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7170477132486735645-770321480921722021?l=yarega.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/770321480921722021/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7170477132486735645&amp;postID=770321480921722021' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/770321480921722021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/770321480921722021'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/2009/10/10.html' title='10 кроків до швидкого вивчення нової мови програмування'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7170477132486735645.post-5963731205616469231</id><published>2009-05-02T17:48:00.022+03:00</published><updated>2009-05-23T21:39:46.063+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='цикли'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>PHP. Такі знайомі незнайомі цикли. for</title><content type='html'>Цикл &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;for&lt;/span&gt;&lt;/i&gt; є найбільш вживаний. Він більш простий в розумінні ніж інші. В загальному вигляді цикл for виглядить наступним чином:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for (початкове значення; кінцеве значення; зміна лічильника)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;Оператор&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Приклад 1&lt;/b&gt;&lt;br /&gt;Піднесемо до степеня 3 число 2 за допомогою циклу:&lt;br /&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = 1;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($i=1; $i&lt;=3; $i=$i+1)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = $sum * 2;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;print($i);&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;В цьому прикладі запускається цикл з початковим значення змінної &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$i&lt;/span&gt;&lt;/i&gt;, що рівне 1. Цикл буде виконуватися, поки значення змінної менше або рівне 3. Щойно значення змінної перевищить це число, цикл припиниться і результат буде виведено на екран за допомогою функції &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;print()&lt;/span&gt;&lt;/i&gt;, яка йде після циклу. На кожному кроці циклу значення змінної збільшується на одиницю &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$i($i=$i+1)&lt;/span&gt;&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;На кожному кроці циклу виконується код: &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = $sum * 2&lt;/span&gt;&lt;/i&gt;. Оскільки наш цикл виконується від 1 до 3, то рядок буде виконуватися 3 рази.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Після оператора &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;for&lt;/span&gt;&lt;/i&gt; виконується тільки один рядок коду. Якщо необхідно виконати два і більше оператора, потрібно помітити їх у фігурні дужки. Наприклад:&lt;br /&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = 1;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($i=1; $i&lt;=3; $i=$i+1) &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;{&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = $sum * 2;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;print("Сума = $sum, Лічильник = $i &lt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;br&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;&gt;");&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;} &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Після виконання цього коду ми побачимо на екрані наступний текст:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;Сума = 2, Лічильник = 1 &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;Сума = 4, Лічильник = 2 &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;Сума = 8, Лічильник = 3 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Таким чином ми піднесли число 2 у третю степінь. У якості початкових значень можуть виступати декілька змінних. Наприклад, тут ми можемо перенести оголошену змінну&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum&lt;/span&gt;&lt;/i&gt; в дужки оператора &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:arial;"&gt; &lt;/span&gt;наступним чином:&lt;br /&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($sum = 1, $i=1; $i&lt;=3; $i=$i+1) &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;{ &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$sum = $sum * 2; &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &lt;/span&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;print("Сума = $sum, Лічильник = $i &lt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;br&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;&gt;"); &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;} &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Всі початкові значення перераховуються через кому. Аналогічним чином можна реалізувати будь-яку кількість перевірок. Наприклад, нам потрібно виконувати цикл, поки значення змінної &lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$i&lt;/span&gt;&lt;/i&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;не буде більше за 3 або сума менша &lt;span style="" lang="RU"&gt;1&lt;/span&gt;0. Для цього можна написати цикл у такому вигляді:&lt;br /&gt;&lt;br /&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($sum=1, $i=1; $i&lt;=3, $sum&lt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="RU"&gt;1&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;0; &lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="RU"&gt;$&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;i=$i+1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;p style="font-family: courier new;"&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;i&gt;&lt;span style=""&gt;{&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;$sum = $sum * 2;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;print("Сума = $sum, Лічильник = $i &lt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;br&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=""&gt;&gt;");&lt;br /&gt;}&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;В обмеженні циклу через кому перевіряються дві умови &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;span style="font-family:courier new;"&gt;$i=1&lt;/span&gt; &lt;/span&gt;&lt;/i&gt;і&lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt; &lt;span style="font-family:courier new;"&gt;$i&lt;=3&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;. Кома рівносильна порівнянню «або» (or) і відповідає запису:&lt;/p&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($sum=1, $i=1&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;; &lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$i&lt;=3&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt; &lt;span lang="EN-US"&gt;or&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt; $sum&lt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;1&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;0; &lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;$&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;i=$i+1)&lt;/span&gt;&lt;/i&gt;  &lt;p class="MsoNormal"&gt;Якщо необхідно виконувати цикл до тих пір, поки одна з умов виконається, то можна написати так:&lt;/p&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;for ($sum=1, $i=1&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;; &lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;$i&lt;=3&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt; &lt;span lang="EN-US"&gt;and&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt; $sum&lt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;1&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;0; &lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;$&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style=""&gt;i=$i+1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Але в цьому випадку є один недолік. Якщо виконати цей код, то можна побачити, що сума перевищить &lt;span style="" lang="RU"&gt;1&lt;/span&gt;0. Чому? Перевірка відбувається раніше, ніж відбувається чергове піднесення до степеня. Число 2 в 4-ій степені рівне 16. Це менше за &lt;span style="" lang="RU"&gt;1&lt;/span&gt;0, тому виконується наступний крок (ще одне піднесення до степеня),&lt;span style=""&gt;  &lt;/span&gt;і результат буде 32, що і виводиться на екран. Тільки наступна перевірка побачить, що число перевищує допустиме значення. Щоб позбавитися від цього ефекту, піднесення до степеню потрібно перенести в область збільшення лічильника, тобто так:&lt;br /&gt;&lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;for ($sum=1, $i=1; $i&lt;=3, $sum&lt;10; i="$i+1," sum =""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i  style="font-family:courier new;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;      &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=""&gt;print("Сума = $sum, Лічильник = $i &lt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;br&lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=""&gt;&gt;");&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Тепер на кожному кроці циклу збільшується не тільки &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;$i&lt;/span&gt;&lt;/i&gt;, але і &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;$sum&lt;/span&gt;&lt;/i&gt;. Результат піднесення до степеня буде виведено на екран тільки в тому випадку, якщо він відповідає обом умовам, і сума ніколи не перевищить &lt;span style="" lang="RU"&gt;1&lt;/span&gt;0.&lt;/p&gt;        &lt;p class="MsoNormal"&gt; &lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable  {mso-style-name:"Обычная таблица";  mso-tstyle-rowband-size:0;  mso-tstyle-colband-size:0;  mso-style-noshow:yes;  mso-style-parent:"";  mso-padding-alt:0cm 5.4pt 0cm 5.4pt;  mso-para-margin:0cm;  mso-para-margin-bottom:.0001pt;  mso-pagination:widow-orphan;  font-size:10.0pt;  font-family:"Times New Roman";  mso-ansi-language:#0400;  mso-fareast-language:#0400;  mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;Цикл &lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;for&lt;/span&gt;&lt;/i&gt; може бути нескінченним. Це робиться наступним чином:&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;for (;;)&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;i&gt;&lt;span style="" lang="EN-US"&gt;{&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;i&gt;&lt;span style=";font-family:&amp;quot;;"  lang="EN-US"&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style=""&gt;Тут нема жодних умов і лічильників, тому цикл буде виконуватись нескінченну кількість разів.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt;Увага!&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span style=";font-family:&amp;quot;;" &gt; Не раджу вам використовувати нескінченні цикли: вони створюють велике навантаження на систему, а їх не коректне застосування може призвести до зависання чи інших непередбачених результатів.&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7170477132486735645-5963731205616469231?l=yarega.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/5963731205616469231/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7170477132486735645&amp;postID=5963731205616469231' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/5963731205616469231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/5963731205616469231'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/2009/05/php-for.html' title='PHP. Такі знайомі незнайомі цикли. for'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7170477132486735645.post-7359721316496454529</id><published>2009-02-02T00:10:00.010+02:00</published><updated>2009-02-02T01:34:16.925+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='графіка'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Заокруглені кути на сайтах</title><content type='html'>&lt;span style="font-style: italic;"&gt;Задача: без використання графіки створити блок із заокругленими кутами.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LhMj9ipEF2U/SYYvBzOnn0I/AAAAAAAAABY/9RHDwoZflqs/s320/roundcorners.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 211px; height: 56px;" src="http://3.bp.blogspot.com/_LhMj9ipEF2U/SYYvBzOnn0I/AAAAAAAAABY/9RHDwoZflqs/s320/roundcorners.gif" alt="" border="0" /&gt;&lt;/a&gt;Які є взагалі методи побудови блоків із заокругленими кутами?&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;За допомогою графіки (Photoshop там чи шось простіше).&lt;/li&gt;&lt;li&gt;З використанням HTML + CSS.&lt;/li&gt;&lt;li&gt;За допомогою JavaScript.&lt;/li&gt;&lt;li&gt;В принципі можна застосувати і інші технології, та їх комбінації. Наприклад PHP+HTML. Варіантів безліч.&lt;/li&gt;&lt;/ol&gt;Випадково наштовхнувся на цікаву і досить повну добірку методів (38 штук!!!) побудови таких блоків. Дивитися &lt;a href="http://vremenno.net/html-css/38-articles-about-creating-rounded-corners/"&gt;тут&lt;/a&gt;. Термін "наштовхнувся" тут як раз і не підходить, бо перерив я чимало сайтів щоб вирішити поставлену задачу. І що ви думаєте? - жоден із 38 методів не допоміг. :(&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Велика кількість наведених методів вирішують завдання наполовину - будують потрібний блок, але без рамки. Інші ґрунтуються на бібліотеках чи навіть цілих фреймворках, які для такої роботи досить заважкі (особливо, якщо сайт не використовує їх для іншої роботи). Ті, що залишилися використовують графіку - знов не те.&lt;br /&gt;&lt;br /&gt;І тоді я звернувся до своєї пам'яті - архівів. Все, що бачу цікавого - зберігаю в архів і вам раджу, навіть, якщо здається, що воно вам ніколи не знадобиться.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Знайшов!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Знайшов цікавий варіант і не дуже громіздкий і використовує HTML+CSS.&lt;br /&gt;&lt;br /&gt;Власне файл для скачування: &lt;a href="http://webstudio.yarega.com/scripts/round_corners.zip"&gt;&lt;span&gt;round_corners.htm&lt;/span&gt;&lt;/a&gt;&lt;a href="http://webstudio.yarega.com/scripts/round_corners.zip"&gt;&lt;span&gt;l&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;А це результат його роботи:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_LhMj9ipEF2U/SYYvBzOnn0I/AAAAAAAAABY/9RHDwoZflqs/s320/roundcorners.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 211px; height: 56px;" src="http://3.bp.blogspot.com/_LhMj9ipEF2U/SYYvBzOnn0I/AAAAAAAAABY/9RHDwoZflqs/s320/roundcorners.gif" alt="" border="0" /&gt;&lt;/a&gt;Користуйтесь!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7170477132486735645-7359721316496454529?l=yarega.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/7359721316496454529/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7170477132486735645&amp;postID=7359721316496454529' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/7359721316496454529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/7359721316496454529'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/2009/02/blog-post.html' title='Заокруглені кути на сайтах'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LhMj9ipEF2U/SYYvBzOnn0I/AAAAAAAAABY/9RHDwoZflqs/s72-c/roundcorners.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7170477132486735645.post-5493736853085595548</id><published>2009-01-25T10:37:00.010+02:00</published><updated>2009-01-26T18:15:20.150+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='мова'/><category scheme='http://www.blogger.com/atom/ns#' term='інтерфейс'/><title type='text'>Сайти українською мовою</title><content type='html'>&lt;span style="font-style: italic;"&gt;Розглянемо причини створення сайтів для української частини Інтернету не на українській мові.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Чому так відбувається?&lt;br /&gt;&lt;br /&gt;Як ви зрозуміли, "не українська мова" - це російська.&lt;br /&gt;&lt;br /&gt;Розглянемо основні причини, за якими розробники основною мовою інтерфейсу вибирають російську:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- бажання замовника &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;як правило, розробник в повній мірі володіє російською мовою і переконувати клієнта в доцільності чи недоцільності такого вибору ніхто не збирається: як ми знаємо - клієнт завжди правий;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- більшість потенційних відвідувачів сайту є російськомовними&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;мабуть так і є, але "мовити" та сайтах, як правило, не потрібно. Потрібно читати, сприймати інформацію і розуміти. Незважаючи на небажання великої частини російськомовних українців спілкуватися на українській мові (це їх власна справа), переважна їх частина прекрасно володіє мовою, принаймні на рівні сприйняття інформації і її розуміння;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;- відсутність українського контенту&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;серйозна проблема: що було скоріше - курка чи яйце. Нема сайтів нема контенту. Є групи сайтів, в яких неоригінальний (запозичений) контент складає значну частину його наповнення. В такому випадку без джерела інформації обійтись практично неможливо. А переклад часто не вписується у заплановані витрати. До таких сайтів належать: Інтернет-магазини із описанням товарів, стрічки новин із джерелами тих самих новин та ін.&lt;br /&gt;&lt;br /&gt;Про об'єктивність причин судити вам, шановні читачі.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;P.S.&lt;/span&gt; Оскільки державні мужі не дуже переймаються проблемою освіченості населення (мабуть через відсутність своєї), то цим займаються громадські та приватні установи. До прикладу наведу декілька з них:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.hurtom.com/"&gt;Гуртом&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;&lt;a href="http://zakladka.org.ua/"&gt;Закладка&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vox.com.ua/"&gt;Портал українця&lt;/a&gt;;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://localize.org.ua/"&gt;Портал українізації програмного забезпечення&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webstudio.yarega.com/"&gt;Yarega WebStudio&lt;/a&gt; - пропонує знижку 10% для замовників із України, які основною мовою інтерфейсу виберуть українську;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.moba.kiev.ua/"&gt;Мова&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;та ін.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Побажання до них, щоб вони це робили наполегливо і грамотно. Було в мене бажання поставити банер-кнопку &lt;a href="http://www.vox.com.ua/"&gt;Портала українця&lt;/a&gt; на сайт, але виявилось, що в наявності є лише кнопка червоного кольору.&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://www.vox.com.ua/" target="_blank"&gt;&lt;br /&gt;&lt;img src="http://www.vox.com.ua/button.gif" alt="[Vox.com.ua] Портал українця" vspace="0" width="88" border="0" height="31" hspace="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Не знаю з яких мотивів кнопку зробили саме червоною (мабуть через яскравість кольору), але червоних сайтів є не дуже багато )), і мені довелось відмовитися, оскільки не міг собі дозволити на комерційного характеру сайт поставити елемент, який категорично не вписується в дизайн. Інших варіантів кнопки, на жаль, не знайшлося.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7170477132486735645-5493736853085595548?l=yarega.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/5493736853085595548/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7170477132486735645&amp;postID=5493736853085595548' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/5493736853085595548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/5493736853085595548'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/2009/01/blog-post.html' title='Сайти українською мовою'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7170477132486735645.post-1013128130648060453</id><published>2009-01-18T18:35:00.010+02:00</published><updated>2009-01-18T22:43:05.946+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='кодування'/><category scheme='http://www.blogger.com/atom/ns#' term='utf-8'/><title type='text'>Кодування символів UTF-8. Доцільність переходу.</title><content type='html'>&lt;span style="font-style: italic;"&gt;У даній статті спробую обґрунтувати доцільність переходу на кодування &lt;span style="font-weight: bold;"&gt;UTF-8&lt;/span&gt; у реалізації електронних проектів.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Таке питання як "кодування символів" перенесу із площини ідеологічної в площину практичну.  Оскільки деякі програмери навідріз відмовляються використовувати "буржуйську" таблицю символів &lt;span style="font-weight: bold;"&gt;UTF&lt;/span&gt;, а перевагу віддають &lt;span style="font-weight: bold;"&gt;Windows-1251&lt;/span&gt; чи &lt;span style="font-weight: bold;"&gt;KOI8-R&lt;/span&gt;, не пояснюючи причин, а стверджуючи, що вони наші, рідні.&lt;br /&gt;&lt;br /&gt;Нагадаю про основних конкурентів:&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Windows-1251&lt;/b&gt; (також вживаються назви &lt;b&gt;Win1251&lt;/b&gt;, &lt;b&gt;CP1251&lt;/b&gt;) — кодування, що є стандартним 8-бітовим кодуванням для всіх локалізованих українських і російських версій Microsoft Windows. Користується досить великою популярністю. Була створена на базі кодувань, що використалися в ранніх «самопальних» русифікаторах Windows в 1990—1991 рр. спільно представниками «Параграфа», «Діалогу» і російського відділення Microsoft. Початковий варіант кодування помітно відрізнявся від сучасного, преведеного нижче в таблиці (зокрема, там було значне число «білих плям»).&lt;/p&gt; &lt;p&gt;Windows-1251 вигідно відрізняється від інших кириличних кодувань наявністю практично всіх символів, що використовуються в слов'янській кириличній типографіці для звичайного тексту (відсутній тільки значок наголосу); вона містить всі символи для російської, української, білоруської, сербської і болгарської мов.&lt;/p&gt; &lt;p&gt;Має три недоліки:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;мала (рядкова) буква «я» має код 0xFF (255 в 10-чній системі). Вона є «винуватицею» ряду несподіваних проблем в програмах без підтримки чистого 8-го біту.&lt;/li&gt;&lt;li&gt;відсутні символи псевдографіки.&lt;/li&gt;&lt;li&gt;при сортуванні в алфавітному порядку літери не йдуть підряд, оскільки між літерами ўЎіІєЄЇґҐёЁ і основним блоком літер йдуть спецсимволи.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Нижня частина таблиці кодування (латиниця) повністю відповідає кодуванню ASCII. Числа під буквами позначають 16-чний код букви в Юнікоді.&lt;/p&gt;&lt;b&gt;КОІ-8&lt;/b&gt; (код обміну інформацією, 8 бітів), рос. &lt;i&gt;&lt;span lang="ru"&gt;КОИ-8&lt;/span&gt;&lt;/i&gt; — восьмибітова ASCII-сумісна кодова таблиця, розроблена для кодування букв кирилічних алфавітів. &lt;p&gt;Існує також семибітова версія кодування, не повністю сумісна з ASCII — КОІ-7. КОІ-7 і КОІ-8 описані в ГОСТ 19768-74 (зараз недійсний).&lt;/p&gt;&lt;p&gt;Існує декілька варіантів кодування КОІ-8 для різних кирилічних алфавітів. Російський алфавіт описується в кодуванні KOI8-R, український — в KOI8-U. KOI8-R став фактично стандартом для російської кирилиці в юнікс-подобних операційних системах і електронній пошті.&lt;/p&gt;&lt;p&gt;В деяких країнах СЕВ були створені модифікації КОІ-8 для національних варіантів латиниці. Базова ідея була та ж сама — при тому, що «зрізає» восьмого біта текст мав лишатися більш менш зрозумілим. Наприклад, в чеському варіанті КОІ-8 букви Čč повинні перетворюватися на cC, Žž — в zZ тощо. В даний час ці кодування не використовуються.&lt;/p&gt;&lt;p&gt;А тепер про &lt;span style="font-weight: bold;"&gt;UTF&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;Юніко́д, (англ. Unicode) — це промисловий стандарт розроблений, щоб зробити можливим для текстів і символів (графічних знаків) всіх писемних систем світу узгоджене представлення (репрезентацію) і обробку комп’ютерами. Удосконалений сумісно з стандартом Універсальний Набір Символів (Universal Character Set - UCS) і опублікований в формі книги Стандарт Юнікод, Юнікод складається з асортименту символів, методології кодування і комплекту (набору) стандартів кодування символів, комплекту кодових таблиць для посилань на зображення символів, списку властивостей символів таких, наприклад, як верхній і нижній регістр, комплект довідкових даних комп’ютерних файлів, правил нормалізації, декомпозиції, співставлення і зображення (рендерингу).&lt;br /&gt;&lt;br /&gt;Стандарт запропонувала в 1991 році організація Консорціум Юнікоду (англ. Unicode Consortium), яка об’єднує найбільші ІТ-компанії (корпорації). Консорціум Юнікоду — неприбуткова (некомерційна) організація, яка координує розвиток Юнікоду, має амбітну мету замінити в кінцевому підсумку існуючі системи кодування символів Юнікодом і його системою стандартів Формат Перетворень Юнікоду (UTF, Unicode Transformation Format), тому що багато існуючих систем кодування є обмеженими в розмірі й можливостях і несумісними з багатомовними середовищами. Успіхи Юнікоду в уніфікації наборів символів призвели до його розповсюдження і домінуючого використання в інтернаціоналізації і локалізації програмного забезпечення комп’ютерів. Стандарт був використаний в багатьох новітніх технологіях, включаючи XML, мову програмування Java і сучасні операційні системи.&lt;br /&gt;&lt;br /&gt;Юнікод переступає старе обмеження кодування символів одним байтом. Замість того використовує 17 просторів, кожен з яких визначає 65,536 кодів і дає можливість описати максимум 1 114 112 (17 * 216) різних символів. Basic Multilingual Plane (BMP) — Основна Багатомовна Площина, містить майже всі символи, що Ви будете коли-небудь використовувати.&lt;br /&gt;&lt;br /&gt;Юнікод має декілька реалізацій, але найпоширенішими є дві: UTF (Unicode Transformation Format) — Формат Перетворення Юнікоду та UCS (Universal Character Set) — Універсальна Таблиця Символів. Число після UTF визначає кількість біт виділених під один юніт, а число після UCS визначає кількість байтів. Універсальний набір символів задає однозначну відповідність символів кодам — елементам кодового простору, тобто невід’ємним цілим числам. UTF-8 став найпоширенішим для інтернаціональних кодувань.&lt;br /&gt;&lt;br /&gt;UTF-8 є системою кодування з змінною довжиною кодування символів, це означає що для кодування символів він використовує від 1 до 4 байт на символ. Так перший байт UTF-8 використовується для кодування ASCII, що дає повну сумісність з ASCII. Перекодування ASCII кодом UTF-8 для латинських символів дуже незначно збільшить розмір даних, бо використовується тільки перший байт. В східних мовах де мусять для кодування використовувати вищі байти це кодування збільшує розмір даних на 50 %.&lt;br /&gt;&lt;br /&gt;UTF-8 дозволяє Вам працювати в стандартизованому міжнародно прийнятому багатомовному середовищі, з порівняно незначним збільшенням обсягу даних. UTF-8 являє собою ідеальний спосіб передачі не ASCII кодованих символів через Інтернет, електронну пошту, чат, тощо.&lt;br /&gt;&lt;br /&gt;Коди в стандарті Unicode поділені на декілька областей. Область з кодами від U+0000 до U+007F (про запис виду «U+xxxx» дивись нижче в розділі «Кодовий простір») містить символи набору ASCII. Далі розміщені області знаків різних писемностей, знаки пунктуації і технічні символи. Частина кодів зарезервована для використання в майбутньому. Для символів кирилиці виділені коди від U+0400 до U+052F.&lt;/p&gt;&lt;p&gt;Отже, оцінюємо доцільність застосування &lt;span style="font-weight: bold;"&gt;UTF&lt;/span&gt;:&lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;"ЗА"&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Міжнародний стандарт&lt;/span&gt; (UTF-8 дозволяє Вам працювати в стандартизованому міжнародно прийнятому багатомовному середовищі).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Багатомовність&lt;/span&gt; (UTF-8 дозволить без значних затрат реалізувати багатомовність на ремурсі, включаючи всі екзотичні мови, які людина собі забажає та спеціальні символи).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Розширення набору інструментів&lt;/span&gt; для роботи із текстом. (Всі розробники ПЗ підтримують кодування UTF-8 у своїх продуктах, щоб розширити ринок їх збуту).&lt;/li&gt;&lt;li&gt;Безпосередньо саме &lt;span style="font-weight: bold;"&gt;розширення ринку збуту&lt;/span&gt; для Вашого рішення. (через реалізацію багатомовності, Ваш продукт отримає нових клієнтів).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Стандартизація продукту&lt;/span&gt; (звідси випливають багато переваг, серед яких: спрощення підтримки, документування, інтеграція та ін.).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Підтримка всіх операційних систем&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; СУБД та браузерів.&lt;/span&gt; (навіть тих, що ще не з'явилися:) ).&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;"ПРОТИ"&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Збільшення розміру&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; файлу&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt; (Хоч і незначне, але збільшення розміру файлу даних, через те, що багато символів будуть кодуватися не 1-им байтом (Win-1251), а 2-ма, 4-ма байтами).&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Освоєння нових інструментів&lt;/span&gt; та застосування нових бібліотек функцій чи переписування вже робочих для нового кодування, звідси додаткова витрата часу (читай: грошей).&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Висновок&lt;/span&gt; робити не буду, зробіть його самі. Оцініть наведені аргументи по відношенню до конкретної ситуації: можливо знайдете нові докази чи заперечення.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;P.S. &lt;/span&gt;Але у будь-якому випадку у будь-якій справі об'єктивно оцінюйте свої можливості та знання. Щоб інновації не зашкодили результату. Бо, якщо продукт не вийде вчасно на ринок, то він нікому не потрібен, який би він не був універсальний чи стандартизований.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7170477132486735645-1013128130648060453?l=yarega.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yarega.blogspot.com/feeds/1013128130648060453/comments/default' title='Дописати коментарі'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7170477132486735645&amp;postID=1013128130648060453' title='0 коментарі(в)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/1013128130648060453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7170477132486735645/posts/default/1013128130648060453'/><link rel='alternate' type='text/html' href='http://yarega.blogspot.com/2009/01/utf-8.html' title='Кодування символів UTF-8. Доцільність переходу.'/><author><name>Віталій Ярега</name><uri>http://www.blogger.com/profile/16726487022624853375</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_LhMj9ipEF2U/SXNewjsdtpI/AAAAAAAAAAM/0lJYK7eDnU0/S220/64x64.jpg'/></author><thr:total>0</thr:total></entry></feed>
