Возвращение code completion в Eclipse PDT в рабочее состояние

В последнее время после установки свеженького Eclipse PDT (PHP Development Tools) отказывался работать Content Assist (он же Code Completion). Решение (правильнее даже несколько вариантов решений) нашлось следующее:
Открываем каталог с проектом, находим файл .project. В файле находим секцию <natures>, примерно следующего вида:

  1. <natures>
  2. <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  3. </natures>

в неё добавляем строку

<nature>org.eclipse.php.core.PHPNature</nature>

Android: программное создание окна настроек 2

В предыдущей статье я описал как можно программно создать окно с настроками. Сегодня разобрался как можно было создать поле ввода пароля проще, без использования методов трансформации текста. Для этоно надо использовать метод setInputType у объекта TextView:

  1. passPref.getEditText().setInputType(android.text.InputType.TYPE_CLASS_TEXT |
  2. android.text.InputType.TYPE_TEXT_VARIATION_PASSWORD);

Первая константа TYPE_CLASS_TEXT означает что поле будет использоваться для ввода текста, вторая TYPE_TEXT_VARIATION_PASSWORD - что текст будет паролем и его надо маскировать.
Поле ввода с типом TYPE_TEXT_VARIATION_PASSWORD по умолчанию не использует словари для посказок при вводе текста:

Android: программное создание окна настроек

Активити с настройками можно создать двумя способами: через файл XML из ресурсов, либо программынм способом. Опишу второй способ, т.к. именно с ним у меня возникла одна трудность - а именно добавление поля для ввода пароля, с поддержкой маскирования текста.

Первое - создаём активити с названием Preferences, базовым классом выбираем android.preference.PreferenceActivity:

  1. package net.galanov.android.preferencesdemo;
  2.  
  3. import android.os.Bundle;
  4. import android.preference.PreferenceActivity;
  5.  
  6. public class Preferences extends PreferenceActivity {
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setPreferenceScreen(createPreferenceHierarchy());
  11. }
  12. }

"Похороним" Internet explorer 6 вместе или The Internet Explorer 6 Countdown

Однако как мы удачно "отбились" от IE6, теперь уже и сам MicroSoft начал активно поддерживать изживание IE6 из компьютеров пользователей. Для отслеживания процесса отмирания IE6 MS был запущен сайт ]]>The Internet Explorer 6 Countdown]]>.

"Поймай мышку" - простенькая игрушка на Java Script

Игрушка поймай мышкуЗнакомый подсказал идею игрушки для ребенка для точскрина - накидал за пару серий "V" следующую игрушку для своей дочурки (игрушку ей давай поиграть на своём Samsing Spica, к сожалению, игра её не особе впечатлила, больше ей до сих пор нравится нажимать на аппаратные кнопки чем на экранные :) ):

Почему следует отказаться от поддержки IE6

Не так давно пришлось аргументированно отказаться от поддержки IE6 в одном проекте, привожу документ, который спас наш мозг от мук адаптации проекта к "нормальной" работе в IE6, может кому ещё пригодится.

Аргументы против Microsoft Internet Explorer 6 (IE 6)

Перенаправление HTTP запросов с эмулятора Android на локальный компьютер

Занимаясь разработкой сетевых игр под Android столкнулся с такой проблемой - эмулятор андройда ни как не хочет воспринимать hosts локального компьютера, то есть, к примеру, перенаправить запросы с эмулятора на домен example.com на свой локальный web-сервер не получается через hosts-файл.
В интернете находил несколько вариантов решения проблемы: прописать переназначение адреса в hosts файл эмулятора, поменять записи в базе данных эмулятора через шел и т.п. Все испробованные варианты не приводили ни к чему - программа в эмуляторе упорно лезла в интернет (по-правде говоря, некторые из способов срабатывали, но только для Android-браузера, что меня ни как не устраивало).

Небольшая игрушка для маленьких детей под Android

Вчера дал дочке, которой недавно исполнился годик, свой телефон Samsung Spica i5700 (нууу, как дал - забрала сама из рук, пока я по скайпу перписывался :)) и дочунька начала с таким интузиазмом шлёпать по виртуальным кнопкам, что мне пришла мысль совместить приятное с полезным и написать "игрушку" следующего вида: на экране показываем изображения зверей, а при нажатии на картингку проигрывается соотвествующий звук - то есть собака лает, кошка мяукает и т.п.
Скачал нужные звуки, нашел книгу "Домашние животные в картинках" в PDF формате (спасибо авторам за хороший материал :)), объеденил всё это в андройд программу и получилась простенькая игрушка для маленького ребенка следующего вида:home_animals.png

Фильтр для внешних и внутренних ссылок в Яндекс.Вебмастер

В Яндекс.Вебмастер сегодня заметил новую фичу: на страницах внешних и внутренних ссылок появился фильтр - теперь можно посмотреть проиндексированные ссылки за весь период, за последние 2 недели, за последнюю неделю:
yandex-filter-backlinks.png

Долгожданный релиз Zend Server 5

prodcut-ZendServer-5.jpg
Примерно месяц назад состоялся релиз Zend Server 5. Пользовался ещё Zend Server 5 beta версией - установка и настройка сервера проходит на раз. Установщик позволяет установить по желанию помимо связки Apache и PHP 5.3 Zend Framework, сервер MySQL 5 и программу phpMyAdmin (при наличии подключения к Интеренет). Огорчало удовольствие от пользования сервером то что ошибку 404 сервер выдавал пустым экраном, из-за того что php работал в режиме CGI, да ещё временами на тяжелых сайтах собранных на Drupal 6 CGI вываливался и сервер выдавал ошибку 500.
Сегодня обновился до релиза Zend Server 5 - сказка - страница ошибки 404 выдаётся нормально самим сайтом, отладка работает на ура, пока ни одной ошибки 500.
Но везде есть место небольшой гадости :) После обновления до релиза PHP установился 5.3 а с ним пришли сообщения о deprecated вызовах:

  1. Function ereg() is deprecated in C:\www\ncludes\file.inc on line 895.

Ижевск - бермудский треугольник для Яндекс.Телепрограмма

Второй раз путает меня расписание передач на Яндекс.Телепрограмма. А дело вот в чем.
При открытии страницы Яндекс автоматически определяет регион и город пользователя и показывает программу с соответствующим смещением относительно Москвы. Удобно и приятно. Но, только если новое время вычисляется правильно.
Свежий пример. КВН 7 февраля. По Москве он должен начаться в 18-30:

Яндекс.Телепрограмма

ROR: Ошибка при выполнении db:migrate

При запуске последней миграции в RoR под Windows может возникать следующая ошибка:

  1. C:\test>rake db:migrate
  2. (]]>in]]> C:/test)
  3. rake aborted!
  4. No migration with version
  5. number 2
  6. (See full trace by running task with --trace)

Номер версии в сообщении об ошибке может отличаться от 2. Эта ошибка может появляться даже при запуске миграции в свежесозданном проекте, в котором ни какой версии миграции выше 0 быть не может. Вся проблема оказывается в том что в переменную среды VERSION, если она не указана явно при выполнении rake db:migrate записывается какое-то значение. Посмотреть это можно, добавив в файл environment.rb строку puts ENV['VERSION'] и запустив миграции без указания версии.

До Нового Года... -6 дней

Похоже новый год удался на славу у вебмастеров сайта ]]>http://geo-tur.ru/]]> - они уже новый год "назад в будущее" отсчитывают:

Всех с наступившим Новым Годом!

Ну, и пока не забыл, с приближающимся старым Новым Годом :)

Букмарклет для SAPE

Написал маленький букмарклет для системы ]]>SAPE ]]>(для раздела Веб-мастеру) может кому пригодится. На странице Заявки и на странице Ссылки позволяет октрыть все страницы сайтов, размещающих у Вас свои свои ссылки.

Апдейт Яндекс.тИЦ 24 декабря

]]>Яндекс цитирования]]>

Вот и подарок мне на ДР от Яндекса. Сегодня после апа тИЦ мой блог (без купленных ссылок и особой раскрутки) получил 10 тИЦ. При том что баклинков всего 19 честно полученных комментированием статей и написанием пары своих.