• Как сделать веб-сервис и не утонуть в процессе?

    gobananas
    @gobananas
    finishhim.ru
    1. Выделить одну главную функцию сервиса
    2. Сделать её, сверстать и выкатить, это будет MVP
    3. Не заморачиваться с вёрсткой
    4. Не заморачиваться с методами авторизации
    5. Не думать про нагрузку, не заниматься оптимизацией кода и БД
    6. Если поймали себя на мысли что вы думаете какой паттерн тут применить вы в Ж, просто пишите код, который работает!!
    7. Не совмещать написание сервиса, который вы РЕАЛЬНО хотите запустить с изучением чего-то нового (языка, БД). Утоните в учёбе и никогда не запустите.

    Это всё на своём опыте написания проекта говорю вам а не голословно ))
    Ответ написан
    10 комментариев
  • Как уйти с распутья технологий?

    @0x131315
    Стратегию уже подсказали: найти любую работу, чтобы кушать, и тем самым выиграть время на изучение чего-то, что поможет зарабатывать больше, и тем самым выиграть еще больше времени, и в конце концов изучить то, благодаря чему будешь работать не на зарплату, а на удовлетворение.

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

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

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

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

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

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

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

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

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

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

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

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

    С третьим - придешь, когда поймешь, что тебе это нужно. Из-под палки не учатся.

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

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

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

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

    Сложность задачи не особо влияет на мотивацию, а вот факт решения/нерешения - влияет сильно. Не решил - значит не осилил, не осилил - значит не достоин, не достоин - значит иди ко дну и не рыпайся. Это как импотенция: импотент - значит не мужик, не мужик - значит никто, ничего не достоин и об тебя можно ноги вытирать. Подсознание портит всю малину, так что не следует давать ему шанса - лучше решить задачу попроще, чем не решить по сложнее.
    Ответ написан
    7 комментариев
  • Расчет расстояния между точками?

    dimasmagadan
    @dimasmagadan
    вы не поверите
    но ровно первый запрос в гугле по "google maps api distance between two points"
    выдал ссылку на описание, как это сделать
    https://developers.google.com/maps/documentation/d...

    а запрос по "google maps calculate distance between 2 locations" (если вам нужно считать расстояние не по дороге, а напрямую между точками) первой ссылкой дал
    stackoverflow.com/questions/1502590/calculate-dist...
    там сразу кусок кода готовый
    Ответ написан
    4 комментария
  • Что нужно для анонимности в сети? Какие средства для этого имеются? Как скрыть своё местонахождение и действия с финансовыми операциями?

    @lakegull
    1. Скрывает IP, трафик не шифруется, соответственно провайдер всё про вас знает.
    2. Логи, мозги, наводки.
    3.Да, сведение фактов воедино, может способствовать разорению уютного гнёздышка.
    4. и 5. Воспользуйтесь услугами VPN-провайдеров, которые не ведут логи. Весь трафик будет зашифрован и со стороны провайдера невозможно будет определить что вы делали и куда заходили. Желательно, чтобы сервера VPN-провайдера находились в стране, где его законодательно невозможно обязать раскрыть логи ( при условии, что они всё таки ведутся).
    Становлению качественной анонимности предшествует процесс подготовки. Я очень надеюсь, что все ваши действия с финансовыми операциями легальны, поскольку мои советы предназначены для сохранения коммерческой тайны организации.

    Техническая сторона: если вы кому-то будете очень интересны, то успешность выхода на вас это в основном просто вопрос денег. К примеру заставить VPN-сервис раскрыть свои логи будешь стоить недёшево, а заставить сразу двух провайдеров в разных странах открыть свои карты будете стоить 10х недёшево, и не факт, что получится.
    Во этому поэтому есть смысл шифровать трафик последовательно, через 2 VPN-сервиса.

    "Социал-инженеринговая" сторона:
    На вас можно выйти по косвенным признакам: вдруг на пару часов шифранулись, чего обычно не делаете. Сообщение вроде безобидное отправили человеку, сразу образуется ненужная связь с вами, а те, кому надо, просто начинают копать дальше. А вы в курсе, что более половины аккаунтов в разных социальных сетях СНГ и почтовых ящиков взламывается за считанные часы и эти услуги стоят копейки - менее 15000 рублей?
    Советы следующие:
    Полностью прекращайте общение по бизнесу через социальные сети. Бизнес-партнёров в друзья не добавляете (даже в FB) и сообщения им не пишете, любые. Рабочую почту желательно завести у зарубежных сервисов, обычно они платные, но это всего то около 30$ в год. Покупаете VPN и шифрует весь свой трафик всегда, а не только когда проводите операции.

    UPD

    Твой Товарищ:
    Если мой айпи зашифрован, но трафик - нет. Местоположение пользователя вычисляется?
    IP не может быть зашифрован, он просто изменён на другой. Возможность вычисления местоположения зависит прежде всего от сервиса, который вы используете для смены IP-адреса. Доверять свою анонимность бесплатным прокси-серверам и всяким "анонимайзерам" - это себе дороже. Большинство платных прокси-серверов могут обеспечить вам смену IP-адреса и при этом, как я уже говорил, не ведут логов, поэтому технически вас найти будет либо очень сложно, либо вообще невозможно. Пара слов о работе прокси-сервера: он меняет ваш IP на свой. Этот "свой" он берёт у другого простого пользователя в интересующей вас стране, ПК которого заражён троянским ПО. То есть весь трафик от вас / к вам идёт через ПК этого пользователя.
    Помимо отсутствия шифрования, у прокси-серверов есть и другие минусы, это нестабильная скорость и обрыв соединения (когда пользователь с троянским ПО перезагружается или выключает ПК).
    Приоритет, чтоб локация моего устройства была недоступно для других глаз

    Если это смартфон с сим-картой внутри, то тут всё сложнее. Дело в том, что оператор связи может определить местонахождение любого абонента с точностью в несколько десятков метров (в городе). Но на смартфоне так-же можно настроить VPN (OpenVPN) и работать анонимно. GSM-анонимность - это отдельная тема, слишком большая, чтобы раскрывать её здесь. Многие прошаренные бизнесмены общаются по бизнесу только с отдельного аппарата, сим-карта которого зарегистрирована на кого-нибудь из своих охранников. В РФ пробивается любая информация, даже просушка телефонных разговоров, это лишь вопрос цены.
    И если я правильно понимаю, то трафик - это поток информации и деятельности в сети?
    Это те самые мегабайты и гигабайты информации, которую вы скачиваете с сети или наоборот отправляете в сеть. Информация разбивается на небольшие "пакеты", и они гуляют от сервера к серверу.
    И и очень важное что такое ЛОГИ?
    Это журнал протоколирования, который находится на каком-либо сервере, в нём ведётся учёт того, с какого сервера и во сколько пришёл пакет с данными и на какой сервер он был переадресован впоследствии. Это цепочка, следы на снегу, которые могут в итоге привести к вашему реальному местоположению. Эта цепочка обрывается на том месте, где сервер (в данном случае VPN-провайдер), не ведёт логи.
    Насчет по социал-инжиниринговой стороне мало понял, если есть время, то можете раскрыть?
    Социальная инженерия, это способ с помощью которого можно обойти технические средства защиты информации и получить желаемую информацию, опираясь на человеческий фактор и человеческие слабости. Если по простому - это развод кого-либо из ваших знакомых, с целью получить какую-либо информацию о вас. Если это делает профессионал, который предварительно собрал о вас информацию из открытых источников, то скорее всего вы даже не заметите, когда у вас из под носа уведут конфиденциальные данные. Эта тема ещё более огромная, чем GSM-анонимность.
    И насколько я знаю, то сторонние интерне-ресурсы обязаны по закону держать сервера с информацией на территории России. "Закон о персональных данных" который обязывает интернет-компании хранить личные данные российских пользователей внутри страны.
    VPN-провайдеры, у которых вы шифруете свой трафик, не хранят у себя на серверах скаченные вами данные. Они лишь обеспечивают транзитный трафик + его шифрование, ну и смену IP, конечно. Соответственно по действие закона о персональных данных не попадают.

    VPN работает, как показано на схеме:
    78d40072cea44952aa92a74e31288455.JPG

    По данной схеме ваш IP-адрес будет заменён на IP-адрес сервера в Нидерландах. То есть для владельца сайта, который вы посещаете, вы будите определяться как посетитель из Нидерландов.

    При VPN-соединении, провайдер, который предоставляет вам доступ в интернет может лишь посчитать объём скаченных вам данных, но не может определить их содержимое. Так-же не может определить происхождение этих данных.

    Напоследок.
    У любой анонимности есть две фазы:
    1) до того момента, как вашу личность начали ассоциировать с определённым событием
    2) после этого момента.

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

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


    Видимо человек подразумевает что для провайдера вы не являетесь анонимным пользователем. Это верно, поскольку он вам предоставляет доступ в интернет по договору, оформленному на паспортные данные реального человека. На ваш или нет - это не важно. Физический доступ к ПК может быть у нескольких людей, но спрашивать прежде всего будут с того, чья фамилия в договоре. Разумеется это случиться только при условии что логи приведут к вам. Если всё сделать грамотно, то это не произойдёт никогда. А пока нету прецедента - никто никого искать не будет. Я повторюсь - попытка найти хвосты из IP-адресов, выстроить всю цепочку и выйти на реального человека, это очень недешёвое занятие и не факт, что будет хоть какой-нибудь результат. Браться за это дело заинтересованные лица будут только в том случае, если есть хоть какие-то гарантии, что результат покроет потраченные ресурсы. А пока вы не долларовый миллионер - никто такой марш бросок ради вас делать не будет.

    Вопрос о провайдере, который о вас знает иллюстрируется следующей аналогией:
    Вот вы идете по улице и видите вокруг себя людей, верно? Вы видите лица людей, возможно некоторые из этих лиц вам встречались ранее, возможно некоторых вы знаете по имени и даже знаете их паспортные данные (допустим коллегу по прошлой работе встретили). Вы знаете где эти люди сейчас находятся (в поле вашего зрения!), вы видите с кем они сейчас общаются, при желании вы даже можете запомнить номера и марку машины, куда они сели. Вопрос: ДАЛЬШЕ ТО ЧТО!
    Вы же не можете утверждать, что человек проходящий мимо вас в чёрных очках надел их потому, что хочет скрыть глаза, поскольку вам кажется, что очки в пасмурную погоду могут одевать только те, кто совершил какое-то преступление. Это всего лишь ваша интерпретация.
    Тоже самое и с провайдером - он не может утверждать, что вы занимаетесь чем-то нелегальным просто на основании того, что начали шифровать весь трафик. В мире любая вменяемая организация шифрует весь свой трафик. Это коммерческая тайна! Так должно быть! В противном в голове у службы безопасности такой организации - СОВОК.

    Последуйте моим рекомендациям: шифруйте ваши конфиденциальные данные и ни пускайте за штурвал ваших ПК и мобильных устройств людей, кого недостаточно хорошо знаете. Высыпаться станете лучше.
    Ответ написан
    19 комментариев
  • Как получить доступ к своим папкам с версткой в Wordpress?

    @gosolivs
    Front-end developer
    Сделай эти страницы, как шаблоны страниц и положи в папку с темой page-*.php, после создай страницу из админ-панели и выбери, там же, этот шаблон
    Ответ написан
    Комментировать
  • Как можно отключить увеличение курсора при "тряске" в Mac OSX El Capitan?

    @AlexandrLight
    Отключается эта фишка и очень просто.
    Заходим в Универсальный доступ->Монитор->Shake mouse pointer to locate

    ->9fb69090f0d64b2cb2a0118e6d4633d0.png
    Ответ написан
    Комментировать
  • Как изменить расположение элементов WooCommerce в WordPress?

    Punkie
    @Punkie
    В папке плагина woocommerce есть файл со всеми хуками - woocommerce_hooks.php . Находите в нем отрезок, который отвечает за нужный вам кусок шаблона (в вашем случае woocommerce_single_product_summary), смотрите вызовы add_action.
    У вас они будут как раз такие, как закоментировано в коде выше, то есть:
    @hooked woocommerce_template_single_title - 5
                 * @hooked woocommerce_template_single_price - 10
                 * @hooked woocommerce_template_single_excerpt - 20
                 * @hooked woocommerce_template_single_add_to_cart - 30
                 * @hooked woocommerce_template_single_meta - 40
                 * @hooked woocommerce_template_single_sharing - 50


    В данном случае числа - это последовательность (приоритет) активации action'ов.
    Теперь вам нужно в functions.php вашей темы деактивировать эти action'ы методом remove_action и выполнить их активацию в нужном вам порядке.
    Например, вам нужно, чтобы сначала выводилось название товара, затем краткое описание, затем цена и тд.
    Код будет примерно такой:
    *тут перечисляем все строки с методом remove_action:
    
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
    ... и т.д.
    
    *Теперь вызываем те же действия по хуку woocommerce_single_product_summary, но в нужной нам последовательности:
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 10);
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 15);
    ... и т.д.

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

    Подробнее про понятия hook, action и filter читайте в официальном руководстве: Introduction to hooks: actions and filters
    Ответ написан
    7 комментариев