Decompilers don't get it wrong really, they just take the machine code and turn it back into asm. From there you can decide how you want to make it into C code or something like that, but that you'd really have to do by hand, because the asm that the decompilers turns it into could be any kinda of C construct, it just depends how it's used. There are for example, no for loops in asm, it's just a trick that the compiler abstracts for the programmer.
You should make a packet buffer that all of your packets go into, from there, you should only send a few packets at a time. Look at what Victor did in PRISM's code for examples on how to do that.
I think they will drop it in 5.6 / 6.0 compleatly, from the threads I've been reading in the PHP mailing list, they hate maintaining support for it, it's a headache to keep it going ... kinda like putting a band aid on a zombie, the underlying problem is still that it's a zombie. That's kinda how they feel about it. So at this point forward, it's PDO or MySQLi for MySQL support within PHP.
Looks like the PHP Devs are getting rid of ext/mysql in the next versions of PHP. PHP 5.5.0 Alpha 2 deprecates it, with full on removal expected in PHP 5.6.x and PHP 6.0.
sqlite3 is bundled with the core prior to 5.4, at least it was for me, when I compiled php with the default `config` and `make` settings. Ya know I did not notice that they changed that with 5.4, man the PHP's devs a freaking killing me here! Now we don't have a single 'core' db engine that we can count on being there ... ****!
Yeah, I think it's the best fit for PRISM. The fact of the matter is right now, you need to have the sockets module installed for PRISM to function at all, so I feel that having this also is a no-brainier, just like having the sockets module.
I see your point. I think at this point we would need some hard data to prove that it would work better, like some bench mark results. But I really don't have any desire to add MySQL support to PRISM. I'm only happy with SQLite because it comes in the engine's core, so we can be sure that everyone will have it.
It's not that I disagree with you, I just think of it from an end programmers point of view and an end user point of view. From the programmers point of view there are some thing that I would like to know, but don't need to know right away. For example, a clients database information to update their UI state. I can wait for this information to become available. From a users point of view, If I can avoid a blocking IO function in an SQL query that provides me with a responsive user interface. That is massive! If we can pull that off with the tools given that would help the programmer and the user.
I see this happening in two ways. I've already discussed the first case above, where I don't need to know the details of the SQL query right, I can wait for these resources to be yielded to me. However this does not work if I am trying to authenticate a user. For that, I may need some purposefully blocking IO here to make sure that the next part of the function is only called in the case where my client is authenticated and authorized. I see the query prototype for this method looking something like this.
Using this method above, PRISM would create an array of query strings and callback functions. It would keep track of what query string should go to what function once it's result yields. It then iterates over this array at the end of the main loop. This should allow for blocking and non-blocking querys. The non-blocking queries should not block the main loop of PRISM, in theory at least, meaning it should allow for the continued processing of packets even while there are outstanding SQL queries.
Maybe I've read the spec wrong, maybe python's implamentation of coroutines is different then that of PHP's. maybe I can't yield a SQL query. But if I can, I think that it would be a huge win for the programmers and end users of PRISM. I would love to start working on a proof of concept for this, but it seems that I'm going to be stuck working for the rest of my life. But this would be very cool to see. Maybe if I get a night I make a build of PRISM with coroutines, maybe it will be awesome, maybe it won't.
Yeah, never heard of Luvit, but hey, ASync IO for Lua that's always a good thing! Well then repeat83, apparently you should port LuaLFS to use Luvit and then you won't be bored.
PRISM's network IO is non-blocking unlike LuaLFS ... We are working on making SQL IO nonblocking in the next major version of PRISM as well.
Yeah, they are primarily talking about SQL query, they are the devs for BBQSQL, that basically allows you to quickly find out the information about the SQL server from various attack vectors available to it. Having a non-blocking SQL part to RRISM would be immensely helpful as well.
Scawen, something you might find interesting ... It's a Defcon 2012 (20) talk about fuzzing online games.
DEFCON 20: Fuzzing Online Games, might give you some ideas as to what Anakin Skywalker is doing. The idea of using packet information and correlate that memory offsets so you know what packet affects what memory offsets. It's very useful to combine both of them from the outside ... and then there is DEFCON 19: Hacking MMORPGs for Fun and Mostly Profit that goes over some techniques that he might be using. I would of PM'ed or emailed you with this, but your account does not allow PMs from low life members like myself.
Victor, take a look at the video that I linked to below for the network portion of PRISM 0.5.0 using PHP 5.5.0.
The video it's self is of the networking portion of BBQSQL, written in Python. They are using Coroutines (Now available in PHP 5.5.x) to get a lot of proformance in their networking IO because it switches from the first IO request to the next when it get's to an blocking IO call. Could be interesting for the next version of PRISM's networking stack.
@Dustin I like Nano when I'm SSH'ing into something and I need to change a text file, like a config file really quickly, but other then that, I would use this ... simply awesome that I can SSH into my computer using my text editor and edit a file on my platform without much of a headache. Plus I like it's syntax highlighting, it reminds me of github's color scheme.
@TAA, I never really got the hang of VIM, I've always perfered nano. *Hides*
@MadCatX, you don't _have_ to pay for it, you can try it out for as long as you want. I've downloaded it and I've not bought it yet because I don't have the money yet. And it very gently nags you every now and again that you should pay for it if you use it that much. I really like that it does that too, let's you use it for free, but reminds you that it's not really free software. I'm quite happy to pay for it once I have the funds, respect for doing that.
@thisnameistaken, that's funny that the guy next to you was using it as well and you had no idea! Ask him if he uses any plugins that he finds useful.
@EVERYONE
If you find plugins that you find useful, please do post them here, I would love to take a look at them.
Well, after the recommendation of Cyril Kowaliski of Tech Report fame, I've finally stopped using Notepad2 for all of my text editing and programming. I've completely fallen for [url=]SublimeText[/url] I love that it works on Windows, Linux and Mac (In that order). But what I love even more then that is that it has a Linux style [url=http://wbond.net/sublime_packages/package_control]package control manager[/url] to install plugins on the fly!
I've downloaded a few already that I find indispensable!
That's insane, all you have to do is add something to the cron tab like
@reboot start program
But we are pretty far off topic here.
Any luck with the color problem Scawen? Also if you want some inspiration, take a look at what Victor did with the telnet module in PRISM. That stuff is pure gold.
We kinda do yes, but it's only on the Linux side I'm afraid.
That would be the holy grail.
Welcome to the club Scawen, we have jackets. If you want to see an application that is Open Source that does use colored text inside of the command application on Windows take a look at git. Myself and Victor (Yes, that Victor, your fellow developer-at-arms.) use Git on the PRISM project that we share programming duties on. It impalements color within the windows command prompt some how without resorting to some crazy trickery. I recomend you take a dive into their source code and see how they did that.
If you can make heads or tails of their C code, your best best is ... color.h and color.c. I'm sure you can deraive your own color mechanism from there.
He avoids CarGame's servers because it TCP logs ... So why don't we setup a bear trap? A random server with a random name, that logs TCP traffic with WireShark. Get a bunch of the devs on to seed the server, get it popular and just wait ... at some point he will pop on and then you'll see how it did it or equally as important, how he didn't do it.
Also, are all of these servers that is is getting onto running AIRIO, or LFSStats, or PRISM, or anything? If your using PRISM you could make a plugin and make like a warning system for him. Once a client connects where UName == '', send out the alarm to Scawen, and save the reply file on the host after 30 seconds, or at the end of the session.
It seems to be a split packet problem, as mentioned by Scawen. The problem lays with the InSim application, as it does not properly handle split InSim packets.
I'm perfectly fine with having small updates over small periods of time, but I think it's pretty clear to see that waiting a long time and having no updates is simply not working. Yes, these patches are nice, but content is king, and if you are not willing to add content, then at least allow us to do it. Allow us to make cars, and track, and don't chastise us for it. The community here is great, with very many talented people that could do great things if we were given the tools. Some of us have made our own tools, but can't release them because we'll be banned. All we want is new content, and you don't even have to supply it if you let us do it. Allowing us to tweak the engine, add and remove HP, add or remove Co-efficiency, ect ... would make for many interesting options within the game environment.
And you are correct sir! After upgrading back to the latest version of the driver, the system freezes right away once I got into a server. So it is indeed a problem with the drivers.
With the version from the ASUS website, my system does not hang, but I also downloaded the E patch for the client, so I'll upgrade back to the newest version and see if it's that or the drivers.
I'm downgrading to Intel HD Graphics Drivers 8.15.10.2712, Found in the VGA section of my motherboar's drivers section. These are the drivers where LFS was stable, so if we still have the problems with LFS, then it must not be a driver issue, but an LFS issue. I'll report back and we'll see how it goes!