Posts for Nach

Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
EEssentia wrote:
Starting off with Javascript is also a horrible decision. That language is horrible. It completely lacks type safety, and lacks tons of modern programming idoms.
That's not a flaw of JavaScript's. There are type based languages and typeless languages. Most scripting languages are typeless. Typeless languages are an absolute nightmare to deal with any kind of rigid data. Be it byte based algorithms such as hashing, encryption and so on, or emulating CPUs, or math where having a certain finite power of two precision is important. On the other hand, typeless languages are very easy to dive into, remove a lot of the headache of choosing the right types which most people constantly get wrong in type based languages. They're also extremely good at passing data around, and free form data in bulk can easily be passed around, which is very important for networking applications. So on the one hand, it's really a pain to do some precise and complex math on my data in a typeless language, and I need to do a lot of type safety checks that the language doesn't just have built in, it's really easy to work with data in bulk and pass it around.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Warp wrote:
Nach wrote:
I would slightly argue that even if you don't develop with assembly, it can still be useful to know when debugging an application.
Even if that's so, it's a really advanced topic, hardly the first thing a newbie programmer should worry about. Also, it would only be relevant with low-level languages such as C and C++, not with higher-level languages like Java or C#.
Oh I agree. I was just arguing your point that 99% of the time one doesn't write code in asm, so knowing asm is useless. Since it has uses beyond writing code in it.
Warp wrote:
Even when debugging a C/C++ program, my experience is different than yours. While knowing what the compiler is doing behind the scenes helps understanding what's going on and aids eg. in memory consumption optimization (as well as other optimizations, such as minimizing memory fragmentation), I don't see how it aids in debugging.
Let's put it this way, I've submitted over a dozen bug reports to GCC for code generation errors when different options are in use.
jlun2 wrote:
Search around the web for open-source projects written in the language of your choice (in this case, C++), and analyze the code to learn how other people program
I agree with Warp, this idea isn't a great one. I'd also add that there's tons and tons of horrible code out there. You should not be looking at bad code as an ideal to hold up. A lot of the projects you pointed out are filled with a lot of bad stuff.
Patashu wrote:
For alternatives to C, microsoft has 'Managed C' where you can declare objects to be within managed memory and a garbage collector will be freed later. Much of the mental work in making a C program work is in handling memory yourself, so this helps a LOT.
Or you could just learn C++, and make use of the STL containers with RAII, and stop worrying about memory management or any other kind of resource leakage. Then you could write classic C, and instead of using malloc(), use a vector or something else even more fitting. Where you need to deal with a resource, bite the bullet on using classes, wrap your functions in one, and make use of a deconstructor. A lot of the so called modern versions of C (Java and friends) offer classes, but enforce an object oriented design. Perhaps such constraints make sense on huge projects, but it really makes programs which should be simple and straight forward more complex than they need to be. Really a programmer should have a lot of tools in his or her toolbox, and learn which tool is the best for the job and make use of them. A lot of the more modern languages take the approach of offering hirer quality basic tools, but don't allow you to use every kind of tool.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
henke37 wrote:
Also, you say that like it is a bad thing to depend on a plugin. I say that it depends on the audience and the content.
Quite the contrary, I was saying that there's only one client side browser language available. Sure you have other options with plugins, Java, C, C++... Also, ActionScript is very much related to JavaScript, and with a larger library. Which helps to bolster the point I was making above, knowing JavaScript, or better yet - ECMAScript, which many languages are based upon is a fine idea to learn.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
henke37 wrote:
I think that you can do client side browser software in ActionScript 3 just fine.
Not without a plugin you can't.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
amaurea good point. Furthermore, practically every mainstream language in existence can leverage something written in C. C++, D, Objective-C, Java, PHP, Python, JavaScript via V8 or SpiderMonkey, Visual Basic, C#, Go, Pascal, Ada, Fortran, and so many other languages are all able to bind to code written in C. Another important point to note is that almost every language allows you to launch an executable written in any language, along with command line parameters, and piped I/O. Using such, you could also gain advantage of programs written in something else, even if no language bindings exist.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
ais523 wrote:
(Good variants of) asm is actually a pretty easy language. It's tedious and slow to write anything but very small programs in it, which is why it isn't widely used. But it isn't hard to learn, and it's a good way to get introduced to concepts like pointers and call stacks (and perhaps stack frames, too).
This is only good when taught/learned from the proper perspective. If you want x86, this is a decent resource: http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html Warp: I would slightly argue that even if you don't develop with assembly, it can still be useful to know when debugging an application. Granted it doesn't come up unless you're doing advanced stuff, but I've on many occasion ran into compiler errors, and it helps to be able to review if your compiler is handling your code properly, or how it's handling some particularly "interesting" code.
ais523 wrote:
I'd argue against JavaScript (basically because the library support sucks; the language itself has a few flaws but is interesting)
If you're going to do JavaScript. Stick to "JavaScript: The Good Parts". Support library arguments are also rather silly. JavaScript is the only language you can really do client side browser software with. It's not like you have an option with a bigger library. And in cases where JS is used elsewhere, it generally is coupled with a nice library.
ais523 wrote:
and against PHP (badly designed).
PHP is one of the worst designed languages I have ever seen. On the other hand, it's also the easiest server side language I've ever seen. If you want the best designed server side language, Google Go looks way better than the alternatives, but won't be as easy as PHP.
ais523 wrote:
This thread is going to turn into a language flamewar, isn't it?
You're the one who started it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Vykan12 wrote:
What else could I make that’s relatively simple but still more of a challenge than just outputting stuff on a console?
You can make some very complicated programs that output stuff to a console. Such as a console based web browser. It really depends on where you're pulling your data from. Programming is about data processing, and doing stuff. So working with files, databases, networks, and doing all kinds of manipulation of data is where the real programming is. Outputting your data your screen is just a small part of what programming has to offer. Of course data output to your screen takes on a whole new level once you learn 3D graphics processing.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
ais523 wrote:
I'd start off by recommending against C for a first or second language; it's hard to understand and easy to get into bad habits about. It's definitely worth learning, but I'd suggest learning assembly language first (your choice of platform; the 6502 may be an interesting one if you're into TASing, because it's what the NES, and several other consoles of that era, use). Python, although I personally dislike it, is a reasonable choice; it's similar enough to Java that you can transfer your skills, but different enough that it'll give you a better-rounded view on things.
I disagree with this. I think assembly language first is a bad idea, and that causes bad habits. You should understand programming constructs and tools before getting nitty gritty. Then when you need to get nitty gritty, you should be using your tools there to emulate what you know from higher level languages to keep your code clean. Otherwise you'll just write messy assembly. As for starting out in general, I think it's best actually to learn two different languages simultaneously. Like Java and Python, or C and Visual Basic, or something along those lines, so you can understand what tools are important regardless of language, and what is shared between them. That way you can also learn to avoid language specific features until you have a better grasp of the language. As for C. While it has complexities to it, if you learned how to write clean code by reading a book like Code Complete, you'll be avoiding the issues ais523 is describing.
ais523 wrote:
Don't attempt to learn C++ without professional help. (And even then, you need good professional help.) Few things are more scary than someone who's self-taught in C++ attempting to program in it. (I should know; that was me once. I know better nowadays.)
This is true to an extent. If you read some of the top professional C++ programming books out there. Such as Effective C++, Effective STL, and a few others to master the language, that should be all the professional help you need. Be warned though, C++ is a HUGE language, which really consists of like 5 other languages, so if you want to go down this route, prepare to reserve a year for just reading a dozen books.
ais523 wrote:
If all you care about is employment, Java is the language to learn. It's awful and has several issues, but it's the most in demand right now, and will probably be highly in demand for the next couple of decades (for much the same reason that there's still demand for COBOL programmers).
As for Java, it was the big boy on the block last decade. But I've seen usage of Java start to decline in the face of both languages from Microsoft, as well as languages specific for web development. This might be insightful: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html There are still plenty of companies that use Java, and they will probably be around for a long time to come. If you're looking to join a new company though, that's building brand new software, you're a lot more likely to find a job with a Microsoft language, or PHP, Python, JavaScript, Objective-C...
ais523 wrote:
You might also want to look at some language which is very different from the other languages you've looked at so far. Typical off-the-wall choices include Prolog, Haskell, and Lisp. You're unlikely to get a job in these, but having them on your resumé will cause people to give you a second look (assuming you can back it up).
I review resumés to hirer people. Seeing someone who has an off-the-wall language (and can actually write code with it) tells me that this person I'm reviewing is more than a guy who just took one class in school and thinks he knows everything. However, I will still refine my decision to hirer someone based on the general programming skills they have, and how proficient they are in the language/area I am hiring them in.
ais523 wrote:
Finally, I'd suggest learning by trying to write programs. Aim slightly beyond what you think you can manage, and learn on the way there. (Aiming a long way beyond, you'll just fail and get discouraged; aiming within what you can manage, you'll get bored and won't learn anything.)
I can't stress this enough. If you can't write serious programs on your own, you can't go far. Regarding the "long way beyond", I find that acceptable if that's in the "extra features" segment of the program you're designing. This way you can start with what you know and what you can manage, and add on new features as your skills develop.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
If you want to be a good programmer, you should do 3 things. 1) Get a very good footing on understanding the various programming concepts, and learning how to use the tools in your tool box. 2) Learn how to write good clean maintainable code. 3) Master at least one language, so you can find plenty of work in it. For the first part, it seems you're already there. What you need to do is think of some kind of software you'd like to have, or some relatively simple program you use on a day to day basis that you think you can do a more featureful version of. Then spend free time developing these programs. You need the experience. Finding something like this which motivates you is much better than trying some problems which are both too simple to give you the full grasp of a program and also too boring for you to spend a lot of time on. For the second, I recommend you get yourself a copy of Code Complete. It's a fantastic book. You'll learn how to write code the way it should be written. Applies to any mainstream language. For the third, pick the language/area which interests you the most. Write hobby programs in it. Find other people who are great with it and learn from them. There's chatrooms online where you can discuss your favorite programming language, or see problems people face and the various solutions offered. Reading the top 3 books on the language cover to cover helps too.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Amaraticando wrote:
Nach wrote:
Wiki: Nach/Continuances
"Super Demo World - 120 exit by dnnzao. " Just saying, there's other people collaborating on that with him. ^^; aka Dawn and I
Not that it really matters. When we see the run submitted, and more authors are on it than initially thought, the continuance is still valid.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Post subject: Re: Information about!
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
feos wrote:
Nach: Would you consider a movie as improvement, if it is slower by the amount of frames in the submission, but reaches the credits faster?
Recall the argument of the four ways to end a movie. I'd want to hear from the players and views of this particular game, and see which type of goal they prefer.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Note: I'm not going to be accepting an NES movie which requires a special unofficial FCEUX build, or requires special tricks to playback. AnS: If you're done fixing FCEUX, please see what you can do about getting an official release out. Authors: Please correct your game to complete the entire game on an official emulator, without needing anything special to run and complete it. When you're done improving, give me a link to your new file, and I will replace it. MESHUGGAH: If you want to frame war against the other two groups please make your own separate submission. If you want to join one of the groups, please let us know which group you're joining. Judges: I'm preclaiming all runs submitted in this iteration of frame wars.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Note: I'm not going to accept any movie which requires extra input at the end to complete. Ensure that your movie completes the game. When you're done improving, give me a link to your new file, and I will replace it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Okay, continuances for OGA and smns72 KSS any% and bahamete's 96 exit SMW are acknowledged.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
mklip2001 wrote:
Also, Nach: I think the longer input file should be used for this movie. MattyXB should also have extended his input to finish the credits
*Nach smacks mklip2001 with the reading comprehension swatter. I already said earlier that MattyXB's input does finish the credits.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
You need to stop the movie the moment no more input is required, not before, and not after. Edit: http://tasvideos.org/MovieRules.html#MovieMustBeComplete
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
So I'm looking at the new file, 1:38:12.98 vs. MattyXB's 1:33:09.43. What's going on now?
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Fabian wrote:
"However, we will be disallowing Snes9x sometime in the future" Is this an actual decision, or is it more Nach gonna Nach type stuff?
We seriously mean it this time. You'll note that Snes9x in its entirety has been deprecated across all site pages.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Post subject: Deprecation of Snes9x -- Snes9x v1.43 is no longer accepted
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
There were previous threads pushing this idea, especially for v1.43. It was announced 3 years ago that users should move onto something newer. Yet plenty of runs kept on being made with v1.43, despite how horrible the sound engine is in that, and that plenty of games aren't emulated quite right, even if you can complete them. We now have multiple accurate SNES emulators to choose from available on all platforms: lsnes and Bizhawk. They may be lacking certain features you want, if so, ask their developers to add them. You may be unused to their interfaces - get used to it. lsnes also allows you to input during any input frame, even if multiple input frames occur between any two given video frames, making things like the recent Chrono Trigger movie possible. We are deprecating use of Snes9x. I would like to say: "You have until December 31 2012 23:59 GMT to complete any runs you have started using Snes9x, no exceptions will be made, unless you have been granted a continuance on your existing run." and: "If you feel you have a long run that already had a lot of work put into it, and will need a while to be completed, you may request a continuance in this thread. We will accept continuances until December 15 2012 23:59 GMT." But if I said that, some people would probably explode. So I'm not going to say it outright. However, we will be disallowing Snes9x sometime in the future, even though no hard date is yet set. You've been warned. ---- EDIT [Mothrayas]: As of yet, the current ruling can be found here. Snes9x v1.43 is, as of now, no longer accepted unless it has been granted a continuance, or if there is proof that the movie was done before January 1st 2013. Snes9x v1.51 is, for the time being, still accepted.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Atomnium wrote:
Thanks Nach. Can you tell me how many time it will take to be validated please?
I'm busy tonight. But I hope to review your video sometime tomorrow.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I have replaced the movie file with the new one supplied.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
natt wrote:
Nach wrote:
I checked both movies at the moment Julius is defeated in their respective emulators, and it seems MattyXB's movie beats him faster. Am I missing something?
I'm not seeing that at all. Looking at the first frame where the screen flashes black, and counting by input frames, not any other form of counting: 943S: Screen first flashes black on input frame 329742 3697S: Screen first flashes black on input frame 328935
Okay I see the issue. I was going by real time, and older version of VBA I'm using to play back the old one runs slightly above 60 FPS, whereas current run on current version seems to be exactly 60 FPS, so the prior ends up being a couple of seconds faster. Since both runs are using the exact same version of the game, it should be judged by frame count, not by real time.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I encoded the main video for the previous run, I did not push any button to get the credits to roll. I imagine the playback may be different from VBA version to version, so it some versions it doesn't get to the credits. See what I said earlier. You must complete the game to the point of the credits rolling.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder, Experienced Forum User
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Does this movie even beat the previous movie? MattyXB's movie when played back on older versions of VBA as it was recorded with completes the game and has the credits role. This movie does not. I checked both movies at the moment Julius is defeated in their respective emulators, and it seems MattyXB's movie beats him faster. Am I missing something? In any case, if this movie were to be accepted, it needs to complete the game far enough to get the credits to roll. Atomnium can you fix your movie file?
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.