• Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

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

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Создавать GUI с помощью WinAPI - это, конечно, очень полезно с точки зрения своего развития, но... сейчас мало кто этим занимается. Есть Qt, есть GTK, есть <вставьте свое название>, которые заметно упрощают разработку пользовательских интерфейсов. Если вам будет необходимо создавать сложные интерфейсы (вспомните MS Office или Adobe Photoshop) - стоит выбрать что-то из этого и использовать, но в случае с разработкой игр ситуация немного другая: в играх интерфейс такого рода обычно не нужен. Вообще. Там обычно только одно "главное меню" и немножко элементов интерфейса, которые мало похожи на то, что вы видите в среднестатистическом приложении. Поэтому (личное мнение) если вы хотите заниматься разработкой игр, вам стоит изучать то, что в них более востребовано - например SDL. И сразу читать что-то вроде SDL Game Development и писать. Через некоторое время будете делать 2D-игры без проблем (со звуком, спрайтами, клавиатурой/мышью/джойстиком, нормальными уровнями, и.т.д.) и, заодно, поймете принципы создания архитектуры подобного рода проектов. А потом смотреть в сторону каких-либо физических движков или углубляться в графику (OpenGL/DirectX).
    Ответ написан
    1 комментарий
  • Разработка под iOS сильно отличается от разработки под Android?

    @four4
    Да.
    Ответ написан
    Комментировать
  • Что читать дальше?

    GavriKos
    @GavriKos
    Без практики читать бесполезно.
    Берите себе какую то задачу, пробуйте реализовать, параллельно читайте что то умное.
    Ответ написан
    4 комментария
  • Бесплатный проект для портфолио превратился в бесконечный. Как быть?

    Спланируйте релизы. Сейчас вы работаете только над v.1.0 для которого у вас есть ТЗ и все те доработки, на которые вы по доброте душевной согласились.

    Принимать новые feature request'ы от клиента можно, но даже не думайте их реализовывать, пусть, для этого всего одну строку поправить – все они пойдут уже в будущие, платные релизы. Принимайте хотелки клиента, аккуратно записывайте, и забывайте про них до поры до времени.

    Держите клиента в курсе, у вас всё прозрачно: покажите клиенту ТЗ и планируемые к последующим релизам правки. Можете сразу раскидать планы на несколько будущих релизов – это пойдёт в v.1.1 через месяц после приёмки 1.0 и начала платного сотрудничества. А это – в v.2 – где-то летом.
    Ответ написан
    Комментировать
  • Тень текста в SVG?

    Можно использовать фильтр drop-shadow. Правда, поддержка у этой фичи пока не очень большая. Это если вы хотите сохранить логотип в векторе - тогда тень придется добавлять динамически через css - векторная графика не предназначена для теней и подобного. Однако учтите, что для этого вам необходимо вставить svg на страницу как текст (способы), чтобы иметь возможность использовать селекторы.

    А если вам нужен просто логотип с тенью, при этом не важно, в каком он формате, используйте png (можно 2 версии, под ретину) и не заморачивайтесь. В большинстве случаев svg не является необходимым решением.
    Ответ написан
    Комментировать
  • Как конкретного наследника связать с конкретным родителем?

    petermzg
    @petermzg
    Самый лучший программист
    Так вы разделите классы ComPort и Device.
    И при создание обьекта Device передавайте в него обьект ComPort.
    Наследование в вашей задаче не нужно.
    Ответ написан
  • Как найти нужный POST или GET запрос?

    FireFox + FireBug
    Ответ написан
    Комментировать
  • Какую литературу почитать о принципах работы пк, прежде чем изучать C, C++, java?

    GeneMoss
    @GeneMoss
    void
    https://habrahabr.ru/post/259505/ — вот этой книги должно хватить с головой.

    Хотя тему байтов, битов, кодировок и битовых операций любой вузовский учебник раскроет на достаточном уровне, чтобы изучать С, С++.
    Ответ написан
    2 комментария
  • Как правильно управлять парком серверов Unix?

    igortiunov
    @igortiunov
    Приветствую.
    Прежде всего, не стоит представлять себе решение задачи, как "большую кнопку", т.к. наши представления об управлении инфраструкурой несколько извращены опытом работы с продуктами MS. Интерфейс скрывает от нас стек ПО используемого для достижения цели. Например, WSUS. Под его капотом находится набор служб, каждая из которых играет определенную роль - bits для загрузки на сервер и доставки пакетов на клиента, веб-сервер для управляющих команд, база данных для хранения состояния клиентов и исправлений, .net приложение, обьединяющее все это. Для парка nix машин вам предстоит построить подобную архитектуру самому, выбирая каждый раз инструмент, который будет играть ту или иную роль.
    На втором шаге вам нужно посмотреть на задачу. Если у вас десяток инфраструктурных серверов, то Ansible действительно неплохой выбор. Но только не "скрипт". "Скрипт" - это язык, который говорит как достичь результата. Но инструменты управления конфигурацией избавляют вас от этого, с помощью декларативного языка вы описываете сам конечный результат(это ключевой момент) и не задумывайтесь о том, какой дистрибутив (читай менеджер пакетов, расположение конфигурационного файла) установлен на управляемой системе.
    Если вам нужно дать доступ большому количеству пользователей к большому количеству машин, то на первом шаге вам нужно выбрать два инструмента:
    1. управление конфигурацией.
    2. управление sudo.
    Первый инструмент с натяжкой может предоставить вам возможность решить пункт 2, т.к. в этом втором пункте вам нужно управлять теми самыми политиками: группе пользователей дать доступ на группу машин и разрешить выполнять группу команд. Здесь в игру вступает Identity Manager и этот вопрос для меня по крайней мере, открыт. Текущие тенденции ведут к развертыванию двух каталогов (MS AD и каталог для парка NIX), но не берусь сказать насколько это правильно. Обойтись без второго каталога можно и, если отбросить шелуху, то ключевой проблемой, в таком случае, является сопоставление идентификаторов безопасности пользователей в MS AD и в nix системах (просто когда один домен, сложнее когда лес, совсем не просто в случае созданных вручную доверительных отношений). Раньше этот вопрос решал winbind с набором библиотек, реализующих тот или иной алгоритм сопоставления, теперь это SSSD, реализующий два алгоритма. Опять же вопрос с выполнением привилегированных команд в такой конфигурации не решается. RedHat предлагает скомпанованные в единый продукт инструменты, которые, якобы эти задачи решают. Поддержкак от этого самого редахата стоит бешеных для нас денег, но вы посмотрите из чего состоят такие решения как Sattelit и IdM, это открытые продукты (FreeIPA, candlepin, pulp, katello, puppet и, наконец, foreman.) которые, возможно вам и нужны.
    Ответ написан
    8 комментариев
  • Сможете объяснить решение олимпиадной задачи?

    Задача сводится к выяснению того, сколькими кубиками (не способами, а именно кубиками) может быть задана исходная сумма (нижних граней).
    Например, 1 может быть задано только 1-м кубиком, ответ - 1
    2 может быть задано как 1-м, так и 2-мя кубиками, ответ - 2
    3 может быть задано 1-м, 2-мя или 3-мя кубиками, ответ - 3.
    Рассмотрим 4. Может быть задано от 1-го до 4-х кубиками. Т.е. ответ - 4. Рассмотрим случай 2-х кубиков. Это могут быть комбинации 2 + 2 или 1 + 3, но оба они дадут одну и ту же сумму верхних граней: 6 + 6 - (2+2) или 6 + 6 - (1+3), что явно одно и то же.
    У разных же количеств кубиков сумма разная, так как разное кол-во 6-к (самых больших чисел).

    Итак, надо выяснить, сколькими кубиками можно задать сумму s. Понятно, что если s ≤ 6, то любым кол-вом от 1 до s. Но если s > 6, то одним кубиком уже не задать. Если s > 12 (6 * 2), то не задать уже и двумя.
    Т.е. если s > 6, надо вычесть 1, если s > 12, надо вычесть 2, если s > 18, то вычесть 3.
    Или, иначе говоря, если s > 6k, надо вычесть k. k можно посчитать как (s - 1) / 6 (целочисленное деление). Как только s становится больше 6k, то есть становится 6k + 1, получаем (6k + 1 - 1) / 6 = k. Если же s = 6k, то (6k - 1) / 6 = k - 1, что нам и надо.
    Т.о. результат: s - (s - 1) / 6, что эквивалентно вашей формуле, так как
    (s + 5) / 6 = (s - 1) / 6 - 1
    (s + 5) / 6 - 1 = (s - 1) / 6
    Ответ написан
    5 комментариев
  • Как обезопасит системного администратора от ответственности за пиратское ПО?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для начала, если с проверкой придут на предприятие, то проверять будут факт покупки лицензий по бухгалтерии и соответствие установленного ПО и имеющихся лицензий. До определённой суммы дело идёт как административное и отвечать может организация. Выше этой суммы (250000р., если не ошибаюсь) дело переквалифицируется в уголовное, где подсудимым будет уже конкретный человек или группа лиц. Для того, чтобы подвести под статью достаточно, чтобы нашлись несколько свидетелей, показавших, что именно вы ставили на данный компьютер нелицензионное ПО. Какие либо письменные предупреждения от вас руководителю позволят следствию переквалифицировать дело в "совершённое по предварительному сговору группой лиц", что добавляет тяжести обвинению.
    Предприятие в любом случае будет оштрафовано на стоимость лицензий незаконно установленного ПО, кроме того на время следствия могут быть изъяты системные блоки или жёсткие диски.
    Что касается TrueCrypt'а и прочих шифровальщиков, то если не хотите начинать рабочий день с ввода паролей на всех компьютерах, значит эти пароли будут знать и сотрудники. А поскольку они пойдут по делу как свидетели, а не обвиняемые, то их отказ предоставить пароли будет трактоваться как "ст. 294 УК РФ. Воспрепятствование осуществлению правосудия и производству предварительного расследования".
    Ответ написан
  • Полиморфизм в C++ и как правильно его реализовать с использованием указателя на void?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Не надо корячить из C++ C.
    Компилятор не настолько тупой, чтобы не заменить индексный оператор на работу с указателем. А вот код вы превратите в помои.

    void* в С++ - такая же дрянь. Для этого существуют интерфейсы. Дайте компилятору и оптимизатору поработать.
    Ответ написан
    9 комментариев
  • Что мой провайдер знает обо мне?

    @nirvimel
    Когда я захожу на определенный сайт, провайдер видит URL?

    Да.

    А если я захожу на https?

    Известен IP сервера и имя домена. Больше ничего.

    Откуда провайдер узнает, что я скачиваю определенный фильм/программу через torrent?

    Торрент-клиент общается с трекером по HTTP. Все видно насквозь: конкретные торренты + вся статистика (когда начато скачивание, когда закончено, когда пошла раздача, сколько роздано). Возможно подключение к трекеру и по HTTPS, но rutracker.org такой возможности не дает (мне тоже интересно почему).

    Все пакеты которые я получаю и раздаю значит провайдер скачивает себе, чтобы узнать что это за фильм/программа?

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

    Или он отслеживает факт скачивания .torrent файла, а затем делает вывод по идущим пакетам, что это скачивается?

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

    Когда я пользуюсь VPN, что видит провайдер?

    Видит шифрованный траффик на конкретный IP. По IP можно узнать, что этот диапазон продается под VPSы. Сам факт шифрованного трафика вешает абонента в списки тех, "кому есть что скрывать", а значит подозреваемых при любом розыске.

    Что я зашел на определенный IP и с него идут зашифрованные потоки?

    Дальнейшее направление трафика от VPN-сервера отследить невозможно (по крайней мере, на оборудовании провайдера в автоматическом режиме). Но при целенаправленной слежке за абонентом в принципе возможно по временным меткам сопоставить трафик абонента с трафиком любого сервера.

    OpenVPN будет работать через VPN IP и в браузере и при обновлении Windows, драйверов, ...?

    В зависимости от настройки. Но в общем случае, да, так.

    Читал, что в Windows есть такая особенность, что если провайдер как-то урезает пакет, то VPN отключается и сайту показывается мой реальный IP?

    Это не связанно с провайдером. Это особенность Windows. Когда VPN отваливается, весь трафик вылетает наружу в открытом виде. Опять же зависит от настроек. Но это еще одна цена "удобства" при использовании Windows.

    При этом провайдер видит на каком я сайте, что скачиваю?

    VPN отвалился - хацкер спалился.

    Таких фишек много?

    Смотря о чем речь. В сфере сетевой безопасности и анонимности различных нюансов вообще много.

    Как от них защитится?

    Учить мат.часть. Разбираться в сетевых протоколах и в устройстве ОС.

    Если пользуюсь каким-то расширением типа ZenMate, dotvpn, провайдер аналогично как и с VPN видит что что-то отправляется и приходит на определенный VPN IP?

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

    При использовании Tor, кто-то пользуется моим IP, пока я пользуюсь чужим?

    Нет. Если у вас не сконфигурирован Exit Node.

    Что при этом видит провайдер, что я получаю потоки данных с определенных IP и каждый раз разный IP?

    У них есть система точного обнаружения использования Tor. Это факт остается в логах с теми же последствиями, что и для VPN.

    Провайдер видит URL?

    Через Tor и VPN - нет.

    Каким образом можно полностью управлять сетью на ПК, видеть что, куда и когда отправляется или приходит на ПК (Windows, Linux)?

    Видеть все: https://www.google.com/search?q=Wireshark
    Блокировать все лишнее: https://www.google.com/search?q=Comodo+Firewall
    Ответ написан
    22 комментария
  • На какой ОС поднять файловый сервер?

    Olej
    @Olej
    инженер, программист, преподаватель
    Как будет разумнее сделать? Поднять на Windows ftp, чтобы вся структура была на одной ОС?

    У англичан есть поговорка: "Дайте собаке дурную кличку, после чего можете её повесить."

    Можете поднять сервера на Windows ... после чего их повесить. ;-)
    Ответ написан
    Комментировать
  • Как и в чем ведете актуальный список серверов компании?

    @DimaJF
    До тех пор, пока не будет процедуры, за неисполнеие которой админов будут... подвергать всяким неприятным процедурам, ничего не поможет. Какая разница, что не заполнять, таблицу или git-репозиторий.
    Ответ написан
    2 комментария
  • Ставить ли фигурные скобочки?

    aminought
    @aminought
    Правилом хорошего тона считается постановка фигурных скобок в любом случае. Для вдохновения можете прочитать вот эту статью: Исключительная красота исходного кода Doom 3
    Ответ написан
    2 комментария
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

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

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

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

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • Каково реальное программирование на PHP и 1С?

    coderisimo
    @coderisimo
    Начинайте делать реальные проекты. Без амбиций. Просто начните с самого простого. По мере реализации поневоле будете двигаться вперед, получите опыт. Мне кажется один реальный проект стоит ста решенных задачек )
    Ответ написан
    Комментировать
  • Есть ли IDE способная создавать консольные приложения Win32 из по Linux(кроме Visual Studio и Eclipse)?

    gudvinr
    @gudvinr
    Code::Blocks, QtCreator
    В обеих возможно настроить кросс-компиляцию посредством, например, mingw.
    Ответ написан
    1 комментарий