• Ruby: "Дорожная карта", пoмoгите составить?

    AMar4enko
    @AMar4enko
    Выскажу свое мнение - в 2016 году ставка на Ruby неоправдана.
    Сейчас делается щедрая ставка на распределенные системы - Ruby для этого не предназначен.
    Микросервисная архитектура тоже не про Ruby - легковесный процесс на нем это из области фантастики. Даже JIT-компиляции до сих пор нет.

    Я сам вертелся с ним два года, с вещами типа EventMachine, тонких API - не доставляет удовольствия.
    Чтобы нормальный TDD организовать приходится привлекать гемы, которые творят магию, форкая твой процесс, чтобы стартовать тесты быстро. А где магия - там шаг влево-вправо и ты за бортом. Барахтайся, разбираясь, почему у тебя все упало.

    Комьюнити на 80% сконцентрировано вокруг Rails, если говорить о web-разработке. В последнее время появился еще hanami (бывший lotus). Не говорю там про всякие sinatra, padrino и.т.д.

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

    Если вы еще не зашорены парадигмами императивного программирования, то я бы посоветовал вам обратить внимание на Elixir. Лаконичный язык, построенный поверх виртуальной машины Erlang и его Open Telecom Platform. Производительность его на уровне Go, а синтаксис мне, как бывшему рубисту, гораздо ближе.
    Ответ написан
    3 комментария
  • Как новичку перейти на Linux?

    @andranique
    Пожалуйста, посоветуйте полезные и интересные книги на русском для Linux, сайты (желательно не посвящённые определенным дистрибутивам, а общеразвивающие) и прочие материалы с любых других источников.


    Эта книга М. К. Далхаймер, М. Уэлш. "Запускаем Linux, 5-е из..., на мой взгляд, наиболее исчерпывающе дает информацию о GNU/Linux для новичка. Параллельно с чтением можно своими ручками практиковаться по примерам из книги, чтобы закрепить знания и увидеть своими глазами как работает, например, командный интерпретатор Bash - без него изучение GNU/Linux будет бессмысленным.
    Что касается дистрибутива, то полезнее новичку будет начать с самого сложного - собирать свой дистрибутив по книге Linux from scratch. Стресс вам обеспечен! Зато после того, как пару раз сами соберете из исходников дистрибутив, будете разбираться в GNU/Linux на очень приличном уровне. А выбрать дистрибутив после этого вам не составит труда. В книге пошагово весь процесс сборки описывается.
    Оф. сайт:
    www.linuxfromscratch.org
    Вот русская версия данной книги:
    Linux from scratch 6 на русском языке
    Ответ написан
    Комментировать
  • Что лучше Unity vs UE4 (для 3D приложений)?

    @nimfai
    Full stack developer
    Под Вашу задачу оба движка буду хороши. Берите что больше нравится. Сделайте небольшой прототип и там и там посмотрите что больше устраивает.
    Они и в целом хороши, но всё таки UE4 чутка посильнее будет. Да и лично для меня он проще в изучении оказался.
    Ответ написан
    Комментировать
  • Что лучше Unity vs UE4 (для 3D приложений)?

    @Ambal89
    Новичок в web'e
    Тоже задавался этим вопросом, сначала выбрал UE4, потом начал натыкаться на отзывы студий, которые перешли с UE4 на Unity по причине производительности. UE4 не очень оптимизированный движок, поэтому ваше приложение много людей не сможет если даже не запустить, то работать в нём нормально. Потому-что даже на минималках игра на UE4 очень много требует. А если у Вас будет много объектов (планет), то может быть проблема. Да, в Unity нужно знать C#, чтобы писать программу, но зато она пойдёт у большинства.

    Даже если взять во внимание демку A Boy And His Kite для UE4 - у меня на достаточно не слабой видеокарте gtx780ti идет что-то на уровне 8-19 fps. А у скольких людей видеокарта слабее... или вообще ноутбуки.
    Ответ написан
    5 комментариев
  • В чем заключается разработка игр на Unreal Engine?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Пишете сами себе ТЗ. Если за месяц и меньше сумели собрать прототип игры с большей частью фич из ТЗ(как правило основная идея игры, ее изюминка) то продолжайте разработку. Сами поймете какие темы надо подтягивать и штудировать.
    Пытаться что то делать сразу для мобилок очень плохой вариант т.к. это на порядок сложнее.
    UE4 или любой другой двиг в связке с С++ вообще ошибочный вариант, 95% что забьете на это очень быстро. Лучше начинайте с какого нибудь FPS\RPG\GAME Maker или тучи других движков которые больше ориентируются на визуальную часть и простейшие языки типа бейсика, есть еще неплохой "Лаборатория игр Kodu" от MS.

    С++ язык который изучают несколько лет, потом лет 5 набивают шишки в проектах на коленке которые продал знакомым и еще пару лет работы в окружении профессионалов. Порог вхождения для правильного написания кода в этом языке очень большой, лучше не заморачиваться с ним и сразу учить Java\С#\Swift т.к. они в разы легче для понимания и сильно схожи друг с другом.
    Ответ написан
    1 комментарий
  • Что лучше Unity vs UE4 (для 3D приложений)?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    В Asset Store гораздо больше выбор по сравнению Marketplace, например можно купить готовые модельки планет. Документация у Unity и C# получше чем у Unreal и C++, а в остальном движки одинаковые. Если раньше на плюсах писали, то берите Unreal, не придётся одновременно изучать движок и язык.
    Ответ написан
    3 комментария
  • Путь становления Реверс инженера?

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

    Если нет, то никакие книги не помогут. В этом деле нужна страсть и огромное терпение.

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

    Это, что касается общих технологий. А есть ещё такая штука, как архитектурные паттерны. Они обычно применяются в прикладных приложениях, малварь редко такое применяет. Т. е. нужно видеть в коде, например, паттерн Event, различные варианты паттерна MVC, и т. п. Например, вы реверсите продукт на Qt. Чтобы его понимать, вам нужно знать... Qt, и уметь на нём разрабатывать, читать его исходный код, знать что такое метаобъекты, как они хранятся, используются, вызываются. А если, внезапно, оно юзает что-то интерпретируемое, типа питона или луа, то вам, мало того, что нужно знать сами языки, так ещё и реализацию их интерпретаторов. А ещё бывает JIT...

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

    Короче, для реверсера нужно учить всё. Не нужно фильровать определённые технологии, вам понадобятся все они без исключения. Ибо всё, что было создано для вычислительных систем, в них используется, а соответственно, вам придётся это знать, чтобы реверсить.

    Кстати, чуть не забыл.

    Самая лучшая книга по реверсу на русском.

    И ещё есть классический курс статей от Рикардо Нарвахи: «Введение в крэкинг с нуля, используя OllyDbg». Погуглите его. Если осилите книгу Юричева и этот курс, то сможете спокойно собеседоваться в Касперский. Хотя, поверьте, есть вещи поинтереснее касперского.
    Ответ написан
    1 комментарий
  • На что потратить время и силы в плане программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Глупые, непонятные вопросы.

    Сеньер Java и Сеньер C++ получают примерно одинаково. Уровень ЗП зависит от твоего уровня знаний и опыта работы. К тому моменту, как ты перейдешь с junior на mid, в мире все может поменяться.

    Учишь С++ и тебе нравится - продолжай. Мотивация в виде "нравится" важнее, чем лишние 100$ когда-нибудь через 5 лет.
    Мотивация в виде "мне нравится моя работа" важнее чем лишняя 1000$ в зп.

    Переучиться с С++ на java в районе junior-а не проблема. Проблема из никого стать хотя бы junior-ом и получить первую приличную работу в компании, где есть возможность реального роста.
    Ответ написан
    Комментировать
  • Есть ли перспективы ПО разработки?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Ох... И не знаю даже, как Вам ответить. Да, появилось такое направление, как web-программирование. Но оно появилось уже давно, несколько десятков лет назад. Оно набирает популярность, чему есть объективные и субъективные причины. Но про "сейчас все уходит в веб" Вы сказали не подумав. Web-программирование - это только одно из многих направлений прикладного программирования.
    Я, например, занимаюсь сложными программно-аппаратными комплексами. В них входят разные подсистемы: есть web-интерфейс пользователя, есть web-сервисы, но за этим фронтоном стоят очень мощные системы сбора, обработки и хранения информации. Часто эти системы распределены по всей территории России, и вопрос их взаимодействия/синхронизации - тоже весьма не тривиальный.
    Очень активно сейчас развиваются системы типа "умный дом" или "умный офис", и в них web - важная, но не решающая часть. Важнее по сигналу датчика выполнить корректно некое действие, чем уведомить об этом пользователя. Да и способы уведомлений бывают разные, не только посредством Интернет, и всем этим занимаются программисты.
    В общем, я бы говорил о проникновении программного обеспечения в самые разные области жизнедеятельности человека, просто одни люди чаще работают с web-интерфейсом, а другие - со штурвалом самолёта или щитом управления АЭС.
    А стоит или нет изучать программирование на Java и C# - это уж Вы сами решите. Платформы очень мощные, но есть прикладные задачи, для которых они не очень подходят. Решите, чем Вы сами хотите заниматься, тогда станет понятно, какие инструменты использовать.
    Ответ написан
    Комментировать
  • Градация разработчика?

    @ralaton121
    Расслабьтесь. Типичный junior - это года 2 опыта работы по профессии.
    Вам еще рано бояться, что вы нулевой. Для полугода - это нормально, что вы нулевой.
    Ответ написан
    4 комментария
  • WEB-программирование. Что выбрать и с чего начать?

    pletinsky
    @pletinsky
    На мой взгляд базисные знания следующие:

    1) Клиентская верстка и стили (html, css). Можно пробежаться глазами хотя бы по теме. Почитать про правила верстки.
    2) Клиентская логика, работа с DOM (Javascript, Jquery). Важная тема — стоит уделить ей время.
    3) Теория распределенных приложений. — Веб приложения чаще всего являются распределенными. Поэтому стоит изучить архитектурные принципы распределенных приложений. API и т.д.
    4) Базы данных (SQL, etc.) — Конечно начать стоит с классического сиквела — но стоит посмотреть и шире — например на nosql решения.

    Далее стоит выбрать технологическую платформу. С вашим бэграундом вероятно стоит посмотреть в сторону Microsoft ASP.NET MVC. Это великолепное решение и погружение в обширный мир разработки в рамках решений MS. У них сейчас самые развитые языки программирования (C# 5.0), самые развитые инструментальные среды (MS Visual Studio), одна из самых совершенных виртуальных машин (.Net).
    Решение удобнее всего для серьезных и масштабных проектов, хотя и для небольших вполне подойдет.
    Следующий кандидат — Ruby on Rails. Это развитое решение с замечательным языком программирования и отличными каркасными решениями, заточенное именно под веб. Возможно лучше подойдет для небольших приложений — но и промышленные продукты без проблем потянет.
    Он также очень распространен.
    Ну и конечно PHP. Язык программирования данной технологической платформы отстает от требований к разработке больших решений — он скорее подходит для написания скриптов. Однако существует колоссальное количество каркасных решений для данной платформы, которые позволяют реализовывать даже приличного объема продукты. Кроме того данное решение наверное самое распространенное из всех.
    И оно потихоньку подтягивается до уровня платформ для разработки промышленных продуктов.
    Существует также множество других решений. Например огромный мир Java и решения на базе серверного Javascript.

    Скоп работ будет состоять из следующих частей:

    1) Клиентская часть (html, css, javascript). Тут вам понадобятся знания по верстке как раз и жаваскрипту. Также следует использовать различные базовые решения и фреймворки. Эта как раз та часть, где слишком глубокие знания (например использование чистого некроссбраузерного javascript) могут быть вредны и лучше все базировать на готовых платформах.
    Часто эта часть в web приложениях бывает больше чем хотелось бы.

    2) Серверная часть. Тут все определяется технологической платформой описанной в предыдущем абзаце. В веб приложениях как правило немного серверной логики — почти все можно заменить на внешние библиотеки. Но у разработчиков десктопных приложений всегда есть соблазн развивать именно эту часть потому что она им знакома — не поддавайтесь. Специфическая для проекта серверная логика нужна не очень часто. Если ее много — значить кто то увлекся велосипедами. Тоже касается разработок API и систем взаимодействия с внешними сервисами.

    3) Базы данных. Конечно обязательно! стоит использовать развитые ORM системы. То есть нужно их изучить под выбранную вами технологическую платформу. Ну и конечно базовые знания баз данных тут тоже очень понадобятся — сиквел, реляционная модель и все остальное.

    Дерзайте. Я за вас болею.
    Ответ написан
    Комментировать
  • Компьютер с характеристиками для работы с графикой и веб разработкой. Дорого?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Стоимость хорошего компьютера неизменна с 1996 года - это $1000. Менялось многое - режим, правительство, деньги, политика, президенты, курс бакса - трудной найти вещь, которая не изменилась бы с 1996 года. А вот эта цифра постоянна :) Как стоил в 1996 году хороший комп $1000 - так и сейчас стоит. В рублевом эквиваленте по нынешнему курсу конечно :)
    Ответ написан
  • Игры на UWP, что используют?

    yarosroman
    @yarosroman Куратор тега C#
    C# the best
    Есть и готовые движки, типа Unity, можете свое написать, UWP хорошо и DirectX дружит
    https://docs.microsoft.com/en-us/windows/uwp/gamin...
    https://docs.microsoft.com/ru-ru/windows/uwp/gamin...

    Только они написаны на С++
    Ответ написан
    Комментировать
  • Игры на UWP, что используют?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    Для игр обычно используют движки типа Unity, для остальных приложений стандартные средства разработки на C#+Xaml и кроссплатформенные технологии типа Qt и Xamarin

    PS. На WPF можно сделать интерфейс не хуже чем на uwp sdk, просто требования к десктопным приложениям немного другие
    Ответ написан
    6 комментариев
  • Ruby ActiveRecord.as_json ключи как Sybmol?

    HighQuality
    @HighQuality
    ☁ Ниндзя девелопер
    JSON.parse(Test.all.to_json, symbolize_names: true)
    Ответ написан
    Комментировать
  • Какой движок (Unity 5 vs UE4) лучше использовать для VR?

    Bobrodon
    @Bobrodon
    Обычный землянин
    1) Оптимизация. Из опыта получается что они оба примерно на одном уровне. Юнити немного раньше VR стали поддерживать, поэтому и сообщество по-больше будет ( хотя у Юнити оно в целом итак больше ).

    2) Скорость разработки. Юнити в этом плане по-проще и по-быстрее, так как С# очень просто дается и очень много документации. У UE есть BluePrint и C++. BluePrint - визуальный скриптинг, лично я очень сильно путался при больших задачах, а С++ по-сложнее будет чем C#.

    3) Качество Контента. В этом плане UE радует отличными шейдерами и светом прямо из коробки. В юнити надо искать готовые или самому писать , а это займет время.

    Я бы выбрал Unreal. Сам факт того ,что игра сделана на Unreal Engine - уже придает ей больше уважения ( так как школьники всех избаловали своими творениями на Unity )
    Ответ написан
    1 комментарий
  • Есть ли смысл уходить с C++\Qt в C#+WPF?

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

    Ну вот, например, самое первое видео по релевантному запросу в youtube ведет к этому плэйлисту.
    Не смотрел, но судя по комментариям и соотношению like/dislike контент людям нравится. Последнее видео загружено недавно.

    p/s речь у ведущего норм :)
    Ответ написан
    1 комментарий
  • Существуют ли шаблоны wpf приложений?

    artem_b89
    @artem_b89
    Сетевой бездельник
    Не совсем понятно, что собственно нужно, если нужны шаблоны проектов, то кроме стандартного шаблона, можете посмотреть в сторону MVVM Light.
    Если имеется ввиду шаблоны интерфейса, то их можно найти в интернете, например тут.

    Примеры программ можно взять наверное в любой книге по WPF или также найти в интернете по интересующей вас тематике.

    habrahabr.ru/post/158561
    habrahabr.ru/post/118840
    Ответ написан
    Комментировать