-
Posts
1,731 -
Joined
-
Last visited
-
Days Won
5
Content Type
Profiles
Forums
Events
Everything posted by Spudinski
-
"You must spread some Reputation around before giving it to a_bertrand again." +1
-
That's because it isn't.
-
Silence...
-
I see some people that doesn't use JavaScript often.. Most of the algorithms I used to write for game security included a simple method of determining if the user is - using - a bot. It's called exponential growth/decay, I urge you to read up on it. It requires putting the ol' brain to work(I know most people don't like it), but it's actually quite easy to implement. But, that's the easy part.. I'm more worried about worms when it comes to browser security, because it's something that's often very "complex" to trace and secure against. Worms are mostly unique per site, because people who do write them have deadly skills and only have bad intentions. Luckily, I've never fallen victim to these, but it's not something I'm going to boast about anytime soon.
-
Is that a challenge? :eek: But yes, C++ features OOP onto C. The most commonly used for purpose with C++: Desktop applications.
-
What I think of external service providers: Hey, here's a backdoor to my site. Just don't share it with anybody. You sure you won't? Ok, then. I'd rather trust my dog with a boiling hot cup of coffee on my lap than a service provider like that.
-
I will kill you, that's not even remotely close to the correct method. It's been discussed on this forum already, the best way to validate any file is though it's mime type. And to those debating about crons.. If your application needs crontabs to be able to function, you're doing it wrong. Timers should be treated as a luxury in any piece of software.
-
Hey there everyone, I'm writing this up for people who want to become better programmers in general. There are a few things that I feel makes a good programmer, but if you think you know of a few more feel free to post them. Think, then act. Programmers have a different way of thinking as apposed to the everyday citizen. They bare a hundred consequences for each action they perform. A programmer has to be able to think outside of the immediate scope of the problem. They need to think of the past, present and future when implementing a new feature or changing a specific part of an application. Before you begin to write a new method/function, stop. Try to explain exactly what this specific function will do and what the implications and/or limitations of it will be, as if you were explaining it to your boss or fellow colleges. If you are more orientated to practicality and logic-wise principles like me, take a pen and a paper and write it down: draw the method in the form of a diagram about inheritance and control flow. Thinking before writing is the best and most sought after skills any good programmer has. POGE (Principle of good enough) This goes along with the KISS and 80:20 principles, in essence, it means to keep things simple. A lot of programmer think that writing complex applications/software makes you appear like a good programmer, but this isn't technically correct. There are three stages to things I create(or, from paper to concept): Prototype Implementation Testing / Release Some programmers will take twenty-hours to create a new part/division of an application, and other will take ten. Most people prefer faster programmers, someone that can take a five-line summary of something and turn it into something that "works". It doesn't necessarily mean that it's a looker or that it isn't buggy at first, though. Always learning. Passionate programmers are rare, very much so, but one way to spot one is by what they do in they're spare time. They are as passionate about learning as they are about programmers, and always busy trying to broaden(and strengthen) their skill set.
-
I agree with (a_b) that you can make reusable functions/methods purely with procedural programming techniques. It's actually not debatable. But, there are reasons why one would use OOP instead of Procedural - main reasons are inheritance(scope) and portability. You wouldn't want your DB authentication adapter on a global scope per-se, but you would want the query method to that database to be global. This is where public/private/protected/static keywords comes in. One thing I'd like to bring the most attention to is inheritance. I see millions of classes that gets it wrong, and it annoys the living moo out of me. This makes other developers lives very hard when they want to extend it or write an interface for it. But, if I can give you some advice towards learning PHP OOP: I highly suggest you start off with PHP4 OOP and go up from that. Will learning OOP make you a *better* programmer? Probably not. Will knowing how OOP works and being able to implement design patterns make you a *faster* programmer? Yes.
-
On a Unix-like system, the common method for a process to become a daemon, when the process is started from the command line or from a startup script such as an rc file or a SystemStarter script, involves: Dissociating from the controlling tty Becoming a session leader Becoming a process group leader Executing as a background task by forking and exiting (once or twice). This is required sometimes for the process to become a session leader. It also allows the parent process to continue its normal executions Source: http://en.wikipedia.org/wiki/Daemon_(computing) /end Anyway, PHP isn't the best tool to use for creating deamons. They work, and they do it quite "ok" actually, but unless your app is written in PHP and there will be conflicts using other languages you're better off using something else. I would suggest the following in order of how my personal opinion drifts: Python, 'nuff said. C, again, Linux is built on Python and C. Node, makes other sysmins cry when they see JavaScript server-side, but it works damn well(although I wouldn't suggest using it if you ever need to scale). Bash, although also not technically a programming language since it has no language constructs - it does do system administration tasks very fast. PHP.. But, I think it's important to discuss the reasons why one would *want* to run something as a daemon. Event-driven applications such as cron(tab) is a great example for why you would want it to run as a daemon. Speaking specifically PHP, an event processor for an application would make a good daemon. For those of you who doesn't know, an event-processor is something like a "shopping cart" - when you press checkout and the order is processed, certain things need to take place: such as packaging the contents, wrapping it up, and sending it off via post. Each event is processed individually, yet they all need to happen in a specific order. So without an event processor, it would be like saying the package has been posted, without a wrapped package - which is rather illogical and would break minds(in this case, computer applications).
-
ezRPG is modular like this. +1
-
I never said a profiler is bad. I use code profiling nearly every day(along with unit testing), in PHP, JavaScript and MySQL(CSS as well, depending on how lazy I am). It's a very useful tool, but you have to understand the underlaying principles of how your program is interpreted/executed in order to make clean optimizations. And therewith, SQL queries should also be profiled to look for optimization to be made manually. Even though SQL(incl. MySQL's) parsers does an awesome job of optimizing the queries at runtime, humans are still at the cornerstone of bad practices. Alain: I'd think it's appropriate to point to tools, and how they work. For instance, I use a combo of xdebug, Eclipse/Netbeans, MySQL Workbench to perform optimizations. A good practice is also to use a large to huge dataset when profiling, at least with MySQL.
-
:\ -msg2short-
-
Thank you all for your feedback, I appreciate it. (a_b): Edit all texts: I've seen your approach at solving this issue, it's quite unique in some ways. I'm not saying it's inferior though, just that a template can be created for each language. The rest of your post I see no issue with, and isn't debatable. Something I'd like to amend/change to the document: ezRPG still has it's own roots, our fork is a "rework" or enhancement to ezRPG - it's not fully compatible with default ezRPG, and this has been said before. So, there are essentially two different code bases for ezRPG: official(well, not anymore as Zeggy has disappeared), and the rework(ours). And then, for each engine, features that makes it unique. This isn't a full comparison, but can be used to guide in the decision making process of selecting a game engine to use. It also helps when the buyer/user has a specific theme, like for mafia MCCodes has a few distinct features that makes it take the crown.
-
My(our) fork is publicly available, it has the same exact space in ezRPG. It's not hidden behind closed doors, and the current maintainer of ezRPG is fully aware and in agreement of it.
-
This comparison is heavily biased towards NWE. I can not speak for the other engines, since I haven't developed with/for them lately.But But by developing a fork of the ezRPG engine, and still doing so, I can say quite a few things about it. "Preferred game theme: None". This is wrong, ezRPG has a minimalistic blue theme, and it's valid XHTML and implements a table-less design. 3rd party plug-ins available: Yes, there a very few. But also as mentioned with NWE, MCCodes "mods" can be converted as well. With much less difficulty as well. Time required for a patch: Please reveal your sources on this one. Community support: Again, reveal your sources. ezRPG has community support, and most people who "can" give support does it very well due those people usually having a decent experience. Out of my head, booher on this forum can(and has) given support. Customization without changing main code: ezRPG is modular, I really do not see how this is relevant at all. Easy to install: Define "very easy" and "easy" please. By my knowledge there's only three types: complex/hard, intermediate/medium and basic/easy. A comment is appropriate here for NWE, which features multiple methods of installation. Security: I really beg to differ here. My(and someone else's) fork includes two unique and extremely secure authentication libraries "additionally"(making a total of 3): none of the other engines even comes close to touching this. P.S. bcrypt, PBKDF2 and normal salting can be used. XSS and all the other fancy things is also handled appropriately by the engine. Module installation: "No" for ezRPG? Really? It's as simple as copying the template and module files to the correct directory. Only links will need to be added to the template if needed, and the template cache cleared(optionally, depends). Documentation: The code is fully documented, the "doc" directory is only an automatically generated set of HTML pages therefor. FTP Auto Upload: NWE biased, not applicable to any other engine. Like suggested, this can be in the form of a comment. Single file installer: And what would this be? One cannot simply make something, brand it vaguely, and compare it to all other engines. Module upgrade from within engine: First thing I actually see relevant to all engines, although, it normally takes form of an "entire" upgrade. Crontab: Why does NWE win this section? ezRPG and GL doesn't use them, at all, and nothing is geared towards requiring them. Offered modules(out of box): Sure, can I also package all every piece of the engine and call it a "module"? No. Speaking for ezRPG, there are two four levels of components: the core, libraries(authentication & database), hooks(statistics counters, etc.) and then modules. Edit all texts without editing code: Not many engines(of any kind) support this for a few damn good reasons. Again, speaking for ezRPG: templates can be edited in an HTML editor. Technically, it requires no "editing code". Edit all content from admin panel: It's like OOP, there's a reason why you'd want certain things "static"(pun). ...skip.. "Game profiler": I'm sorry, but what the duck is a "Game profiler"? From it's context, is probably a very minimalistic version of a normal profiler? Right? Game bugtracking: I've never seen an application that includes this. It's irrelevant to the "opperation" of an application. Normally, this should be on the developer's side, not the game's(app user). Embedded code viewer editer: S-p-e-l-l-i-n-g. Live stats: Hur-dur...? If I wanted an analytics I'd get an analytics application - just sayin'. Template system: So what does NWE use for templating? In-house perhaps? Well then, Smarty is obviously better(for support and updates) than anything built in-house. Configurable modules: All engine includes the ability to alter and create the administration modules. Development status: Let me translate it to management speak.. MCC1: EOL. MCC2 & 2.5: stable, security patches. MCC3: TBA. NWE: unstable. ezRPG: stable. GL: EOL. It's like Debian, stability is key. No sysmin wants to go through an update every day. Updates breaks things, period. Module development: Care to explain "Ok"? Again, stick to the norm: hard, medium and easy. NB Database tables: What is this NB you speak of? For full functionality all tables are required for each engine. This shouldn't be on a comparison chart. And P.S. ezRPG has two(2). Stat changes requires DB & Code structure edit: Du-duck? Database structures shouldn't be changed, ever. Speaking for ezRPG again: template files can be edited to reflect other value units - database will stay the same. Comment in code: Again, use the norm: minimal/none, decent/appropriate, heavily/good. File structure: What does "fully structured" and "some" mean? I don't get it. Code base / size: MCCodes has a "big" code base? Compared to what? The normal size of an application? NWE and MCCodes are "tiny" compared to the "normal" applications like Wordpress. Lines of PHP: Might be good eyecandy, but is has no place in a comparison like this. It's like counting your development environment's code: "Ooooh Yeaaaa! I have 3.123 millions lines of PHP". Code base / size is enough.
-
I'd suggest: http://www.jankoatwarpspeed.com/post/2009/07/28/reinventing-drop-down-with-css-jquery.aspx
-
I'd go for a packaged solution if I were you, try WAMP or XAMPP.
-
Just wanted to point it out again. No offense to you though, a_bertrand.
-
We're YOUR clients, WE pay YOUR salary. So shut the hell up and give us proper service. Try running a few hundred databases with each over a few hundred million records, and then tell me you backup the databases every three hours. It's an unrealistic interval, unless you have like say, a dozen database servers w/ replication and so forth - at which point, you probably won't need backups anymore. Also, you're talking of one motherfucker of a SAN to store all those database backups.
-
GROUP_CONCAT. Haha.
-
Yet another... odd idea... for the yet even more lazy people
Spudinski replied to a_bertrand's topic in New Worlds Engine
This sounds like a scamming scheme - why on earth would you store these credentials? -
Just a tip for people having similar problem... Try to make MySQL do the most work, it will be much faster and efficient at the end of the day. +1 Djk.
-
Tip one: Get RAID. But yes, database backups are vital - even if it's just for purposes of individual record(s) recovery. Database backups should be run daily, no exceptions. Along with database backups, a "for-when-****-happens" recovery script needs to be in place, to automatically import databases on a sql server. Scripts and things like that, well, there's really no need to backup it if you follow appropriate paths of maintaining your sources - VCS. But if needed, rsync is awesome for text/binaries, but also, should be used only for critical parts of the system which isn't static(so images are out). Lastly, choose the correct damn host, and make sure they have the proper measures in place for worst-cases. I have a VPS, and even though I don't backup for system files, my host backs up my whole container - sure it's a pretty penny to reinitialize a backup, but it's there.