• Content count

  • Joined

  • Last visited

Community Reputation

152 Neutral

About arroyjose

  • Rank
  1. I just started reading the book "Introduction to 3D Game Programming with DirectX" and  I'm having a really hard time trying to run a sample program in the first chapter on my machine.  The chapter talks about setting up the sample project with the DirectX SDK and VS2010.  However, my environment is Windows 8 and VS2012.   After reading online, I found that the DirectX SDK is no longer needed on Windows 8 - for Metro style applications - but I'm trying to run the program as a desktop application.  On the forums for the book, the author posted some instructions to get the programs to run on Windows 8.  I followed those, and I'm getting the following message:       So far I've tried quite a few things and nothings seems to work.  I think the problem has to do with the color.fx file.  The complete project is at the following bitbucket repository:   If anyone could help me get this to run I would really appreciate it.
  2. Time to get serious about making a game.
  3. If anyone could me help with this, I would really appreciate it.  What are the necessery steps to get VS2012 to work with the DX11 June SDK?   I started reading the book "3D Game Programming with DirectX 11" yesterday.  The book uses vs2010, but I have a license of vs2012 and would rather use the latter instead.  I followed the instructions given by the author in a blog post.  The problem is that I can build an example solution, but the program crashes once I run it.
  4. Best book to learn Java from?

    So is your budget $30? If yes, then here are my suggestions. The first Java book I read many years ago is published by Murachs. At the time I was really not that interested in Java so I overlooked how cool the book’s format really is. The book uses a “paired-page” concept. The code is in one page and the explanation of it in the next page of the book. If you are interested in a gentle introduction, while at the same time learning a few things about GUI and database programming I strongly recommend this book. If you want something that delves into much greater detail you can’t go wrong with any of the Java books (after Java 1.5 of course) by Ivor Horton. His books cover many things that most people now think are unnecessary for a beginner programmer. For example, how to use streams to get data as opposed to the new and easier method of using the Scanner class. The Scanner class takes care of many things for you, but you don’t have any idea of what it’s doing, or why it works the way it does. Now, I have heard a lot of good things about the book “Head First Java.” Since I have not read it I really can’t give you a description of why it’s good. However, it has a majority of positive reviews on, which is rare for a technical book. Thus, if I was in your position I would strongly consider this as a candidate. At my university a variety of books have been used in the past three years and I will list them here, but these are more expensive, and in my opinion are worst for self study: Big Java Programming and Object Oriented design using Java Java 5.0 Program Design Lastly, once you are up to speed in Object Oriented programming you will need a strong foundation on Generic programming, or in this case, Java generics. The best reference in book form currently available is “Java Generics and Collections” by Maurice Naftalin and Philip Wadler. And don’t forget to check your local library for these books before you buy them. Or at the very least check for discounts on the above books. Best of luck.
  5. implementing a stack

    Thank you Antheus for taking the time to explain the topics. When I learned about data structures we covered stacks and some of their applications, but I can't recall ever covering what are the advantages and disadvantages of different implementations in this detail.
  6. implementing a stack

    Quote:Original post by Antheus Stack benefits very little from linked list, and nothing from double linked list. One will never be inserting in the middle, and removal is always on single (first) node. Stack is not a queue. One always accesses only the top (bottom) element. One will never be inserting from middle or back, one doesn't need to traverse the elements externally, even size is not an issue. Linked list has one and only benefit that its growth is finer grained. But the greatest benefit of LL, the ability to insert at middle efficiently, something which is not possible with arrays, is completely lost in case of stack. When used for performance reasons, stacks are typically implemented as fixed size structures (recursion unrolling, where size can be calculated from algorithm). This approach will always be preferred, since access to elements is effectively free. If maximum size constraint is undesirable, then the aforementioned paging will work better. Perhaps the only case where I could imagine linked list being used for stack would be in lock-less stack implementation, but even in those, the maximum number of nodes in stack is typically fixed and pre-allocated (issues however transced the ADT stack by far and complications are too numerous to list). But for everything else, I find linked lists to be simply sub-optimal for stack, with possible exception of certain memory configurations (the overhead however is still hard to justify compared to occasional resize). Antheus, respectfully I disagree with your reply. The original post states c++ and a linked list are what godsenddeath is thinking about using for the implementation. For my own understanding could you please expand on the following: "middle efficiently" "calculated from algorithm" "lock-less stack implementation" Or at the very least could you please provide resources where we can find more information about those terms. From your response it appears that you are talking about implementation of stacks where space overheads are not acceptable. Or are you talking about an implementation of the stack that takes threads into consideration? Thanks in advance. [Edited by - arroyjose on August 25, 2008 11:45:43 PM]
  7. implementing a stack

    Yes, a linked list would be a good underlying data structure for a stack. The only methods that you would need would be an addFirst, and removeFirst if you think of the first element as the top of the stack. Or conversely addLast and removeLast if you think of the last element as the top of the stack. Example structure: |Head| --> null if empty |Head| --> |Top| one element |Head| --> |Top| --> |Top - 1| --> .... --> |Last| The two methods should not take a long time to code, and you should not over engineer your solution if a simple stack is what you need. If on the other hand you want to implement a robust solution with potential code reuse you should code a doubly linked list with a dummy node. Keep in mind this is for you own personal learning purposes, and to understand how the data structure is implemented. The difference between a linked list and array implementation of a stack is the that you don't have to worry about resizing the array when it gets full. The only other thing that I can think about is that if you need for some reason access specific elements in the stack (highly unlikely because the stack operations are only push() and pop()), then the array implementation gives you that advantage because you can access elements in constant time. So here is what I would suggest as far as code goes: // Adds an element at the top of the stack. push() a.k.a. addFirst() // Removes an element from the top of the stack. pop() a.k.a. removeFirst() // Returns the element of the stack without modifying the structure peek() // Returns true if the stack contains no elements isEmpty() Hope that helps and good luck.
  8. Quote:Original post by Antheus Ever tried to apply at Google, Microsoft or IBM? Or what kind of programmer are we talking here? It's a known fact that for most web shops senior programmers can be produced in a 3 week Java course. I'm talking about recent college graduates. I have not applied at any of those companies, but I've talked to reps from both Microsoft and IBM at the career fair in my school. They did ask me if I could write Dijkstra's algorithm on paper at that moment. However, I would never expect them to ask me for three years of experience of .NET or JEE5, or whether I understand AJAX and the latest version of Silverlight. I guess what I'm trying to say is that it doesn't matter if you are ComS, CprE, SE, or even MIS to get a programming job if you have the willingness to learn, the ability to problem solve, and the dedication to tackle problems by steps. In that sense, all of those degrees can lead you to a multitude of jobs. What I was trying to illustrate is that a CprE degree can - in addition to software - help you get a job working with hardware.
  9. Quote:Original post by Steadtler Quote:Original post by daviangel Quote:Original post by MJP Quote:Original post by Steadtler CS typically do way more maths than CE. My college must have been very atypical. [smile] Yeah I was thinking the same thing until I saw Steadtler was from Canada. I forgot that in most other countries HS kids take advanced calculus classes whereas here in the US most kids take Algebra if at all during HS-LOL! So I guess they got a different idea of what "more maths" means up north;) Now that I think about it the WOZ I mentioned above also stated in some interview I read that the most math he needed to build the first apple was basic math and none of the fancy math he had to take in college so there might be some truth in there somewhere! Well more maths means more than SE, regardless of what you took in high school! Your Apple quote explains it too, maths are needed in both software and hardware, but sensibly more useful in software. CS tends to be biased toward math and software, SE tends to be biased toward hardware. With all the hardware classes and the "general engineering" classes taking their time, I find that lots of SE graduates lack depth in software. Of course, I maintain that your personal interests and projects are what makes the most difference. Software Engineering != Computer Engineering. I get the sense that you are mixing the two. And with respect to your comments that SE graduates lack depth in software isn't that the point of a Software Engineering degree? As I understand Software Engineering degrees were created for the people that are interested in programming but don't need all the theoretical stuff. Furthermore, a good Software Engineering degree will teach good coding techniques and methodologies. And IMHO what else do you need to be a good programmer besides sound logic, strong problem solving skills, and a basic knowledge of algorithms and data structures. I might be wrong but you can always acquire the knowledge of specific software at your job.
  10. Well, this might be a little bit long so bear with me. Computer Science is a sort of very specialized math degree. Yes, you will do some programming, and software engineering (programming != software engineering) but for the most part Computer Science deals more with the theory of Discrete Math. Discrete Math is the study of logic, proof techniques, set theory, relations, graphs, combinatorics, discrete probability and number theory. And all courses in Computer Science cover each of those topics in more detail. Algorithms are a big part of the curriculum and their study is essential for many of your later courses. For example, how do you prove that an algorithm works? How do you make the algorithm better? What is the runtime of the algorithm? Also, you get to learn data structures and why some of them are faster than others under certain circumstances. You also deal with how to build a compiler from scratch. On the other hand, Computer Engineering is a specialized Electrical Engineering degree that focuses in computers. You deal with the electrical as well as the software. In my university you are required to take several EE classes that will teach you the fundamentals of analog and digital circuits: resistors, capacitors, inductors, diodes, op-amps, logic gates, multiplexers, etc. However you don't deal with the hardcore EE material such as waves and fields, signals, and solid state physics. In addition to the EE courses you also get to take the fundamental classes in Computer Science such as Discrete Math, Algorithms, and Data Structures, and programming. Of course, there is some overlap in the early stages of both degrees. Both degrees required you take several courses in both calculus and physics. Computer Engineers because of the Engineer part have to take a little more math and chemistry. Personally, I like the flexibility of Computer Engineering, because it allows me to go into two different fields. I can do the programming, but I also can design and analyze circuits. As far as jobs go CS will probably help you land a software engineering, programming type of jobs. These include a very wide range of jobs: database programming, web development, OS programming, Network programming, AI programming, etc. With a CprE degree you can land at those same type of jobs and in addition you will also have the basic knowledge to work at companies dealing with embedded software, embedded design, hardware development, and if you choose your electives right you might be even be qualified for a straight EE type of job. Hope that helps.
  11. Java Scanner problem

    I'm a little rusty on Java because I haven't used it in a few months. And I'm having a problem with Scanner objects. If I create multiple Scanner objects initialized to the same InputStream will that cause both scanners to behave as if they were the same? The constructor signature from the documentation is: Scanner(InputStream source) Constructs a new Scanner that produces values scanned from the specified input stream. I have an InputStream object that I want to count how many lines it has so I can create an array. For this I use a Scanner object. Then once I know how many lines there are I read the file again to get the data. public static boolean connected(InputStream network) { String aLine = null; Scanner fileIn = new Scanner(network); Scanner readData = new Scanner(network); // Determine the number of elements in the file int size = 0; // The entire file is read first to determine the number of elements // This avoids having to construct an array of a very big size and thus wasting space while(fileIn.hasNextLine()) { System.out.println(fileIn.nextLine()); size += 1; } System.out.println(size); // Everything good up to this point. while(readData.hasNextLine()) { // Here it doesn't read anything aLine = readData.nextLine(); } return false; } Maybe the problem is that I'm treating the InputStream object as a file. Is that the right way to think about it?
  12. How do you start with XNA?

    Greetings, I've been programming since my senior year of high school, but I don't know anything about game development other than the most general stuff. XNA sounds like a really good platform for beginners, and I would like to try making my own game. What are some good resources to start out with XNA? I prefer books, tutorials, videos, etc. I already have Visual Studio and even though I haven't programmed in C# I don't believe its going to take me long to pick it up. My background is in C++, Java. Also my math skills are solid. All I need is a place to start. And yes I know I can research all this through Google and this site, but there are many of you that can help me by condensing it to a few paragraphs. Thanks in advance.
  13. Advice needed for programming degree

    This is such a familiar story. I completely agree with what connst said. Go to the website of a university you would like to attend and see their curriculum. Then only take the classes at the community college that will transfer. And forget about all the other useless crap they want you to take to complete the AA (Personal Wellness). Most universities and colleges that offer degrees in CS will want you to take something like the following: English Composition – two semesters. Calculus Sequence – Differential, Integral, Multivariable. Physics – Calculus based, one or two semesters. Science class – Either chemistry or Biology. The above you can take at any community college in the country, and when you transfer you will be done with what basically are all the “weed-out” courses at most universities. And yes, you should completely cross DeVry out of your list. It is a bad move IMHO. Also I recommend you wait to take your main CS classes until you are at the university, and that includes any programming classes. However, be prepared to put a lot of effort in those classes, especially anything related to data structures and algorithms. Good luck!
  14. I'm stuck with learning C++

    I will suggest you learn about data structures, and try implementing some of them with c++. For example, Linked Lists (single, double, circular), stacks, queues, maps, graphs, etc. That will probably keep you busy for a few months. After you feel comfortable with those you will have a greater understanding of how to write better code. There are plenty of little projects you can work on. Many of them listed in the beginners section here in the site. Also, I just looked at last year's c++ workshop and that has a project you can work on with your current knowledge. Good luck!
  15. Two year programming degree

    Greetings, As a former community college student and currently attending a four year university I will say this to you: STAY AWAY from Computer Science programs at any community college. Most community colleges offer degrees in computer science that focus on current technologies and don't stress enough the underlying theory of what you are learning. Not to mention they do a very poor job of teaching you what they offer. If I had decided to stop once I obtained my two-year degree I'm 99.9% sure I would have never been able to get a software engineering job. Not because of my intelligence, but because I had no applicable skills that companies want. However, I'm not discouraging you if that is the only option you have available. But here is my advice: look at a university that you would like to attend in your area and look through their CS curriculum. Write down the classes that they take during their first two years and take the equivalent of those classes at the community college you want to attend. Make sure they transfer! Those classes I guarantee you will be far from what you mentioned in your list. At my university we are required to take the following Calculus I Calculus II Calculus III Calculus Physics I Calculus Physics II Chemistry I Problem Solving (with any flavor of programming language) English Composition I English Composition II Speech And a few others GE classes Do you see anything funny about that list? There is not a single real programming class in it. My philosophy is that in order to be a good programmer you need to be a good problem solver and the above classes train your brain to problem solve. If you do decide to follow my advice once you get these classes out of the way then you can transfer to a university and concentrate in the CS classes. I wish someone would have tell me this is when I started - it would have made things so much easier. Good luck