• Определение терминов в договоре на разработку сайта

      В процессе взаимодействия веб-студии с клиентом часто возникают ситуации, когда от понимания и трактовки технических терминов зависят важные вопросы в рамках проекта. Для работников студии определения большинства терминов, которыми приходится оперировать в разговорах с клиентом, кажутся очевидными, и порой кажется, что клиенту, заказывающему сайт, это должно быть не менее очевидно. Однако в жизни клиент может не знать определений вообще (просто использовать слова не понимая их смысла), трактовать их по-своему, или (особенно в случае споров) использовать трактовку из первого попавшегося источника, включая любого доступного человека, который по мнению клиента «тоже понимает».

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

      Здесь привожу цитату части нашего договора, где определяются технические и производственные термины, используемые в процессе разработки сайта (в тексте договора и технического задания в частности). Надеюсь кому-то это сможет быть полезно, критика и альтернативные мнения только приветствуются.

      Читать дальше →
    • Логин на сайт по файлу

        В одном моем проекте, который я делал для массового пользователя, понадобилось сделать режим восстановления пароля без использования email-a. Я долго думал как же это сделать и в конце концов возникла идея создать логин по файлу (токен), имея который пользователь может зайти на сайт и сменить забытый пароль. Скачать готовый скрипт с комментариями можно тут.
        Если у вас возникнут вопросы пишите, постараюсь на них ответить :)
      • Логика английских времен

          Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
          Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
          Читать дальше →
        • OpenID провайдер с помощью phpMyID

            Захотел я себе OpenID идентификатор. Чтобы иногда писать комментарии на других сайтах, допускающих OpenID. Сначала я подумал, что для этого нужно установить Wordpress с каким-то плугином. Я ошибался. Для создания на своём сайте OpenID провайдера достаточно маленькой библиотеки phpMyID

            phpMyID — это однопользовательский провайдер идентификации для OpenID. Инструкция по установке есть в дистрибутиве, но всё сводится к простому. закачиваете два php файла MyID.php и MyID.config.php и правите MyID.config.php (Ну или сначала правите, потом закачиваете, кому как удобнее). Меняете параметр auth_realm на что-то своё (эта строка потом будет в приглашении пароля в браузере), меняете auth_username на свой любимый логин, генерируете строку (я предполагаю, что у вас есть доступ к шеллу):

            echo -n 'свой_логин:свой_realm:свой_пароль' | openssl md5

            Сгенерированную строку вставляете в параметр auth_password.

            Для начала — всё. Теперь ваш OpenID будет domain.tld/dir/phpMyId.config.php. Проверьте.

            Но меня это неудовлетворило. Я подправил конфиг lighttpd, добавив правило подмены урлов:

            url.rewrite-once = (
            ...
            "^/alexey(.*)$" => "/MyID.config.php$1"
            ...
            )

            и получил себе OpenID: boyko.km.ua/alexey

            Можно добавить и второго пользователя, скопировав файл phpMyId.config.php с другим именем, и настроив ещё одно правило подмены урла в lighttpd.conf

            Не забудьте прочитать README из дистрибутива phpMyId
          • Коллекции иконок? Легко! Тысячи иконок в сетах.

              В продолжении поста "Ресурсы по поиску качественных иконок" представляю свою коллекцию сайтов, на которых вы найдёте очень(!) много качественных наборов иконок. Все сайты проверены руками, следовательно открываются и скачиваются легко.
              Читать дальше →
            • Онлайн патентование в Бюро Патентов и Торговых Марок США

                Это возможно. Может быть, для кого-то это не новость, но для меня это стало почти открытием: можно запатентовать свое изобретение в Бюро Патентов и Торговых Марок США (United States Patent and Trademark Office), сокращенно — USPTO (именно там патентуются все Гуглы и Эплы) не вставая из-за компьютера. В буквальном смысле этого слова. У меня вся процедура заняла ровно 15 минут. Спешу поделиться.

                Информация к размышлению:

                1. USPTO — это американский Роспатент, только с мозгами.
                2. USPTO принимает заявки на патентование у жителей любых стран, в т. ч. из РФ.
                3. У них есть такая замечательная штука, как временная заявка (Provisional Application) — это приоритет на изобретение в упрощенной и ускоренной форме. Своего рода анонс вашего будущего патента.
                4. Provisional Application (далее Provisional Application) действует 12 месяцев, после чего ее нужно подтвердить «настоящим патентом», иначе теряет силу.
                5. Временная заявка нигде не публикуется.
                6. Заявка может быть написана по-русски (но перевод должен быть предоставлен не позднее 16 месяцев с момента подачи).
                7. Заявка стоит от 105 долларов. Можно и больше, но это зависит только от количества информации, которую вы попытаетесь запихнуть в заявку. Мне вполне хватило 105.
                8. Оформление заявки делается с помощью веб-приложения EFS-Web. Оно может: добавлять заявку в базу USPTO, проверять эту заявку, принимать пошлину за прием заявки и высылать заявителю квитанцию о приеме заявки.
                9. Я не патентный поверенный, не юрист и вообще не-не-не. Просто любитель. Поэтому если надумаете получать таким образом патент — проверяйте. Хотя у меня, вроде, все получилось.
                10. Услуга по оформлению Provisional Application у патентных поверенных стоит в среднем 15 000 рублей. Не считая самих пошлин.

                Итак, поехали
                Читать дальше →
              • 24 способа повысить эффективность поиска в Google

                • Translation
                Листая lifehacker.com, я наткнулся на интересную статью о том, как можно более эффективно использовать поисковый сервис Google. В принципе я не ожидал встретить в ней чего-то принципиально нового для себя, тем не менее после прочтения результаты превысили мои ожидания. Думаю, эта статья может оказаться полезной для многих (ко мне чуть ли не каждый день обращаются люди с вопросами, которые можно решить элементарным поиском за две минуты).
                Читать дальше →
              • Установка с внешнего HDD

                  image
                  Я уже как год отказался от DVD привода, а тенденции нетбуков говорят о правильности решения. Но перед мной встал вопрос, как установить операционку без DVD. Не к месту умерла флешка, а когда я пошел в магазин за новой, на глаза случайно попались внешний диски Seagate Expansion, 250Gb версия которого стоила буквально на 500 рублей дороже, чем 8Gb флешка (2323 рубля). А размер и весь которой, не сильно смущал карман куртки.
                  Размеры:141 x 18 x 80 мм
                  Вес:0.16 кг

                  Но как оказалось, установка Windows 7 с USB HDD, работает не по-такому же принципу как с USB FLASH. Разобравшись и проверив работоспособность, делюсь информацией с вами.
                  Работает как и для Настольных ПК, ноубтуков, так и для Нетбуков.
                  • Подготовка HDD
                  • Нарезка и подготовка разделов HDD;
                  • Копирование Windows 7

                  Читать дальше →
                • Мир лицензий: разбираемся с GNU GPL


                    Рано или поздно каждый разработчик сталкивается с вопросом лицензирования своих разработок. Более или менее понятно, когда разрабатывается коммерческий продукт с закрытым кодом. Но когда разработчик желает распространять программу, плагин или библиотеку классов бесплатно и с открытыми кодами, то могут возникнуть трудности, потому что в природе существует масса лицензий подобного рода. Эта статья призвана собрать, упорядочить данные по лицензиям и вычленить самое главное.

                    UPD: опубликован перевод небольшого куска официального GPL FAQ habrahabr.ru/blogs/Dura_Lex/45878
                    UPD2: скорректирован и переформулирован список совместимых лицензий

                    Читать дальше →
                  • Руководство по оформлению HTML/CSS кода от Google

                    • Translation

                    От переводчика


                    С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

                    Введение


                    Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

                    Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

                    Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
                    Читать дальше →
                  • Как сделать один сайт для всех устройств (Responsive Web Design)

                      Вчера была опубликована хорошая статья «Веб-дизайн. Каждому устройству свое представление». Несмотря на неплохие размышления, к сожалению, вывод в ней довольно глупый. А именно:

                      «Нужно определить, какими устройствами могут пользоваться ваши посетители, проработать и создать для этих устройств представление вашего сайта, определить устройство посредством проверки заголовков браузеров, и отправить наиболее подходящее представление

                      Почему это глупо


                      Во-первых, никто не сможет предугадать, какими устройствами будут пользоваться ваши посетители. Нужно ориентироваться не на устройства, а на разрешения.



                      Это скриншот из презентации «Beyond the mobile web by yiibu» (очень рекомендую).

                      Во-вторых, если вы не facebook или yandex, скорее всего, вы не потянете создание и поддержку разных версий сайта для каждого устройства. Да и это не имеет особого смысла. Потому что ситуация становится похожа на реалии пятнадцатилетней давности. Тогда делали сайт «под браузер», а сейчас автор предлагает делать сайт «под устройство».

                      Как сделать один сайт для всех устройств

                      Читать дальше →
                    • Несколько примеров применения Responsive Web Design, или Ваш сайт может и должен быть резиновым

                        Доброго времени суток!

                        Несколько дней назад, гуляя по интернету, я наткнулся на достаточно интересную подборку сайтов, которые следуют, если можно так сказать, практике под названием Responsive Web Design. В двух словах, эта практика подуразумевает создание «резинового» сайта, который будет тянуться в зависимости от размера окна вашего браузера, или же экрана вашего мобильного телефона. Итак, встречайте наших сегодняшних героев!
                        Осторожно! Много трафика под катом!
                      • 62 полезных инструмента для адаптивного дизайна (Responsive web design)

                        • Translation
                        UPD. Для краткого введения в адаптивный дизайн рекомендую прочитать статью «Как сделать один сайт для всех устройств (Responsive Web Design)».

                        Перевод крайне ценной статьи «Responsive Web Design Techniques, Tools and Design Strategies» популярного интернет-издания для разработчиков Smashing Magazine.

                        Еще в январе мы опубликовали статью об адаптивном дизайне «Responsive Web Design: What It Is and How To Use It» (Адаптивный веб-дизайн: Что это такое и как им пользоваться). Адаптивный веб-дизайн продолжает привлекать к себе много внимания, но, учитывая, насколько он отличается от традиционных методов разработки сайтов, он может показаться заоблачно сложным для тех дизайнеров и разработчиков, которые его не пробовали.

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

                        Техники Responsive web design


                        1. CSS Transitions and Media Queries
                        CSS Transitions и Media Queries

                        Elliot Jay Stocks подробно рассказывает о методе сочетания CSS Media Queries и CSS transitions. Основная идея в следующем: разрабатывая адаптивный сайт с помощью Media Queries, вы постоянно изменяете ширину вашего браузера, чтобы посмотреть, как сайт ведет себя при этом. Но каждый раз, когда отрабатывает один из ваших Media Queries, виден жесткий переход между стилями (первый, например, для десктопов, второй — для планшетов). Почему бы не использовать CSS transitions для сглаживания этих жестких переходов с помощью анимации?



                        Читать дальше →
                      • Как подготовить успешную презентацию стартапа?

                          Сегодня в рамках основных задач ТекПитч я хочу поговорить об одной из самых насущных проблем основателя стартапа — подготовке презентации для инвесторов. Наличие качественной презентации — это огромный прорыв для многих отечественных проектов. Без такого актива шансы на интерес со стороны венчурного бизнеса почти равны нулю. А хороших примеров у нас на рынке очень мало.

                          Пример очень качественной презентации я дам в конце статьи.

                          Конечно, можно обратиться к кому-нибудь за помощью к кому-нибудь опытному. Это хороший ход. Но я уверен, что только основатель проекта знает все тонкости своего бизнеса, поэтому подготовка презентации — это его прямая обязанность.
                          Читать дальше →
                        • Что не охраняется копирайтом?

                            Неоднократно в своем блоге мы останавливались на вопросах авторского права. А сегодня давайте поговорим о тех вещах, на которые оно не распространяется. Знать о них в последнее время становится все более необходимо.

                            Дело в том, что современный копирайт дает правообладателю очень большой объем полномочий: он может ходатайствовать перед судом о наложении ареста на «пиратские» экземпляры произведений, требовать «компенсации», минимальный размер которой ограничен десятью тысячами рублей, и пользоваться другими мелкими привилегиями, на которые так богата четвертая часть Гражданского кодекса. Поэтому часто при возможных спорах потенциальный истец, считая свои права нарушенными, объявляет их именно «авторскими правами», не имея к этому никаких оснований.

                            Что такое творчество?
                            Читать дальше →
                          • Что нужно знать про арифметику с плавающей запятой



                            В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

                            Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
                            Читать дальше →
                          • 5 вещей, которых вы не знали о многопоточности

                            • Translation
                            Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

                            В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
                            Читать дальше →
                          • Эволюция юнит-теста

                              Много слов сказано о том, как правильно писать юнит-тесты, и вообще о пользе TDD. Потом ещё и какое-то BDD замаячило на горизонте. Приходится разбираться, что из них лучше и между ними какая разница. Может, это и есть причина, почему большинство разработчиков решили не заморачиваться и до сих пор не используют ни того, ни другого?

                              Коротко: BDD — это дальнейшее развитие идей TDD, стало быть, его и надо использовать. А разницу между TDD и BDD я попробую объяснить на простом примере.

                              Рассмотрим 3 ревизии одного юнит-теста, который я нашёл в одном реальном проекте.

                              Попытка номер №1


                              Первая версия этого юнит-теста была такой:
                              Читать дальше →
                            • Java сертификация — прохождение SCJP и SCBCD

                                Не нашел на хабре статей, в которых бы авторы описывали сертификации по Java и делились своим опытом подготовки и ощущениями от сдачи.
                                В некоторой степени хотел бы заполнить пробел этой статьей. Под катом – мое мнение по вопросу – сдавать или не сдавать сертификации, краткий обзор сертификаций по Java, а так же собственный опыт и ощущения от регистрации, подготовки и сдачи Java сертификаций SCJP и SCBCD.
                                читать далее
                              • Почему Git

                                  Было время, когда я ничего не знал про VCS, ни что это такое, ни тем более зачем это мне. И верхом своих достижений считал папочку с архивами версий. К моменту осознания необходимости системы контроля версий я уже набил шишек и прочувствовал необходимость такого инструмента. Но борландовский аналог CVS меня не впечатлил. У каждого файла свой номер версии. Как мне получить срез определенного релиза я так и не разобрался. А в это время SVN победоносно шла сквозь умы разработчиков. Черт, это было то, чего мне так не хватало. Прочитав доку и начав работать я просто влюбился в нее. Да, были трудности и определенные неудобства, но куда без них.
                                  Так я и работал бы в SVN, но ничего не стоит на месте. В интернете уже потекли тонкие ручейки новостей про Git. Я не кидаюсь за каждой новой технологией, и прошло уже достаточно много времени, пока мне не прожужжали этим Git’ом все мозги. Мне стало любопытно, я вначале присматривался, примерялся, а потом плюнул и начал новый проект на Git. Мучался с ребятами 2 недели, накачал литературы, написал шпаргалку… ничего, привыкли, … а потом меня поперло.

                                  Теперь меня регулярно просят рассказать про Git и что в нем такого. Уже надоело, поэтому этот пост для тех, кто еще сомневается.
                                  Читать дальше →