пʼятниця, 22 листопада 2013 р.

Android: проблеми з емулятором.

     Трапилося декілька історій з емулятором. По-перше, довгий час мене задовбували такі повідомлення після запуску написаної програмки:
- Unfortunately, your_program_name has stopped
- Unfortunately, Launcher has stopped



субота, 2 листопада 2013 р.

Android: перші кроки з Layouts

     Layout, що українською можна перекласти як макет, визначає візуальну структуру (схему) для інтерфейсу користувача, наприклад UI для актівіті (тут вже підібрати, чи скоріше видумати, україномовний відповідник для  activity трохи складно), чи для віджету (app widget). Макет визначає логічну схему, за якою будуть розташовуватись візуальні об'єкти  на екрані, наприклад, кнопки, текстові поля, тощо. Тобто, чи будуть вони розміщені один під одним, чи один за одним, чи у вигляді таблиці, чи у вигляді мережі. Серед стандартних макетів можна назвати AbsoluteLayout, FrameLayout, LinearLayout, RelativeLayout, TableLayout, GridLayout. Більше про них можна почитати на гуглівському сайті developer.android.com.

      Як же практично вибрати макет для актівіті? Найпростіше це зробити візуально, в графічному редакторі XML для актівіті. Потрібно зазначити, що одне актівіті може мати декілька макетів із довільною ієрархічною структурою.  Перший лейаут, який буде кореневим для інших (якщо інші звичайно будуть), можна призначити з панелі Outline, що знаходиться справа від графічного представлення актівіті (активною має бути закладка Graphical Layout для файлу activity_main.xml, чи як там називається ваше актівіті). По замовчуванню там вже буде стояти якийсь тип макету. При бажанні його можна змінити, якщо з контектного меню назви макета (на малюнку LinearLayout), вибрати команду Change Layout... :


пʼятниця, 1 листопада 2013 р.

Android: імпортувати проект в Eclipse

     Програмка для Андроіда складається з купи папочок і файликів. Тому, якщо потрібно подивитись чужий проект, то просто скопіювати java-код не вийде - проект може, і скоріше за все так і буде, не запуститися. Адже код працює у зв'зці з XML- файлами, та іншими ресурсними файлами. Тому потрібно імпортувати весь проект.

     Для цього в Eclipse (Kepler Release) в меню File є команда Import... В  діалозі  Import із списку Select an import source: вибираємо папку Android і в ній пункт Existing Android Code Into Workspace
   

субота, 12 жовтня 2013 р.

Формули в LibreOffice

     Для практичної роботи з курсу "Структури даних та аналіз алгоритмів" потрібно було здати електронний файл в форматі PDF. В тексті потрібно було використовувати формули та представити графічно дерева даних (trees, arbres). Можна було це все написати вручну, відсканувати, експортувати зображення в PDF і відправити на перевірку. Але я вирішив зробити це в офісному безкоштовному пакеті  LibreOffice. Заодно поюзаю його в більш інтенсивному режимі. Бо зазвичай використовую програму тільки для набору тексту, а коли потрібно зробити щось специфічне, то в голову приходять слова "а в Word'і все було так просто...". Але всі біди від ліні.

     Дерева створив використавши інструменти для креслення з панелі Drawing, яку можна відобразити командою View / Toolbars / Drawing. В результаті вийшло ось таке:

    

неділя, 6 жовтня 2013 р.

Лекції Масачусетського технологічного інституту

     Надибав курс відеолекцій на ресурсі videolectures.net від відомого  MIT  - Масачусетського технологічного інституту (Massachusetts Institute of Technology). Курс називається Introduction to Computer Science and Programming.




     Натрапив на нього шукаючи пояснення теорії асимптотичного аналізу алгоритмів і перша лекція, яку я переглянув, називалась Efficiency and Order of Growth від професора John Guttag.

пʼятниця, 23 серпня 2013 р.

Сертифікат Java

     Вирішив отримати собі сертифікат Java 7. Сподіваюсь, що це прикрасить моє резюме. Здавати планую наступного літа, якраз тоді маю закінчити свої курси програмування.

     Для початку потрібно розібратись із системою тестів. На сайті Oracle якось туманно написано. Але з допомогою Ґуґла трохи прояснив для себе ситуацію. Починати потрібно із сертифіката найнижчого рівня, який називається Oracle Certified Associate, Java SE 7 Programmer (Оракл його ще називає Java SE 7 Programmer I). Запис на здачу коштує 245 американських доларів. Тест триває 140 хвилин та складається з 90 питань тестового типу з однією, або декількома можливими правильними відповідями. Щоб пройти тест, потрібно правильно відповісти на 77 % питань.

     Наступний крок - здача тесту  Oracle Certified Professional, Java SE 7 Programmer (інша назва Java SE 7 Programmer II). Його ціна така сама -  245 доларів.  Тест триває 150 хвилин та складається з 90 питань тестового типу з однією, або декількома можливими правильними відповідями. Щоб пройти тест, потрібно правильно відповісти на 65 % питань.

     Щоб актуалізувати свій сертифікат, який ви отримали для однієї з попередніх версій Джави, потрібно пройти тест Upgrade to Java SE 7 Programmer, який також буде коштувати 245  $.

     Oracle люб'язно влаштовує тренінги для підготовки, але ціна, любі друзі, зашкалює - від  1 774  $ до 2 400  $. Шо???


     
      Тому, швидше за все, готуватись буду сам. Ну не сам, а з книжками. А з якими саме - про це напишу в наступних постах.
     

пʼятниця, 21 червня 2013 р.

Java: параметри по-замовчуванню

     Java, на відміну від С++, не дозволяє створювати методи із параметрами по-замовчуванню.

     Наприклад в С++ ви можете записати:

void MyFunction (String param1, int param2, bool param3=false);

     В цьому випадку третій параметр є необов"язковим, і якщо його не задавати, то функція візьме значення по-замовчуванню, яке присвоєне в оголошенні функції (в даному прикладі - param3=false) .

     Але в Java подібний код неможливий. Якщо ж ми все таки хочемо створити щось подібне, то треба або просто в тілі метода присвоїти бажане значення, або викликати перезавантажений аналог цього метода за допомогою ключового слова this:

public MyFunction(String param1, int param2)
{
    this(param1, param2, false);
}

      this викличе перезавантажений метод з трьома вхідними параметрами:
public MyFunction(String param1, int param2, boolean param3)
{
    .......
}
      Власне ця заборона на використання параметрів по-замовчуванню була зроблена для можливості однозначного виклику перезавантажених функцій. Бо якщо, наприклад, клас має перезавантажений метод, один з варіантів якого має три параметри, другий - два, а третій два і один по-замовчуванню, то якби можна було не вказувати у виклику параметр по-замовчуванню, який варіант компілятор повинен вибрати?

середа, 22 травня 2013 р.

NetBeans: як змінити мову інтерфейсу.

    Інтегроване середовище розробки NetBeans для Java по замовчуванню встановлює мову інтерфейсу, яка відповідає системній мові Windows. Для мене більш зручно працювати з англійським інтерфейсом, але нажаль в  NetBeans немає прямого налаштування для швидкої локалізації.

    На блозі Tao's Sun Blog , що знаходиться на сайті blogs.oracle.com, знайшов таку пораду:
  • відкрити папку, де встановлено програму, наприклад C:\Program Files\NetBeans 7.3\etc;
  • в Блокноті (чи іншому текстовому редакторі) відкрити конфігураційний файл netbeans.conf (на всякий випадок зробіть собі копію цього файлу);
  • знайти в ньому стрічку (скористайтесь командою Блокнота Правка/Знайти...)

    netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dsun.awt.disableMixing=true"

  • після останньої літери останнього слова, але перед лапками, що закривають стрічку, поставте пробіл і вставте наступне:

    -J-Duser.language=en -J-Duser.region=US

  • збережіть файл і перезапустіть NetBeans.
І voilà!




неділя, 7 квітня 2013 р.

HTML-редактори

     Після того, як помучились із створенням HTML-сторінок в звичайному Блокноті, можна переходити до використання більш просунутих редакторів, які б стилізували семантику  HTML- та CSS-файлів.

      Першим я спробував безкоштовний редакор Amaya, розроблений спільно W3C та INRIA. Це так званий редактор типу WYSIWYG (What-You-See-Is-What-You-Get) - "що бачиш, те і отримаєш".  Але довго на ньому не затримався. Такі типи редакторів можливо добрі для швидкого створення сторінок, але для навчання, як на мене, краще користуватись редакторами чистого коду.

     Тому потім я завантажив редактор вихідного HTML-коду  Leafier (з англ. "що вкритий листям").

середа, 6 березня 2013 р.

XHTML: як центрувати зображення?

     Один із методів центрування зображення в html-документі:

<img style="display:block; width:100px; margin: 10px auto" src="URL_de_l_image" alt="Une description de l'image" width="720px" height="540px"></img>

     Оскільки тег <img /> , не дивлячись на те, що зображення має ширину і довжину, є тегом стрічкового типу (in-line), то щоб перетворити його на блоковий елемент, використовуємо властивість display із значенням  block. Дехто рекомендує додатково задати властивість  width, щоб браузер мав дані для визначення полів (margin). Але у мене працювало і без цього. Остання властивість  margin із значенням auto якраз і буде відповідати за центрування. Якщо margin записана в скороченому вигляді, замість детальних записів margin-top, margin-bottom, margin-right, margin-left, то перше значення (10px) задасть відступи від блоку до сусідніх елементів вгорі та внизу, а друге - відступи справа та зліва. Значення  auto - буде центрувати зображення.

     Цей код може не працювати в старих версіях IE, тому до купи можна додати text-align:center.

субота, 9 лютого 2013 р.

Лекції по С Монреальського університету

   По цьому посиланню можна завантажити лекції з основ програмування по С (Initiation à la programmation (avec C et Java)) з Монреальського університету (Université de Montréal). Вони з'являються там поступово, по мірі проходження курсу. Згодом з'являться також розділи з основ програмування в Java.

     Щоб їх побачити, потрібно зайти в розділ Calendrier de la session.

субота, 2 лютого 2013 р.

Перша HTML-сторінка

     Розпочалось нарешті моє навчання на курсах програмування в UdeM! Поступив на програму Certificat de 1-er cycle en informatique appliquée. Поки що можна було взяти тільки основи програмування на С, Java та Web.

     Якщо  С і Java я ще трохи вчив самостійно, то Web-програмування для мене було повністю новим.  Як тільки захотів зробити перші кроки, щоб побачити HTML-код в браузері, з"явилась перша проблема. Ніби по ідеї все має бути дуже просто: редагуєш текст в звичайному блокноті, зберігаєш його, потім міняєш розширення з *.txt на *.html і відкриваєш в будь-якому браузері звичайною командою Файл/Відкрити... (maricopa.edu).

     Наприклад, ось такий шматок коду:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//FR">
<html>
<head>
<title>Web Volcan</title>
</head>
<!-- Ecrit pour le Didacticiel "Ecrire le HTML"
par Lorrie Lava, 31 Février 1999 -->
<body>
Dans cette leçon, vous vous servirez d'Internet pour rechercher
de l'information sur les volcans et rédiger un rapport de
vos résultats.
</body>
</html>


     Але чомусь в браузері відкривався сам код, а не Веб-сторінка. Причина була в тому, що в налаштуваннях Віндовс була активна опція “Приховувати розширення для зареєстрованих типів файлів”, яку можна знайти в Провіднику, в меню Сервіс/ Властивості папки..., закладка Вигляд. Галку навпроти цієї опції потрібно зняти (tutcikavo.co.ua). Адже виходило так, що насправді розширення я не міг змінити і файл так і залишався текстовим, тому браузер його не розумів.