• Планирую переход на linux, какой дистрибутив выбрать?

    risik
    @risik
    Программист
    Догадываюсь, что документы Office, особенно, если дело касается Word подготовлены чудовищно, поэтому в Open/Libre Office можно ожидать проблемы. С хорошо подготовленными документами (с использованием стилей, например) таких проблем не возникает.

    Хорошее решение - wine или один из его коммерческих форков, например, CrossOver. Сам длительное время пользовался им для работы с документами MSOffice, пока львиная доля документов не ушла в облака.

    Программировать на С++: выбор сред разработки огромен. Но здесь вопрос, на чем будете демонстрировать это Вашим преподавателям. Если на VisualStudio на компах в классе, то у Вас будут сложности, так как даже для самых простых консольных программок уже могут возникнуть определенные нюансы, связанные с несовместимостью. Например, там (в Windows + VisualStudio) требуется ряд магических фишек, от которых Вы просто избавлены, работая на Linux. Один из примеров: www.rsdn.ru/article/qna/ui/concp.xml

    Maple, MathLab... Здесь все может оказаться сложнее. Они у вас на кафедре/факультете/университете лицензионные? Вообще-то они оба мультиплатформенные. Если лицензия, которая есть у вашего вуза позволяет использовать на других платформах - ок. Если не позволяет или если вы пользуетесь ломанным, то проблема. Не факт, что Вам удасться это корректно запустить у себя под wine. Ну тогда может быть виртуалка - хороший выбор.

    MathCAD это windows only продукт. Здесь или искать альтернативы (есть приличные опенсорцные пакеты символьной математики) или опять же виртуалка. И использованием, например, того-же самого CrossOver гарантии работоспособности нет: www.codeweavers.com/compatibility/browse/name/?app...

    Прошивка контроллера с Вашего ПК - здесь ничего определенного сказать не могу. Это может оказать и намного проще, чем с Windows, и намного сложнее. Нужно смотреть что там конкретно за контроллер, как подключается (USB, COM, WTF) и так далее. И есть конкретно под Ваш контроллер софт на linux. Экспериментировать здесь с wine и виртуалкой я бы не стал.
    Ответ написан
    3 комментария
  • ООП в Objective-C концепция отправки сообщений вместо вызова метода, почему так?

    risik
    @risik
    Программист
    Связано это с тем, что парадигма ООП в ObjC взята из SmallTalk.

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

    С++, хотя он создавался примерно в то же время, был построен по несколько иным принципам. И некоторые "другие" ОО языки программирования (Java и C#) базировались на парадигме ООП в С++, а не в SmallTalk. Хотя некоторые концепции позже перекочевали и в эти ОО языки.
    Ответ написан
    Комментировать
  • Возможна ли разработка для Windows 8 на Debian?

    risik
    @risik
    Программист
    1. Виртуалка:
    а) в редакторе студии таки почувствуется торможение. Небольшое, но все же заметное глазу. Так как отображение будет идти через драйвер системы виртуализации.
    б) Если сделаете диск авто-увеличивающимся, то заодно получите и торможение на доступ к диску. Опять же небольшое, но в моих тестах иногда до 50%. А это повлияет на скорость компиляции.

    2. wine + VisualStudio. Вот по этой ссылке: appdb.winehq.org/objectManager.php?sClass=applicat... есть список совместимости студий с wine. Из минусов (из моего опыта) шрифты приложения, работающего под wine выглядят не ахти. Хуже прочие в Windows и хуже, чем прочие шрифты нативного linux приложения. Поэтому для постоянного использования не рекомендую. Ну и для того, чтобы заставить это работать, возможно, придется повозится.

    3. А вообще, главный вопрос: на чем разрабатывать-то собираетесь?
    а) Если С или С++, под cygwin, то ставите себе на хост любую среду разработки, поддерживающую удаленную компиляцию и отладку (а это почти любая) и на виртуалку винду с минимальным объемом памяти. Только под работу компилятора и Вашего приложения. + gcc/gdb/etc
    б) C#/.NET. Можете разрабатывать на mono + monodevelop. Но это не гаранатирует 100% работоспособности Вашего приложения под Windows, если оно нормльно работает на linux + mono. То есть потом все равно надо будет тестировать и отлаживать под Windows.
    Ответ написан
    Комментировать
  • С чего начать - Phyton или C ?

    risik
    @risik
    Программист
    Таким вопросом можно разжечь большую религиозную войну :)

    Мое мнение - это сильно зависит от того чем Вы в дальнешем хотели бы заниматься.

    Вашу фразу про "Понять глубины оси виндовз" можно интепретировать сотней разных способов. Например, я могу предположить, что Вы хотели бы заниматься в том числе и системным программированием. В этом случае, поскольку основы алгоритмизации Вы уже знаете, то мое мнение, следующий шаг: C, потом Питон. А вот С++ можно и пропустить, вместо него лучше Java или C#.

    Если Вы пропустите С, и перейдете сразу к Питону или другим выскоуровневым языкам, то затем вернуться к низкоуровневым, таким, как С будет очень сложно, а может быть и совсем невозможно. В этом случае, Вам будет сложно освоить системное программирование. Зато Вы сможете намного быстрее получить результат в виде работающих программ и, в конце-концов, получении дохода от программирования.
    Ответ написан
    1 комментарий
  • Windows or Mac для разработки?

    risik
    @risik
    Программист
    > @Anonym А что есть такие идиоты которые разрабатывают софт для другой ос? =) Я таких не встречал =) Может конечно это какие-то индусы... Но им можно =)

    Например, есть много разработчиков, котороые разрабатывают софт для Андроид. Однако, разрабатывать на Андроиде под Андроиде не очень удобно. Поэтому эти разработчики, как правило, пользуются другой ОС для разработки. И это даже не всегда Linux, на котором построен сам Андроид. Очень многие пользуются Windows или OS X.

    Другой пример: веб разработчики. Очень большая часть веб приложений работает не под Windows. Тем не менее, существенная часть разработчиков пользуется Windows или OS X.

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

    Поэтому, Ваш вопрос, мягко говоря, некорректен.

    Отвечая на Ваш вопрос с учетом того объема информации, который Вы предоставили, могу сказать довольно однозначно, выбирая между Windows и Mac, лично я выберу всегда Mac и поставлю на него Linux.
    Ответ написан
    2 комментария
  • OS X (Maveric) забывает, на каких экранах были окна приложений после их перезапуска?

    risik
    @risik
    Программист
    Любопытно как Вы добились такого поведения от Safari. Мне не удается.
    Ответ написан
  • Почему не запускается eclipse на mac osx 1.9?

    risik
    @risik
    Программист
    Я так понимаю все таки 10.9, а не 1.9. У Вас Java точно установлена? Для начала убедитесь, что у Вас есть java. Введите в консоле:
    java
    Если нет, то следуйте инструкции. Если есть, то надо смотреть еще.
    Ответ написан
  • Как написать только два знака после запятой?

    risik
    @risik
    Программист
    Как печатать Вам уже разъяснили. А вот здесь ответ на вопрос "почему": Float в C, 0.41 на самом деле 0.40999
    Ответ написан
    Комментировать
  • Какой выбрать язык для написания клиента в клиент-серверной 2D игре?

    risik
    @risik
    Программист
    Ну если Вы сервер стали писать на Java, то почему клиент тоже не написать на Java?
    Ответ написан
  • Как обработать каждый TCP-пакет в nginx?

    risik
    @risik
    Программист
    Есть такой модуль: https://github.com/yaoweibin/nginx_tcp_proxy_module
    Сам не пробовал, за качество не отвечу. Равно как и за возможности - решает ли он Вашу задачу. Возможно, что в этих исходниках Вы найдете ответ на свои вопросы.
    Но на самом деле, Вам или HAProxy (если для балансировки) или делать свой. Так как задача какая-то не совсем стандартная.
    Ответ написан
    Комментировать
  • Реально ли установить и успешно без особых глюков работать в Photoshop под Ubuntu?

    risik
    @risik
    Программист
    Я предполагаю, что Вы разработчик, которому дизайнеру присылают PSD в качестве результата работы?

    Вполне пристойно ФШ работает под CrossOver это специальная, коммерческая сборка wine, которая умеет многие вещи, которые wine не умеет. Он немного платный, но раз у Вас хватило денег на дополнительную копию ФШ, то на CrossOver денег точно хватит ;) По скорости ничего определенного не скажу.

    Вариант с виртуалкой вполне неплох.

    Чисто для просмотра gimp часто хватает.

    Еще вариант: научить ваших дизайнеров давать на превью PDF/tiff/jpg по вкусу, а потом нарезать Вам уже готовые PNG. Причем сразу в Вашу CVS наряду с исходным PSD.
    Ответ написан
    2 комментария
  • Как опубликовать пост в WordPress через xml-rpc?

    risik
    @risik
    Программист
    Может быть это Вам поможет: android.wordpress.org/development
    Ответ написан
    Комментировать
  • Как найти все точки в заданной координате с определенным радиусом?

    risik
    @risik
    Программист
    Тригонометрия в хранимых процедурах, конечно решение. Но вообще-то поддержка geo это большая тема, которая решается в СУБД отдельнвыми инструментами. Например, для mysql вам сюда: dev.mysql.com/doc/refman/5.0/en/gis-introduction.html
    Ответ написан
    Комментировать
  • Как разработчику подготовиться к миграции на компьютер под управлением OSX?

    risik
    @risik
    Программист
    Лично мне нужен ряд утилит, которых на os x нет. Типа pwgen, markdown... mc в конце-концов. Для этого надо GNU утилиты. Поэтому, сперва надо поставить homebrew (ну или macports, по вкусу). Для них надо xcode или xcode command line tool.
    Еще консоль. Станадртная в os x имхо ужасна настолько, что пригодна только для того, чтобы скопипастить с интернетов команду для установки homebrew. И то не рекомендую. Например, iterm2.
    После этого ею уже можно пользоваться почти как нормальным юниксом... Ну до тех пока не понадобилась Java или, например, XWindow заменитель. Там Вас, возможно, ждут некоторые неожиданности :)

    Еще. Почтовый клиент Apple Mail на мой вкус использовать невозможно. Поэтому жру кактус: использую Thunderbird.
    Ответ написан
    1 комментарий
  • Можно ли на компьютере с Линуксом поставить Apache + MySQL?

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

    По нагрузке:
    5000 тыс. одновременных пользователей, то есть, 5млн пользователей, точно не выдержит.
    А вот 5 тыс пользователей может быть и сможет. Сильно зависит от многих факторов.

    Например, моделя поведения пользователей. Если у Вас на сайте большие статьи без картинок, по 50кБ чистого текста на страницу и большинство пользователей просто читает эти статьи, в среднем по 10 минут. То, это дает нагрузку (очень грубо) один запрос в 600 секунд на каждого пользователя онлайн. Что дает нагрузку, чуть менее 10 запросов в секунду.

    Следующий важный фактор, про который сказал, например, @kryoz - насколько тяжелый бэкенд Вашего сервера. То есть, сколько требуется времени для получения страницы. Это складывается из множества разных факторов: наличие и количество обращений к БД для генерации одной страницы, собственно процесса генерации HTML и прочая работа Вашего серверного приложения. В конце-концов, количество обращений к диску во всех этих процессах. Или может у Вас на самом деле задача только в отдаче статического контента.
    Ответ написан
    Комментировать
  • Как сделать что бы установщик увидел нужный путь?(или почему msvs 2013 Expr. for Windows Desktop не хочет устанавливаться в D:\)?

    risik
    @risik
    Программист
    > что делать:
    1. Прочитать сообщение
    2. Освободить место на диске

    Если прочитать сообщение, то становится ясно, что Вам не хватает места на дисках. Студия говорит, что ей надо 1.03ГБ на диске D: куда Вы ее и хотите установить и еще 4.38ГБ на диске C:, где, у Вас, скорее всего, установлена операционная система.
    Ответ написан
  • Как в C++ красиво реализовать множество условий?

    risik
    @risik
    Программист
    Сложные условия следует разбивать на простые. равно как и слдожные функции следует разбивать на простые.

    (qX >= 0 && qY >= 0 && qX < room_size && qY < room_size)

    Это условие, как я вижу, проверяет вхождение я прямоугольник? Лучше всего в отдельную функцию. Повысит читаемость.
    например так:
    bool isInRoom(int qX, int qY, int room_size) 
    {
      if (qX < 0)
        return false;
      if (qY < 0)
        return false;
      if (qX >= room_size)
        return false;
      if (qY >= room_size)
        return false;
      return true;
    }


    Боитесь за производительность - inline функцию. Затем так:
    if (isInRoom(qX, qY, room_size) && water[qX][qY] < water[x][y] && water[x][y] != 0)
    ...


    или так:
    if (! isInRoom(qX, qY, room_size)) // проверка предусловия
      return;
    if (water[qX][qY] < water[x][y] && water[x][y] != 0)
    ...
    Ответ написан
    2 комментария
  • О нюансах работы со строками и массивами в C

    risik
    @risik
    Программист
    На вопрос Вам уже ответили - Вы и только Вы следите за достаточностью блока памяти. Строки в С почти ничем не отличаются от обычного массива. Разве что нуль символ компилятор ставит автоматически если инициализация строки производится в кавычках.

    Пример 1:
    char h[20]="Hello";
    Выделяется массив из 20-ти элементов char, первые 6 из которых будут заполнены значениями, остальные 14 будут иметь случайные значения.

    Пример 2:
    char h[20]={'H', 'e', 'l', 'l', 'o'};
    Выделяется массив из 20-ти элементов char, первые 5 из которых будут заполнены значениями, остальные 15 будут иметь случайные значения.

    Еще хотел обратить Ваше внимание на один момент.
    void strcpy(char *s, const char *t)
    указатель на char откуда копируете строку следует объявлять константным. В С++ так нужно уже давно. В С уже тоже. Хотя, не знаю с какой версии стандарта.
    Ответ написан
  • Кроссплатформенное приложение + web сервис + синхронизация баз этого всего. На чем все это писать?

    risik
    @risik
    Программист
    В основном C# + .NET и Delphi.

    Раз больше работали с C# и Delphi, то ориентироваться в наше время следует на эти инструменты. Как Вам уже и посоветовали - Xamarin и Delphi позволяют создавать приложения соответственно под iOS и Android. При это надо понимать, что ни то ни другое не являются серебрянными пулями. То есть, сделать так, чтобы на все платформы был вообще единый код не получится. Единый код будет для бизнес логики (от работы с БД до моделей этих данных). А, по крайней мере, UI все таки для каждой платформы придется делать свое. Хотя бы потому, что у каждой платформы свои принципы функционирования UI.

    Из моего опыта общего кода обычно получается 50%-70% от каждого приложения. А остальные 30%-50% для каждой платформы свои.

    Кстати, заодно избавитесь заранее от гемороя с созданием клиента для веб-сервисов под iOS. Адекватных кодогенераторов сейчас нет.
    Ответ написан
    Комментировать