Jump to content
xisto Community

faulty.lee

Members
  • Content Count

    496
  • Joined

  • Last visited

Everything posted by faulty.lee

  1. Most of us should be using a router my now, since the wide spread of broadband. Remote access through a dial up is a painful process. Anyway, VNC does allow you to connect the other way around. Normally, the client(the side to remote control) connects to the server(the side being remotely controlled). You can also set your client to listen, and have the server connect to you. That way, you can avoid the problem of teaching the server side user how to port forward, which is really troublesome if the user is a less technical guy, and with so many brand of router around, it's really a tough job. Even if they manage to port forward, any other problem that happen to the connection, they might not be able to troubleshoot and fix. I've done that many times, and really piss me off. Until i realized that the client can actually listen for the server. I even recompile my copy of tightVNC to use a diff port number to avoid attacks. The default port number is fixed.
  2. Yes, you can try realvnc or any of it's derivative. https://www.realvnc.com/ http://www.tightvnc.com/ http://www.uvnc.com/ All are as good, and comes with their own customize feature. You can try out one by one or read their webpage to see which one suites you better. Some also allows you to remote from browser, like tightvnc. For commercial software, i would recommend RemotelyAnywhere http://forums.xisto.com/no_longer_exists/ If you need to do frequent remote control and also monitor and do file transfer, RA is definitely the right tools. I've been using it for my customers, so it can take full control of their pc/server from my desk. It works via browser. So I can be on-call anywhere, can even work in a cybercafe. For less critical client, i use filezilla ftp server + realvnc. That should be enough to do the job.
  3. Another advantage of firebird over mysql is embedded capability. You can connect to the database file without having to run the database server. Good for small application which require some database features but not full fledge database server. Mysql do offer such capability, but only for C/C++. Firebird has the library for quite a handful of languages.
  4. Well, why trouble yourself with downloads from the internet, where you have to test and scan (spyware) each tools as you try them out. Also, batch file is the simplest of all scripts, guaranteed to works in all windows, regardless of what's installed or not. A fool prove, fast and get the job done method in this case. Also, as WeaponX's mentioned, it's temporary. So I reckon he want to get a right a program to do a better job later.
  5. In that case, you'll need to have a way to store the data in memory, in a structure or class, or even a datatable would do, then from there you write function to do the loading and saving of data. Then it become independent of the way you want to manipulate it. You can always save back to the same text file, overwritting all the data. Since you have loaded everything into memory, so you won't have duplicate ID.
  6. What dserban said is right. In fact i did mentioned in my previous post "Using >> will append the output". You just need to do multiple IF for each ping, and all ">>" append to the same output log file.
  7. listview.Items.Add(New ListViewItem(New String() {"column1", "column2", "column3"})) It's better to use ListView, use Details mode for View's property. You need to configure the columns manually, so after inserting, it will goes according to what column you have configured. You don't actually save the listbox, when the user press OK, it's save right away. Then the listbox is refresh the display the latest data. If you need to keep the all the data temporarily, but not saving it all the time, then write a class or use collection to keep the data, any changes should be applied there, then save only when at the point where you want it to.(Save All)
  8. Now i get you. Sorry for the late reply, I was traveling back to my home town. OK, you idea seems a bit confusing to the user, IMHO. I would recommend you using a listview, and have 13 column. So when the user selected that particular row, you then enable an edit button. The user can either click Edit or double click, which will then bring up a dialog box with the 13 details particular to that ID. Then you can do saving from there, it's quite straight forward after that. If the user decided to cancel the changes, you just need to close the dialog box. Optionally you can set DialogResult to Cancel. For successful save, you can return OK, so that your main form can refresh the listview. The reason i recommend this is that, your method, it's hard for user to decide on canceling and saving, you can select a ID, then edit the text box, then select a diff one, you then need to intervene if the user would like to discard the changes or not. So you need to trap quite a lot event to handle the user friendliness. It become tedious if the user was prompt all the time even though he just want to discard the changes. It might happen that he didn't change anything, and also being prompt, unless you trap all the text box with the OnChange event to take note of the changes. The dialog box, to cancel, the user just need to press Esc, or click cancel, it's quite a standard feature. With a dialog box, you also narrow down the problem and bugs, and give the user a focus job.
  9. Don't quite get what you want.Normally I would have a list box on the left, then a few textbox on the right side to display detail info. Then I bind the SelectedIndexChanged event, and then check the list box SelectedItem count, make sure it's one(It can be zero). If it's one, then display the detail of the selected item on the right hand side (either with SelectedItems(0).Text OR query from database, I usually store the ID in the "Tag" of the listbox item), at the same time enable the "Save" button. If it's not one, then clear all the text box, and make the "Save" button disabled.Hope this can help you a bit
  10. I would recommend a X2 5200+ and above, since it has a cache of 1MB x2, anything lower is 512K x2. ECS is mid tier manufacturer. If you want better one, you can try ASUS, Abit, MSI and Gigabyte
  11. The dos batch file should look like this ping 10.0.0.3 -n 1 > c:\ping.logIF %errorlevel% == 1 c:\windows\notepad.exe c:\ping.log-n 1 is to ping only once, cause if you ping more than once, standard is 4, it will take a long time to timeout. %errorlevel% is a dos variable and will be set by the last exited application, to determine if it pass or fail. ping will set %errorlevel% to 1 if it fail, and 0 if pass. So the IF statement will check the %errorlevel% variable, then run notepad if it fail. > c:\ping.log is to redirect the output of the ping to a text file. Using >> will append the output. ping.log must not exist, or else will be overwritten. For the hourly checking, you can use task scheduler, most windows will have one, including XP. You can schedule it to run the batch file every hour. It's under StartMenu\Programs\Accessories\System\Scheduled Task The hourly setting is a bit tricky. You have to set it to daily first, put a suitable starting time. If you pc is not turn on by then, it will only run the next day at that time. Then click Advance, check Repeat task, then you can select every hour. Duration you can put 10minute, or whichever time long enough for the ping to execute. You might want to experiment a bit, I'm not sure if after the duration, whether will it close the application that's launched by the batch file, in case if the ping fail. Good Luck
  12. I don't think you have much choices. I'm also trying to learn more about multithreading, I found that it's actually very tedious to do. I've written a multithreaded multimedia software, running from 5 to 20 threads at a time. Took me quite a while to find tricks that can synchronize them all. Also, sometime when it fail, it doesn't just stop, but it runs for a while, then start to show some funny behavior. So have to spend more time debugging. Anyway, as for your case, i've done something similar as well, but i'm using a main tread to loop and wait for the event, and then dispatches the job to worker threads. The worker thread contained in a separated class. Called using a function, and that function will then create the thread to do the job. So, when i call the function, a new instance is instantiated, which everything contain within itself. To keep track of the worker thread, you can add that into an array. Then have the main thread check for a bit that indicate if the job is done, then you can dispose and remove it from the array. The checking can be done at a preset duration, depending on the job load, or whenever a new worker thread need to be added.
  13. dserban is right. In actual fact, we all need to learn to know what we're installing to our pc. If we need to try some new software from unknown source, we can try on a less important pc, or search the net to see if there's any similar treat, or run it in virtual machine. There's no free lunch in this world.
  14. Well, you said it at the wrong place. If an admin who handle huge databases, be it MySQL or any other database, do you think he would have joint this forum? What you see here only represent a small community of netizen. So you cannot imply that there's actually no MySQL database that could go to some hundreds of "higs" or terabytes.
  15. I didn't notice bout the "/>", i simply copied from one of my project file. Hmm, meaning most of my project are not XHTML compliant. Thanks for the info. As for the @import, i seldom use advance CSS, and normally i target 1 specific browser only, mainly firefox, probably the same version, for simplicity. Thus everything should work as if it's photocopied. I don't deal with end user, i can ask my client to use what ever browser of my choice. One of the reason is security, and the other is shorter development time due to less issue with cross browser compatibility
  16. I'm writing software for customers, so they tends to stored quite a lot of different thing.For the management system, it stores transactions in decimal, customer database in text. That's still quite small. For a year already, and it's still less than 100MB in total, for 53 tables.For the media system, it's rather bigger. The worse is the table which i use to pass live screen capture from client to server, stored as binary. With frequent screen capture, it can reach up to 1GB per day, so have to clean every day, For the data acquisition system, it's mainly decimal and double. Will take up 10MB per day.
  17. Yes, but i don't do that, unless the display is of same resolution. If it's higher, need to adjust the positions when i switch. Also need to plug in another keyboard, since the keyboard won't be right in front of the screen. I did connect an external monitor as 2nd display when i use my laptop for work and before i got my desktop. Now that i have my desktop, and i do most of my work on it, i don't use external monitor on my laptop already. Now i use my laptop only for field or on site troubleshooting. One problem i encounter when using my laptop with external monitor to extend my display, not all application support multi-monitor, and some application got stuck at the 2nd display even though i've bootup without it. So, need to remember the Alt+Space, then M, to move the windows back to the primary display. Some can't even be moved over to the 2nd display, like NJStar.
  18. Asynchronous Processing is actually running the code not synchronous with the activity from the users. It also means running in background with crontab or as what dserban mentioned. It's having your event update scripts in one page, then have something call it every minute. If you can't get crontab, then if your server allows fsockopen, you can call back to your page, and have to run by itself, either indefinitely or, call itself back, with a special limited pattern, so it keep running in the background. Another method is using AJAX, to call the script from the user side from time to time, even though the user is not refreshing the page. For all this, you need some kind of method to keep track of the running thread, so if there's already a thread doing the job, the current one can skip and return right away, to save processing.Seriously, if you really need to do such a complex game, it's worth to buy a hosting with enough supporting features. If you game is not that complex, as not requiring too much processing, then you can try the event update on every page viewing method i mentioned earlier.It's also good to look into other's works. There's a few opensource online game. Try sourceforge.net
  19. Yes, that sounds good, but another thing is that most server restrict access to fsockopen(), because with the right coding, you can do virtually anything with it. Super powerful.
  20. Cron is part of linux. Thus all linux server will have cron built in. It's just the matter whether they let you have access to it or not. Those are usually left for premium services. If it's a windows server, then you're out of luck. Apache can be windows based or linux based.For some server, you can request the hosting company to help you install the cron job, maybe you can give it a shotAnother way can i think of is to run an update script whenever someone view the page. The script will check the current time and compare with it's last run time, and update the events properly. That way, if only when ppl is looking at your page, then it's data is updated. The trick here is just comparing the time, and applying the changes depending on time difference.There's few thing you need to take note. If you game is complex, then it might take a while to update the events. If it happens that no one logon for the past few days, then it will take a long time to first show the page. There's a duration limit to which your script can run. Normally it's 30sec, to prevent problematic script from running indefinitely, taking up all the cpu cycle along. Let see if anyone else came up with a better idea
  21. All you need to search is "external css", all the answer will pop right out I just briefly show you how to do it Create a plain text file with the css you wanted in it, then add this line to the HEAD section <link href="path/to/your/css" rel="stylesheet" type="text/css">Example content of css file .header { background-image: url(../images/header-bg.png); background-repeat: no-repeat; border-left: 1px solid #FFF; border-right: 1px solid #000; border-top: 1px solid #FFF; padding-left: 30px; padding-top: 8px; height: 35px;}basically it's what ever within the STYLE tag. That's it. Next time when you google, don't put the search terms as a question, it won't really work. All you need is just the keyword Good Luck
  22. I've never wrote anything similar, but from what I know, you need to have a running timeline for your game. And everything will have an endtime, at which it should have been done, like in your case "get attacks to function at the right time, how fleets get to their destination. How buildings finish". Then you can have cron or configure crontab https://en.wikipedia.org/wiki/Crontab to call a php script every minute. The smallest is minute for cron. You can look for other similar scheduler which can have smaller timestep, but that also means you can't use standard linux web server. So whenever you script run, it checks for the endtime, then take action on those which is expired then decide on what to do next. Just a suggestion. Maybe someone who had really wrote one could drop a bit of tips here also.
  23. I've a 17" CRT and a 15" LCD for my desktop. I need a 12" laptop for portability.
  24. Well, I won't mind a 13" which can goes up to 1280. Since I've been using 1024 on a 12". And I'm using 6pt font for my Visual Studio and Eclipse to achieve as much real screen estate as possible.
  25. Err, you get an internal HD-DVD burner, plus a USB/Firewire/IDE box. That will make it an external HD-DVD burner. I haven't tried this combo. Theoretically it should works
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.