• ↓
  • ↑
  • ⇑
 
Записи пользователя: alhames (список заголовков)
14:42 

Вложенная обработка exception

alhames
alhames.ru
У меня тут возник вопрос общего характера..
Есть класс, реализующий какие-либо операции низкого уровня (например, PDO). При возникновении ошибки он кидает какой-либо свой exception.
Есть класс более высокого уровня (например, User), который использует внутри себя выше описанный класс. У этого класса тоже есть свои exceptions.
Вопрос: есть ли смысл перехватывать эксепшены низкоуровневого класса (PDOException) и кидать наружу уже экспешены более высокого уровня (UserException)?
Зачастую операции с низкоуровневым классом так или иначе приходится оборачивать в try-catch, т.к. в случае ошибки нужно выполнять какие-то дополнительные операции.

Т.е. это может выглядить примерно так:
<?php
try
{
// запрос к базе с ошибкой
}
catch (PDOException $e)
{
// операции, выполняемые в случае ошибки
throw new UserException('описание ошибки');
}


Если честно мне не очень нравится эта конструкция. Причем это я описал 2-х уровневый каскад, а зачастую у меня их получается намного больше..
Как делаете вы и почему?

@темы: PHP

14:59 

alhames
alhames.ru
Настраиваю nginx, возникла куча вопросов, ответы на которые что-то не особо удается нагуглить. Может вы поможете?
1) Директива include - какие пути она понимает? Абсолютный путь понимает - это понятно, а как быть с относительными?
Если nginx.conf расположен в папке /etc/nginx, то эта папка и будет корневой для всех относительных путей и изменить ее никак нельзя?

2) Обязательные параметры для server - насколько я понимаю необходимо указать listen и server_name? Но столкнулся с тем что у меня сервер отказался запускаться без access_log и error_log. Не понимаю в чем их необходимость, если сразу после server_name у меня стоял rewrite.

3) Задание правил для location и вообще логика и последовательность обработки меня немного вводит в ступор. С апачем как-то проще было.
читать дальше

4) Как лучше редиректить с субдоменов?
читать дальше

5) Как перенаправлять все запросы, не начинающиеся со /static/ и не соответствующие реальному файлу (типа robots.txt) на index.php?
читать дальше

6) Директива fastcgi_pass - в чем отличие указания стандартного localhost:9000 и unix:/tmp/fastcgi.socket? Насколько оправдано создавать upstream, если в принципе все обрабатывает только один сервер?

23:32 

VPS

alhames
alhames.ru
Друзья, я вот надумал vps взять, и интересно ваше мнение.
Нашел zvps.ru:
- Xen Virtualization
- 2x2.80 GHz CPU
- 512MB RAM
- 30GB HDD
- Unmetered traffic
За 300 р. Никто не пользовался?
Мне нужно довольно прилично HDD, а большинство хостеров на тарифах до 300р. предоставляют до 10 Гб..

Кто каким vps-ом пользовался?

14:59 

alhames
alhames.ru
Кто что думает по этому поводу?

Есть доменное имя, которое выкуплено в трех ключевых зонах - ru, com, net.
Есть возможность купить в оставшихся.

Вопрос 1й: какую именно зону лучше всего использовать? Почему?
Вопрос 2й: есть ли вообще смысл выкупать домены в других зонах?

На ru есть тИЦ10/pr1 (сами понимаете - копейки), на остальных ничего.
По своему опыту знаю что яндекс ru-домены ставит в приоритете.
Но всеже для пользователей - какую зону воспринимать проще?
Тематика сайта - компьютерные игры.

16:49 

Библиотека скриптов

alhames
alhames.ru
Ok, как я понял мнений много и каждый пользуется тем, что ему более удобно. Тогда я разобью тему со ссылками на категории.
В этой теме делимся скриптами, которые вы используете.

Client-side
Twitter Bootstrap (ru) - CSS-фреймворк, выполненный в лучших традициях современного web
jQuery (ru) - JS-фреймворк, призванный упростить пользователям работу с нативным Javasсript'ом
jQuery UI - библиотечка полезных эффектов для jQuery
Raphaël - Библиотека для рисования средствами JS
html5shiv - хак для кроссбраузерной поддержки HTML5

Server-side
phpMyAdmin - веб-интерфейс для управления MySQL-базами (php)
WideImage - библиотека для работы с изображениями (php)
Smarty - шаблонизатор (php)

Предлагайте свои варианты - я потихоньку буду дописывать :)

14:33 

Справочная информация

alhames
alhames.ru
Подбор ссылок, о которых вы возможно не знали, но тем не менее обязаны знать прежде чем писать здесь вопрос на связанную тему.

Верстка:
Лучший русскоязычный справочник по HTML/CSS, а также приличное количество уроков по верстке - htmlbook
Лучший CSS-фреймворк (для тех кто только начинает верстать или просто не хочет заморачиваться с версткой) - Twitter Bootstrap (ru)
Лучший JS-фреймворк, который на мой взгляд должен знать каждый верстальщик - jQuery (ru)
Куча всевозможных эффектов, анимаций и т.п. средствами JS - jQuery UI
Библиотека для рисования средствами JS - Raphaël (продвинутый уровень)

Программирование:
Всеобъемлющая документация по PHP - php.net (частично русифицирована)
Русский перевод документации по mysql - http://www.sql.ru/docs/mysql/rus_ref/ (на официальном сайте черт ногу сломит)
Наверное один из самых обширнейших вопросников для разработчика - stackoverflow.com (только на англ.)

Прочее:
Поиск разработчиков для выполнения одноразовых заказов - free-lance.ru | weblancer.net | freelansim.ru
Поиск разработчиков в штат - HeadHunter | Агрегатор от Яндекса | job.ru | superjob.ru

Софт:
Если вы не знаете что это, то нам не о чем с вами разговаривать - Notepad++
Одна из самых крупнейших IDE для разработки чуть ли ни на всех языках (т.к. очень часто лежит в основе других IDE) - Eclipse
Наследие Eclipse - IDE для PHP-разработчиков - Aptana
Набор отличных IDE для разработки на множестве языков - JetBrains (платные)
Довольно удобный бесплатный mysql-клиент - HeidiSQL
Один из удобнейших ftp-клиентов - FileZilla
Самый популярный SSH-клиент - Putty
Набор ленивого разработчика (локальный сервер под Windows с PHP и mysql) - Denwer

Я привел лишь примерный список ссылок, вы можете посоветовать еще что-то, либо поправить меня, если я в чем-то ошибаюсь.

11:40 

Оптимизация верстки

alhames
alhames.ru
Меня вот лично волнует весьма спорный вопрос касательно использования тех или иных атрибутов, которые являлись чуть ли не обязательными в xhml и стали ничего не значащими в html5.
Начнем по порядку:

1. Doctype: использование <!DOCTYPE html> является вполне валидным, но с каким типом ассоциируют его старые браузеры, которые ничего не знали о html5?

2. Классический шаблон тега html ранее у меня представлял вид <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">. Сейчас я стал использовать нечто вроде: <html lang="ru" xmlns:og="http://ogp.me/ns#"> - namespace для xhtml больше не требуется, а объявление языка свелось к указанию в атрибуте lang. Но на самом деле приоритетной настройкой является язык, возвращаемый в заголовках ответа сервера, а т.к. почти всегда он уже возвращает ru (что впринципе можно проконтролировать), то есть ли вообще смысл использовать этот атрибут?
Ну а namespace для OpenGraph - это обязательная приблуда для валидной оптимизации под соц. сети.

3. Не парные теги - в xhtml их нужно было закрывать ( например, <img /> ) и я по привычки всегда их закрываю. Но так ли это нужно теперь?

4. Устаревшее объявление кодировки - <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> - теперь сведено к минимуму: <meta charset="UTF-8" />.
Это объясняется тем, что для 100% понимания кодировки страницы браузером верстальщики ВСЕГДА использовали указание кодировки - и потому этот тег решили сократить. Что же касается mime-type, то на своей практики я не помню ни одного случая, чтобы требовалось указать что-то отличное от text/html.
Опять жешь, приоритетными параметрами являются параметры сервера, и я взял себе в привычку всегда вручную отправлять нужный mime-type в заданной кодировке.
Собственно вопрос: а чтоже будет со старыми браузерами? Они ведь не поймут это сокращение. Да и нужно ли оно вообще, если в заголовках итак все есть?

5. Указание mime-type в link и sсript: <link rel="stylesheet" type="text/css" href="style.css" /> или <sсript type="text/javasсript" src="jquery-1.7.1.min.js"></sсriрt> - насколько важен атрибут type?
В рекомендациях встретил что он устарел и его лучше опускать, но в более старых рекомендациях его рекомендовали использовать всегда, дабы браузер не запутался с тем что именно он выполняет.
Кроме того некоторые расширения - например, шаблонизатор на JQuery, используют специфические mime-type: <sсript id="movieTemplate" type="text/x-jquery-tmpl">

Вот как-то так)

@темы: HTML, Оптимизация

18:47 

alhames
alhames.ru
Ребят, я иссяк. Может у вас будут идеи:
как хранить многомерный массив в плоской базе данных (MySQL), так чтобы удобно можно было организовывать поиск по всем элементам?
К примеру:
{
id: 1,
name: 'Иванов Иван Иваныч',
mother: {
id: 2,
name: 'Иванова Ивания Ивановна'
},
father: {
id: 7,
name: 'Иванов Абдула Иванович'
},
hobby: [
[{name: 'Спорт',id: 334},{name: 'Велосипед',id: 745}],
[{name: 'Телевизор',id: 644},{name: 'Дом 3',id: 838}]
]
}

И после к примеру мне нужно будет сделать выборку всех людей, кто увлекается спортом, всех людей кто увлекается ездой на велосипедах, или кто не смотрит дом 3. Как?

16:37 

Вопрос =)

alhames
alhames.ru


Кто-нибудь использует dropbox для хранения файлов сайта? Или может посоветуете другую альтернативу..
50 gb за 10$/мес. не так уж плохо.
По той же цене накопал альтернативу - yourdocs.biz

@темы: Хостинг, Юмор

09:42 

MySQL offset

alhames
alhames.ru
Часто сталкиваюсь с такой задачей:
есть таблица, например новостей:
id | title | text | date

Есть постраничный вывод:
+ страница 1
- - новсть #34
- - новсть #53
+ страница 2
- - новсть #23
- - новсть #66

Необходимо зная id новости определить на какой странице она находится. Как это сделать максимально просто?

@темы: MySQL

10:42 

Mime types

alhames
alhames.ru
Столкнулся с небольшим непониманием:
какой mime-type использовать для файлов SiteMap? Какой для RSS? Какой для прочих xml-файлов?
Накопал следующие типы:
application/xml
text/xml
application/xhtml+xml
application/atom+xml
application/xslt+xml
image/svg+xml
application/mathml+xml
application/rss+xml


Какой mime-type использовать для JSON?
application/json?

08:17 

=)))))))))

alhames
alhames.ru

13:18 

Кодировкав URL

alhames
alhames.ru
На сайте используется кодировка UTF-8 и все действия происходят именно в ней.
Имеется URL: domen.com/мама/купила.htm?детям=корову, с которым возникло много неоднозначных ситуаций:
1) Вбиваю domen.com/мама/купила.htm?детям=корову во всех браузерах, делаю parse_url и urldecode - все ок. Весь запрос кодируется в utf-8
2) Заменяю «детям» на «detyam»: domen.com/мама/купила.htm?detyam=корову. Хром кодирует нормально, в IE, FF и Opera «корову» приходит в windows-1251.
Safari работает аналогично хрому, остальные браузеры не пробовал.
Никто не знает проверенных кроссбраузерных решений этой проблемы?

И еще вопрос: как можно прочесть хэш, стоящий после решетки ( domen/index.php#example ), на стороне сервера?

09:09 

SQL

alhames
alhames.ru
Имеется две таблицы:
news
idtitlecontentdate

и
foto
idparentfilesort

Где `foto`.`parent` = `news`.`id`. Отношение новость <-> фото - один ко многим.

Имеется запрос:
SELECT N.*, F.`file`
FROM `news` AS N
LEFT JOIN `foto` AS F ON (F.`parent` = N.`id`)
GROUP BY N.`id`
ORDER BY N.`date` DESC, F.`sort` ASC
LIMIT 10


Задача, выбрать для каждой новости первое фото по полю `sort`. Но ORDER BY F.`sort` ASC не работает совершенно до тех пор пока в запросе есть GROUP BY
Есть ли возможность не разделяя запрос как-то заставить сортировать фото?

@темы: MySQL

16:03 

Кроссдоменный XMLHTTPRequest

alhames
alhames.ru
Имеется сайт с доменом domen.com.
Имеется локальное время: var local_time = new Date();
Имеется реальное время: var real_time = new Date(real_timestamp);
real_timestamp можно получить по адресу time.yandex.ru/js/sync.js.xml

Вопрос: каким образом можно запрашивать время со стороннего домена, дабы максимально уменьшить возможные задержки?
Мне больше всего нравится реализация через прокси (domen.com/proxy/time.yandex.ru/js/sync.js.xml), но file_get_contents, как и любые другие функции, работающие с http вызывают большую задержку.
Может кто-то из вас сталкивался с подобной задачей и может что-то посоветовать?

18:37 

Задачи и их решения

alhames
alhames.ru
Я вот тут подумал.. А что если в сообществе публиковать различные задачи по технической реализации тех или иных моментов верстки / программирования?
Например, предыдущий пост.
Причем это можно сделать на рейтинговой основе, где за каждую хорошую идею в реализации начислять баллы и т.д.
Само собой некоторые люди давно уже этим занимаются и для них подобные вопросы будут как пара пустяков - но они могут выступать, к примеру, в роли судей.

Какие плюсы я вижу:
читать дальше

Какие минусы:
читать дальше

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

@темы: Сообщество

18:53 

Хранение файлов сайта

alhames
alhames.ru
Имеется сайт, на котором должны размещаться файлы достаточно большого размера. В сумме все файлы возможно будут превышать 50-100 гб.
Хранить подобный объем данных у себя на хостинге крайне не выгодно, поэтому вопрос заключается в том - каким образом размещать их на сайте?

Самая первая мысль - narod.ru читать дальше

Вторая мысль - организация собственного торрент трекера. читать дальше

Третья мысль - использования стороннего трекера. читать дальше

Ну и последняя мысль - DC. читать дальше

Приходилось ли вам хранить файлы большого размера и каким образом вы организовывали их скачивание? Мб есть какие идеи на эту тему?

10:44 

Ссылка на дневник

alhames
alhames.ru
Не подскажите как на дайри работают псевдотеги [J][/J] и [L][/L]?
Текст парсится в момент добавления в БД и все псевдотеги заменяются на реальные? Тогда его объем увеличивается, и необходим обратный парсинг для режима редактирования.
Но по моим наблюдениям если в ручную написать html-теги, на которые заменяется [J][/J] - то в режиме редактирования они так и останутся html-тегами.
Заменять все ссылки на дневники при выводе - но ведь это сколько накладных расходов, искать каждый раз в бд по содержимому тега [J][/J]
Или может есть какой-то способ оптимизации?
Аналогично - каким образом это реализовано на ЖЖ, Ли.ру и других блогохостингах?

@темы: Оптимизация

15:06 

Новая документация php и где найти плагины под Eclipse?

alhames
alhames.ru
Яндекс радует новым оформлением вывода:
смотреть
Теперь справку по функциям искать намного удобнее)
Да и новое оформление документации php тоже радует)

А вообще я не только позитивом хотел поделиться)
Возникла проблема - никак не могу найти рабочий плагин под Eclipse для поддержки Smarty и JQuery.
Да и вообще с поиском плагинов как-то туго.. Если кто пользуется - подскажите откуда брали?

@темы: PHP, Программы

12:53 

Многоуровневое меню

alhames
alhames.ru
Имеется: сайт со структурой, состоящей из 3000+ разделов и 10-уровневой (возможно и больше) вложенностью.
Задача: создать такое меню, в котором можно было с легкостью перейти из любого раздела сайта в любой раздел.
Причем нужно как-то отображать в меню активность текущего раздела.

Мне лично нравится реализация на wowhead.com - выпадающие списки аля виндозное меню "Пуск > Все программы".
Но с такой вложенностью и количеством страниц а) невозможно загружать всю структуру сразу, а в выпадающих списках ajax не есть тру; б) очень сложно будет переходить на глубокие уровни, так как курсор вечно норовит выскочить из фокуса ссылки,тем более если размер шрифта не превышает 12px.

Может есть какие идеи?

@темы: Оптимизация

@web-программирование

главная