- XSLT
-
С XSLT работаю с 2003-го года.
Считаю отличной технологией для шаблонизации.
Очень хорошо, что позволяет реализовывать достаточно сложную логику, которая бывает необходима для отображения данных.<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:func="http://exslt.org/functions" xmlns:ext="http://www.groundzero.ru/ext" extension-element-prefixes="func ext" > <func:function name="ext:buildDate"> <xsl:param name="date"/> <xsl:param name="strip">true</xsl:param> <func:result select="document(concat('parser://XMLExtBuildDate', '/__date/', $date, '/__strip/', $strip))/result/date"/> </func:function> <func:function name="ext:getAntispam"> <xsl:param name="count">10</xsl:param> <func:result select="document(concat('parser://XMLExtGetAntispam', '/__count/', $count))/result/antispam_list"/> </func:function> </xsl:stylesheet> - MySQL
-
Проектирование баз, нормализация, денормализация.
Знаю, что такое LEFT JOIN и почему не нужно его бездумно использовать.
Безо всякого стеснения, нагло пользуюсь индексами.CREATE TABLE `realtyCompanyTagGroup` ( `sCompanyTagGroupUUID` varbinary(16) NOT NULL, `sName` varchar(255) NOT NULL, `bVisible` enum('true','false') NOT NULL default 'false', `sDescription` text, `iSortOrder` tinyint(4) NOT NULL default '1', PRIMARY KEY (`sCompanyTagGroupUUID`), UNIQUE KEY `ixUniqueCompanyTagGroupName` (`sName`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `realtyCompanyTag` ( `sCompanyTagUUID` varbinary(16) NOT NULL, `sCompanyTagGroupUUID` varbinary(16) NOT NULL, `sURI` varchar(63) NOT NULL, `sName` varchar(255) NOT NULL, `bVisible` enum('true','false') NOT NULL default 'false', `sDescription` text, `iSortOrder` tinyint(4) NOT NULL default '1', PRIMARY KEY (`sCompanyTagUUID`), UNIQUE KEY `ixUniqueCompanyTagURI` (`sURI`), UNIQUE KEY `ixUniqueCompanyTagName` (`sName`), KEY `CompanyTagGroup` (`sCompanyTagGroupUUID`), KEY `ixCompanyTagURI` (`sURI`,`bVisible`), CONSTRAINT `CompanyTagGroup` FOREIGN KEY (`sCompanyTagGroupUUID`) REFERENCES `realtyCompanyTagGroup` (`sCompanyTagGroupUUID`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- Parser 3
-
С Parser 3 дружу с 2002-го года.
До сих пор с удовольствием пишу всякое, до недавнего времени работа на нём — основное занятие.
Простой, удобный ООП-язык, подходящий для реализации широкого спектра задач.
Чего не умеет сам, легко делает, вызывая сторонние утилиты.@_deleteImageFile[hOptions][sImageFileDir;tImageFileList] # $result void $hOptions[^hash::create[$hOptions]] $sImageFileDir[$self.hParams.sAloneGalleryFileDir/$self.sAlbumURI/$self.sImageUUID] $tImageFileList[^file:list[$sImageFileDir;^if(^hOptions.bIgnoreSource.bool(false)){^(?!$self.sImageUUID)}]] ^tImageFileList.menu{ ^Operator:deleteFile[$sImageFileDir/$tImageFileList.name] } $result[]
- Python
-
С Python отношения не очень давние.
Пока работаю исключительно в окружении Django.def get_formset(self, request, obj=None, **kwargs): self.obj = obj if obj: self.extra = obj.form.fields_form.count() - obj.values.count() else: self.extra = 0 return super(ValueInline, self).get_formset(request, obj, **kwargs) def formfield_for_dbfield(self, db_field, **kwargs): field = super(ValueInline, self).formfield_for_dbfield(db_field, **kwargs) if db_field.name == 'field' and hasattr(self, 'obj') and self.obj: field.choices = [('', '---------')] field.choices.extend(Field.objects.filter(form=self.obj.form).values_list('id', 'title')) return field - Django
-
В 2008-м занялся освоением Django.
ORM-слой устраняет тонны рутины, а MVC-подход способствует организации кода.
Вещь не без недостатков, но удобна.@register.inclusion_tag('linear_tags_cloud.html') def linear_tags_cloud(tags, params='', selected_tags=[]): params = get_params(params) root = get_url(params.get('root', u'')) for tag in tags: tag.url = u'%s%s/' % (root, tag.slug()) if len(selected_tags) > 1: for selected_tag in selected_tags: if tag == selected_tag: tag.parent = True else: for selected_tag in selected_tags: if tag == selected_tag: tag.current = True except_url = append_url = root if len(selected_tags) > 1: for selected_tag in selected_tags: append_url += u'%s/' % selected_tag.slug() if tag != selected_tag: except_url += u'%s/' % selected_tag.slug() else: except_url = get_url(params.get('index', root)) for selected_tag in selected_tags: append_url += u'%s/' % selected_tag.slug() tag.except_url = except_url tag.append_url = u'%s%s' % (append_url, tag.slug()) no_all_tag_link = False if 'no_all_tag_link' in params: no_all_tag_link = True return { 'tags_cloud': tags, 'all_tags_url': root, 'all_tags_title': params.get('all_tags_title', u'все метки'), 'no_all_tag_link': no_all_tag_link } - jQuery
-
Отличный фреймворк, экономит массу сил и времени.
Оказывается, клиентское программирование может быть интересным и приятным.$(headers).each(function(index) { var id = 'item_' + generateID($(this).text()); $(this) .attr('title', show_title) .attr('id', id) .addClass('active') .next('dd').hide() .end() .click(function(event) { var header = this; var description = $(this).next('dd').children('.description').hide(); $(this).toggleClass('opened').next('dd').slideToggle(speed, function() { if($(header).hasClass('opened')){ $(description).fadeIn(speed, function() {if($.browser.msie) $(this).get(0).style.removeAttribute('filter')}); header.title = close_title; }else{ $('#' + id + '_description').hide(); header.title = show_title; titleMosaic($(this).children('.mosaic').rand('img').children('img')); } checkControls(); }); }); }); - (X)HTML
-
К вёрстке никогда особой любви не питал, однако, она — часть работы.
Сторонник прагматичного подхода, но валидностью документа стараюсь не пренебрегать.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru"> <head> <title>Алексей Марьин</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <link rel="copyright" title="Алексей Марьин" /> <link href="favicon.ico" type="image/x-icon" rel="shortcut icon"/> <link href="css/default.css" rel="stylesheet" type="text/css"/> <link href="css/index.css" rel="stylesheet" type="text/css"/> <link href="css/print.css" rel="stylesheet" type="text/css" media="print"/> <!--[if IE]> <link href="css/ie.css" rel="stylesheet" type="text/css"/> <![endif]--> </head> <body> <div id="body"> <div id="top"> <div id="topLeft"> <img src="/img/logo.png" width="82" height="40" alt="" class="logo"/> </div> <div id="topRight"> <h1>Алексей Марьин</h1> <h2>ворчун и зануда</h2> </div> </div> <div id="middle"> <div id="middleLeft"> </div> <div id="middleCenter"> <div class="content"> </div> </div> </div> </div> </body> </html> - CSS
-
CSS владею уверенно.
Жаль, что столько беспорядка в стане браузеров.
Хаки стараюсь не использовать, получению необходимого любыми средствами предпочту компромисс.
body { font-family: "Trebuchet MS", Tahoma, Verdana; color: #2b334c; margin: 20px; padding: 0px; } form { margin: 0px; } input, textarea, select { color: #2b334c; font-size: 1em; font-family: "Trebuchet MS", Tahoma, Verdana; } fieldset { padding: 0px; margin: 0px; border: none; } img { border: 0px; } br { clear: both; } em { color: #95a9ca; } p { margin: 0px; padding: 0px; line-height: 1.4em; } pre { max-width: 900px; overflow: auto; font-family: Сonsolas, сourier; font-size: .85em; } .content { padding: 0px 20px; } a:link { color: #589de3; } a:visited { color: #8285f8; } a:hover { color: #ff5e64; } a:active { color: #000000; } - Photoshop
-
Использую с версии 5.5.
Чувствую себя сухо и комфортно.
При работе для web, зачастую, проще сделать задуманное сразу в HTML, нежели тратить время и силы на отрисовку в макете.
Считаю, Photoshop`у недостаёт ряда функций и инструментов для, по-настоящему, удобной работы с макетом страницы.
- Rhino, 3DMax, V-Ray, Brazil
-
Занимался NURBS-моделированием в Rhino.
3DMax использовал, по большей части, как среду для V-Ray, минимум curves-моделирования.
Непродолжительное время, для ряда иллюстраций, работал с Brazil.
Люблю применять 3D в иллюстрациях и для web. Контраст в сочетании объёмного декора и плоского, рафинированного, текста даёт интересные результаты.
- Дизайн, графика
-
Графический дизайн, веб-дизайн, логотипы, полиграфия.
- Интерфейс, юзабилити
-
Разработка интерфейсов — неотъемлемая часть изготовления дизайна веб-сайта.
Стараюсь следовать принципам минимализма оформления и максимализма удобства работы с сайтом.
Как правило, самая простая, иногда, до примитивного, реализация — самая верная.
- Идеология
-
Способен выступать в роли вперёдсмотрящего, отчаянно замечать в чужих глазах соринки, а в своих — брёвна.
За годы работы в веб, сложилось мнение по массе отраслей и подходов.
Что помогает выступать разработчиком не только технологической стороны проектов, но и их идеологической составляющей.
Придумывать направления развития проекта и функционал интереснее реализации в коде. - Занудство и ворчание
-
Вредный, неполезный!
Врождённый педантизм, приобретённое занудство, перманентный поиск недочётов и культивируемый идеализм, изрядно сдобренный мизантропией, делают из меня полновесного, вредного зануду.
Что, однако, только способствует работе.
- Проекты
-
Занимался всем спектром работ для web и не только.
Концепция, проектирование, разработка, дизайн, иллюстрации, вёрстка, шаблонизация, юзабилити-инспекция, редакционная подготовка.
Консультации по дизайну, юзабилити, организации материала.- Вид из окна — http://vidizokna.ru/ — интернет-площадка продажи и аренды недвижимости.
Разработка концепции, дизайн, графика, проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - Мой вертолёт — http://myhelicopter.ru/ — проект о вертолётах для интересующихся.
Проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - Ridens — http://ridens.ru/ — сайт студии «Ridens».
Дизайн, графика, логотип, стиль, проектирование, программирование, вёрстка и XSLT-шаблонизация. - Аэросоюз — http://www.aerosouz.ru/ — сайт компании «Аэросоюз».
Проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - Eurocopter в России — http://eurocopter-russia.ru/ — сайт о вертолётах «Eurocopter» для компании «Аэросоюз».
Проектирование, программирование, вёрстка и XSLT-шаблонизация. - Agusta Westland в России — http://agusta-russia.ru/ — сайт о вертолётах «Agusta Westland» для компании «Аэросоюз».
Проектирование, программирование, вёрстка и XSLT-шаблонизация. - МИР NVIDIA — http://nvworld.ru/ — сайт о продукции компании «NVIDIA», один из старейших «железных» сайтов рунета.
Дизайн, графика, проектирование, программирование, вёрстка и шаблонизация. - ALT-форум Parser 3 — http://parser.groundzero.ru/ — линейное представление серьёзной базы знаний — форума «Parser 3».
Дизайн, графика, проектирование, программирование, вёрстка и XSLT-шаблонизация. - Вертолёты Bell — сайт о вертолётах «Bell» для компании «Аэросоюз».
Проектирование, программирование, вёрстка и XSLT-шаблонизация. - Одежда John Douglas — сайт об одежде «John Douglas» для компании «Аэросоюз».
Проектирование, программирование, вёрстка и XSLT-шаблонизация. - Сайт вертолётной компании «Авиамаркет» (ныне переделан).
Проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - «Автосайт» — информационно-торговый проект про автомобили.
Проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - «BMW Sale» — информационно-торговый проект про автомобили BMW и Mini.
Проектирование, программирование, частично вёрстка и XSLT-шаблонизация. - Сайт южного регионального кадастрового центра «Земля».
Дизайн, графика. - Сайт ВИА «Цветы» — http://www.flowersrock.ru/.
Программирование. - И порядка десяти прочих проектов, различной направленности.
- Вид из окна — http://vidizokna.ru/ — интернет-площадка продажи и аренды недвижимости.
- Контактная информация
-
- сайт — http://groundzero.ru/ (← вы здесь)
- «Мой круг» — http://marin-aleksey.moikrug.ru/
- «Habrahabr» — http://g-z.habrahabr.ru/