Проблема с кодировками является достаточно распространенной. Часто при создании проекта требуется использовать всем одну кодировку например UTF-8, но порой просто не уследишь за всеми добавленными в проект файлами. Конечно можно потратить много времени и сил перекодируя все текстовым редакторе, но если точно знаем из какой кодировки в какую надо конвертить то просто выполняем в консоли команду find . -name '*.php' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done и все файлы *.php в этой папке перекодируются в UTF-8.
Список доступных кодировок можно вывести командой iconv -l Вот так все просто на самом деле))

Теги:  

Photoshop в Ubuntu

02/14/2010, автор admin, категории Ubuntu, Web-разработка

Как-то давным-давно компания Adobe заявила о создании версии photoshop для Linux OS.. И еще как то писали в новостях что google поддерживет разработчиков wine, чтобы они лучше учитывали совместимость wine c photoshop. Но как мы видим прошел ни один год, а первое реализовывать помоему уже и не думают а последнее, ну скажем «не совсем корректно работает».
Лично у меня под wine корректно работают и легко устанавливаются все версии photoshop до cs2 включительно (что не удивляет так как на оффициальном сайте об этом уведомлено).
Многие же после долгих танцев с бубном возле компьютера, самостоятельной пропатченной компиляции wine ставят Adobe Photoshop CS3 и CS4. Стыдно признаться, но как я вчера не танцевал с бубном, как ни колдовал возле компьютера ни одну из последних версий photoshop установить не смог… Полробное описание установке есть на WineHQ.org
Лично я решил не мучаться и поставить себе CS2 что вполне хватает чтоб нарезать макеты сайтов для верстки… Единственное из директории .wine/dosdevices/c:/Program Files/Adobe/Adobe Photoshop CS2 Нужно удалить AdobeUpdater.dll чтоб Photohop не обновлялся (обычно это стандартная процедура…) и сгладить шрифты, ато какие то кракозябры на панелях. Для этого: 1. Дергаем скрипт winetricks->
sudo wget http://kegel.com/wine/winetricks
2. Устанавливаем права ->
chmod 755.
3. Запускаем и устанавливаем corefonts ->
sh winetricks

Включаем и наслаждаемся)

Все php функции в javascript

02/09/2010, автор admin, категории Web-разработка

Очень часто при написании javascript для сайтов возникает потребность чтоб в вашем скрипте было нечто подобное функциям php например explode, trim, json_encode, json_decode… вобщем список можно продолжать до бесконечности. И вот сегодня совершенно случайно наткнулся на сайт phpjs.org где лежат готовые решения реализации всех этих функций (когда то искал их специально не одного документированного решения не нашел). Ну я конечно же сразу добавил этот сайт в закладки и выкачал скрипты одним файлом (это они тоже предоставляют, огромное им спасибо)
Ну собственно скачать, просмотреть эти скрипты вы сможете и без моей помощи.

Координаты по адресу – google maps

02/09/2010, автор admin, категории Google maps

Собстевнно никаких особых танцев с бубном не требуется для получения координат по адресу. Если у вас уже есть на сайте google map и есть api_key то у вас дожны быть прописаны несколько подгружающихся js скриптов.
Что собственно и имеем: <script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&key=<?=GOOGLE_MAPS_API_KEY?>"></script>
<script type="text/javascript" src="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js"></script>
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key=" type="text/javascript"></script>
Для поиска используется довольно простая функция читать далее »

Сложные запросы

12/20/2009, автор dimaz, категории Web-разработка

Таблицы в БД.

Таблицы в документе doc

База в sql

Примеры решений сложных запросов:

1. Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номеромselect produkt
from produkty
where pr in(
select sostav.pr
from sostav inner join  menu on (sostav.rec = menu.rec)
group by sostav.pr
having  count(distinct sostav.rec)
=  (
select count(distinct sostav.rec)
from sostav inner join  menu on (sostav.rec = menu.rec)
)
)
2.  Вывести название и количество порций каждого блюда, заказанного сегодня на столик с номером 1. (Обязательно использование JOIN). select bluda.bluda, sum(zakazy.k_vo_porc)
from mesta
inner join zakazy on (mesta.ms = zakazy.ms)
inner join menu on (zakazy.m = menu.m)
inner join bluda on (menu.bl = bluda.bl)
where nom_stol = 1
group by bluda.bluda
читать далее »

Теги:  

Apache2 сервер на ubuntu

11/27/2009, автор admin, категории Ubuntu, Web-разработка

На самом деле поднять сервак на убунту очень легко сейчас у меня это занимает не более минут 10, но в первый раз с этим были большие трудности. В этой статье я постараюсь раскрыть все моменты шаманства с Apache2 сервером.
Для начала устанавливаем apache cо стандартной связкой php и mysql sudo apt-get install apache2 php5 php5-mysql mysql-server-5.0
Затем по мере надобности можно добавить другие модули php: libapache2-mod-php5filter > server-side, HTML-embedded scripting language
php5-cgi > server-side, HTML-embedded scripting language (CGI binary)
php5-cli > интерпретатор командной строки для языка сценариев php5
php5-curl > CURL module for php5
php5-gd >модуль работы с графикой для php5
php5-gmp > GMP module for php5
php5-imap > IMAP module for php5
php5-interbase > interbase/firebird module for php5
php5-ldap > LDAP module for php5
читать далее »

Теги:  

Конечно много для чего могут приготиться базы данных стран и городов мира, допустим для сайта туристической компании или для какой нибудь всемирной социальной сети… Но так или иначе иногда возникает потребность в этой информации. Так вот есть база почти на три миллиона городов всего мира на английском:
geolite.maxmind.com
Что лично мне не понравилось в этой базе то что в ней к одним и тем же координатам иногда привязаны два или более города, различные версии названия этого города например:ru,moscou,Moscou,48,55.7522222,37.6155556
ru,moscow,Moscow,48,55.7522222,37.6155556

sql база – база городов и их IP адресов.
GeoNames – тут можно скачать базу или воспользоваться довольно неплохим сервисом. Можно искать данные о месте по координатам, по имени по индексу..Формат возвращаемых данных так же настраивается, xml или JSON.
Все это конечно хорошо но все это либо слишком много либо слишком мало, мне лично нужна база похожая на первую, но чтоб города имели только одну манеру написания на английском, если у кого есть буду вам очень признателен=)

Прошло немало времени и я все-таки сотворил свою бд городов стран и регионов мира. 1,5 миллиона городов осталось всего после удаления одноименных и однокоординатных городов в базе о которой писал тут выше (2,6 миллиона городов). Почти два месяца парсил с GeoNames и в итоге получил отличную базу данных городов, стран и регионов мира

Screenshot


скачать базу стран и городов мира можно тут: countries and cities db

P.S Спасибо Sunny за предоставленные актуальные данные по состоянию на декабрь 2011

Теги:  

Ставим свой z-index маркерам

09/17/2009, автор admin, категории Google maps

Мой нынешний проект всеми возможными и не возможными способами привязан google map. И вроде все хорошо в google map api, но вот незадача. Казалось бы что нет ничего проще чем самому отрегулировать как будут перекрываться маркеры на карте (который выше который ниже)… По дефолту они как бы создают эффект 3d модели, то есть маркеры ближе к экватору земли становятся выше всех.
Так вот вразумительного ответа как поставить свои z-index маркерам на русском языке я не нашел, зато нашел ответ на зарубежном блоге, к сожалению не помню где именно. Оказалось решение этого вопроса не занимает много времени. Скачиваем скрипт labeledmarker.js к себе и находим такую функцию:LabeledMarker.prototype.redrawLabel_ = function() {
// Calculate the DIV coordinates of two opposite corners of our bounds to
// get the size and position of our rectangle
var p = this.map_.fromLatLngToDivPixel(this.latlng_);
var z = GOverlay.getZIndex(this.latlng_.lat());
// Now position our div based on the div coordinates of our bounds
this.div_.style.left = (p.x + this.labelOffset_.width-7) + "px";
this.div_.style.top = (p.y + this.labelOffset_.height-41) + "px";
this.div_.style.zIndex = z; // in front of the marker
};

и меняем строку ->this.div_.style.zIndex = z;
на
this.div_.style.zIndex = "100";

Теперь маркеры будут выводится в порядке их подачи на вывод. Вобщем меня это устроило, но думаю можно было посмотреть и сделать так чтоб в эту функцию можно было передавать отдельный параметр отвечающий за z-index маркера.

Теги:  

MySql в консоли

08/19/2009, автор admin, категории Web-разработка

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

Начало работы с mysql

Ну во первых начнем с того как зайти в mysql, для этого надо в консоли набрать:

mysql -uusername -ppassword -hhost 

Итак мы в командной строке mysql. Не забываем один важный момент: разделителем комманд mysql является «;» (точка с запятой). читать далее »