• Как начинать работу над проектом на фрилансе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Юзаю notepad++ и Far (всё настроено в плане подсветки и подсказок)
    2. Формирование краткого перечня работ и стоимости, предоплата от клиента 50%, составление ТЗ (если необходимо), затем уже сама работа по кодингу. (порядок следования очерёдности задач - сохранён)
    3. Делается полный бэкап текущего сайта средствами хостинга.
    4. Если есть возможность разделить логику разработки от действующего функционала (чтобы текущая работа не оказывала влияние на реальных посетителей) - правлю обычно сразу на (S)FTP. Иначе - только на своём хостинге.
    5. Бэкапы - делаю копированием файла/папки с добавлением .ORIG в полное имя файла (например, файл: index.php.ORIG или реже, директория: TEMPLATE.ORIG).
    6. В текстовик (для себя) - пишу всё, что я сделал, чтобы по нему можно было легко восстановить последовательность действий.
    7. Сдаю работу, получаю деньги, делаю полный бэкап сайта после всей работы и отдаю клиенту.

    Теперь, главное:
    1. Никогда не тяните время
    2. Клиент платит не за часы, а за конечную сделанную Вами работу (если это не так - значит не нужно работать с таким клиентом)
    3. Если клиент требует больше работы, чем вы с ним договорились до предоплаты - найдите компромисс, чтобы вариант устроил всех, закройте проект и больше не работайте с этим клиентом.
    Ответ написан
    6 комментариев
  • Как начинать работу над проектом на фрилансе?

    RuJet
    @RuJet
    1. Обговариваешь ТЗ. Получаешь логины, явка, пароли.
    2. Обговариваешь срок, порядок и канал оплаты. Это тоже важно.
    3. Поднимаешь копию проекта у себя на хостинге/сервере и т.д. Не рекомендую пользоваться всяческими денверами. Например поведение php под liniux может отличаться от его поведения под windows.
    4. Кодишь, кодишь, кодишь.
    5. Показываешь заказчику на своем сервере.
    6. Получаешь оплату.
    7. Переносишь изменения к заказчику. Тут пригодится вышеупомянутый GIT.
    Рекомендации:
    На рабочем месте лучше держать linux. Во-первых как выше написал родная среда для web-приложений, во-вторых проще будет админить на vps и хостингах. А админить или хотя бы диагностировать проблему приходится часто. Особенно на мелких проектах.
    Использовать VCS, например GIT.
    Держать несколько каналов для оплаты. Например банковская карта, Яндекс.деньги, Qiwi и Webmoney.
    Сразу проработать схемы перевода прибыли в доступные для траты денежные средства.
    Не лениться и не бояться.
    Все начинали с мелких проектов, всех хоть раз кидали.
    Во фрилансе учатся на ошибках. Редко получается учиться по готовым руководствам и боже упаси всяким тренингам и видеокурсам.
    Ответ написан
    Комментировать
  • Почему стремление к упорядочиванию приводит к большей энтропии и отнимает силы?

    @di23
    Периодически меня, как и вас, клинит на теме упорядочивания всего.

    Что я только не пробовал, что я только не читал и чего я только не делал. Иногда это было даже циклически, сначала бросался к одному методу, потом переходил на другой, потом на третий, а затем опять возвращался к первому. И так всегда, на протяжении 5 - 6 лет, точно уж и не помню.

    Сейчас пришел к выводу что лучшая система та, которая работает, работает легко, непринужденно и естественно, как правая рука. И боюсь, для вас сейчас будут плохие новости... Это означает, что упорядочивание всего - неэффективно и расточительно.
    Мозг и наш в целом организм - это не математика, а биология. Связи строятся хаотично. Эффективная цепочка становится крепче. Там где связь непрочная ищутся другие пути, как река находит свое русло, хоть оно и извилистое, но для реки данный путь является наиболее эффективным. Надеюсь, улавливаете мою мысль.
    Идем дальше. Ввиду того что связи строятся хаотично, не стоит насильно принуждать свой мозг работать по той или иной технике. Техника должна помогать, а не крушить ваши сформированные процессы. Принимайте то, что наиболее эффективно работает, пусть даже с виду это будет хаос. Вашему мозгу виднее, что хаос, а что нет. Совершенствуйте все постепенно, медленно, оттачивая процессы.
    По сути вы создаете гибрид, который работает только с вами и вашим мозгом. Не заменяя ваш мозг, а как бы является его продолжением, дополнительными нейронами или конечностями, которыми можно шевелить.

    Если уйти из абстрактного мира, в реальный. Это означает что у вас будет куча различных приложений, помогающих вам в повседневных делах, не удивительно если у вас будет сразу несколько ТуДушек.... Сейчас посчитал сколько их у меня, оказалась 4 штуки. Причем все они выступают также и хранителями информации. А сколько разнообразных хранителей информаций я использую... уж лучше и не считать.
    Причем все это эффективно работает, нужная инфа находится крайне быстро, несмотря на внешний хаос. Все это потому что мой мозг врос в систему и стал неотъемлемой его частью. Как пароль, как ключ, как процессор обрабатывающий хаос и упорядочивающий его в уме.

    Вот собственно как это работает у меня. Надеюсь "метафизики" достаточно в моем посте и вы ею насладились. ))) Я старался. )
    Ответ написан
    Комментировать
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    1. Аналогию с самими языками проводить не стоит. Аналогию стоит провести для платформ.
    Платформы вроде .net и java, которые разрабатывались для энтерпрайза, разумеется лучше для него подходят. И не важно даже, десктопное у вас приложение или веб-сервис. Важно, что в платформе есть поддержка нужных стандартов и технологий с гарантией качества от производителя.
    С другой стороны, многие компоненты таких платформ это closed-source. Поэтому, если вы не банк, а стартап, то для веб-сервиса выбирайте
    Ruby или Python.
    Социальную сеть можно сделать много на чем, но я бы делал на рельсах или джанге. А вот функционал сбербанк-онлайн я бы делал на ASP.NET MVC (т.е. на C#) или на джаве (на спринге например). Однако, тот же близзовский battle.net написан на спринге (сервер когда-то случайно отдал мне stack-trace после ошибки).

    Хотя, имхо, некоторые ключевые элементы дизайна языка все-таки влияют на возможность его применения в крупных проектах. Например, я считаю, что писать крупные проекты на языке со статической типизацией намного проще. Однако это вопрос очень холиварный.

    2. Нет, не будет. Не должно быть, если точнее. Для пользователя язык общения с сервисом - HTTP. Если в современном веб-фреймворке нельзя нормально абстрагироваться от используемой технологии, это плохой фреймворк.

    3. На PHP много чего нельзя сделать. Вернее, КАК БЫ можно все, но нормально можно только веб. Именно поэтому для меня он не язык, а какой-то шаблонизатор - слишком у него дурная история и связь с веб (что нехорошо для языка общего назначения). Конечно, современные веб-фреймворки его очень хорошо причесывают, что даже можно работать с ним, но мы же о языках говорим..

    4. Для веб-проектов между Ruby, Python и PHP человек бы выбирал исходя из своих умений. У каждого языка своя экосистема (библиотеки, пакетные менеджеры, серверы приложений/плагины для веб-сервера) и довольно непросто знать все сразу. Именно поэтому все расходятся по своим лагерям и просто работают. Первичный выбор языка часто определяет его популярность. Лет 5 назад Руби всех рвал за счет Рельсов, сегодня Питон и PHP подтянулись в плане экосистемы, поэтому ситуация уже другая.
    Если человек таки сумел познакомиться с разными языками, он выберет тот, в котором ему проще мыслить. Модель ООП, статическая/динамическая типизация - все это определяет ощущения КОНКРЕТНОГО человека от КОНКРЕТНОГО языка.

    5. PHP учится быстрее всех, но если вы не знаете других нормальных языков, лучше его не учите - испортитесь как программист. Python и Ruby учатся примерно одинаково. Изучение C++ - совсем другая история, я бы не ставил его в один ряд с Питоном - этот язык несколько другого уровня и требует других (более глубоких) знаний о вычислительной технике (т.е. он 100% учится дольше, чем Python).
    Ответ написан
    22 комментария
  • Чем отличаются языки программирования PHP, PYTHON, RUBY?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Еще есть java, go - они тоже очень популярны.

    И на том и на том пишутся замечательные вещи!

    Go очень просто использовать - практически как замена C/C++, только более быстр в разработке. Сильно набирает популярность, достаточно низкоуровневый, чтобы на нем писать системные утилиты и большие распределенные системы. У него есть минусы (дебаггер например), но и плюсов очень много (дебаггер редко нужен).

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

    Что касается PHP - изначально язык создавался для простых проектов для WEB, как замена CGI, но вроде бы как вырос, появились объекты... Но, дальше WEB он не развивается.

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

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

    Сам программирую на Python, C, Java, PHP.
    Относительно неплохо разбираюсь в Ruby и Go, на уровне влесть в чужой проект и поправить ошибку.

    Мои фавориты - Java, Python. Присматриваюсь к Go.
    Ответ написан
    10 комментариев
  • Можно ли изменить адресную строку, оставив в окне ту же страницу?

    Lynn
    @Lynn
    nginx, js, css
    > Может пригодиться для фишинга

    Вот поэтому и нельзя. Никак.
    Ответ написан
    6 комментариев
  • Как ускорить работу программисту?

    32bit_me
    @32bit_me
    Программист, встраиваемые системы
    А зачем?
    Я решаю одну задачу второй год, и меня это абсолютно не беспокоит.
    Ответ написан
    Комментировать
  • Как правильно писать код на jquery?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    1. Прекратите писать транслитом.
    2. Кешируйте элементы DOM в переменных.
    3. Вы трижды(и это только в одном куске кода) выбираете один элемент и применяете к нему метод .css(). Это делается одним обращением. А ещё лучше давать ему заранее заготовленный класс, вместо .css() метода
    4. Имена переменных пишете в camelCase
    5. Переменные с объектом jQuery предваряйте $
    Ответ написан
    Комментировать
  • Подойдет ли ноутбук для программирования?

    @FoxInSox
    Толщина
    25.3 мм

    Толстоват. Не подойдет.
    Ответ написан
    1 комментарий
  • Как анализировать вакансии front/-backend разработчиков?

    DevMan
    @DevMan
    не стоит удивляться: в таких вакансиях расставляют требования точно так же как и вы теги к своему вопросу.
    Ответ написан
    24 комментария
  • Как написать свою библиотеку на JS?

    RubaXa
    @RubaXa
    Прежде чем начать что-то писать, особенно библиотеку, начните с организации инфраструктуры:
    • Система сборки проекта (grunt, gulp, webpack и т.п.)
    • Code style (JSHint, ESHint, JSCS или другие)
    • Тесты и контроль покрытия (QUnit, Karma, Mocha, Istanbul и т.д.)
    • На чем писать (JS, CS, TS или ES6/Babel)
    • Автоматизация контроля изменений
    • Документирование кода и документация (JSDoc3 или JSDuck)
    • Способ распространения (github, bitbucket и т.п.)
    Ответ написан
    Комментировать
  • Как анализировать вакансии front/-backend разработчиков?

    opium
    @opium
    Просто люблю качественно работать
    семи пядей во лбу не надо иметь чтобы понять
    1)нужен опыт работы с реляционной бд, запросы на работе не сложные и подойдет любая из перечисленных, зная один писать запросы можно под любой
    2)нужен опыт программирования под джаву в одной из этих иде так как разработчики в компании используют их а не нетбинс
    3)нужен опыт работы с системами контроля версий, скорее всего есть легаси проекты используюбщие свн и все новые проекты на гите. знаю один второй освоить не проблема
    Ответ написан
    4 комментария
  • А какие вы знаете сайты где бесплатно помогут написать код?

    @Beltoev
    Живу в своё удовольствие
    Здесь тоже помогают, если человек показывает свой нерабочий код и просит помочь найти ошибку/исправить, а не НАПИСАТЬ ВСЁ за него.

    Собственно, на любом сайте (будь то QA или форум), где обитают программисты, ситуация одинакова:
    • Нужна помощь и ты сделал порядка 50%-70% работы? Не вопрос, поможем!
    • Нужна помощь, но ты ленивая задница, которая хочет всё за просто так? Дуй на fl.ru/freelansim.ru/... (нужное подчеркнуть)


    Такова природа людей из этой области: любят тех, кто стремится к знаниям, и презирают тех, кто пытается идти по пути наименьшего сопротивления.

    Судя по вопросу, ищете легких путей?
    Ответ написан
    Комментировать
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    @alexgilev
    Сделайте так:

    1. Идёте в Twitter, находите Freelancer.com, подписываетесь на них
    2. Пишите твит, в котором рассказываете свою ситуацию (Только адекватно, без эмоций)
    3. Твит появится на странице их профиля, что уже для них плохо.
    4. Просите знакомых сделать максимальный репост

    Я бы написал им письмо, что пропиарю их везде где только можно, приведите несколько примеров.

    Удачи :)
    Ответ написан
    4 комментария
  • Как правильно администрировать VPS?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Ни в коем случае не ставить никаких ISP Manager / Vesta / CPanel, иначе никогда не научитесь тому, чему хотите научиться. Кроме того, они жрут ресурсы. Даже Vesta, которая самая легкая, их жрет прилично, а я сильно сомневаюсь, что у вас VPS c 8+ Gb памяти.

    Изучать надо по урокам и статьям, читая мануалы и best practices по каждому package. Порядок, плюс-минус, таков:

    - развернули ось
    - сделали сразу апдейты
    - создали и настроили swap
    - поменяли пароль рута на что-нибудь супер-мега-сложное (его мы использовать все равно не будем)
    - создали себе обычного юзера с паролем нормальной сложности (он будет использоваться для sudo)
    - дали юзеру права sudo
    - закрутили гайки по SSH - сменили порт, запретили вход руту и вход по паролю (только по ssh-ключам), разрешили вход только одному своему новому логину
    - настроили UFW - простой, но эффективный firewall на основе iptables - default deny, allow http, https, свой кастомный ssh-порт. Если логиниться будете только из нескольких мест (офис, дом) - можно вообще ssh разрешить только на эти IP.
    - sudo dpkg-reconfigure tzdata чтобы установить свою временную зону, так логи потом легче читать и понимать
    - настроили logrotate
    - настроили logwatch
    - настроили Postfix, чтобы сервер вам письма мог слать (мы его настраиваем на внешний мейлер, например Mandrill, чтобы все письма точно в спам не падали)
    - настроили fail2ban (потом, после установки и настройки веб-сервера и сайтов, в fail2ban можно дополнения писать, например мы на WordPress-сайтах мониторим попытки авторизации в админку и блочим тем же fail2ban)
    - дальше ставим все что нужно - Git, Nginx, HHVM, PHP5-FPM, MariaDB, Memcached/Redis и так далее.

    Регулярно заходите на сервер, делайте apt-get update && apt-get dist-upgrade.

    p.s.: это по ubuntu/debian, для других систем все то же самое, но packages и команды могут немного отличаться
    Ответ написан
    26 комментариев
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    nowm
    @nowm
    Возвращайте деньги, если он вам что-то платил, закрывайте проект и ставьте заказчику отрицательный отзыв. Это будет проще всего. Перед тем, как закрывать проект, озаботьтесь тем, чтобы из переписки на сайте биржи было понятно, что он требует что-то ещё дополнительное, но не хочет за это дополнительно платить. Если я не ошибаюсь, то закрытый проект, за который не уплачено ни цента, в вашей истории не появится. Во всяком случае, так обстоит дело на oDesk.

    Так же, на oDesk есть правило, по которому заказчик не может быть агентством, если он зарегистрировался как заказчик. Если он «проксирует» работу, то он — агенство, а агенство не может публиковать заказы. Он нарушает правила. Это ещё один момент, который вам может помочь, если вы вступите с клиентом в какой-то диспут. Опять же, важно, чтобы он упоминал в личной переписке на сайте биржи, что он, дескать, посредник, а не заказчик — если он этого не упоминал, то нужно его как-то на это развести.

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

    Главное, и не только в подобных ситуациях, не тянуть резину. Чем вы будете мягче и податливее, чем дольше вы будете откладывать «неприятные» для клиента вопросы, тем чаще этим будут пользоваться окружающие, продавливая вас насколько это возможно. Это не значит, что нужно всем направо и налево грубить и посылать, это значит, что нужно сразу же сообщать окружающим, что вас что-то не устраивает — вежливо, но твёрдо.

    Я могу только посочувствовать вашей ситуации, но рано или поздно каждый человек с таким сталкивается. Со временем просто развивается чуйка, которая позволяет сразу видеть что конкретный проект публикует неадекватный клиент. Как говорил alexgilev (полчаса назад :) ), всякие фразы, вроде: «срочно», «мне мой знакомый программист сказал, что тут дел — на пять минут», «час-два для тех, кто в теме», «быстрые деньги» и т.п. — это один из признаков неадекватности.
    Ответ написан
    1 комментарий
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    @alexgilev
    Мой Вам совет от человека, который уже 4 год на eLance. Никогда не подавайтесь на работы с названиями, которые содержат фразы типа: 'Urgent', 'Easy job', 'Should be a quick thing'. Во-первых, ничем хорошим это не кончится, во-вторых Вам вынесут мозг и в-третьих, вы эту работу даже в портфолио не добавите, потому что она окажется убогой, благодаря клиенту и его бесконечной фантазии.
    Ответ написан
    Комментировать
  • Заказчик вместо обещаных 3 часов моего времени делает правки уже 4й день, что делать?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Встретил где-то в Инете заметку под названием, если не путаю, "Последнюю работу мы делаем бесплатно".
    Автор не приступает к выполнению новой работы до полного расчета за уже выполненную.
    Я примерно так же поступаю.
    3 часа отработали? Деньги на бочку, и работаем дальше.
    Первая работа может оказаться последней и, возможно, бесплатной... И так бывает.
    Ответ написан
    5 комментариев
  • Как побороть свою лень?

    redfieldone
    @redfieldone
    Старый , лысый и без денег.
    Я отработал год с минимумом выходных, где то 5 в общей сложности. Частенько не спал, а бывало и по 2.5 суток, результатов в денежном эквиваленте не много, еще и кинули 1 раз, причем те от кого точно не ожидал.
    Теперь работаю скрипя зубами и не то что бы с ленью, а даже с ненавистью, учусь так же .

    Мораль:
    1. Что бы не было лень, нужно отдыхать от работы , да подальше от компьютера.
    2. Что бы любить свое дело , нужно работать прежде всего головой , а не рваться в бой выписывая тонны кода , пускай качественного . Но ваш личный результат зависит не от количества строк, а от вашего личного плана действий и от желания (Пункт 1).
    3. Заказчики подождут, не спешите рваться в бой , обдумайте сначала не только план работы, но и выход из ситуаций на случай того если заказчик откажется платить или оплатит не полную цену.
    Ответ написан
    Комментировать
  • Есть ли инструмент, с помощью которого можно выкачать всё о себе из vk.com?

    nazarpc
    @nazarpc Автор вопроса
    Open Source enthusiast
    Вот нашел скрипт на Python, который скачивает изображения из альбомов, рабочий, токен из-за лени взял тот, который получил в приложении VKontakte Offline (в localStorage лежит), что упомянул @Taraflex: https://github.com/vyacheslavchulkin/vk-photo-saver

    UPD: Форкнул и улучшил код, теперь загружаются самые большие изображения, загружается обложка альбома, сохраняется описание фото и работает всё это быстрее. Пользуйтесь: https://github.com/nazar-pc/vk-photo-saver

    UPD2: Нашел инструмент, которым можно скачать стену, и музыку по плейлистам: https://github.com/Rast1234/vkd

    UPD3: Через песочницу на странице для разработчиков https://vk.com/dev/notes.get скачал в JSON формате все заметки за два подхода (ограничение в 100 элементов на запрос, нужно смотреть ответ в консоли, на странице не JSON, а ересь какая-то выводится), теперь порядок.
    Ответ написан
    2 комментария