• Что можно для новичка-любителя скоростных сайтов без JS или с?

    Нет, ну и на с++ можно конечно. Но мой выбор scala + play framework. Быстро и удобно. С другой стороны тут у вас готовые cms, а с фреймворками работают совсем по другому. Каждую страничку самому писать надо.
    Ответ написан
    Комментировать
  • Как не повторять некий метод каждый раз при вызове метода?

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

    Если всё же вы способны ответить на этот вопрос, то может быть, вам стоит покопать в эту сторону:
    stackoverflow.com/questions/6307761/how-can-i-deco...
    Ответ написан
    Комментировать
  • Как работают val параметры с именами совпадающими с parameterless методами в Scala?

    Конструкция
    class Rectangle(val topLeft: Point, val bottomRight: Point)

    подразумевает под собой, что для класса сгенирируется конструктор с параметрами topLeft, bottomRight, в классе будут созданы соответствующие поля, и для этих полей сгенерируются геттеры, с теми же названиями.
    В случае когда мы обращаемся к полю по сути мы обращаемся всё равно к геттеру. И в данном случае этот геттер будет иметь соответствующее описание, подходящее под def topLeft: Point.

    Соответственно никаких противоречей не возникает, у нас есть геттер, который подходит под интерфейс класса от которого мы наследуемся. Если же мы объявим класс, например, как:
    class Rectangle(val topLeft: Int, val bottomRight: Point) extends Rectangular

    То программа не скомпилируется, соответственно.

    Если углубиться глубже то на самом деле скала старается на различать val и def. Это оба равноправные объявления. Отличие между ними заключается в стратегии исполнения. Подробнее:
    https://class.coursera.org/progfun-005/lecture/4
    https://class.coursera.org/progfun-005/lecture/5
    Ответ написан
    2 комментария
  • Перспективы после "Системного анализа и управления"?

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

    Если занимаетесь фронт-эндом, то продолжите в этой области, почему нет. Развиваться в любом случае есть куда, например к написанию больших и сложных интерфейсов веб приложений. Найдите работу junior js developer'а например, изучите фреймворки. Пройдите курсы может быть. Та же coursera может дать намного более полезную и актуальную информацию нежели высшее образование.

    Тем не менее выбор всегда за вами.
    Ответ написан
    2 комментария
  • Может ли кто-нибудь привести хороший пример параллелизации для линейной рекурсии первого порядка?

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

    Соответственно, такая рекурсия по сути является циклом написанным в виде рекурсии.
    Цикл можно распараллелить в случае если вычисляемые значения не зависят от предидущих итераций цикла (или хотя бы их часть)

    Как вариант примера: map на multithreading коллекции (то есть распаралеленный map)
    docs.scala-lang.org/overviews/parallel-collections...
    Ответ написан
    1 комментарий
  • Как сделать сайт на JAVA?

    Есть множество способов сделать сайт на Java.

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

    Самыми простыми мне кажутся grails и play, я бы выбирал из них.
    Далее соответственно чтение примеров и документации, и у вас всё получится!
    Ответ написан
    Комментировать
  • Как найти самое часто встречаемое слово?

    Принципиально я вижу тут несколько вариантов.

    Если слов умеренное количество можно использовать обычный hash map.
    То есть ключём будет слово и значением будет количество. Сложили все слова в хешмап, потом выбрали максимальное значение. Это решение простое в написании, но при большом количестве слов может быть не эффективным, в первую очередь по памяти.

    Если hash map не справляется то использовать структуру данных бор (префиксное дерево), с подсчётом количества слов:
    informatics.mccme.ru/mod/book/view.php?id=435
    habrahabr.ru/post/111874

    Если бор тоже не влезает по памяти, то можно использовать сжатый бор:
    habrahabr.ru/post/151421

    Ну и если слов вдруг совсем много:
    mapreduce
    habrahabr.ru/post/103467
    Ответ написан
    Комментировать
  • С какими задачами чаще сталкиваются scala-программисты в повседневной работе?

    Недавно неожиданно устроился scala программистом. Что интересно, позвали меня в проект по знакомству, вакансий нигде небыло опубликовано. Пишем на Play проект по гос заказу.

    Что в остальном не знаю, и фрилансить скорее всего не реально. Возможно реально участвовать в одном-двух проектах на удалёнке.
    Ответ написан
    Комментировать
  • Задачник с решениями по Python -?

    Может быть не совсем то, что вы искали, но рекомендую посмотреть вот сюда: informatics.mccme.ru/course/view.php?id=156
    Ответ написан
    Комментировать
  • Форматировать дату без библиотеки. Всего пару функций на проект. Какое архитектурное решение выбрать?

    Ответить на следующие вопросы себе:
    1.Много ли дат добавится в проект в ближайшей перспективе (допустим 6 месяцов).
    2.Какой из вариантов я напишу быстрее.
    3.Сложно ли будет отрефакторить, если я сейчас напишу просто, а потом мне понадобится более сложная система.

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

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

    Т.Е. в вашем случае скорее всего ответ - 2.
    Ответ написан
  • Как поднять производительность ОС за счет избытка памяти ОЗУ?

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

    Веб сервер вам по сути потребуется только для четвёртого пункта.
    В вашей ситуации всё равно что.
    Можете взять Play framework или jRails в качестве соврменного фреймворка для веба. Или же просто использовать jsp + любой сервер (тот же jetty).

    Хранение информации в бд, опять же, или берёте то что поддерживает фреймворк, или какой-то стандартный способ: jdbc, hibernate. Но у того же play гораздо больше возможностей в этом плане, и как по мне выглядят они привлекательнее.

    Для сбора данных вам скорее всего понадобится какой-нибудь планировщик: ScheduledThreadPoolExecutor, akka scheduler. Ну и собираете данные либо в одном потоке, либо многопоточно. Если одновременных конекшнов будет больше 10 000 - лучше асинхронно. Если меньше то просто многопоточно.
    Ответ написан
    Комментировать
  • Как начать програмировать для дилитанта?

    1)Не поздно.
    2)На самом деле вообще не важно, главное начать.
    3)Многие сейчас начинают с языка python так он прост и популярен.

    Я рекомендую сайт informatics.mccme.ru
    Есть например курс по питону: informatics.mccme.ru/course/view.php?id=156
    И что важно, можно решать задачки и сдавать их в тестирующую систему, вам будут отвечать правильно ли она решена.

    P.S. Вам дофига чего посоветуют, и на самом деле не важно что вы выберите. Успехов вам.
    Ответ написан
    Комментировать
  • Можно ли зарабатывать на написании сайтов на java?

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

    Для более мелких проектов на джаве сейчас набирают популярность jrails и play framework.

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

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

    Если вам нужен конкретный пример. давайте возмём для примера сайт тостер. На сайте тостер зарегистрировано больше 25 тысяч пользователей, задано почти 100 тысяч вопросов, по 300 разным тегам. У каждого пользователя есть свой список тегов на которые он подписан. Предлагаю реализовать алгоритм генерирующий для пользователя страничку n в его ленте. (То есть выбирающий вопросы на которые пользователь подписан, с n * 20 по n * 20 + 20) Для этого соответственно определить как и с помощью каких структур данных будет хранится список вопросов.

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

    Понимаете, говокод это нечто собирательное. Как и красивый код.
    Тем не менее, пишем проеты мы в первую очередь для того что бы зарабатывать деньги. С течением времени стоимость поддержки кода увеличивается. И задача хорошего программиста стоимость этой поддержки снизить как можно сильнее. То есть по сути сэкономить бабла заказчику, и за это заработать больше самому.
    И вот есть куча книжек про то, как писать красивый код и не писать говнокод. Такие как чистый код, совершенный код, банда четырёх, и.т.д. Так вот - это всё книжки в первую очередь про то, как экономить бабло (и время, что в общем-то равно).

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

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

    Рецепт хорошего кода прост. Думайте какие характеристики для вас важны, и отвечает ли ваш код этим характеристикам. Если не отвечает - то возможно это и есть то, что обычно называют говнокодом.
    Ответ написан
    Комментировать
  • Выбор клиент-серверного java фреймворка для высоконагруженного приложения?

    Я честно говоря не понял зачем вам вообще фреймворк.
    1000 конекшнов, это не так много, и на чистой джаве без асинхронности будет прекрасно работать. 10000 уже лучше асинхронно. Можете в этом плане взглянуть на akka.
    Для веба (если он вам нужен), можно использовать play! или grails (кто-то скажет spring).
    Ответ написан
    Комментировать
  • Какие посоветуете книги по олимпиадному програмированию для начинающих веб-разработчиков?

    Вы знаете, основная проблема языка JavaScript по отношении к олимпиадному программированию то, что в олимпиадах по программированию не принимаются решения на JavaScript (в большинстве случаев).

    java/c/c++ действительно основные из за шустрости, статической типизации и прочего.
    Тем не менее многие начинающие олимпиадники сейчас активно используют python. Я когда занимался олимпиадами тоже использовал (хоть и не всегда). Он хоть и не очень шустрый, но простой, и со знанием дела можно спокойно писать большинство задач. И принимают решения на нём сейчас почти везде.

    Так же рекомендую заглянуть на сайт: informatics.mccme.ru
    Ответ написан
    Комментировать