I am a M.S. in Mathematics and I started programming when I was 6. I started my Ph.D. in Maths, but I quited because I found an opportunity as a programmer for an Internet company. I know graphics programming, networks, some neural networks, 3D, particle simultaion... an I am looking for a job.
I am probably a good candidate for that position, and maybe/. is a good way to attract people for it, but there is no contact information. So, where do I send my resume?
Basically, I agree with everything. Two comments here:
- If you REALLY need speed, don't even use a database. Use plain files with your own format optimized for the queries you will make.
- If you are going to implement your own web server (this will probably be my choice), try SGI's State Threads Library.
http://oss.sgi.com/projects/state-threads/
It's really fast and easy to use.
You are partially right. Writing a chess program is not such a challenge, I agree. The challenge is to make it play well. Alpha-beta is very nice and if you put on top of it quiescence search, transposition tables, history heuristic and a few standard algorithms more, it will play as a low-medium amateur (ELO 2050, maybe).
What is more important is to come up with a decent evaluation function, and that is a very, very hard task. You have to watch your program playing against others, understand why he is being defeated and improve your evaluation function to deal with that kind of situation.
You also need to tune speed, use of ending databases, and of course a good opening library.
The importance of a chess expert is overrated. My chess "expert" is under 2000 ELO and my program is over 2500.
BTW, if you think that making a chess program is easy, why don't you make one and participate in the championships? It's a lot of fun!
It depends on the language. C took me a lot more, but it is worth more time.
Pascal, PHP or ActionScript (Flash) took me less than one week. Of course I need the manual with me for some time, but I can perfectly work with the new language after one week.
The point is that I don't think that knowing C++ or Perl is important. What is important is how you think, how you get a problem and see how to build a computer program to solve it. The language is mostly sintaxis.
I was the best programmer in my university (acording to performance in contests). I am also a good mathematician. I am very flexible, can learn a new programming language in one week and I speak three languages.
I spent a year working in the USA and then my company ran out of money. I have been looking for another job for six weeks now, and I haven't had any interviews yet. I am getting tired and I am probably coming back to Europe.
What I see in the requirements of job openings is:
- Object Oriented Stuff.
- Experience with Sybase.
- Lots of experience with C++.
- Lots of experience with Perl.
- 5 years IT experience.
- SORRY, NO SPONSORSHIP.
If what they are really looking for is good programmers, they are asking for all the wrong things. Why do they need experience specifically with Sybase? Doesn't it use SQL? Why is everybody mad about object oriented crap? What if you are not a U.S. Citizen?
Since 1993, I've made a master level checkers program and a master level chess program in my spare time. But they don't consider that programming experience.
As I said before, I will probably come back to Europe. I thought this country was good at attracting great brains, but that was some time ago.
I am sorry. I didn't want to be flippant here. And I am happy that somebody else has realized that you can get several good things from supersampling at the same cost.
I will be a little more technical here: what the red (same thing with green or blue) value of a pixel represents (in a real movie, for instance) is an integral of samples in several dimensions:
- 2 for the rectangular area that the pixel covers (anti-aliasing).
- 1 for the period of time that the frame covers (motion blur).
- 2 for the starting point in the eye, that can be considered to be a disc (depth-buffering?).
- 1 for the polarization angle of the incoming light.
- 1 for the wavelength, and you have to multiply the intesities here with a function that defines what "red" is for the human eye.
The first approximation to this integral is one single sample. Supersampling for anti-aliasing means "take several points in the pixel, evaluate the samples and take the average value"; that's better. What I think that you propose is "take several points in the pixel from different starting points and take the average value". That's pretty good. But don't forget the other dimensions in the integral. To be reallistic, I would only add motion blur to your proposition. You are probably thinking "wave-length and polarization are too strange fenomena", and you are right; I was only trying not to forget anything.
I tried to read the patent, but it's too confusing for me. My English is not good enough as to read those speciallized documents. In particular, I wasn't able to understand the translucency stuff.
To go one step further, if the method chosen to evaluate the integral is stochastic sampling, you can make probabilistic models of reflection behaviour in materials and also get soft shadows for free.
Everything I know about this is only what I have thought by myself. If you can give me a good URL or book to read, it will be very nice.
If you want to solve those three problems simultaneously you have to use supersampling. You can even go a little bit further and also solve polarization and wave-length effects simultaneously.
I am a M.S. in Mathematics and I started programming when I was 6. I started my Ph.D. in Maths, but I quited because I found an opportunity as a programmer for an Internet company. I know graphics programming, networks, some neural networks, 3D, particle simultaion... an I am looking for a job. I am probably a good candidate for that position, and maybe /. is a good way to attract people for it, but there is no contact information. So, where do I send my resume?
Basically, I agree with everything. Two comments here:
- If you REALLY need speed, don't even use a database. Use plain files with your own format optimized for the queries you will make.
- If you are going to implement your own web server (this will probably be my choice), try SGI's State Threads Library.
http://oss.sgi.com/projects/state-threads/
It's really fast and easy to use.
Hope that helps.
You are partially right. Writing a chess program is not such a challenge, I agree. The challenge is to make it play well. Alpha-beta is very nice and if you put on top of it quiescence search, transposition tables, history heuristic and a few standard algorithms more, it will play as a low-medium amateur (ELO 2050, maybe). What is more important is to come up with a decent evaluation function, and that is a very, very hard task. You have to watch your program playing against others, understand why he is being defeated and improve your evaluation function to deal with that kind of situation. You also need to tune speed, use of ending databases, and of course a good opening library. The importance of a chess expert is overrated. My chess "expert" is under 2000 ELO and my program is over 2500. BTW, if you think that making a chess program is easy, why don't you make one and participate in the championships? It's a lot of fun!
It depends on the language. C took me a lot more, but it is worth more time.
Pascal, PHP or ActionScript (Flash) took me less than one week. Of course I need the manual with me for some time, but I can perfectly work with the new language after one week.
The point is that I don't think that knowing C++ or Perl is important. What is important is how you think, how you get a problem and see how to build a computer program to solve it. The language is mostly sintaxis.
I was the best programmer in my university (acording to performance in contests). I am also a good mathematician. I am very flexible, can learn a new programming language in one week and I speak three languages.
I spent a year working in the USA and then my company ran out of money. I have been looking for another job for six weeks now, and I haven't had any interviews yet. I am getting tired and I am probably coming back to Europe.
What I see in the requirements of job openings is:
- Object Oriented Stuff.
- Experience with Sybase.
- Lots of experience with C++.
- Lots of experience with Perl.
- 5 years IT experience.
- SORRY, NO SPONSORSHIP.
If what they are really looking for is good programmers, they are asking for all the wrong things. Why do they need experience specifically with Sybase? Doesn't it use SQL? Why is everybody mad about object oriented crap? What if you are not a U.S. Citizen?
Since 1993, I've made a master level checkers program and a master level chess program in my spare time. But they don't consider that programming experience.
As I said before, I will probably come back to Europe. I thought this country was good at attracting great brains, but that was some time ago.
I am sorry. I didn't want to be flippant here. And I am happy that somebody else has realized that you can get several good things from supersampling at the same cost. I will be a little more technical here: what the red (same thing with green or blue) value of a pixel represents (in a real movie, for instance) is an integral of samples in several dimensions: - 2 for the rectangular area that the pixel covers (anti-aliasing). - 1 for the period of time that the frame covers (motion blur). - 2 for the starting point in the eye, that can be considered to be a disc (depth-buffering?). - 1 for the polarization angle of the incoming light. - 1 for the wavelength, and you have to multiply the intesities here with a function that defines what "red" is for the human eye. The first approximation to this integral is one single sample. Supersampling for anti-aliasing means "take several points in the pixel, evaluate the samples and take the average value"; that's better. What I think that you propose is "take several points in the pixel from different starting points and take the average value". That's pretty good. But don't forget the other dimensions in the integral. To be reallistic, I would only add motion blur to your proposition. You are probably thinking "wave-length and polarization are too strange fenomena", and you are right; I was only trying not to forget anything. I tried to read the patent, but it's too confusing for me. My English is not good enough as to read those speciallized documents. In particular, I wasn't able to understand the translucency stuff. To go one step further, if the method chosen to evaluate the integral is stochastic sampling, you can make probabilistic models of reflection behaviour in materials and also get soft shadows for free. Everything I know about this is only what I have thought by myself. If you can give me a good URL or book to read, it will be very nice.
If you want to solve those three problems simultaneously you have to use supersampling. You can even go a little bit further and also solve polarization and wave-length effects simultaneously.