Pull to refresh
58
0
Данил Письменный @dapi

Инженер-программист

Send message

Выбор хостинга с упором в облака и с прицелом на развёртывание Rails 3 app

Reading time9 min
Views14K
Несмотря на наличие «Rails 3» в названии топика, и рассмотрения в теле статьи специфичных для Rails 3 аспектов, она может быть интересна всем остальным из-за освещения аспектов общего характера.

На Хабре много ответов на разные мои вопросы, но ответа на вопрос «а где же мне хостится», получить я, даже при внимательном штудировании Хабра, не смог. Я даже воспользовался q&a, пытаясь определиться: раз и два, но окончательного ответа так и не получил. Пришлось проводить самостоятельное исследование.

Я решил поделиться своими скромными изысканиями на эту тему с хабрасообществом. Они не претендуют на всеохватность. Но могут внести некоторую ясность для человека, собирающегося выбрать облачно\vds-ный хостинг, но не имеющего никакого представления о рынке.

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

Список упоминаемых хостингов: 1gb.ru, Hostingrails, RackspaceCloud, Mediatemple, Heroku, Amazon Web Services (шапочно), Engine Yard (шапочно), Altnet (привет с Хабрахабра), justhost.com (лучи поноса), Linode, Hetzner online (выделенный сервер), Server4you

Читать дальше →

Дешевые SMS для интересных проектов и хороших людей

Reading time1 min
Views2.3K
Представляю вашему вниманию сервис для отправки SMS через HTTP/HTTPS API.

LittleSMS.ru

Для кого предназначен сервис?

  • Интернет-магазинам (уведомление о новом заказе).
  • Небольшим проектам с системой уведомлений по SMS.
  • Сисадминам (уведомления о состоянии сервисов, оборудования и т.п.).
  • Вам? Напишите, обсудим.
Читать дальше →

Математика карьеры

Reading time6 min
Views7.1K
catchy image Пару недель назад все начали писать о предстоящей майкрософтовской конференции PDC (Professional Developers Conference). В частности, Дуг Рейли написал пост «Кто управляет вашей карьерой?». Многие прочитали и сослались на пост, а некоторые (например, Сэм Джентайл или Роберт Херлбат) даже развили идею в ответных постах.

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

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

Думали, математика никогда не пригодится?

Asterisk, или домашняя телефония для (про)двинутых пользователей

Reading time14 min
Views122K
Эта история началась два долгих года назад, когда во время командировки в США я ВДРУГ остался без мобильной связи: с дуру перед поездкой поменял телефон, а он оказался «двух-диапазонником»… Да и роуминг не дешёвый…
Итогом стало открытие для себя SIP-телефонии.

И вот несколько месяцев назад, из статей на Хабре, выясняю, что чужим дядям можно и не платить за межгород, если надо позвонить откуда-то в родной город через Интернет! Достаточно поставить VoIP сервер и настроить его так, как надо именно тебе!

И вот, взяв в руки Asterisk, я приступил к операции по борьбе с излишней жадностью ОпСоСов…

Читать дальше →

Правила эффективного использования jQuery

Reading time5 min
Views43K
Здесь приведен ряд очень простых правил, следуя которым, ваше сотрудничество с jQuery не будет омрачено скрежетом напрягшегося браузера. Конечно, не так часто случается, что скорость работы javascript’а оказывается критичной, однако такое все же может произойти, и произойти в самый неподходящий момент. Поэтому, лучше держать эти правила в голове и не пренебрегать ими.
Читать дальше →

Agile команда и контракты с фиксированной ценой

Reading time13 min
Views11K
Контракты с фиксированной ценой — это зло, вот что можно услышать от адептов agile. С другой стороны, такие контракты — это реальность, с которой сталкиваются многие agile команды. Но что, если мы попытаемся укротить это зло, а не бороться с ним?

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

Так давайте же начнем с самого контракта.

Фиксированная цена, время и объем обязательств



Такие контракты фиксируют сразу три магических фактора — деньги, время и объем обязательств. Являются ли цена и сроки проблемой для agile команд? Ну, не должны быть. На самом деле, таймбоксинг (timeboxing) — это обычная практика. Ограничение бюджета только помогает таймбоксингу лучше работать.

Настоящей проблемой контрактов с фиксированной ценой является объем обязательств, ведь обычно прописано, что именно должно быть сделано, вместо того, сколько именно нам следует работать.
Читать дальше →

По ту сторону браузера: Как подключить прием платежей

Reading time4 min
Views33K
Привет!

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

Процессинг платежей


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

Как фрилансеру распознать нежелательного заказчика?

Reading time3 min
Views5.3K
Я более 4 лет работаю фрилансером и имею опыт общения с различными заказчиками, опыт разработки различных проектов. Свой опыт я постарался обобщить, создав небольшую памятку, а вернее «стоп-лист», которым теперь пользуюсь для раннего отсева заказчиков, работа с которыми не приносит ни радости, ни выгоды. Мне он помогает экономить время и нервы. Надеюсь, он будет полезен и вам, если вы фрилансер. Он также может быть полезен начинающим заказчикам. Публикую его здесь с небольшими комментариями к каждому пункту.

«Стоп-лист» содержит негативные признаки заказчика. Пожалуйста, обратите внимание, что совпадение 1-2 пунктов может оказаться случайностью. При совпадении 3 и более пунктов я отказываюсь работать с заказчиком.
Читать дальше →

Модели реальности и их роль в жизни людей

Reading time4 min
Views17K
Есть модель мира, и есть реальный мир.
Как в физике — есть какое-то явление, а есть его модели.

С течением времени модели уточняются — были у нас линейные сложения скоростей, потом стало очевидно — на больших скоростях не работают формулы; теорию уточнили — и стали преобразования нелинейно зависимыми от скоростей, скорость света туда вошла.

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

Однако где-то 95% людей не знают, что у них в голове мозг занимается тем же самым, только первые годы жизни. Он изучает и моделирует реальный мир, закладывая себе модели явлений, характеров людей, абстрактных понятий, и так далее, которые потом человек в своем сознании использует как инструмент, воспринимая модель как реальность. Далее всю жизнь человек этим и занимается, составляя все более сложные модели.

Вот только отличий от физиков тут три. Первое — это незнание природы работы мозга. И отсюда вытекающая уверенность, что все, что человек видит, думает и знает — и есть истина. То есть человек себя убедил (читай сделал себе модель) в том, что Windows лучше, чем Linux — все, теперь в его модели мира может быть только этот факт. Второе отличие как раз в уточнении модели. Люди не уточняют модели реальности, как правило, более того, мозг специально отсекает факты, противоречащие модели, либо вырабатывает «адаптеры» в виде «логических объяснений», чтобы не нарушить комфорта в восприятии мира — все знают нелюбовь к изменениям, боязнь, что «мир встанет с ног на голову».
Читать дальше →

Темная сторона Ruby, Proc и lambda

Reading time3 min
Views42K
Многие любят руби за его красоту и гибкость. Но некоторые не догадываются о темной стороне языка Ruby. Сегодня расмотрим одну из темных лошадок руби, многие им пользуются, но не многие знают его секрет. Итак, тема дня блоки!
Читать дальше →

Tips & Tricks

Reading time9 min
Views5.1K
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.

Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.

Методы массивов


Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.

Способ первый, самый примитивный:
  1. @users = User.find(:all)
  2. activated_users = 0
  3. foreach user in @users
  4.   activated_users += 1 if user.activated == 1
  5. end
  6.  
  7. # если количество совпадает, значит все юзеры активированы
  8. activated_users == @users.size
Читать дальше

Как не утонуть в море тендеров

Reading time6 min
Views2.6K
День добрый, Хабрасообщество.
Ежедневно организациям, работающим в сфере госзаказа, приходится отсматривать сотни тендеров, куда-то сохранять информацию, как-то отслеживать результаты, делать заявки, запрашивать цены у поставщиков и т.д. Являясь одной из таких организаций, мы постепенно пережили этап бардака и привели этот процесс к одной замечательной системе. Как? Подробности под катом.

Читать дальше →

Два протокола управления проектами

Reading time5 min
Views5.3K
Доброго времени суток.

Я пришел в управление проектами из программирования. То есть, нет так давно, я еще писал код и мне это очень нравилось. Меня мало беспокоили волнения, происходящие где-то на верху — «у менеджеров». Все поменялось в 2004, когда меня назначили тим лидом.

Это был большой и сложный проект. Мы работали как удаленная офшорная группа в постоянной атмосфере прессинга со стороны менеджмента. Оценки задач спускались сверху, и чтобы хоть как-то справиться с задачами, приходилось работать до позднего вечера и по выходным.

Тогда я начал задумываться о причинах такой ситуации, начал читать посты и книги по менеджменту. Как программист, находящийся под впечатлением революционных архитектурных решений — таких, как MVC и паттерны Фоулера, я полагал, что есть *техническое* решение наших проблем с менеджментом — нужно его только отыскать и применить.

Следующие несколько лет я искал *супер фреймворк* для управления проектами. Но только недавно понял, что его нет и быть не может. Проблема заключается в том, что в разработке ПО одновременно используются 2 конфликтующих протокола общения между участниками Процесса.

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

Bundler — менеджер для управления gem'ами

Reading time5 min
Views79K

Что такое Bundler?


Это менеджер для управления зависимостями gem'ов в ruby приложениях. Эта утилита позволяет легко устанавливать необходимые gem'ы для вашего приложения, при этом вовсе не зависеть от установленных в системе. Если вы использовали Rails для своих разработок, то вы вспомните, как задавали зависимости gem'ов c помощью config.gem в enviroment.rb, Bundler решает эту задачу намного удобнее и проще. Его включили в Rails 3.0 по умолчанию и теперь, именно он используется для управления зависимостями gem’ов в данной версии фреймворка. Эту утилиту можно использовать для любого ruby фреймворка.
Читать дальше →

Типовой шаблон технического задания на разработку сайта

Reading time2 min
Views450K
ОФФТОП: Хочу выразить свою благодарность, всем кто плюсанул мой предыдущей пост и карму, это позволило мне пригласить на Хабр еще несколько хороших людей.

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

image
Читать дальше →

Python и emacs, несколько удобных решений

Reading time5 min
Views7K
Расскажу немного о том, как быстро превратить emacs в полноценную python IDE. Начнем с интересного способа автозавершения кода + по ходу дела добавим еще пару интересных и полезных возможностей. Наверняка многие используют что-то типа rope (или может свои какие-то решения) и это довольно разумно, но не слишком наглядно. Расскажу об одном дополнительном способе.

Теперь по нажатию TAB мы будем получать вот это:
image
Читать дальше →

Допиливание Emacs для нетбуков

Reading time2 min
Views2K
Здравствуй %username%!
Недавно начал использовать Emacs. Мне очень нравится за скорость и простоту. После покупки нетбука столкнулся с тем, что Emacs под Windows не влазит в его 1024x600 когда он запускается, и приходится каждый раз менять размен окна и его двигать. Как решение написал маленькую функцию, которая восстанавливает размер окна при старте. Думаю, это может быть полезно не только пользователям нетбуков.
Сам код за катом.

Заполнение БД тестовыми данными при помощи Populator и Faker

Reading time1 min
Views6.8K
Часто возникает необходимость протестировать приложение на предмет работы с реальными данными. Причём, данные должны быть максимально приближены к реальным как с качественной стороны, так и с количественной. Работу по наполнению базы такими данными значительно упрощают гемы Populator и Faker.
Читать дальше →

Конструктор/редактор Яндекс.Карт

Reading time1 min
Views14K
Внезапно потребовалось выводить на странице виджет Яндекс.Карт с какими-то накладываемыми слоями. Проблема заключалась в необходимости дать пользователю редактировать эти слои.

Быстрый поиск редакторов накладываемых примитивов дал только конструктор схем проезда от Яндекса и какой-то убогий php'шный конструктор карт (к тому же ещё и платный). А редактор был нужен. По этому пришлось сесть и быстренько написать.


Читать дальше →

Программирование: Практики которые я возьму с собой

Reading time3 min
Views4.3K
Я имею довольно небольшой опыт работы в сфере разработки программного обеспечения (всего 6 лет), но я уже накопил ряд полезных и правильных практик (по моему скромному мнению), которые можно использовать при создании программного обеспечения.

В основном описаны моменты которые касаются поддержки процесса разработки программного обеспечения, не затрагиваются темы планирования хода выполнения работ. Также не затронут процесс программирования и полезные плюшки для него (например расслоение системы на уровни, использование шаблонов проектирования). Но все ниже приведенное было и остается полезным для меня лично, и я буду рад если и вам на что нибудь сгодится :)
Читать дальше →

Information

Rating
Does not participate
Location
Чебоксары, Чувашия, Россия
Works in
Date of birth
Registered
Activity