Pull to refresh
0
0
Иванов Алексей @Lindemann66

Backend

Send message

Yii и мультиязычный сайт. Правильные URL и гибкость в работе

Reading time5 min
Views40K

При написании одного проекта, возникла необходимость в организации мультиязычности на сайте. Причем количество языков не должно ограничиваться двумя и URL должны быть человеко-понятные и SEO оптимизированные. Тоесть ссылки на сайте должны быть вида:
http://mysupersite.ru/ru/contacts для русского языка
http://mysupersite.ru/en/contacts для английского языка
Так как опыт у меня не очень большой, я начал вопрошать гугл. Вариантов, как оказалось, достаточно много, однако из всех мне приглянулся один вариант, который я использовал и слегка модифицировал.
Итак, как сделать сайт мультиязычным...
Total votes 35: ↑29 and ↓6+23
Comments67

Архитектурный изьян CouchDB

Reading time3 min
Views6K
Моя любимая тема в программировании — копаться в негативных эффектах, которые преподносят нам самые, на наш взгляд, тривиальные операции.

Один из таких вопросов — удаление записей в базе данных. Данная операция, по мнению большинства программистов, ускоряет работу с базой и делает её компактнее. Фокус состоит в том, что это неправда. И если с реляционными базами это неправда только отчасти, то с NoSQL это может быть полнейшим враньём.

Вот о такой проблеме в Apache CouchDB мы и поговорим далее.
Картинка в тему:

Читать дальше →
Total votes 85: ↑67 and ↓18+49
Comments57

Единая база расширений GNOME Shell

Reading time1 min
Views11K

Все мы привыкли расширять функционал браузера с помощью дополнений. А разработчики GNOME предлагают нам то же самое делать и с графической оболочкой. Любой пользователь GNOME 3 может зайти на сайт https://extensions.gnome.org/ и установить себе любое понравившееся расширение. Для этого достаточно лишь кликнуть переключать, согласиться с установкой и перезапустить оболочку.
Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments18

Вставляем генератор кода в сборку qmake

Reading time3 min
Views6.1K
Лень — двигатель прогресса. Работая в программировании уже второй десяток лет, я до сих пор согласен с этим тезисом. Но в каждой шутке, как известно, есть доля шутки.
В данной статье речь пойдет о том, как заставить компьютер писать рутинный код за вас. Причём максимально автоматизировать этот процесс и интегрировать со сборкой проекта. Во всём этом нам поможет qmake

Зачем это нужно

В текущем моем проекте возникла необходимость применить объектный подход при работе с данными, физически хранящимися в реляционной БД. Стало быть, ORM. Так уж вышло, что данный проект корпоративного сегмента разрабатывается на Qt. Да, хоть это и прекраснейший фреймворк, но не вполне подходящий под задачи программирования сложных корпоративных приложений. Тем не менее, выбор в пользу Qt был сделан по ряду весьма веских причин.
Итак, есть небольшая реляционная БД из примерно 100 таблиц. Необходимо написать тонкий пока слой бизнес-логики, который в перспективе будет обрастать жирком. Имеется описание структуры БД в XML.
Можно засучить рукава и за неделю написать 100 однотипных классов бизнес-логики. Написать многочисленные тесты, сравнивающие эти классы, XML-описание метаданных и саму структуру БД. Но, это не подход настоящего джедая! Действительно, ведь у нас уже есть все необходимое для описания прототипов классов бизнес-логики, просто нужно превратить .xml в .h.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments16

Список полезных инструментов для php разработчика

Reading time10 min
Views148K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →
Total votes 214: ↑200 and ↓14+186
Comments131

Умение просчитывать

Reading time5 min
Views48K
Существует разговорный глагол «просчитывать», что означает — моделировать в голове различные варианты развития события и последствия. Сегодня хочется поговорить об умении просчитывать ходы, и почему это является важнейшим умением в жизни.

Для начала небольшое введение. Не задумывались, почему многие великие люди любят шахматы? Почему Сергей Галицкий (миллиардер, с нуля построил сеть «Магнит»), говоря о важных для начинающих бизнесмена вещах, сказал в первую очередь о логике (кстати, в шахматах Сергей хорошо поднаторел в свое время). Почему о той же логики говорит известный блоггер Фриц Морген. А выдающий бизнесмен Дмитрий Потапенко, рассказывая о том, как ему удалось построить свои сети магазинов и ресторах, при моделировании бизнес-процессов предлагает пользоваться блок-схемами алгоритмов из восьмого класса?

Потому что они умеют раскладывать задачи в голове на несколько итераций, несколько шагов.
Читать дальше →
Total votes 47: ↑36 and ↓11+25
Comments34

Обзор свежих материалов, январь-февраль 2012

Reading time12 min
Views1.9K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-декабрь 2011.


Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments9

Nette PHP Framework: первое знакомство

Reading time3 min
Views11K
Логотип фреймворка Nette Было очень приятно совершенно случайно обнаружить сайт этого фреймворка во второй половине рабочего дня. Новые фреймворки появляются редко, а тем более редко попадаются механизмы, которые нравятся с первого взгляда. На Хабре описания Nette я не нашел, поэтому поспешил поделиться своей находкой с Вами.

Во-первых, мне сразу приглянулось название. Nette. Это почти как Latte. Только Nette. Как оказалось позднее, есть и Latte — собственный встроенный подающий надежды шаблонизатор. Ого.
Читать дальше →
Total votes 58: ↑48 and ↓10+38
Comments81

JUST — JavaScript шаблонизатор

Reading time7 min
Views21K
Во время разработки своего экспериментального WEB-проекта на Node.JS, о котором я рассказал в двух предыдущих статьях, я столкнулся с проблемой выбора шаблонизатора. Несмотря на то, что готовых решений существует довольно много, мне не удалось найти то, которое бы удовлетворяло меня на 100%. Так родился JUST.

Конкуренты


Jade
github.com/visionmedia/jade

Этот шаблонизатор достаточно популярен среди Node.JS разработчиков. Он обладает хорошим функционалом и скоростью работы, но содержит и спорные моменты:
  1. Отказ от использования тегов в том месте, для которого они, собственно, и были придуманы. С таким подходом я, мягко говоря, не согласен. Конечно, это очень субъективно, но вид разметки страницы без привычных тегов, взрывает мозг. Верстальщик, далёкий от новомодных технологий шаблонизации, не скажет спасибо, если ему придётся вносить изменения в такой код. Также потребуется дополнительная работа при перенесении вёрстки в шаблоны, что замедлит ход разработки.
  2. Перегруженность функционалом. Любой разработчик старается сделать свой продукт максимально универсальным, но иногда нужно уметь вовремя остановиться. На мой взгляд, Jade уже перешёл эту грань.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments124

Debugging PHP applications with xdebug

Reading time8 min
Views45K
Добро пожаловать на 4 часть повествования о xdebug. Сегодня мы попытаемся разобраться в отладке PHP кода с помощью xdebug. В данной статье мы полагаем, что вы уже давно установили xdebug на вашу систему, если нет первая статья серии опишет вам как это сделать.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments30

Начала отладки и профилирования веб-приложений

Reading time8 min
Views18K

Вступление


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

Особенности веб-приложения делают его разделенным на две части: клиентскую и серверную. На стороне клиента работает код на JavaScript (может быть, где-то можно найти и VBScript, но мы, пожалуй, не будем рассматривать этот случай), на серверной же — много что, в принципе, но мы рассмотрим PHP, наиболее популярный язык для серверной части веб-приложений. Так же интересно было бы поговорить об отладке и профилировании Flash-приложений на клиентской стороне, но затронутая тема и так обширна, так что пока оставим это.

Так же можно отнести к задачам отладки клиентского кода анализ и валидацию HTML кода. Это, вроде бы, задача не совсем из области программирования, но также немаловажная.

Некоторые части рассмотренных задач уже рассматривались в других статьях, и я предоставил на них ссылки.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments26

Золотые правила успешной кнопки

Reading time3 min
Views71K
Здравствуй, дорогой хабрадруг! Сегодня существуют более тысячи способов создать кнопку; чтобы понять их сущность, вам нужно лишь потратить немного времени, просмотрев работы на сайте dribbble.com. Большинство из этих примеров очень похожи друг на друга, однако время от времени попадаются и такие кнопки, на создание которых потратили чуть больше внимания, времени и сил.



Воспользовавшись замечательными параметрами CSS3, мы можем создать элегантые и стильные кнопки без особых усилий (учитывая старые браузеры, конечно). Создаете ли вы кнопку непосредственно в CSS или пользуетесь специальными инструментами для их создания, всегда нужно тщательно подумать о том, как ваша кнопка будет выглядеть в контексте веб-сайта.
Читать дальше →
Total votes 224: ↑215 and ↓9+206
Comments55

Самый большой в мире класс по изучению jQuery

Reading time2 min
Views4.9K
Доброго времени суток!

Не так давно я опубликовал статью о наборе учеников для ознакомления с прекрасным скринкастом под названием Learn jQuery in 30 Days, который недавно удачно преодолел отметку в 40000 учеников.
Если вы по какой-либо причине (например, отсутствие свободного времени) не смогли ознакомиться со скринкастом, то не стоит волноваться, так как после того, как будет опубликован последний урок, курс продолжит своё существование и вы сможете начать обучение в удобное для вас время.
На данный момент количество учеников составляет 41358 человек. Спешите к ним присоединиться. Чтобы сделать это, вам необходимо оставить адрес своей электронной почты на странице курса Learn jQuery in 30 Days.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments39

Qt для Android (Necessitas Framework) – действительно ли это работает?

Reading time3 min
Views28K
Этот пост участвует в конкурсе «Умные телефоны за умные посты».

Так получилось, что у меня есть кое-какой опыт разработки приложений под Qt, а недавно появился коммуникатор на Android. Узнав о том, что существует проект Necessitas (раньше он называвался Android-Lighthouse), захотелось проверить возможность запуска Qt приложений под Android на практике.



Читать дальше →
Total votes 63: ↑44 and ↓19+25
Comments32

Вам не страшно открывать редактор?

Reading time13 min
Views3.1K
В какой-то момент я стал замечать, что пишу более качественный: оптимальный, логичный и читаемый код, но пишу его медленно. По крайней мере, куда медленнее, чем лет 15 назад. Да, на старый код без слёз не взглянешь: всё можно сделать оптимальнее и, по крайней мере, читабельнее. Но код был написан быстро.

Проблема в контроле. Я стал жестче и глубже контролировать код и… стал тратить на этот контроль слишком много ресурсов.

Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут. Но лучше разделить кодирование и отладку и на время кодирования об ошибках вообще забыть.
Читать дальше →
Total votes 171: ↑128 and ↓43+85
Comments115

UTF-8: Кодирование и декодирование

Reading time3 min
Views213K
Причиной разобраться в том, как же работает UTF-8 и что такое Юникод заставил тот факт, что VBScript не имеет встроенных функций работы с UTF-8. А так как ничего рабочего не нашел, то пришлось писть/дописывать самому. Опыт на мой взгляд полезный в любом случае. Для лучшего понимания начну с теории.

О Юникоде


До появления Юникода широко использовались 8-битные кодировки, главные минусы которых очевидны:
Читать дальше →
Total votes 47: ↑37 and ↓10+27
Comments25

Попытка просто объяснить сложные, для новичков, вещи в javascript

Reading time8 min
Views24K
Я попытаюсь просто объяснить, как работают замыкания в Javascript, как работает this, как создавать конструкторы для своих классов и чем различаются различные подходы к их созданию.
Статья не претендует на новаторство, но достаточно доступные объяснения how it works для новичков я не видел, и на мой взгляд — это три самых узких места в Javascript (не привязанному к какому либо контексту, серверу или браузеру, например).
Читать дальше →
Total votes 82: ↑73 and ↓9+64
Comments34
12 ...
8

Information

Rating
Does not participate
Location
Ульяновск, Ульяновская обл., Россия
Date of birth
Registered
Activity