Questions for *band developers using Windows

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Therem Harth
    Knight
    • Jan 2008
    • 926

    Questions for *band developers using Windows

    If you are doing Angband or Angband variant development, and you are doing it on some version of Windows NT, then I have a few questions for you...

    1. What development environment do you use?

    Do you use an IDE? If so, which? Or do you prefer to use Cygwin or msys as a command line environment? How, if applicable, do you make your variant's build system cooperate with everything else?

    2. How do you handle content tracking?

    Do you use git, as per V development? If so, how do you maintain your health and sanity?

    If you do not use git, what do you use? What content trackers can be considered more friendly to Windows? Are there any that can commit to a git repository, via compatibility extensions or whatever?

    3. What security precautions do you take?

    For instance, do you use an obsolete computer as a dedicated machine for coding and committing changes? Or do you just trust your security software and common sense?

    Umm, yeah, that's it for now. Thanks for tolerating my noobness.
  • chris
    PosChengband Maintainer
    • Jan 2008
    • 702

    #2
    Hi, I currently develop Chengband using a Windows 7 machine.

    1. I use Visual Studio 2011 Express Edition. The debugging tools are actually pretty good. For example, within the first week of development I found and fixed about 10 buffer overrun errors simply from either the compiler or the debug C Runtime Library (All inherited from the Hengband source code). The only downside is that there are about 6 different makefiles for other machines/targets that all require independent maintenance, and using Visual Studio introduces a 7th. I find that my compile/run cycle is about 15x faster on Windows than it was on Linux for some reason, probably due to poor file caching or the fact that Linux was only building with a single core.

    2. I'm using Mercurial with no complaints. I've used Subversion in the past, but never git. Nobody besides me is developing this variant, so I can't comment on conflict resolution with Hg.

    3. I take no security precautions

    Comment

    • fizzix
      Prophet
      • Aug 2009
      • 3025

      #3
      I use Windows XP (or at least will until this computer finally croaks)

      1) Command line all the way. I've never liked IDE's, command line just feels more comfortable.

      2) I use git. I maintain sanity by regularly asking for help on the angband-dev irc chat.

      3) The only security precaution I have is regularly backing up important files. If I'm going to get a virus it's much more likely to, say, come through the university network than through angband.

      Comment

      • Therem Harth
        Knight
        • Jan 2008
        • 926

        #4
        fizzix: I'm not so much concerned about getting a virus through Angband, as committing something infected or tampered with. e.g.

        - A file infector such as Virut attaches itself to one of the source files and I end up committing a copy of it.

        Or

        - I pick up a remote access trojan, and the script kiddie on the other end discovers my source tree. Next time I commit, his trojan picks up my SSH passphrase, and he then proceeds to muck about with the source code.

        That last is maybe a tad paranoid, but such things have happened, for instance IIRC with UnrealIRCd.

        Comment

        • Magnate
          Angband Devteam member
          • May 2007
          • 5110

          #5
          I use Linux for hacking, but thought it might be worth summarising my current understanding of the 'team' position on this:

          1. We'd like to support whatever any of us can help with, but in practice this currently means that we can support one command line build environment (mingw/msys) and two IDEs (eclipse and Visual Studio). Cygwin is deprecated because it's very painful to build with and we don't have any experts on the team (and I think hardly anybody in this community uses it anyway).

          2. Obviously everybody should be using github ;-) We can and do offer advice on IRC, and there's an introductory guide on the dev wiki.

          3. Do you mean security as in malware/attacks or as in accidental loss? If you use github and push regularly to your own repo the latter isn't a problem. If you're worried about the former you shouldn't be using Windows ;-)

          3.
          "Been away so long I hardly knew the place, gee it's good to be back home" - The Beatles

          Comment

          • Therem Harth
            Knight
            • Jan 2008
            • 926

            #6
            Originally posted by Magnate
            I use Linux for hacking, but thought it might be worth summarising my current understanding of the 'team' position on this:

            1. We'd like to support whatever any of us can help with, but in practice this currently means that we can support one command line build environment (mingw/msys) and two IDEs (eclipse and Visual Studio). Cygwin is deprecated because it's very painful to build with and we don't have any experts on the team (and I think hardly anybody in this community uses it anyway).
            Ah okay. FWIW you will never ever find me using Eclipse on Windows if I can in any way help it.

            2. Obviously everybody should be using github ;-) We can and do offer advice on IRC, and there's an introductory guide on the dev wiki.
            Thanks, as a git novice I found that very helpful. However, my experience with git on Windows has been pretty irritating - git for Windows needs its own version of msys, which coexists rather awkwardly with MinGW. The whole thing is really kludgy.

            3. Do you mean security as in malware/attacks or as in accidental loss? If you use github and push regularly to your own repo the latter isn't a problem. If you're worried about the former you shouldn't be using Windows ;-)
            I mean the former, as it relates to malicious stuff possibly getting into the repository. And yes, I realize that Windows is not the best choice where security is a concern.

            Comment

            • Nick
              Vanilla maintainer
              • Apr 2007
              • 9634

              #7
              My actual development work is pretty much in linux, aside from platform-specific stuff. I tend to do my Windows compiling actually on Windows - advantage being that I can test natively straight away.
              1. I use msys/MinGW -
                Code:
                MINGW=yes make -f Makefile.win
                in the src directory.
              2. For my windows compiling, I just download a copy and unzip it into my msys home directory. Otherwise, it's git and github on linux.
              3. Heh. Home network with paranoid linux firewall, and a Mac behind that running linux and Windows VMs. It's taken a while to evolve to this state of grace, but it makes things very easy.
              One for the Dark Lord on his dark throne
              In the Land of Mordor where the Shadows lie.

              Comment

              • nppangband
                NPPAngband Maintainer
                • Dec 2008
                • 926

                #8
                Originally posted by Therem Harth
                1. What development environment do you use?

                Do you use an IDE? If so, which? Or do you prefer to use Cygwin or msys as a command line environment? How, if applicable, do you make your variant's build system cooperate with everything else?
                I use eclipse indigo with MINGW. You just install and make sure C:\MINGW is in the path, and it all works with the command line Nick provided above.

                Originally posted by Therem Harth
                2. How do you handle content tracking?

                Do you use git, as per V development? If so, how do you maintain your health and sanity?
                GIT-GUI works pretty well. I have never really learned to use github from a prompt. It takes about 10 minutes to set up, and from there you can do most everything on git with point/cick and drag/drop.
                NPPAngband current home page: http://nppangband.bitshepherd.net/
                Source code repository:
                https://github.com/nppangband/NPPAngband_QT
                Downloads:
                https://app.box.com/s/1x7k65ghsmc31usmj329pb8415n1ux57

                Comment

                • PowerWyrm
                  Prophet
                  • Apr 2008
                  • 2986

                  #9
                  I use Win7 for PWMAngband.

                  1) I'm using Borland C++ 6 IDE for debugging purposes. Otherwise, I use makefiles and BC5 free compiler in command line mode for releases

                  2) Nothing... Got my source on my own PC + a backup copy on an old PC (in case something bad happens) + the latest source stored in an online directory on my web page
                  PWMAngband variant maintainer - check https://github.com/draconisPW/PWMAngband (or http://www.mangband.org/forum/viewforum.php?f=9) to learn more about this new variant!

                  Comment

                  • Therem Harth
                    Knight
                    • Jan 2008
                    • 926

                    #10
                    Okay, I think I have discovered the perfect *band development security setup for Windows. It just uses the Windows 7 parental controls as an executable blocker. Thus:

                    - Create a new limited account
                    - Activate parental controls for it, with application restrictions
                    - Allow everything in C:\Program Files (and make sure your compiler is in that directory!)
                    - Run under that account. If you try to run a "prohibited" binary, Windows will let you instantly add it to your whitelist using the admin password; from then on it will run normally under the limited account.

                    Tested this with Chengband, works fine. As long as you do not deliberately install a nasty, this should be pretty bulletproof, since file infectors and such won't even get the chance to run.

                    (Don't trust me on this, though. Microsoft has an amazing way of blowing it, even with the best ideas.)

                    Edit: yeah, the caveat is that Windows has to recalculate all the checksums every time you update the whitelist. Use a lot of applications, and it can take several minutes. So this method is not convenient for software development.
                    Last edited by Therem Harth; May 18, 2012, 18:34.

                    Comment

                    Working...
                    😀
                    😂
                    🥰
                    😘
                    🤢
                    😎
                    😞
                    😡
                    👍
                    👎