Здравствуйте. Меня зовут Вячеслав, мне 22 года и я пхп программист. Я сижу на пхп с 18 лет.
Антон @fr_ant
Software engineer
Аутентификация в rails-приложениях с помощью facebook, vkontakte
7 min
39KАутентификация в rails-приложениях через facebook, vkontakte
![](https://habrastorage.org/storage2/5df/b81/0f9/5dfb810f9a247b65b11195d8b7abe1a9.png)
В данной статье будет рассказано, как сделать простейшую аутентификацию в rails-приложении через социальные сети vkontakte и facebook, помогают в этом гемы omniauth, omniauth-facebook, omniauth-vkontakte. Материал рассчитан на новичка. Хоть это и будет учебное приложение, но для придания законченности используем bootstrap с помощью гема twitter-bootstrap-rails.
+46
Разработка сайта — от первой встречи с заказчиком до сдачи проекта, или как быть фрилансером и выжить
12 min
73KПривет, Хабр!
Я занимаюсь разработкой сайтов — разного масштаба, сложности и ценовых категорий. Помимо того, что я руковожу всем процессом разработки — т.е. веду все переговоры с заказчиком, пишу техническое задание (далее — ТЗ), договор, придумываю коммерческое предложение, я еще зачастую самолично рисую дизайн сайта — это моя профильная профессия, да и не нашлось пока дизайнера, которому я мог бы полностью довериться.
Тут проскакивало множество топиков про то, как правильно составлять ТЗ, управлять своим временем, говорить с заказчиками об оплате, вести переговоры и т.д. Не в пику авторам этих топиков, но все эти мысли подчас выглядели для меня разрозненными, да и речь, подчас, велась о слишком «высоких материях» и несколько однобоко — то есть, в большинстве случаев подразумевается, что либо у вас уже есть своя «молодая, динамично развивающаяся компания» с неким штатом зарплатных фулл-таймовых сотрудников, либо вы — наемный сотрудник-руководитель в уже сформировавшейся компании, и вышеописанный штат сотрудников у вас также имеется.
Я попробую описать весь процесс создания сайта с собственной и, как мне кажется, более приближенной к жизни для большинства точки зрения. Просто в один момент я решил уйти из компании, где я работал по найму, и начать делать своё дело — без стартового капитала, офиса и какого бы то ни было прикрытия «пятой точки»; разве что отсутствия острой необходимости в съеме жилья и наличия питерской прописки.
Кому интересно — добро пожаловать под кат!
Я занимаюсь разработкой сайтов — разного масштаба, сложности и ценовых категорий. Помимо того, что я руковожу всем процессом разработки — т.е. веду все переговоры с заказчиком, пишу техническое задание (далее — ТЗ), договор, придумываю коммерческое предложение, я еще зачастую самолично рисую дизайн сайта — это моя профильная профессия, да и не нашлось пока дизайнера, которому я мог бы полностью довериться.
Тут проскакивало множество топиков про то, как правильно составлять ТЗ, управлять своим временем, говорить с заказчиками об оплате, вести переговоры и т.д. Не в пику авторам этих топиков, но все эти мысли подчас выглядели для меня разрозненными, да и речь, подчас, велась о слишком «высоких материях» и несколько однобоко — то есть, в большинстве случаев подразумевается, что либо у вас уже есть своя «молодая, динамично развивающаяся компания» с неким штатом зарплатных фулл-таймовых сотрудников, либо вы — наемный сотрудник-руководитель в уже сформировавшейся компании, и вышеописанный штат сотрудников у вас также имеется.
Я попробую описать весь процесс создания сайта с собственной и, как мне кажется, более приближенной к жизни для большинства точки зрения. Просто в один момент я решил уйти из компании, где я работал по найму, и начать делать своё дело — без стартового капитала, офиса и какого бы то ни было прикрытия «пятой точки»; разве что отсутствия острой необходимости в съеме жилья и наличия питерской прописки.
Кому интересно — добро пожаловать под кат!
+67
PHP: фрактал плохого дизайна
32 min
205KTranslation
Предисловие
Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.
Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.
PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).
PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
+334
Искусство публичных выступлений
9 min
106KЭта статья открывает серию статей — если окажется, что Хабраколлеги сочтут ее интересной, ибо первое правило публичных выступлений гласит: рассказывай людям о том, что им интересно!
Если вы раньше не выступали на публике или боитесь это делать — вам под кат. Если вы считаете себя опытным докладчиком, для вас будет вторая статья серии.
В сегодняшней статье я пишу о том, как выступать, и очень мало пишу о содержании доклада. Если из комментариев станет понятно, что надо еще рассказать о композиции доклада (постановка задачи -> варианты решений -> процесс выбора -> выбранное решение -> результат) или об основах публичной речи (не «экать», не «мыкать», не говорить через слово «т-скыть» и не заканчивать фразы ненормативными междометиями) — расскажу в следующий раз.
Историческая справка: на Хабре по этой теме уже было небольшое обсуждение год назад.
Если вы раньше не выступали на публике или боитесь это делать — вам под кат. Если вы считаете себя опытным докладчиком, для вас будет вторая статья серии.
В сегодняшней статье я пишу о том, как выступать, и очень мало пишу о содержании доклада. Если из комментариев станет понятно, что надо еще рассказать о композиции доклада (постановка задачи -> варианты решений -> процесс выбора -> выбранное решение -> результат) или об основах публичной речи (не «экать», не «мыкать», не говорить через слово «т-скыть» и не заканчивать фразы ненормативными междометиями) — расскажу в следующий раз.
Историческая справка: на Хабре по этой теме уже было небольшое обсуждение год назад.
+211
+32
Постигаем Git
6 min
56KTranslation
От переводчика: в этой статье нет описания команд git, она подразумевает, что вы уже знакомы с ним. Здесь описывается вполне здравый, на мой взгляд, подход к содержанию публичной истории в чистоте и порядке.
Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
Если вы не понимаете, что побудило сделать git именно таким, то вас ждут страдания. Используя множество флагов (--flag), вы сможете заставить git работать так, как по вашему мнению он должен работать, вместо того, чтобы работать так, как git того хочет. Это как забивать гвозди отверткой. Работа делается, но хуже, медленнее, да и отвертка портится.
+114
Ремарт: как я создавал свой бизнес
5 min
2.9KЧасть I. Идея и инвесторы
Началось все с мебели. Листая один популярный журнал, я заметил статью с описанием интересного бизнеса. Там американская компания производила и устанавливала скрытые проходы. Это что-то вроде того, что можно увидеть в фильме о приключениях Бэтмена. Я до этого случая видел что-то подобное только в фильмах, мол, расставляешь шахматные фигуры на поле с электроникой внутри, и если правильно их расставить – то дверь откроется. Удивительное дело, вот мне и запомнилась эта статья.
Через пару месяцев жизненные обстоятельства сложились таким образом, что передо мной стал вопрос, как организовать собственное дело.
+54
Как должно выглядеть идеальное персонализированное письмо
1 min
17KПервоапрельский анекдот рассказывает компания UniSender:
Дорогой мистер Джонс,
Мы заметили, что Вы давно не покупали никаких презервативов в SpiffyMart (последний раз это было 8 недель назад).
К тому же прекратили покупать предметы женской гигиены, но стали больше покупать замороженной пиццы и обедов быстрого приготовления.
Из этого ясно, что миссис Сандерс покинула Вас.
(Может, это и к лучшему – она ведь покупала такие дешевые шампуни, которые явно не добавляли ей привлекательности).
База данных почтового отделения подтверждает, что она сменила свой адрес.
Примите наши соболезнования. Мы полагаем, что горяченькое порно-видео поможет Вам пережить этот стресс. Если Вы чувствуете себя одиноким – просмотрите наш каталог.
Купите DVD не откладывая и мы добавим один диск бесплатно!
Искренне Ваш,
Менеджер по сбыту.
P.S. Помните ту блондинку, которую Вы угощали в прошлую субботу двойным мартини в баре O`Dougles? Забудьте о ней! Она уже много месяцев чем-то инфицирована и является постоянным клиентом аптеки Acme Pharmacy. (Ее домашний компьютер в одной сети с нашим). И неизвестно, что можно от нее подцепить. А наши видеокассеты совершенно безопасны.
Дорогой мистер Джонс,
Мы заметили, что Вы давно не покупали никаких презервативов в SpiffyMart (последний раз это было 8 недель назад).
К тому же прекратили покупать предметы женской гигиены, но стали больше покупать замороженной пиццы и обедов быстрого приготовления.
Из этого ясно, что миссис Сандерс покинула Вас.
(Может, это и к лучшему – она ведь покупала такие дешевые шампуни, которые явно не добавляли ей привлекательности).
База данных почтового отделения подтверждает, что она сменила свой адрес.
Примите наши соболезнования. Мы полагаем, что горяченькое порно-видео поможет Вам пережить этот стресс. Если Вы чувствуете себя одиноким – просмотрите наш каталог.
Купите DVD не откладывая и мы добавим один диск бесплатно!
Искренне Ваш,
Менеджер по сбыту.
P.S. Помните ту блондинку, которую Вы угощали в прошлую субботу двойным мартини в баре O`Dougles? Забудьте о ней! Она уже много месяцев чем-то инфицирована и является постоянным клиентом аптеки Acme Pharmacy. (Ее домашний компьютер в одной сети с нашим). И неизвестно, что можно от нее подцепить. А наши видеокассеты совершенно безопасны.
+68
Дорабатывать или переписывать
3 min
17KОсновная мысль этой статьи: переписывайте с нуля работающий и внедренный проект только под дулом пистолета.
![](https://habrastorage.org/storage2/8ca/3be/eaf/8ca3beeaf4709214dd1fedc67d31c19e.jpg)
![](https://habrastorage.org/storage2/8ca/3be/eaf/8ca3beeaf4709214dd1fedc67d31c19e.jpg)
+118
Советы себе в прошлом
4 min
23KУ меня очень мало опыта (суммарно программистом я проработал 16 месяцев), тем не менее, я хотел бы дать несколько советов себе-в-прошлом, ну, или иными словами всем тем, кто сейчас учится в университете и планирует стать разработчиком ПО. Ни в коей мере не претендую на мудрость или опытность. Немного подумав, я понял, что все эти советы как никогда актуальны для меня и сегодня тоже. Первую заметку я опубликовал в своем блоге в прошлом году, а сейчас публикую здесь список, расширенный советами читателей блога.
Все советы автономны и их порядок не имеет значения.
Все советы автономны и их порядок не имеет значения.
+167
Заготовка для сайта (Kohana+Bootstrap+HTML5)
4 min
29KРассмотрим заготовку для сайтов, обладающую хорошими возможностями для дальнейшего расширения. Будут указаны её основные особенности, и подробно описан процесс установки.
Если представленная заготовка окажется полезной большинству пользователей, о чем они не преминут указать в комментариях, тогда, скорее всего, отдельные её модули и особенности будут рассмотрены в дальнейшем.
Некоторые функции, код и отображение данных используются больше в показательных целях, чем для практического применения в рамках создания рабочего сайта.
В представленном виде заготовку уже можно применять для создания простых сайтов, но с неплохими возможностями для расширения.
Если представленная заготовка окажется полезной большинству пользователей, о чем они не преминут указать в комментариях, тогда, скорее всего, отдельные её модули и особенности будут рассмотрены в дальнейшем.
Некоторые функции, код и отображение данных используются больше в показательных целях, чем для практического применения в рамках создания рабочего сайта.
В представленном виде заготовку уже можно применять для создания простых сайтов, но с неплохими возможностями для расширения.
+12
Кто, Зачем и Как ищет стартапы
3 min
15K![](https://habrastorage.org/storage2/6ce/fb3/50e/6cefb350e5568f42513543ef33ca0d1a.jpg)
Кто ищет стартапы: инвесторы, менторы, бизнес-инкубаторы, корпорации, консультанты и даже стартапы ищут стартапы.
Как искали раньше? (на примере инвесторов)
1. Создать входящий поток проектов, т.е. чтобы стартапы сами приходили к инвестору. Для этого нужно много рекламировать себя, выступая спонсором конференций, публикуя новости венчурного рынка, рассказывая стартаперам как делать стартапы, показывая как много денег у тебя есть.
Самый яркий пример успешного создания входящего потока — Farminers. Они за 6 месяцев собрали около 2 тысяч проектов.
2. Создать исходящий поток проектов, т.е. самому находить стартапы и приглашать их на встречу. Для этого нужно мониторить новости о стартапах, раздел «Я пиарюсь» на Хабре, каталоги стартапов, конкурсы, обязательно ходить на мероприятия, где презентуются стартапы. Это может сделать любой инвестор, но ему придется посвятить этому много месяцев работы.
3. Работать по рекомендациям. Когда у тебя появилось имя на рынке, другие инвесторы могут присылать тебе интересные стартапы с предложением соинвестировать. Нет имени? Нет рекомендаций.
Кстати, когда большой поток проектов создан, возникает следующая еще более «интересная» задача — отфильтровать поток проектов и выбрать лучшие. Об этом мы подробнее расскажем в следующий раз ;)
Теперь месяцы работы можно сократить до пары часов «прицельного» поиска на StartupPoint.ru.
Рассмотрим, кто и зачем ищет стартапы.
+18
Сначала «скелет», а потом «мясо», или почему неуспешны стартапы
3 min
5.2KСначала «скелет», а потом «мясо».
Сначала процесс, а потом инструмент под процесс.
Автоматизация хаоса дает хаос.
Это все — разные формулировки одной простой идеи. Идея, которая часто не учитывается во множестве вещей.
Для примера рассмотрим стартапы. Обычно бывает как. Возникает у человека идея, что определенный процесс будет интересен группе людей. И человек создает стартап, сайт, где эти люди должны будут использовать сайт как инструмент для процесса.
Не учитываются следующие моменты
1. Сам процесс может существовать только в воображении создателя стартапа. К примеру, процесс аггрегации результатов матчей ЦСКА вовсе может быть не нужен фанатам этого футбольного клуба, как бы себе это не представлял стартапер. Поэтому важно быть в самом процессе, понимать, какой процесс — реален, а какой нет.
Сначала процесс, а потом инструмент под процесс.
Автоматизация хаоса дает хаос.
Это все — разные формулировки одной простой идеи. Идея, которая часто не учитывается во множестве вещей.
Для примера рассмотрим стартапы. Обычно бывает как. Возникает у человека идея, что определенный процесс будет интересен группе людей. И человек создает стартап, сайт, где эти люди должны будут использовать сайт как инструмент для процесса.
Не учитываются следующие моменты
1. Сам процесс может существовать только в воображении создателя стартапа. К примеру, процесс аггрегации результатов матчей ЦСКА вовсе может быть не нужен фанатам этого футбольного клуба, как бы себе это не представлял стартапер. Поэтому важно быть в самом процессе, понимать, какой процесс — реален, а какой нет.
+27
Техническое задание на сайт
11 min
698KUPD: Продолжение статьи с примером техзадания
Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.
То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.
Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.
А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.
Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:
![](https://habrastorage.org/storage2/e86/710/f68/e86710f684f580c406a3c3c8ce05ca51.png)
Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.
То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.
Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.
1. Обоснование необходимости ТЗ
А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.
Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:
![](https://habrastorage.org/storage2/e86/710/f68/e86710f684f580c406a3c3c8ce05ca51.png)
+206
Золотые правила успешной кнопки
3 min
71KTranslation
Здравствуй, дорогой хабрадруг! Сегодня существуют более тысячи способов создать кнопку; чтобы понять их сущность, вам нужно лишь потратить немного времени, просмотрев работы на сайте dribbble.com. Большинство из этих примеров очень похожи друг на друга, однако время от времени попадаются и такие кнопки, на создание которых потратили чуть больше внимания, времени и сил.
![](https://habrastorage.org/getpro/habr/post_images/e9e/5cd/d13/e9e5cdd13bbffe7c53d92de21a7036c9.png)
Воспользовавшись замечательными параметрами CSS3, мы можем создать элегантые и стильные кнопки без особых усилий (учитывая старые браузеры, конечно). Создаете ли вы кнопку непосредственно в CSS или пользуетесь специальными инструментами для их создания, всегда нужно тщательно подумать о том, как ваша кнопка будет выглядеть в контексте веб-сайта.
![](https://habrastorage.org/getpro/habr/post_images/e9e/5cd/d13/e9e5cdd13bbffe7c53d92de21a7036c9.png)
Воспользовавшись замечательными параметрами CSS3, мы можем создать элегантые и стильные кнопки без особых усилий (учитывая старые браузеры, конечно). Создаете ли вы кнопку непосредственно в CSS или пользуетесь специальными инструментами для их создания, всегда нужно тщательно подумать о том, как ваша кнопка будет выглядеть в контексте веб-сайта.
+206
Зачем платить больше? Веб-студии, уменьшаем налоги с 34% до 20%
1 min
15KВозможно, моя заметка для многих будет всем известной истиной, но для меня, как и для многих моих знакомых, это оказалось приятной новостью. Поскольку область нашей деятельности – веб-разработка, мое обращение именно к представителям этого сегмента. Хотя все, о чем пойдет речь ниже, будет относиться ко всем компаниям, которые занимаются разработкой ПО.
+58
Делаем приватный монитор из старого LCD монитора
2 min
974KTranslation
![](https://habrastorage.org/storage1/cc971216/3b86eb6d/dfa8282f/8ccb8fa5.jpeg)
Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.
Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.
+1450
Спасти проект: самые важные вопросы
4 min
5.9KТак уж получилось, что последние пару лет я много работаю с кризисными проектами. Это проекты, в которых деньги потрачены, цели не достигнуты, все сроки много раз нарушены, менеджера уволили или он сам в ужасе сбежал, а уровень мотивации команды – ниже некуда. В общем, материализовавшийся fuck up. К сожалению, большинство таких проектов нельзя просто закрыть – все они важны для заказчика.
+59
Как должна работать компания по web-программированию
7 min
16K![image](https://habrastorage.org/getpro/megamozg/post_images/953/232/185/95323218544797f608be69ae1966156b.jpg)
Жить стало спокойнее, подрос ребенок, появилось немного свободного времени и я начала немного заниматься фрилансом. Через некоторое время вместе с несколькими друзьями с похожим опытом решили организовать небольшую компанию по веб-разработке для освоения кроме всего прочего и местного рынка, для поднятия больших проектов и вообще для дальнейшего развития.
Первое время организационной работы и прочей текучки было много, но это только отчасти может служить оправданием того, что опомнилась я только через несколько лет и окончательно поняла, что работаю совсем не так, как бы мне хотелось и, более того, те основополагающие вещи, которые я считала само собой разумеющимися, для моих товарищей возможно таковыми совсем не являются.
И вот тогда в конечном итоге решилась эти само собой разумеющиеся, очевидные для меня вещи оформить в такой себе «манифест» (хе-хе), концепцию, описание и список того, без чего, имхо, работать компании не стоит. Уточню, что речь пойдет не о работе с клиентом, не о менеджменте как таковом, не о деньгах и бизнес-планах, а об организации работы небольшой фирмы разработчиков под веб (и, возможно, не только под веб), о том, что надо делать, чем важно заниматься чтобы работать успешно и развиваться.
+56
Information
- Rating
- 2,769-th
- Location
- Самара, Самарская обл., Россия
- Date of birth
- Registered
- Activity