Программирование

MoneyStats - программа для контроля за своими финансами

в разделе Программирование | Метки: PHP, MySQL

Раньше я пользовался MicrosoftMoney для того чтобы отслеживать сколько я денег потратил и куда они ушли. Основные недостатки это необходимость запускать это приложение и невозможность добавлять расходы с телефона. В связи с этим я решил написать веб приложение, которое позволяет:

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

Страница программы. Программа бесплатна (opensource), написана на PHP использует MySQL.

Сейчас она в альфа версии, у меня не доходят руки доделать некоторые вещи, по мере обновления исправления буду отписываться. Сейчас нельзя удалять/редактировать транзакции, отменять переводы.

Скорость загрузки страниц в Drupal

в разделе Программирование | Метки: PHP, Drupal

Недавно на хабре появилась переводная статья (оригинал) с критикой Drupal и рассказом о том как всё плохо и какой сильный наступил кризис. В комментах еще нашел ссылку на сравнение Drupal c Yii.



Честно говоря меня некоторое время напрягала скорость загрузки сайта, которую я наблюдал в Google Webmaster Tools.

Скорость загрузки сайта по состоянию на 14 сентября 2011

В новом интерфейсе Google Analytics можно просматривать скорость загрузки страниц, если я правильно понял из описания пока замеры ведутся только для браузеров Google Chrome. Вот средняя скорость загрузки Top-10 страниц:

Page Avg. Page Load Time (sec) Pageviews Page Load Sample Bounce Rate % Exit
/post/django-windows-installation 7.23 494 18 68.78% 69.43%
/post/django-postgresql-nginx-on-debian-server 15.3 185 16 93.02% 92.97%
/ 2.76 308 15 47.02% 51.95%
/post/list-installed-packages-ubuntu 5.36 280 13 95.56% 95.00%
/post/proxy-ubuntu-linux 8.26 600 11 86.32% 85.17%
/post/kak-borotsya-s-lenyu-i-nachat-zarabatyvat-v-internete 6.54 216 9 69.43% 73.61%
/post/442 10.09 250 7 81.33% 77.20%
/post/iptables-ppp0-vpn-router-debian-linux 15.66 41 7 94.87% 92.68%
/post/perl-warning-setting-locale-failed-debian-linux 4.41 182 7 93.75% 92.86%
/post/skolko-mne-udalos-zarabotat-v-internete-za-vse-vremya 1.96 74 7 55.56% 43.24%

9.89 8,616 256 83.46% 73.98%

Смена пути к rss в шаблоне Drupal

в разделе Программирование | Метки: Rss, Drupal

Заметил некоторую особенность в шаблоне Drupal, про которую совсем забыл при редактировании готового шаблона. В самом верху между тегами выводятся различные ссылки к стилям итд, кроме всего прочего там же выводится и путь к Rss. По умолчанию он rss.xml. У меня на сайте главная страница переделана с помощью Views. Снизу я убрал постраничную навигацию, и кроме того у меня выводятся только определенные типы материалов. Когда я только начинал использовать Drupal, для того чтобы опубликованные материалы появились на главной странице я постоянно ставил галочку "Promoted to front page", что совсем не кошерно.

Ошибка "Adaptive Server is unavailable or does not exist (severity 9)" и PDO

в разделе Программирование | Метки: PHP, PDO, Microsoft SQL Server

Сегодня наткнулся на проблему при подключении к Microsoft SQL Server:

Adaptive Server is unavailable or does not exist (severity 9)


<?php
try {
    
$hostname "LOGSERVER";
    
$dbname "db";
    
$username "log";
    
$pw "123";
    
$port 2433;

    
$dbh = new PDO ("dblib:host=$hostname;port=$port;dbname=$dbname","$username","$pw");
} catch (
PDOException $e) {
    echo 
"Failed to get DB handle: " $e->getMessage() . "\n";
    exit;
}
?>

Как в Drupal вывести текущую категорию для node и переписать taxonomy path с помощью Pathauto

в разделе Программирование | Метки: PHP, Drupal

Продолжительное время у меня на блоге в каждом посте под названием поста выводилась дата, кто разместил и по идее должны были выводиться категории, но на самом деле выглядело все примерно так: Posted on 09. Jun, 2011 by boris in. И на этом in все заканчивалось. В шаблоне blogbuzz был такой кусок кода:


<?php if ($terms): ?>
<span class="terms"><?php print t(' in '$node_terms?></span>
?>

Как определить район по адресу или координатам с помощью Google Maps API

в разделе Программирование | Метки: Google, Geolocation, API, Maps

В результатах которые отдает Geocoder Yandex Maps API я подобного не нашел, может плохо искал. Google Maps API когда отдает результаты, то так же показывает информацию о районе и другое, например для Москвы это еще административный округ. Пример URL:
http://maps.googleapis.com/maps/api/geocode/xml?address=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0,%20%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%BA%D0%B0,%2038&sensor=false&language=ru

Fatal error: Uncaught DisqusException: [0]: There was an error querying the Disqus API

в разделе Программирование | Метки: Drupal

Недавно искал что-то на сайте jQuery, заметил что для комментариев там используется сервис Disqus. Последние несколько месяцев мой блог похоже интересен только ботам, которые оставляют комментарии, в среднем за день появлялось 50-60 комментариев. Сегодня решил попробовать Disqus, вроде все неплохо выглядит, но пока есть некоторые проблемы, которые надо будет решить.

Zend Framework и Sape API

в разделе Программирование | Метки: XML RPC

Кусок кода, может кому пригодится, использование Sape API и Zend Framework.

Zend Framework и PostgreSQL update

в разделе Программирование | Метки: PostgreSQL, Zend Framework

При апдейте возникала такая ошибка

Message: SQLSTATE[42804]: Datatype mismatch: 7 ERROR: argument of AND must be type boolean, not type integer LINE 1: ..., "updated" = $9, "url_alias" = $10 WHERE (id = $11) AND (1) ^

Скрипт для бэкапа данных по SSH из одной базы в другую

в разделе Программирование | Метки: PostgreSQL

Решил делать новый проект с использованием PostgreSQL, разрабатываю проект на локальной машине, сам код лежит на серваке на балконе, на нем же лежит и тестовая локальная база, еще есть боевой сервер с базой. Понадобилось синхронизировать данные, которые я добавил в таблицы на боевой базе, а также новые таблицы. Каждый раз копировать это с помощью phpPgAdmin то еще извращение, поэтому написал небольшой скрипт, который

  1. коннектится по ssh на удаленный сервак, авторизуясь по ключу
  2. запускает там pg_dump и сохраняет все содержимое в файл на локальном компе, где запущен скрипт
  3. импортирует из сохраненного скрипта все данные в локальную базу