• Как проанализировать код большого проекта на PHP на наличие неиспользуемых кусков кода и файлов?

    Adamos
    @Adamos
    Если файлы в проекте подключаются исключительно по PSR - анализаторы, может, и помогут.
    Но РНР никому не мешает подключать их через отдаленные глубины задниц, как шаблоны и локализация в Битриксе, например. Ни один робот эти дебри не расковыряет в жизни.
    Так что пробуйте анализаторы, конечно. Но не надейтесь, что вы по результатам анализа сможете просто все выбранное взять и безболезненно удалить. Головой думать все равно придется.
    Например, тот же Шторм позволяет сделать быстрый поиск строки по всему проекту. И если название класса не встречается нигде, кроме файла с этим классом - да, возможно, он кандидат на удаление...
    Ответ написан
    8 комментариев
  • Как реализовать печать товарного чека на javascript?

    petermzg
    @petermzg
    Самый лучший программист
    Открыть в новой странице для которой css
    @page {
      size: A4;
      margin: 0;
    }
    @media print {
      html, body {
        width: 210mm;
        height: 297mm;
      }
    }

    Укажите нужные размеры страницы
    Ответ написан
    1 комментарий
  • Есть ли варианты получения ВНЖ для фрилансера-программиста в ЕС?

    @usetester
    Могу рассказать про Латвию (насколько знаю - в остальных странах ЕС любой похожий схематоз дороже).

    Получить ВНЖ как собственнику компании, не нанимая местных, возможно теоретически. Практически - это не самый дешевый путь. Можно открыть компанию в Латвии, внести в уставной капитал 50000 евро + уплатить в бюджет 10000 евро. Компания должна платить налогов не менее 20 тыс евро в год. Также у вас должна быть зарплата, для подтверждения прожиточного минимума, налогов минимум 200 евро/мес. ВНЖ дается на 5 лет, подтверждение ежегодное. Через 5 лет наличия временного ВНЖ (по любым основаниям) можете получать постоянный ВНЖ, сдав экзамен по госязыку. После чего вы почти гражданин ЕС (не можете голосовать и жить в других странах ЕС более 90 дней в полугодие).

    Второй путь в собственной компании - получение ВНЖ как члену правления. Компания должна существовать не менее года, платить не менее 20000 налогов в год, налоги с вашей зарплаты будут ~900 евро. Для оформления вызова для получения ВНЖ потребуется подпись местного персонажа с персональным кодом, иначе система не принимает документ :) Персонаж будет требоваться для подписи вызовов раз в год.

    Самый дешевый путь - получать ВНЖ под трудовой контракт (при наличии высшего образования или подтвержденного опыта работы за последние 3 года), можно также в собственную компанию. В этом случае вам понадобиться компанию открыть (~400 евро расходов и 2800 евро уставного капитала, который можно сразу потратить), заключить договор с бухгалтером-аутсорсером (~50-70 евро в месяц), проработать 1 год, после чего сможете сами себя нанять. Налогов со своей зарплаты будете платить ~430 евро/мес при получении на руки ~500 евро, но ВНЖ под контракт сможете получить Вы сами, супруга и несовершеннолетние дети. Тут тоже есть масса сложностей - у вас возникает контролируемая иностранная компания (по российским законам), для подписания вызова на визу для получения ВНЖ от работодателя потребуется местный с персональным кодом, etc. Стоимость преодоления этих лишних сложностей - еще около 250 евро/мес. Итого ваши расходы на получение ВНЖ под компанию - или 10000 единовременно и не менее 20000 годовых налогов (и прочих приравненных к ним платежей), или ~700 евро/мес регулярных выплат. Можете устроиться в чужую компанию, договорившись с каким-нибудь знакомым, тогда только налоги будете платить, но это если есть знакомый, готовый проводить ваши платежи через свой счет.
    Ответ написан
  • Где найти бесплатные текстуры и т.д для создания простенькой игры?

    JohnZoidberg
    @JohnZoidberg
    1. Kenney.nl

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

    2. OpenGameArt.org

    Наверное, один из лучших сайтов в своём классе. OpenGameArt.org огромный сайт, предлагающий все виды графики, необходимые для разработки игр. Так же на сайте имеется бесплатная музыка (звуки). Основными плюсами данного ресурса являются наличие оживленного и весьма полезного форума, а так же постоянное обновление материалов за счет пополнения самими пользователями и рейтинговой системы оценивания. Так что вы всегда сможете быстро выбрать самое лучше и свежее.

    3. Untamed.wild-refuge.net

    Отличный ресурс для тех, кто задумывает или уже создает свою RPG.
    При переходе по ссылке справа вы увидите колонку ресурсов. Персонажи, предметы, локации и тому подобное, при нажатии на которых все-все объекты появятся на одной странице, что упрощает и ускоряет выбор. При клике на понравившегося персонажа, открывается ссылка на .png файл, со всеми 3d-проекциями и движениями, что идеально подходит для создания собственных спрайтов.

    4. Crateboy.itch.io

    Отличительная особенность данной коллекции - 8-битная графика городов. Вся библиотека совершенно бесплатна, и всё, о чём просит автор - упомянуть о нём в своей игре (credits).
    Цветовая гамма данной библиотеки является её отличительной особенностью, и при использовании в исходном виде вполне может определить дизайн всего проекта.

    5. Bagfullofwrong.co.uk

    Коллекция материалов, созданных и использованных в различных проектах дизайнером Робом Фероном для Вашего личного пользования.

    6. Gameart2d.com

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

    7. Wigdetworx.com

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

    8. Glitchthegame.com

    Создатели проекта Glitch, закрытого в 2012 году решили сделать всю её графическую часть Достоянием общественности (никакие авторские права для использование не требуются). К Вашим услугам более 10,000 изображений восхитительного качества собранные воедино и доступные по одному нажатию.

    9. Dumbanex.com

    Идеально для сайдскроллеров и платформеров
    Множество графики от дизайнера-фрилансера Брента Андерсона. Всё бесплатно при условии упоминания в приложении (Credits).

    10. Reinerstilesets.de

    Бесплатная графика от разработчика игр разработчикам игр. Помимо библиотек на сайте есть неплохие туториалы.

    11. Sharecg.com

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

    12. Roenica.com

    Отличный сайт с графикой для инди проектов и казуалок.
    Всё разбито на категории по типу игры и упаковано в ZIP архивы. Есть и 2D и 3D графика, но так же как и в предыдущем случае стоит внимательно смотреть на лицензию, под которой распространяется контент.

    13. Blogoscoped.com

    Сам сайт - форум про Гугл и всё, что с ним связанно, но в 2006 году его участник Philip Lenssen выложил на нем около 700 спрайтов, которые теперь распространяются под Creative Commons License

    14. Lostgarden.com

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

    15. Subtlepatterns.com

    Безумное количество фонов и текстур для Ваших игр и приложений. Всё как и прежде бесплатно - только не забудьте поблагодарить автора.

    16. Openclipart.org

    Обширное сообщество с огромными объемами графики. Всё, что сможете найти на этом сайте, совершенно бесплатно. Правда вот поискать придется как следует.
    Ответ написан
    12 комментариев
  • Как изучить Spring?

    @aol-nnov
    ну, как-как..
    spring in action, petclinic и spring.io :)
    ну, и практитка, естественно! и, да, не spring ради spring-а, а именно практическое применение. на одном энтузиазме и учении "на будущее" далеко не уедешь )
    Ответ написан
    4 комментария
  • Почему так сильно подорожали аккаунты pro на российских биржах фриланса? С чем это связано?

    tin-iven
    @tin-iven
    Фрилансер до костей
    d4b3d05717394f538a0470236a5d53f8.png

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

    А теперь конкретно по FL. Как это работает - есть акционеры (Мажирин и аптекари) и руководство (Росошанский и Тараханов). Раз в полгода акционеры собираются и говорят руководству - уровень прибыльности должен быть такой. Аптекари покупали долю в у.е. и получать хотят у.е. Мажирину тоже у.е. нужны - хотя бы на танцы свои. Итак, в начале 2013 прибыль была 200 000 у.е. в месяц, а в начале 2015 стала 75 000 у.е. Акционеры говорят руководству - нужно вернуть хотя бы до 150 000 у.е.

    Как это сделать - проблема не акционеров, а руководства. И руководство начинает действовать - вводит Profi, поднимает цену Pro, добавляет закрепления и прочие мелкие платности, увольняет кучу людей штата - почти 90%! www.the-village.ru/village/blogs/business/221897-c...
    Прибыль пошла в гору. "Ф-у-у-х! Акционеры не уволят, даже премию дадут" - так думает руководство. На первом этапе это так и работает.

    Но. Что имеем с итоге: сервис теряет в качестве - не хватает людей для нормального обслуживания пользователей, кода, серверов - отсюда постоянные падения, взломы и недовольство (https://vc.ru/n/fl-off, https://vc.ru/p/fl-hacked и т.д.). Сервис становится дороже (замечу - в рублях, в у.е. остается на том же уровне или дешевле) - отсюда снова недовольство пользователей.

    Блин, так почему же эта биржа не умирает? Почему все снова идут и платят (судя по анализу количество PRO за последний год не уменьшилось, а только выросло)? А я скажу - потому что есть заказы. Не просто заказы, а много заказов. Смотрим сколько - primelance.com/analytics/. Блин, да столько же, сколько на всех остальных биржах вместе взятых.

    Итог повествования: в обозримой перспективе ничего не изменится. На FL будет много заказов - к ней привыкли, она выделяет денег на рекламу больше остальных, только она обслуживает юриков. Поэтому туда будут идти фрилансеры, будут платить дорогой Pro. Этот самый Pro будет дальше дорожать - думаю, к середине 2016 на уровне 2000-2500 рублей. Если рубль продолжит плохо себя вести - еще больше, или переведут ценник в доллар.

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

    Поэтому - если вы знаете или учите английский - валите по быстрому с отечественного фриланса. Если не знаете и учить не собираетесь - радуйтесь, что FL просят 1600 в месяц с неограниченным числом ответов, а не 600 за 10 ответов в месяц, и дальше по 120 рублей за каждый ответ + 10% с каждого заказа (каждого!), как это есть на Upwork.
    Ответ написан
    8 комментариев
  • Как правильно написать авторизацию/аутентификацию?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Есть два варианта хранения данных об авторизованном пользователе:
    1) В куки (так по умолчанию используется в асп.нет): необходимые данные (claims) шифруются machineKey и отдаются пользователю в http-only куках, таким образом при каждом запросе на сервер они присылаются, расшифровываются и далее можно проверить в необходимых местах.
    плюсы: полностью stateless, нет надобности обращаться к БД
    минусы: при необходимости "выбить" сессию со стороны сервера нужно поднимать более сложную логику и хранить флаги в промежуточном хранилище (проверять что если для такого-то пользователя требуется завершить, то такие действия, иначе другие);
    2) Ключ сессии: после успешной аутентификации авторизуем пользователя и claims храним на сервере в быстрой памяти или БД (key-value), где ключ - ключ сессии, значение - любые данные.
    плюсы: есть полный контроль состоянием авторизации (как и возможность завершить сессию со стороны сервера, так и сменить пользователю роль(или другие параметры) "на лету")
    минусы: организация доп. прослойки - кэша или хранение в БД (медленно), при перезапуске/падении сервиса сессии клиентам потребуется перелогиниться.

    1
    1.1 В куки писать или ключ сессии или шифрованные данные о пользователе, сессия - абстрактное понятие (это пара: ключ и данные), ключ должен быть защищенным, т.е. трудным к копированию (хотя бы зрительно трудно запомнить), уникальным (чтобы не возникло коллизий: двум разным пользователям выдался один и тот же ключ, т.е. это не должна быть хэш-функция от логина-пароля или IP или чего-то неуникального).
    1.2 В асп.нет существуют атрибуты авторизации (в которых можно расставлять проверки на требование таковой, роль, конкретный пользователь), в общем смысле логика такова: поступил запрос на сервер, далее нужно посмотреть к какому ресурсу идёт обращение (защищенному или свободному), если ресурс защищен, то проверить куки (ключ сессии или шифрованные данные), расшифровать/получить данные о сессии из кэша и предпринять решение: пускаем или не пускаем (отдаём 401/403 или отдаем 200/404/...).
    1.3 Завести на сервере (в кэше или БД) словарь , при алгоритме проверки сессии добавить условие проверки на наличие записи в словаре.
    1.4 С нескольких - словаря не нужно.

    2
    2.1 Даже если пользователь входит через ВК всё равно нужно отдавать свои ключи сессий/шифрованные данные, а вот внутри данных уже хранить access_token от вк-шной сессии, так очень маленькая вероятность, что токен ВК утечет, а если утек ключ сессии, то действия будут ограничены только функционалом сайта.
    2.2 После расшифровки куки или данных по ключу сессии делать доп запрос на сервер ВК с токеном, который сохранился при аутентификации (access_token), запрос простой, например получить имя пользователя, если ВК выдал что токен просрочен или ошибку, то сессию закрывать или куки с данными обнулять.
    Ответ написан
    3 комментария
  • Научиться парсингу - с чего начать?

    kawabanga
    @kawabanga
    1) Нужно иметь представление, как загружаются и работают сайты. Тут необходимо иметь представление и о том, что полезный контент может появится на сайте и после загрузки через определенное время.

    2) Нужно иметь представление, как работает самый обычный способ получения контента - Curl. Попробуйте скопировать что то, поработать, представить в xml документ и тд. Тут вы определитесь с принципом работы парсера.
    - парсер получает вводую информацию -> с учетом программы и вводных данных, парсер запрашивает определенные данные -> парсер обрабатывает данные для пользователя -> при необходимости, парсер повторяет запрос (инициированный пользователем или рекурсий) -> конец

    3) Далее вы дойдете до механизмов защиты от парсинга:
    - ограничение запросов на 1 ip, на один клиент и тд
    - подгузка информации после загрузки контента
    - дополнительный запрос на подгрузку контента с CSRF и другими способами
    - блокирование ip
    Это откроет вам парсеры типа PhantomJs, Научит пользоваться прокси, мимикрировать под популярные браузеры и тд.
    Так же вы дойдете до многопоточности работы парсера, и подумаете о переходе на C и подобный язык программирования. Общаясь с сайтом уже посредством api.

    А дальше, сталкиваяь с новыми проблемами, будете их решать.
    Ответ написан
    1 комментарий
  • Как ускорить работу программисту?

    kumaxim
    @kumaxim
    Web-программист
    Главное что Вам нужно - писать меньше кода, который будет реализовывать поставленную перед Вами задачу.

    Перед началом выполнения задачи, Вам нужно декомпозировать ее. Сделали это, внесли конкретные пункты в свой product backlog(у меня для этого trello используется), начинайте выполнять. Ставите себе любой time-tracker, например toggl и замеряйте время исполнения. Работайте так 2-3 недели.
    Когда соберете какую-то статистику, увидите куда у Вас уходит время. Затем начинайте оптимизировать то, что у Вас повторяется из проекта в проект. Здесь есть два пути:
    1. Использовать готовые фреймворки
    2. Использовать скаффолдеры(см. Yeoman, grunt-init)

    Оптимизируйте рутину, т.е. Вам нужно постоянно собирать какие-то фронт-энд скрипты, загружать по FTP/SSH куда-то файлы, тут однозначно копать в сторону grunt/gulp. Если работайте с бэк-эндом, то может быть имеет смысл углубиться в возможности Вашей IDE, настроить автоматическое создание библиотек, пакетов, модулей и т.п.
    Ответ написан
    1 комментарий
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    mbelskiy
    @mbelskiy
    Software Developer
    medium, reddit, twitter.
    Пишите.
    Ответ написан
    Комментировать
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

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

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

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

    Удачи :)
    Ответ написан
    4 комментария
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    gadfi
    @gadfi
    https://gamega.org
    пишите в поддержку, поднимайте волну ─ без скандала и гласности на вас забьют и не почешуться
    Ответ написан
    Комментировать
  • Freelancer.com забрал у меня деньги за конкурс! Что делать?

    Sanes
    @Sanes
    Рассказать всем об этом, чтобы каждый делал выводы!
    Ответ написан
    Комментировать
  • Как вы используете git при разработке в одиночку?

    Adamos
    @Adamos
    Для себя одного git, как мне кажется, нужен только как "машина времени" и "обратный роадмап".
    То есть, чтобы иметь возможность посмотреть более ранний вариант кода и чтобы в потоке коммитов найти, когда были какие-то конкретные изменения.
    По большому счету, ничего, кроме коммитов в мастер, тут и не требуется. Разве что желательны мелкие коммиты с осмысленным написанием изменений, а не куски того, о чем сам не вспомнишь через неделю.
    Ответ написан
    6 комментариев
  • Какие вы знаете каналы на youtube, куда выкладываются видео, где нонстоп пишутся серьезные приложения?

    newross
    @newross
    Product owner
    Никто в здравом уме не будет стримить разработку серьезных корпоративных приложений. Более того, никто в здравом уме это смотреть не будет - жуткая скукота же :)
    Ответ написан
    Комментировать
  • Переводчикам нечего ловить на фрилансе?

    @PolkovnikBrumel
    Расскажу по своему опыту. Фрилансил переводами (англ-рус, исп-рус) около трех лет, потом перешел в штат.
    Переводами на фрилансе заниматься можно и неплохо. Но нужно быть готовым, что это непросто, особенно первое время. Из западных бирж заказы искал на Прозе, но там реально большая конкуренция, особенно в популярных языковых парах. За все время нашел там всего несколько заказов. Однако эта площадка полезна не только этим, но и тем, что это отличный ресурс для поиска терминологии и вариантов перевода (www.proz.com/search/), да и профиль там полезен для резюме.
    Из российских сайтов полезен Город переводчиков, а именно раздел Работа, там постоянно находил заказы и там же нашел постоянную работу, где работаю до сих пор.
    Однако самое большое количество заказов поступает от агентств. Тут важно завести хорошие отношения с нормальными конторами, которые платят нормальные деньги. Я постоянно работал с тремя-четырьмя агентствами, и без заказов не был практически никогда. Прямых клиентов найти очень сложно, у меня был один или два, а постоянных так и вообще ни одного, зато одно из агентств до сих пор шлет хорошие заказы на подработку, т.к. их клиент очень хочет, чтобы именно я делал ему переводы. Агентства искал просто: рассылал десятки резюме и делал тестовые задания, а потом смотрел, с кем я хочу работать, а с кем нет. Более или менее нормальный заработок пошел где-то через год после начала фриланса.
    И еще. Надо завести ИП, т.к. серьезные агентства без этого даже разговаривать с вами не будут.
    Ответ написан
    Комментировать
  • Кто нибудь пробовал работать во фрилансе после работы?

    Конечно, люди разные, но я не могу. Лучше это время тратить на личные проекты (опенсорс) и на развитие (новые языки, улучшать фундаментальные знания), либо еще на какое-то хобби (у меня это музыка, например). В долгосрочной перспективе это принесет больше пользы, а качество жизни будет выше. Работать на двух работах, совмещать работу/учебу - все это либо для очень-очень организованных людей (феноменально организованных, которые могут жить четко по плану каждый день), либо для тех, кто особо-то и не вникает (а это напрямую влияет на качество скилла). Кроме того, как не пытался, предел продуктивной работы в сутки - это порядка 6 часов. Все остальное не только не приносит удовольствия, так еще и по качеству получается хуже. Лучше делать одну задачу, "быть медленнее", но делать ее реально круто.
    Ответ написан
    4 комментария
  • Как лучше создавать HTML шаблоны для email?

    @andreyqin
    Ответ написан
    Комментировать
  • Как лучше создавать HTML шаблоны для email?

    ILoveYAnny
    @ILoveYAnny
    Советы - thesiteslinger.com/blog/10-tips-for-designing-html...
    Очень дельный сервис - www.getresponse.com/features/email-creator.html

    Вообще советую воспользоваться сервисами, и от туда уже скопировать HTML код, благо у сервисов есть пробный период :)
    Ответ написан
    Комментировать