Блог Бустер

усилитель блогов

Что это?

Каталог блогов + каталог RSS + рейтинг блогов + комментарии - все это Блог Бустер.

Blog Booster увеличивает силу вашего блога, его видимость в интернет и добавляет вам новых читателей, в том числе с помощью функции Booster (в правом сайдбаре).


rss


  • Деградация OLED дисплея. - 21-08-2017

    Примерно, через полгода постоянной работы:
    Пример деградации OLED дисплея
    Arduino OLED 0,96'' Display
    Сейчас такой дисплей можно купить на Али в пределах 150 руб. Ищется, как "Arduino I2C OLED 0,96'' Display".
    Отличный дисплей, полно готовых рабочих библиотек.

    Но, очень быстро деградирует.
    На фото дисплей в режиме "все пиксели активны". Как видите, часть пикселей, которые отображали надписи, частично "выгорели".
    Их попрежнему хорошо видно, но разница с менее используемыми пикселями заметна.

    Итог: данный дисплей не подходит для постоянного отображения информации. 

  • GWT + GAE - долгожданное продолжение. - 28-11-2014
    Пять лет назад я написал пост - Google Web Toolkit - GWT, введение.
    Продолжения так и не было, о чем ехидно стали замечать комментаторы.

    GWT очень бурно развивается с первых своих версий. В начале было сложно с документацией, не было такого обширного комьюнити.

    Но, сейчас ситуация в корне изменилась - полно великолепной документации на сайте проекта - http://www.gwtproject.org/doc/latest/DevGuide.html

    Согласен, не всем удобно на английском. Но! Уже, даже, есть и книги на русском, например:

    Разработка RIA-приложение с Google Web Toolkit 2, Машнин Тимур Сергеевич, БХВ-Петербург.

    Что ещё надо? Просто, глупо перепечатывать тут то, что сейчас и так стало доступно?


    Большинство проблем со стартом в ГВТ - не достаточное знание JavaEE и WEB-технологий. 
    Нужен базис по сервлет-контейнерам и сервлетам и тогда будет достаточно одной это картинки для понимания ГВТ:
    Главное - понять, что останется на Java и будет выполняться на сервере, а что будет скомпилировано в Java Script и соответственно будет выполняться в браузере.
      


  • Сжог Ардуину - 20-08-2014
    Пришёл бредборд c модулем питания:

    YwRobot BreadBoard Power Sapply MB-v2 (MB102)

    Всё работало отлично пока использовал 7,5В блок питания. Напряжение, как-то и не задумался проверить на выходах модуля (+5В и 3,3В). Всё отлично работало...

    На следующий день запитал модуль уже от 9В "Кроны" и из Ардуиновской 328-й Атмеги повалил дым :(

    Оказалось, что 5-ти вольтовый стабилизатор на модуле питания был не годным и пропускал всё напряжение на входе дальше. А атмега отлично держит 7В по питанию.

    Вот схемка модуля с Easyelectronics.ru:


    Пришлось его заменить:
    за одно и по мощнее поставил.

    Обязательно проверяйте компоненты перед использованием!




  • RFID-RC522 pinout. SPI, I2C, Serial connection - 24-07-2014

    MFRC522 chip RFID module pinout. (full image link, PNG ~600KB)

    For Arduino connection use:

     * Pin layout should be as follows:
    * Signal Pin Pin Pin
    * Arduino Uno Arduino Mega MFRC522 board
    * ------------------------------------------------------------
    * Reset 9 5 RST
    * SPI SS 10 53 SS
    * SPI MOSI 11 51 MOSI
    * SPI MISO 12 50 MISO
    * SPI SCK 13 52 SCK

    First, you need to download  MFRC522 - Library

  • Драйвера на чип CY7C63723 - 26-09-2013

    Где скачать драйвера на устройство с чипом CY7C63723C? Нигде!

    Достался мне IR-USB приемник от DVB-карты, решил поиграться, но не тут то было.



    Оказывается, что CY7C63723C - это универсальный контроллер для разработки USB-приложений, соответственно драйвера на него будут зависеть от того, какую прошивку в него залили разработчики девайса. Следовательно универсального драйвера нет.

    Мой IR-приемник винда, например, определила, как HID клавиатуру. Поэтому, ищите оригинальные драйвера производителя вашего устройства.

    А вообще на этом микроконтроллере выпускают кучу всякого USB-ширпотреба. От мышек до ИК-приемников. Кстати, довольно интересный чип за те копейки, что стоит. Но это уже совсем другая история




  • Фрейморки, ЗА и ПРОТИВ - 14-05-2013

    ЗА
    - "Фреймворки позволяют разрабатывать серьезные проекты концентрируясь на бизнес-логике не отвлекаться на рутину...", "Фреймворки все делают сами...", "Фрейморки должен знать каждый профессионал..."

    ПРОТИВ
    - "Фреймворки ужасно толстые, тормозят, тащут кучу зависимостей...", "Фреймворки сложны для изучения...", "Фреймворки для тупых школьников..."

    Холивар бесконечный, ещё много будет сказано в защиту каждой из сторон.

    МОЙ КОММЕНТ
    - "Фрейморки не увеличивают производительность ПО, они увеличивают производительность разработчика."

    Когда, вам важны сроки разработки, когда производительность не так важна - то фреймворки отличный инструмент.
    Пока вы будете выдрачивать свой код без фреймворков, говнокодеры сделают прототип и покажут инвестору. Вам останется только сидеть недовольными на форумах и ругать криворукую школоту в своих неудачах.

    Но, когда у вас уже все в продакшене, то скорее всего, обнаружиться куча узких мест в производительности. И вот уже тут без "напильника" и выдрачивания не обойтись, если у вас конечно не бесконечный бюджет на железо ;)


    З.Ы.:
    Спелчекер Хрома считает, что более корректно употреблять "орехотворки", чем "фреймворки":



  • JSObject problem in IE - 17-02-2013
    При доступе к JS и DOM, с помощью LiveConnect (netsape), во всеми любимом IE получалось следующие:

    netscape.javascript.JSException: Failure to evaluate [your_JS_code]
    at sun.plugin2.main.client.MessagePassingJSObject.newJSException(Unknown Source)
    at sun.plugin2.main.client.MessagePassingJSObject.waitForReply(Unknown Source)
    at sun.plugin2.main.client.MessagePassingJSObject.eval(Unknown Source)
    at su.mamaev.applets.Spy.TestApplet.doJS(TestApplet.java:30)
    at su.mamaev.applets.Spy.TestApplet.start(TestApplet.java:26)
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.start(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    Исходный код апплета, порождающий ошибку:

    import netscape.javascript.JSObject;

    JSObject win = (JSObject) JSObject.getWindow(this);
    win.eval([your_JS_code]);

    Причем, во всех остальных браузерах все работает отлично.

    Выход - не используете localhost при отладке апплетов в IE!

  • Joomla - Опубликовано, но приостановлено - 01-04-2012
    Что поделать, но иногда приходиться связываться с джумлой. И вот очередной сюрприз:
    Все материалы перешли в статус "Опубликовано, но приостановлено":

    Джумла тут не причем, можно не пытаться копаться в настройках.
    Всё просто - не правильно установлена системная дата. Получатся, что текущее время меньше даты создания документа.

    У меня такое произошло, после сброса биоса, естественно денвер попал сразу в 2002 год, а материалы созданы в 2012.

    UPD

    Тут многие "знатоки" в комментах рекомендуют менять дату создания самого документа. Это безусловно решит проблему. Но! Если документ - это новость, или любая другая публикация привязанная к дате?!

    Иначе получится, что дата создания новости предшествует самому событию, о котором идет повествование.

  • Установка iBank2 на Windows 7 i86/x64 - 07-04-2011
    Столкнулся с тем, что клиент-банк на системе iBank2 не запускался на Windows 7.
    Итак, как установить iBank2 на Windows 7 (i86/x64)?

    В Виндовс 7 в целях безопасности ограничен доступ к системному диску (тот, на которой установлена система, обычно "Ц"). А АйБанк2 написан на Java, следовательно не является обычным исполняемым файлом. Запускается виртуальная машина джава, которая не может получить доступ к файлам установки клиент-банка.
    Выход - устанавливаем iBank2 на не! системный раздел (я вообще его на флешку поставил).

    Теперь, если у вас 64-х разрядная ОС, то надо немного подправить ярлык запуска:
    "Свойства ярлыка" - Вкладка "Ярлык" - "Объект" - "C:\Windows\System32\javaw.exe -Xmx256M -cp launcher.jar com.bifit.launcher.Launcher" меняем на "C:\Windows\SysWOW64\javaw.exe -Xmx256M -cp launcher.jar com.bifit.launcher.Launcher".


    Установщик, пока не умеет отличать разрядность ОС и создаёт ярлыки только для 32-х разрядной системы. Не пробовал, но думаю, что в 64-х разрядном линуксе редактирование лаунчера тоже поможет.
      

  • Wi-Fi DX-линки, выбираем путь решения и оцениваем возможность в конкретных условиях - 11-01-2011
    Цель: Создание беспроводного канала передачи данных на расстояние до 20км., со скоростью от 1-го мегабита, с бюджетом не более 500-та долларов.

    Есть специальное профессионально оборудования для дальних беспроводных линков, с которым легко поднять стабильный радиоканал на сотню километров. Естественно, цена не позволяет уложится в пятьсот баксов (в тысячу тоже не получится). Конечно, если канал будет приносить прибыль – то это более правильный вариант реализации.

    Второй вариант – доработать офисно-домашнее (т.н. SOHO сектор) Wi-Fi оборудование. Благо, у такого оборудование есть определенный незадействованный потенциал. Можно почитать, почему офисные точки доступа не работают на большом расстоянии. Задействовав этот потенциал, можно реализовать канал связи на не дорогом оборудовании – т.е. вполне можно уложиться в пятьсот баксов.  

    Второй вариант удовлетворяет поставленной цели. Теперь необходимо оценить реальную ситуацию – возможна ли вообще надежная связь в конкретно наших условиях. Разберем подробно следующие факторы:

    1. Видимость. Трасса должна быть максимально открытой. Лучший вариант, когда обе точки видны друг другу – прямая видимость, но на деле так бывает редко. На дерево или деревянный сарай можно забить, но тоже без излишней оптимистичности. Для связи сквозь городскую застройку или сложный ландшафт нужен определённый опыт и навыки, без них проект обречен на провал.
    2. Состояние эфира. Рабочая частота должна быть свободна. Если на ней работают другие устройства (не обязательно вай-фай), то надежный линк будет невозможен. Чем больше других точек доступа работают поблизости, тем больше они будут нам мешать. Если нет свободных каналов (и нет гарантии, что вскоре не будут заняты и свободные), то сразу надо подумать об уходе на нестандартные частоты или повышении мощности с помощью усилителя (от 70 баксов).
    3. Возможность монтажа оборудования. Для дальних wi-fi линков используются уличные направленные антенны. Идеально, когда антенна сразу же подключается к точке доступа, иначе будут большие потери сигнала в антенном кабеле. Два метра кабеля – это уже очень много! В общем, так: антенна на крыше, рядом точка доступа в герметичном боксе, к точке доступа подходит питание и сеть.   
    4. Бдительность местного радиочастотного центра. Да, да, именно эти ребята могут испортить любой «несанкционированный» линк (а он именно такой). Они кстати, и должны следить, чтобы всякие вай-фаи и не работали на расстояниях больше сотни метров. А попытки увеличения мощности и размещения антенн они любят пресекать различными штрафами и демонтажем оборудования.

    Если эти факторы позволяют, то ждем следующий топик в моем блоге.


  • Пасхалка в Google Earth - чат с марсианкой Meliza - 11-01-2011
    Google предлагает пообщаться в чате с пользователем Meliza, который залогинился с другой планеты.
    Ставим Google Earth и на Марс.

    Открываем Google Earth и переходим в режим исследования Марса. В поиске вводим Meliza и попадаем к известному "лицу на Марсе". А рядом будет иконка робота, которая и открывает чат:



    Meliza - родственник с Марса известного чат-бота Элизы.

    Гугле предупреждает, что Мелиза инопланетянка, и поэтому у нее могут быть проблемы с пониманием Землян "Meliza is using an account on a different planet. There may be translation errors".

    Так же, напоминаю, что Ctrl+Alt+A активирует режим флайт-симулятора в Google Earth, который прекрасно работает и на Марсе.

  • Дальние беспроводные линки. Предисловие. - 10-01-2011
    Начинаю этот год с цикла топиков по беспроводным сетям.

    Первая тема.
    Подъем беспроводных мостов на большие расстояния.

    Часто приходиться сталкиваться с такими вопросами:
    • Как провести интернет в загородный дом.
    • Как объединить несколько удаленных филиалов в одну сеть.
    • Как поднять беспроводное соединение на большое расстояние. 
    Все эти вопросы требуют создания беспроводной сети передачи данных на расстояния много большие, чем штатные вай-фай устройства. 

    Теперь, по порядку начинаем разбираться(список будет увеличиваться по мере написания топиков):



  • ИГРА ЭЛЕКТРОННАЯ МИКРОПРОЦЕССОРНАЯ «ЭЛЕКТРОНИКА» ИМ-02 «НУ, ПОГОДИ» - 11-11-2010
    На днях ко мне в руки попал этот девайс. Причем в идеальном состоянии, как говорится «в коробочке», с прилагающейся инструкцией.
    Игры серии «Электроника» — линейка советских портативных игровых устройств с жидкокристаллическим экраном. Индекс «ИМ» означал – игра микропроцессорная.
    Девайс собирали с 1984 года под общей торговой маркой «Электроника» во многих предприятиях Советского Союза. Например, этот был собран на «Северодонецком Приборостроительном Заводе» (г. Северодонецк, Украина).
    В большинстве игры этого семейства являлись точными копиями и вариациями электронных игрушек Game & Watch серии «Wide Screen», выпущенной компанией Nintendo в 1981—1982 годах (EGG, Octopus, Mickey Mouse, Chef и другие).
    Большим бонусом было и то, что в игру были встроены часы с будильником, а специальная выдвижная подставка позволяла игре стоять вертикально.
    Представляю некоторые выдержки из инструкции.

    Игра «ЭЛЕКТРОНИКА» ИМ является современной электронной игрой и предназначена для детей от 6 до 17 лет. Она позволяет развить внимание, реакцию и память ребенка.
    Смысл игры заключается в том, чтобы, управляя с помощью клавиш перемещением волка, поймать в корзину как можно больше яиц и таким образом набрать наибольшее количество очков. После каждого пойманного яйца счет возрастает на одно очко. Счет игры отображается на цифровом табло, расположенном в правом верхнем углу индикатора. Максимально достижимое количество очков 999. Если яйцо не поймать в корзину, оно упадет и разобьется. В этом случае играющий получает штрафное очко. Штрафные очки изображаются в виде цыплят и располагаются под цифровым табло. Если яйцо разбивается при появлении зайца в левом верхнем углу индикатора, то игроку назначается пол штрафного очка (изображение цыпленка под цифровым табло мигает).
    В случае последующих неудач очки суммируются, с учетом предыдущих ошибок. При получении трех полных штрафных очков игра заканчивается.
    Если счет игры достигает 200 или 500, полученные до этого штрафные очки исчезают, о чем оповещает звуковой сигнал.
    Предусмотрены два варианта игры: А и Б. Отличие их заключается в следующем: при игре А яйца одновременно скатываются с трех лотков, при игре Б - с четырех.
    Игру можно использовать и как часы-будильник. В режиме часов на цифровом табло индикатора отображается текущее время в часах (от 1 до 12) и минутах (от 00 до 59), с указанием времени суток (ДП - до полудня, ПП - после полудня). В установленное время подается звуковой сигнал. Продолжительность подачи сигнала одна минута.

    Продолжительность работы от одного комплекта элементов питания в режиме часов, при 2-х часах игры в день, и одном срабатывании сигнала будильника в сутки, составляет не менее 6-ти месяцев.

    Содержание драгоценных металлов:
    Золото – 0,002626г.
    Серебро – 0,000103г.

    Ну, и как же не заглянуть внутрь.

    Если присмотреться, то на микропроцессоре виден слой эпоксидной смолы, который явно выглядит не родным:
    Я не стал его трогать, так что не знаю, что под ним. Как, предположение – слой скрывает оригинальные реквизиты микропроцессора. Есть даже легенда, что Союз был не в состоянии сам произвести такой микроконтроллер и закупал его за границей.

    Формат представления времени тоже заставляет задуматься о «не советском» происхождении чипа. Время отображается в привычном для запада 12-ти часовом виде с указанием «ДП» и «ПП» («до полудня» и «после полудня»). В Союзе же повсеместно применялся 24-х часовой формат.

    На самом деле игра выполнена на микроконтроллере серии КБ1013ВКх-х. Отличительной особенность было двухуровневое напряжение питания – 1,5В и 3В, что обеспечивалось использованием двух отдельных элементов питания. Эту особенность хорошо видно ниже на фотографиях печатной платы.

    А вот корпус, и печатная плата, и остальные элементы, и сборка – на 100% отечественные, даже комментировать нечего:

    ЖК-дисплей тоже наш, просто все сегменты заменены с «Микки-Мауса» на «Ну, погоди!», и соответственно «A.M.» и «P.M.», на «ДП» и «ПП»:
    Кстати, ЖК-дисплей способен отображать только эти сегменты и ничего более, так что ему просто нечем отображать мультик (известная легенда) после набора 999-ти очков. А после достижения 999-ти очков игра продолжалась с 0-ля с повышенной скоростью.

    Девайс действительно культовый для своего времени. За ним были очереди, его было трудно достать. Любой «продвинутый» советский гражданин желал заполучить столь модную высокотехнологичную вещь (а ведь такого практически не было в Союзе, только очень дефицитное импортное). А цена была довольно высокой. Поэтому детям приходилось хорошо себя вести, а многим ещё и заниматься огородно-дачно-хозяйственными работами.
    И как же мы все были счастливы, когда наконец-таки заполучали этот девайс. Ведь он был совершенен.

    Инструкция по эксплуатации 2.945.076-01 РЭ


    Небольшое дополнение на основе вопросов в комментариях:
    У многих возникают проблемы с экраном - не показывает часть сегментов.
    Как правило, это происходит из-за старения "резиночек", соединяющих сам экран с контактными площадками на печатной плате.

    Лучший вариант - это замена этих самых "резиночек". Правильно называется - "анизотропная токопроводящая резина". В интернете не сложно найти подходящих размеров.
    Как, вариант, по похожему запросу можно найти варианты её восстановления, часто помогает.





  • Несколько SEO-соображений, или на сколько умен Google - 22-09-2010
    Относительно поисковой оптимизации у меня простой подход - можно и нужно пользоваться только "белыми" методами. Все "черные" и "серые" методы рано или поздно приводят к бану, поэтому от таких методов польза только оптимизатору, который за это взял деньги.

    Недавно работал над одним проектом (ссылку не дам). Куча флеша, куча скриптов, куча картинок - для посетителя вполне интересный ресурс получился. Т.е. сайт для человека. А для поисковиков толком ничего нет. Конечно, есть куча рекомендаций и способов, как быть с такими сайтами, но текста было маловато.

    Тут пришла идея "черного" дорвея. Что, если различать посетителей-людей и посетителей-ботов, и отдавать им разный контент. Отличить браузер от поисковых ботов легко по заголовкам запроса. На первый взгляд схема идеальна. Если ты обычный браузер - получи сайт "как есть", а если робот, то - получи "многабукаф", в соответствии с сеошными гайдлайнами.

    От идеи пришлось отказаться, по следующим соображениям. Поисковые гиганты вроде Google легко распознаю такую схему, если их роботы будут выдавать себя за обычный браузер и сравнивать результаты с теми, что они получают представляясь самими-собой.

    Может я и ошибаюсь, но по моему поисковые машины посещают сайты под видом обычных браузеров - это хороший способ вычислять различные "серые" схемы продвижения.

    В разделе рекомендаций для веб-мастеров в Google, есть рекомендация использовать контрастные стили для текста, что-бы человек всегда мог заметить и прочитать такой текст. Т.е. Google оценивает то, как выглядит страница в браузере. И если у вас много текста сливающегося с фоном, то это будет расценено, как поисковый спам. (Ведь, явно это сделано не для человеческого восприятия).

    Теперь вторая идея. Что если вообще всем посетителям отдавать "многабукаф". Робот ничего не заподозрит, кем бы он не представился. А в обычном браузере это все превращать в "человеческую" страницу с помощью скриптов.

    Может это уже и паранойя, но я думаю, что поисковики вполне могут и анализировать скрипты на странице. Поэтому идея тоже под вопросом.

    Пока вывод такой: "Нельзя скармливать разный контент ботам и браузерам, и нельзя менять до не узнаваемости контент динамически на стороне клиента - это даcт повод для сомнений поисковикам".

  • iStat - Удалённый мониторинг системы для iPhone - 13-07-2010
    iStat - утилита для iPhone, iPodTouch позволяющая удалённо просматривать статистику, собираемую демоном istatd. На деле выглядит так:


    Демон istatd запускается на Solaris, FreeBSD, Linux или MacOS и собирает статистику.
    На данный момент возможен мониторинг следующих параметров:

    • аптайм.
    • загрузка системы.
    • загрузка процессора.
    • статистика загрузки памяти.
    • объем свопа.
    • загрузка дисков.
    • статистика сети (пока только одного интерфейса).
    Istatd "отдает" статистику в удобном xml формате. А утилита iStat просто удалённо получает все данные и визуализирует их.

    Попробуем?!
    • Качаем istatd.
    • configure, make, make install
    • редактируем istat.conf
    • запускаем
    Теперь istatd слушает указанный в конфиге порт, и готов отдавать статистику.


    Можно попробовать и консольного клиента:
    Скачиваем простой код клинта для istatd.
    Собираем:
    gcc -o istatd_client istatd_client.c -lsocket -lnsl
    Запускаем:
    /istatd_client XX.XXX.XX.X 5109 12345

    Istatd на данный мент явно не готов для "боевых" условий - нет шифрования, и слишком мало статистики, которую и так легко получить в консоли.  

    Данный пост подготовлен на основе статьи Александра Еремина о iStat.

  • Позвольте представить: Code Publication Utility for SyntaxHighlighter by Alex Gorbatchev - 14-06-2010
    В продолжение о подсветки синтаксиса исходных кодов.
    На этот раз представляю свою он-лайн утилиту «Code Publication Utility for SyntaxHighlighter by Alex Gorbatchev».
    Из названия и так всё понятно. Утилита позволяет подготавливать листинги к подсветке с помощью библиотеки Алекса Горбачева.

    Всё предельно просто, всего пять шагов:

    • Вставляем и/или редактируем свой код «как есть».
    • Выбираем «кисть» - язык.
    • Нажимаем «Highlight» («Подсветить»).
    • Смотрим что получилось.
    • Копируем готовый блок pre на страницу с установленной библиотекой.
    • Бонус. В это превращает библиотека Ваш блок. Можно использовать как статическую подсветку, без использования JavaScript.
    Основные фичи на данный момент:

    • Автоматическая замена спецсимволов опасных для HTML-синтаксиса на эскейп-последовательности.  (на данный момент заменяются: амперсанд, угловые скобки, кавычки).
    • Автоматическая генерация блока pre
      с выбранной кистью, а скоро будет возможность делать дополнительные настройки блока.
    • Предпросмотр позволяет увидеть готовый результат. Легко выставить табуляции и переносы строк, как хочется.

    To-Do:

    • Возможность делать все возможные настройки для блока кода.
    • Возможность конфигурации всей библиотеки для установки.

    Планирую уделить внимание развитию этой утилиты. Поэтому пробуйте, оценивайте, присылайте замечания и пожелания.


  • Лажа в коде, задача с призом - 03-06-2010
    Понадобилась простенькая функция для замены угловых скобок, кавычек и амперсанда на их эскейп-последовательности. Получился "4-х проходный" реплейс:
    private String GetEscape(String inString)
    {
    return inString.replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("&", "&amp;");
    }
    Но со своей задачей он превосходно не справился.
    Мелочь, а времени убил достаточно, в последнюю очередь начал искать косяк именно в этом методе.

    Предлагаю Вам решить эту задачку.

  • Подсветка синтаксиса на Blogger.com - 17-05-2010
    Многие блоги посвящены программированию и поэтому приходится выкладывать много исходников. Для удобства восприятия, листинги форматируют - подсвечивают синтаксис. К сожалению на блогспоте возможности очень ограниченны, что сильно сокращает выбор таких инструментов.

    Для подсветки синтаксиса на блогспоте можно использовать JavaScript библиотеку "SyntaxHighlighter by Alex Gorbatchev". Библиотека не требует размещения непосредственно на сайте и не используется на стороне сервера. Что как раз и нужно на блогспоте. После знакомства с библиотекой SyntaxHighlighter можно интегрировать ее с Вашим блогом.
    Внимание! Перед внесением изменений в шаблон обязательно сохраните резервную копию!
    В шаблоне в секцию <head>...</head> добавляем импорт библиотеки:

    <head>
    . . .

    <script type="text/javascript" src="SH_HOME/scripts/shCore.js"></script>
    <script type="text/javascript" src="SH_HOME/scripts/shBrushJScript.js"></script>

    <link type="text/css" rel="Stylesheet" href="SH_HOME/styles/shCore.css"/>
    <link type="text/css" rel="Stylesheet" href="SH_HOME/styles/shThemeDefault.css"/>

    <script type="text/javascript">
    SyntaxHighlighter.config.clipboardSwf = 'SH_HOME/scripts/clipboard.swf';
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all()
    </script>

    . . .
    </head>

    SH_HOME - это путь к библиотеке. Если Вы будете ее использовать с сайта проекта, то путь будет таким: "http://alexgorbatchev.com/pub/sh/версия_библиотеки/" (на момент публикации данной статьи, последняя версия: 2.1.364). Обязательно включаем опцию "bloggerMode = true" (12-я строка) - это как раз поддержка для движка Blogger.com. Сохраняем шаблон, с ним закончили.
    Как подсвечивать?
    Для этого помещаем листинг внутри тега <pre>, в редакторе сообщений в режиме <Изменить HTML>:
    <pre class="brush: java">
    /**
    * Hello World! on Java
    */
    public void SayHello()
    {
    if (counter &lt;= 10)
    System.out.println("Hello World!"); //some comments
    }
    </pre>

    Должно получиться вот так:

    /**
    * Hello World! on Java
    */
    public void SayHello()
    {
    if (counter <= 10)
    System.out.println("Hello World!"); //some comments
    }
    Не забываем, заменять символ "<" на его код "&lt", и так придётся со всеми спецсимволами. Неудобно, но есть куча утилит которые легко с этим справляются. Либо вначале редактируем листинг в режиме "текст" а уже потом в режиме "html", тогда редактор сам заменит, но придётся вычищать оставленные им теги.
    Теперь у Вас в блоге будут красиво подсвеченные листинги. Читатели обязательно оценят это.

  • SEO на Blogspot 'е или почему нет keywords и description. - 17-05-2010
    Часто встречаю обсуждения того, какой же блогспот ужасный движок в плане поисковой оптимизации. Нет ни метатегов для отдельных статей. Что-бы навести порядок с заголовками - нужно добавлять в шаблон различные хаки. Если Blogger.com принадлежит Google, так по чему же всё так плохо с оптимизацией?

    На самом деле нет никаких проблем. Google уже давно не обращает внимания на ключевые слова и описание в метатегах. Именно поэтому всего этого и нет на блогспоте.
    Keywords и description - это прошлое для Google.

    Теперь (давно пора) самое важное - это содержание. Поисковики, которые не умеют оценивать содержание не имеют будущего.

    А вот ссылки по прежнему важны, и им надо уделять самое большое внимание.
    Именно ссылки должны давать информацию о содержании, а не мета-описания. Т.е. ссылка обязательно должна раскрывать суть того документа, на который она указывает.
    "Здесь", "тут", "посмотреть" ... - таких ссылок не должно быть. На пример, если вы захотите узнать о том как установить Linux на виртуальную машину, то такая ссылка Вам и поисковикам будет очень полезна.

    Так что пора делать сайты и контент ориентированный исключительно на человеческое восприятие. Google точно не оценит захламление ключевыми словами. Зато вполне реально, что сможет оценить смысл и качество содержания.
    А ещё ссылки, ссылки, ссылки... чем больше - тем лучше :)

  • Два подхода в IT. Админ vs Программист - 30-09-2009
    Сделал довольно интересное замечание недавно. Все программисты немного и системные администраторы. Так же и все админы немного программисты. Все конечно по своему. Есть и отличные специалисты способные одновременно быть и хорошим программистом и хорошим админом. Но вот у большинства можно выделить два типа мышления - админский, и программистский. Причём, админ может рассуждать как программист, и соответственно наоборот. К ничему хорошему это, как правило, не приводит. Всё заканчивается осаждением форумов всякими глупыми вопросами с надуманными проблемами.

    Админ - живёт по принципу "Всё уже давно написано, осталось только настроить." Админ готов потратить кучу времени что-бы написать свой конфиг. Готов установить кучу софта, провозиться с кучей настроек ради одной маленькой функции. Ради которой можно было-бы написать и свою программу из пару десятков строк. Но админ ради этого поднимет отдельный сервер с нетривиальными настройками. И это не потому что не может писать сам, а потому что у него менталитет админа.

    Программист - живёт по принципу "Чем разбираться в чужом(кривом) софте, лучше написать самому всё с начала, причём с "блек-джеком и шлюхами"". Программисты упорно не хотят разбираться в админских способах решения задачи. Поэтому, чем научиться конфигурить элементарные вещи, готовы писать тонны кода. Так рождаются велосипеды :) (Как правило, на которых нельзя кататься, даже самому). Начинающие программисты с удовольствием берутся писать свои прокси-серверы, веб-серверы, *-серверы... При этом уверенны на 100%, что всё давно написанное и проверенное миллионами, ужасно кривое, и не имеет нужной функциональности. Кстати, потребность к нетривиальной функциональности у программиста возникает лавинообразно из-за не достаточных админских знаний или не желания рассуждать по админски.

    З.Ы. Хороший специалист, хорошо разбирающийся в администрирование и имеющий опыт программирования, вообще не увидит проблемы там, где её видят программист и админ по отдельности.

  • Выделение кода листингов - SyntaxHihglighter - 30-08-2009
    Для этого можно воспользоваться проектом SyntaxHihglighter. SyntaxHihglighter можно использовать без установки на свой сайт. При этом все необходимые JavaScript и CSS файлы будут загружаться с сайта самого проекта. Что и необходимо для моего блога. Не буду повторяться с описанием, просто приведу пример, куска кода на Java, подсвеченного с помощью SyntaxHihglighter:
    private static long Cicle(long end){
    long result = 0;
    for(long i=0; i<end+1)
    {
    result = result + i;
    }
    return result;
    }

    Подробнее о подсветке синтаксиса на блогспоте

  • Как подключить домашнюю сеть к Интернет - 25-07-2009
    Эта стаья поможет (на это надеюсь) Вам разобраться в таких вопросах как:
    • Как подключить домашнюю сеть к Интернет.
    • Как подключить несколько компьютеров к Интернет.
    • Как подключит виртуальный компьютер VirtualBox к Интернет.
    Что бы любой компьютер (и виртуальный тоже) нашей домашней сети, имел доступ в Интернет, необходим DNS-сервер и маршрутизатор для этой сети.
    DNS-сервер будет транслировать доменные имена в реальные IP адреса. А маршрутизатор будет пересылать пакеты из нашей сети во внешнюю сеть – Интернет.
    DNS сервер и маршрутизатор предоставляет сам провайдер Интернета, но они находятся в самой сети провайдера, к которой мы сами не можем подключить ещё один компьютер. В таких случаях провайдер просто предлагает заключить ещё один договор.
    Что бы не заключать второй договор, а использовать одно подключение на все компьютеры домашней сети достаточно иметь свой собственный маршрутизатор.
    Маршрутизатор будет иметь два сетевых интерфейса – один подключённый к сети провайдера, второй к нашей домашней сети. Таким образом, провайдер будет видеть только наш маршрутизатор, а структура нашей сети для него будет закрытой.

    Итак, нам нужен маршрутизатор. Можно взять готовое устройство, их, как правило, называют «роутером». Или взять компьютер и настроить все необходимые службы на нём. Готовый роутер хорош тем, что очень лёгок в настройке и стоит намного дешевле отдельного компьютера. Для домашней сети идеальный вариант.
    Конечно, для серьёзной сети роутера будет недостаточно, не хватит производительности и гибкости конфигурации и настроек. В таких случаях необходим отдельный сервер. О том, как поднять такой сервер на Linux / Unix, я напишу попозже.

    А пока рассмотрим схему на готовом роутере:

    У нас есть своя домашняя сеть – 192.168.1.0/255.255.255.0
    Свой роутер – 192.168.1.1, который выступает DNS-сервером и маршрутизатором для нашей сети.
    Параметры Интернета, которые дал провайдер, настраиваются внутри роутера.
    Они будут зависеть от провайдера и типа подключения, с ними проблем не должно быть.
    А у всех компьютеров нашей сети они будут одинаковыми:
    • IP адрес - 192.168.1.2-254
    • Маска подсети – 255.255.255.0
    • DNS – 192.168.1.1
    • Шлюз, роутер – 192.168.1.1
    Можно и не настраивать у всех компьютеров параметры вручную, почти все роутеры имеют DHCP сервер.

    Роутеры, как правило, имеют WEB-интерфейс управления. Нюансы зависят от модели, поэтому надо ознакомиться с документацией к своему роутеру. На практике же всё интуитивно понятно.

    Теперь очень часто встречающийся вариант. Как подключить один компьютер к Интернету через другой без роутера. Один компьютер подключён к Интернету и напрямую подключён ко второму компьютеру. Как дать Инету второму компу?


    Этот вариант будет работать и для большего числа компьютеров. В таком случае надо соединить компьютеры не напрямую, а через свитч.

    В WindowsXP уже есть возможность совместно использовать одно подключение к Интернет. Этой функцией мало кто пользуется из-за очень ограниченных настроек.
    Но нам их вполне достаточно.
    У Вас может быть другим подключение, например PPPoE через DSL модем.
    На моём примере – это VPN подключение.
    Заходим в свойства VPN подключения, на вкладку "Дополнительно":

    Разрешаем общий доступ к подключению к Интернету. Выбираем сеть внутри которой будет расшаренно подключение. У меня на примере, это - VirtualBox Host-Only Network.

    После сохранения настроек, WindowsXP установит статический адрес 192.168.1.1 на сетевом интерфейсе, подключенном к выбранной сети. И поднимет службы маршрутизации и DNS.

    На остальных компьютерах устанавливаем следующие настройки:
    • IP адрес - 192.168.1.2-254
    • Маска подсети – 255.255.255.0
    • DNS – 192.168.1.1
    • Шлюз, роутер – 192.168.1.1
    Теперь, что касается VirtualBox.
    Здесь о виртуальном компьютере можно говорить, как о самостоятельном.

    Для подключения VirtualBox к сети с роутером (первый наш вариант), добавим в него сетевой интерфейс в режиме моста поверх сетевой карты хоста:

    Для второго варианта – без роутера.
    Создаём виртуальную сеть. И подключаем ней оба компьютера. При установке VirtualBox уже создал такую сеть и подключил хост к ней. У меня это VirtualBox Host-Only Network интерфейс. В VirtualBox добавляем сетевой интерфейс, подключенный к виртуальной сети:


    Всё остальное как и с обычным компом.

    З.Ы. Можно купить роутер подороже с полезными функциями. Например, к моему можно подключать USB винт. Роутер без компа может качать прямо с инета на винт. Так же роутер может выступать в роли принт-сервера. Почти все роутеры имеют межсетевой экран, защищающий Вашу домашнюю сеть от атак из вне. Полезная функция Virtual Servers – это NAT снаружи. Например все входящие соединения на 80 порту будут переадресовываться конкретному компьютеру внутри домашней сети. Таким образом решаем проблему с открытием портов для торрентов и p2p сетей.

  • WARNING: 'com.google.gwt.dev.GWTCompiler' is deprecated and will be removed in a future release. Use 'com.google.gwt.dev.Compiler' instead. - 21-07-2009
    Add gwt.version=1.6 string in your gwt.properties file. This will fix the problem. For GWT 1.7 also leave gwt.version=1.6.

    После выхода новой версии GWT 1.6 (уже 1.7) NetBeans стал предупреждать о том что com.google.gwt.dev.GWTCompiler не рекомендуем и в последующих версиях его совсем запилят, а собирать надо с помощью com.google.gwt.dev.Compiler. Причём такое предупреждение стало появлятся только в проектах которые были созданы ещё при GWT 1.5. Обновление модуля gwt4nb тоже не помогло. Что-бы выбрать нужный компилятор соответствующий версии GWT, достаточно в файле gwt.properties указать версию GWT:

    gwt.version=1.6

    Причём для версии 1.7 тоже указывается 1.6
    Имхо, 1.7 - отличается от 1.6 только багфиксами для 8-го ослика.