15,887,410 members
Sign in
Sign in
Email
Password
Forgot your password?
Sign in with
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Visual Basic questions
View Python questions
discussions
forums
CodeProject.AI Server
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
Python
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
features
Competitions
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Search within:
Articles
Quick Answers
Messages
Comments by NuttingCDEF (Top 131 by date)
NuttingCDEF
7-Apr-12 15:24pm
View
First, this is large, but unless your app needs to retrieve significant portions of the data at once I wouldn't have thought that it should be unmanageable.
Is your server 32-bit or 64-bit? If 32 bit, have you considered going 64 bit and adding more RAM (AFAIK 32 bit can only use 4GB)? I presume that this is at least a moderately fast multicore server - and that network bandwidth isn't the issue (are you on at least Gigabit?).
How many clients do you have? Is the problem a few clients that each put huge load on the database or lots of clients with a small load each? Are you retrieving more data than you actually need?
General rule: adding indexes helps with performance of SELECT - but slows down INSERT - so you want to have only those indexes that actually help with the specific queries that you actually use - so knowing whether the real issue is your SELECTs or your INSERTs might help - which is actually taking the bulk of the time?
DETA can help a lot with this - maybe kill a few indexes, then use DETA to see what it suggests adding back
For INSERT, the performance difference between lots of individual inserts, one row at a time (which is what LINQ generates) and BULK INSERT is typically massive (can be a couple of orders of magnitude) - SQL Profiler has helped me identify this and other issues.
With LINQ I've also found that iterating through result sets can be slow as it may only retrieve data on demand one row at a time - adding things like .ToList() at the end of queries can force LINQ to retrieve the entire result set in one go, which can be hugely faster. Again SQL Profiler can identify what queries are actually being fired at the database. Using this I've taken code that generated 10s of 1000s of queries and made minor changes that have reduced it to a few 10s only and achieved exactly the same.
I'd also look at your queries. Are you always querying on exact matches for fields that have been indexed? If not (especially if you are doing anything like WHERE [Field] CONTAINS "some text") then think how you might restructure your queries - or do an efficient retrieve of some dataset and then subquery it client side in memory.
Personally, I'd try the above before looking at partitioning.
NuttingCDEF
6-Apr-12 11:50am
View
That must be some size database or you are hitting it very hard! Or there's a design issue in the way it's built or being used . . .
Have you tried using the SQL Server Profiler and Database Engine Tuning Adviser?
What languages / technologies are you using? Personal experience is that the tools mentioned above can give a lot of help in sorting out performance issues. I use .NET and LINQ and what look like innocuous code changes can have a huge effect. If you're doing lots of inserts, making sure you are doing BULK inserts (which AFAIK LINQ never does!) is also important.
Are your hits primarily Select, Insert, Update or Delete?
Can you give any examples that might help?
NuttingCDEF
6-Apr-12 11:40am
View
3G key will go via internet / your external IP / router etc. But that doesn't explain why direct LAN connection isn't working. I think the video showed your WP7 emulator connecting - so if it works to another PC on your LAN and not to your PC then the issue is your PC.
If emulator is running on same PC as your RDP server then have you tried connecting to loopback (127.0.0.1) or localhost? Never tried it, but maybe worth a go.
What options did you pick to enable RDP connections to your PC? What security / authentication options? What does your client use? Any issues over encryption of the link? What do the server / client require / expect?
You say you've used a packet sniffer and there are no relevant packets being detected. If the WP7 emulator client and server are physically on the same PC that might be a red herring. Can you try it over the LAN (preferably something very simple - 2 PCs hooked up to a router / DHCP server with nothing else connected?) between 2 separate PCs? Can you then check at both client and server end to see what packets are being sent / received?
NuttingCDEF
6-Apr-12 8:04am
View
OK - so is your Win7 connection going over the internet? Or is that an internal / LAN connection only? If internal, is there any way you can test it externally over the internet?
I think you are saying that your WP7 app can connect over the internet to other RDP servers - so it is just the connection to your own PC that doesn't work - is that right?
If so, what is the external / public (fixed) IP address on your internet connection? That's the IP address that you need to connect to if you are connecting from WP7 over the internet. Your firewall / router should map a port on the external / public / internet side through to the RDP port on your PC that sits on the internal side. Presumably the 10.x.x.x IP address is the INTERNAL IP address of your PC - so known only to devices on the internal LAN - and never directly accessible from the external / internet side - which is why you need port forwarding set up on the firewall / router - e.g. public / external address 88.89.90.91 port 3389 mapped to private / internal address 10.11.12.13 port 3389 - note also that the public and private port numbers don't necessarily have to be the same either - this is something you can configure - and for RDP we are talking TCP only here, not UDP.
Apologies if any of this is just telling you stuff you already know, but from what you've said so far this sounds more like a routing issue than a code problem.
NuttingCDEF
6-Apr-12 7:13am
View
A few suggestions . . .
Can you connect to your RDP server using any other RDP client (not your WP7 app)?
Is Windows Firewall (or any other firewall) blocking inbound connections on the RDP port?
Are you using the standard RDP port? If not which port is configured?
Have you tried putting Wireshark on your RDP server to see if packets from the WP7 app are even reaching the server?
How do you connect to your RDP server? Over the internet? Is it behind a router / firewall? Do you need any port forwarding set up? 10.x.x.x is a private IP address, so shouldn't be directly reachable from the internet without some sort of forwarding from the public side of your router.
Can you add anything to your code to give you a more detailed error message?
NuttingCDEF
6-Apr-12 6:51am
View
Try fast2host.com - should do everything you need.
NuttingCDEF
6-Apr-12 6:40am
View
Either go to your web server, log on and open a web browser on it so that you see the full error message there (i.e. web client and web server running on the same machine).
Or change your web.config to turn custom errors OFF.
You'll then get a different error message which actually tells you what the problem is.
The message you are seeing is just saying "There's a problem"; it gives NO details of what the real problem / cause is; it's just telling you you need to make some basic changes in order to get a helpful error message.
By default ASP.NET never displays helpful errors as that would be a very bad idea on a production web server as it would give potential hackers far too much information that they might be able to exploit.
NuttingCDEF
11-Jan-12 16:05pm
View
OK - I solved my own problem!
The issue was that setting the render target seemingly also resets the culling mode - so after the first frame, the culling mode was wrong (having been set in the Initialize method, which seemed to make sense at the time) so triangles weren't being rendered in my DoDraw method.
NuttingCDEF
23-May-11 5:45am
View
Good call - my 5
NuttingCDEF
23-May-11 3:21am
View
Good link - my 5
NuttingCDEF
22-May-11 17:01pm
View
When you say 'not works' - do you mean you send one base64 string and get a different base64 string back? Or you get the same base64 string back as you sent, but can't recover the correct plain text when you decrypt it?
NuttingCDEF
22-May-11 15:57pm
View
My 5 too
NuttingCDEF
22-May-11 14:01pm
View
Agree - my 5
NuttingCDEF
22-May-11 14:01pm
View
Matt - see my solution.
And a Hint for the future - if you need to provide more info, don't post it as a solution, just edit your original question.
NuttingCDEF
22-May-11 10:24am
View
I really am guessing here . . . are you asking how to split up a task into work units that can be distributed across multiple processors / machines - with a framework that manages distribution of work units and 'cores' (i.e. the custom code needed to run each work unit) and collects / collates results?
NuttingCDEF
22-May-11 10:20am
View
Are you talking about something a user runs so that if they open a page in their favourite browser they can run an app to snap a copy and print it? In which case you need a way to automate control of Internet Explorer / Firefox / Safari / . . .
Or an app that will take a URL, download the web page and generate an image to print? In which case you need to write a web browser / rendering engine that understands HTML, CSS, probably JavaScript, maybe Flash . . .
Or something else entirely . . .
A bit more info on exactly what you want to achieve would be useful.
NuttingCDEF
22-May-11 10:15am
View
Just one thought (although not strictly relevant to the specific problem you have) . . . why are you storing a plain text password in your database? This introduces an unnecessary security weakness - one of the ones that one suspects Sony might have learnt about the hard way ;-)
Hash it (with a nice strong hash algorithm - so not MD5!) and store the hash. And preferably add a salt before you do the hash to protect against rainbow table attacks (and store the salt as well). To check a submitted password, salt it / hash it and compare the hash values.
NuttingCDEF
22-May-11 10:05am
View
Quick and simple - my 5 to both!
NuttingCDEF
22-May-11 9:36am
View
As far as I can see, not a lot - though there might be possible optimisations to make it run more efficiently. 2 suggestions below - I haven't tested them, so if they don't work, think about the concepts rather than the exact detail :-)
Suggestion 1 (run the Orders query once only and eliminate duplicates from the result)
var IDs = (from o in Orders
select o.EmployeeID).Distinct();
var query =
from e in Employees
where !(IDs.Contains(e.EmployeeID))
select e;
Suggestion 2 (relies on a relationship)
var query =
from e in Employees
where e.Orders.Count() == 0
select e;
NuttingCDEF
11-May-11 3:52am
View
Deleted
Glad it worked - it bit more readable than the SQL code too! :-)
Any chance of clicking the accept solution button?
NuttingCDEF
10-May-11 15:10pm
View
Are on Windows here? XP? Vista? Win7? Server?
Same hardware? If not, what are the differences?
"not display like" - what does it actually look like? / what should it look like? What are the differences? Sample screen shots?
How about an extract of the relevant code?
NuttingCDEF
10-May-11 13:09pm
View
Can you provide some sample HTML code and associated CSS that generates the problem? With that, someone might be able to suggest possible solutions - without it anything anyone suggests is probably little more than a guess.
NuttingCDEF
10-May-11 13:06pm
View
When you say "could not run", what happens, what error messages, what symptoms?
NuttingCDEF
10-May-11 13:03pm
View
Very helpful article - my 5.
NuttingCDEF
10-May-11 13:03pm
View
Good link - my 5.
NuttingCDEF
10-May-11 12:53pm
View
Agree - my 5.
ASP.NET is a web technology for IIS web servers - video capture has to happen on the client - and then be transmitted to the server. Video capture is probably the tough bit - my guess would be that (much as I dislike it for many things) Flash might well be a good starting point.
C# / VB / .NET are Windows based technologies so even if you did write something to download and run on clients, you are limiting yourself to Windows users - which isn't great for a web app.
But if you actually mean just writing a standalone application to run on a (Windows) PC to capture video and save it in a file, then C# / VB using .NET framework is an option - though you might need to tap into other Windows technologies (using COM or native APIs) to get something reaonable working.
NuttingCDEF
9-May-11 18:10pm
View
Which version of Word are you using? In every (Windows) version I've used, Ctrl-End takes you to the end of the document. End to end of line. Shift-Down to end of paragraph.
NuttingCDEF
9-May-11 3:36am
View
Agree with all this.
In C#, EVERYTHING is ultimately an object - System.Int32 is the 'real' type - int is a shorthand - but some types, although still objects, are 'primitive' and are value types, so the semantics work the way you expect primitive types to work - when you use int / System.Int32, C# will normally do automatic boxing / unboxing (conversion between things that work like primitives and things that work like ordinary objects) for you to make your life a little easier - but sometimes you may have to worry about it and 'convert' between the two types manually.
NuttingCDEF
9-May-11 2:06am
View
Can you try debugging your app (in Visual Studio?) - identify which line of code it is at when this error pops up.
Then post the relevant code.
Without this we're fairly unlikely to be able to help.
NuttingCDEF
8-May-11 10:03am
View
I think that's pretty much what I've put in my latest solution.
The only thing I'd add is that you seem to be mixing WCHAR and TCHAR - fine so long as you are compiling everything as unicode as TCHAR and WCHAR will then be the same - but if you (or anyone who comes after you) ever changes the compilation options, you have a potential bug as TCHAR and WCHAR might then not be the same. Hopefully a smart compiler would pick it up, but sticking to one or the other (probably TCHAR ?) throughout might be preferable.
NuttingCDEF
8-May-11 4:20am
View
Agree - would need to see detailed code to sort out exactly what the problem is, but there is evidently an issue with character / string types - at some point it is likely that a char string is being cast to a wchar_t string which causes the problem - or maybe a confusion over number of bytes vs. number of characters causing a buffer overrun - or maybe something going wrong with preprocessor definitions / include files etc. (if there are multiple code files, are the includes / definitions consistent between them?) - or . . .
See http://www.codeproject.com/Tips/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc.aspx for a good CP article on this that might help.
NuttingCDEF
8-May-11 4:05am
View
OK - I'm still assuming that you are trying to run the Java applet / PHP on the client's web browser - and NOT on the server. If I'm wrong on this, please say so as it makes a BIG difference to how things work and where the problems might be.
If that is right:
1. The fact that you are using ASP.NET on the web server is probably irrelevant. The client / web browser and anything running there almost certainly doesn't care what language the server code is written in.
2. PHP is very unlikely to be supported at all on the majority of client computers / web browsers in the world - whereas Java is fairly well supported - so unless your clients are all computers where you can control what software is installed on them (maybe possible with computers within a single business / organisation where the IT department runs everything) I'd drop PHP now - most users won't have it installed and won't have the necessary skills to install / configure it. If you started with a Java applet that may have been for a very good reason - a high proportion of machines have Java already installed in one form or another. If you've got problems with the Java applet communicating with your web server, the best answer is likely to be to fix the Java applet, not translate it into some other language.
3. You now need to provide a LOT more detail about what you mean by "connect" - code samples / what you are trying to do / what you've tried (in Java) already / detailed symptoms and error messages. Without this, the chances of you getting anything useful from Code Project are approximately zero (at the moment the only thing you've really said is that you've got a Java applet that has a bug somewhere).
NuttingCDEF
7-May-11 14:27pm
View
Good answer - my 5.
NuttingCDEF
7-May-11 14:27pm
View
That's my recollection too.
NuttingCDEF
7-May-11 11:47am
View
Presumably you have a DllImport statement somewhere in your VB.NET code (and similarly in VB6) - can you give details of what you are using as my current best guess is that the .NET isn't marshalling the arguments / return values properly somewhere between .NET types and the native types the DLL expects.
NuttingCDEF
7-May-11 11:39am
View
Quite possibly - I was thinking that almost anything that confused 1/2/multibyte chars or fouled up memory allocation could be an issue - the one line of code we weren't given is quite probably where the problem lies.
NuttingCDEF
7-May-11 11:38am
View
Deleted
Quite possibly - I was thinking that almost anything that confused 1/2/multibyte chars or fouled up memory allocation could be an issue - the one line of code we weren't given is quite probably where the problem lies.
NuttingCDEF
7-May-11 11:09am
View
Suggest you post an update with:
(a) VB6 code that works
(b) VB.NET code that doesn't work - if you can also debug into the VB.NET code and identify which line causes the error that would also help.
NuttingCDEF
7-May-11 10:51am
View
P.S. AFAIK there's nothing to stop you installing VS on a VM and using that to test / debug your app on the VM - never tried it but if there are any problems or specific issues you want to test it might help. But it's definitely NOT a requirement for your EXE to run on a VM.
NuttingCDEF
7-May-11 10:49am
View
If you are looking for Virtual PC software there is Microsoft Virtual PC - though the last time I tried it it had problems loading 64-bit client OSs (though that might just have been a problem because the host OS was Win XP 32-bit) . . . so I resorted to Oracle VM VirtualBox which was fine with 64-bit.
Just one warning about the Oracle VM though - IIRC by default it stored all its files (including virtual hard discs - which can be huge) in my Windows profile - which made a mockery of trying to use a roaming profile (hours to log on or off) - you might want to change where it stores things!
Whichever you go for you still need source discs for your target (client) OS to install onto the virtual PC. And don't try to do a virtual PC on a machine that doesn't have a fair bit of headroom in all areas to cope with the extra virtualisation load.
Once you've set up your virtual PC, you might want to take a copy of the relevant files while they are clean (OS / patches only - none of your apps that you are trying to test) - then you have a quick and easy way to start again on a clean VM when everything goes pear shaped!
NuttingCDEF
7-May-11 10:38am
View
Glad problem 1 is solved . . . on to problem 2!
Yes - I get the same error.
How are you configuring IIS? Do you have access to the full IIS management console (i.e. the Microsoft provided management console - not a web based management app). If this is on a public web server you probably don't - so you'll have to tell me what you do have!
Essentially it's telling you that asp.net authentication has to operate for the whole of that application (which makes a lot of sense when you think about it) - you can't redefine the authentication mode for a particular folder in an application - so the web.config that sets the authentication mode has to sit in the folder that is configured as the ASP.NET application in IIS.
NuttingCDEF
7-May-11 9:51am
View
When I try to access http://www.bestdemosite.com/ecommerce I get the Server Error in '/' Application error.
If I access http://www.bestdemosite.com I get an image and "Future home of something quite cool".
In both cases my web browser (IE8) clearly finds the web server and is getting a response - even if it is an error.
NuttingCDEF
7-May-11 9:48am
View
1. When you say 'not able to ping', does it tell you the IP address and say Request timed out? Or does it say could not find host?
2. When you say "this application", I presume you mean Code Project. Is that right?
3. When you say "other network", do you mean you are using a different machine that connects to the internet by some completely different route?
4. If so, on the machine that has the problem with bestdemosite, can you access ANY web site (even, say, Google, CNN, BBC etc.)? If not, what exact error message do you get?
NuttingCDEF
7-May-11 9:43am
View
Genius! My 5.
NuttingCDEF
7-May-11 9:33am
View
Suspect this crossed with your edit of the question - hope it might still be of some help.
NuttingCDEF
7-May-11 9:05am
View
So are you talking about the PHP code running on the SERVER or running on the CLIENT?
I'd expect a java applet to be code that is delivered to the user's web browser and then runs within the web browser on the CLIENT.
But PHP is mainly a SERVER side language - like C# ASP.NET - when the web server receives a request, code runs on the server and generates HTML (and other things) to be sent back in the response to the client.
The response may include things like JavaScript that contain code that then runs on the client in the web browser. JavaScript may also generates further HTTP requests to the server (which may service them using whatever language you like) which sends responses back that the client side code can then interpret and use (that's roughly how AJAX works).
But the server side and client side code are always distinct and can (and usually do) use different languages - the commonality is the HTTP protocol that client and server use to communicate.
Given all this, why have you taken a java applet and converted it to PHP? What was the aim? Why did the java applet not work as it stood?
NuttingCDEF
7-May-11 7:29am
View
Sorry, I'm still failing to understand what you are trying to achieve. Why do you want to put PHP in?
NuttingCDEF
7-May-11 7:25am
View
I suspect that Ankur may have been posting his comment simultaneously with you posting the error details - and then realised what had happened (see his reply to OriginalGriff's comment) - such are the perils of collaborative real time working :-)
NuttingCDEF
7-May-11 7:21am
View
Compiler error or runtime error?
NuttingCDEF
7-May-11 7:08am
View
Can you clarify what you mean?
Do you mean that (at least for this part of your project) you want to use PHP as a client to connect to a web site that was built using ASP.NET / C#, retrieve a page from that site and do something with it in your PHP code?
If so, it's just like retrieving a page from any other web site - the fact that it was built using ASP.NET / C# is irrelevant. All your PHO client will see is the HTML that is rendered (or any other file type you've requested - so you might need to look at HTTP headers / mime type to interpret the data that comes back appropriately).
If not, what are you trying to do?
NuttingCDEF
7-May-11 6:59am
View
Agreed - why do people think that if they ask a question and don't like or don't understand the answer that they'll get a different answer by asking the same question again?
Without any code / more information from the questioner, this feels like it's just a guessing game.
NuttingCDEF
7-May-11 6:54am
View
Or even . . .
http://lmgtfy.com/?q=Request+for+the+permission+of+type+%27System.Net.Mail.SmtpPermission%2C+System%2C+Version%3D2.0.0.0%2C+Culture%3Dneutral%2C+PublicKeyToken%3Db77a5c561934e089%27+failed
NuttingCDEF
7-May-11 6:48am
View
Without some sample code he's tried we have no idea . . .
NuttingCDEF
7-May-11 6:48am
View
If you posted some of your code and gave a clue about what database structure you've used it might help someone make some helpful suggestions about how to solve your problem.
NuttingCDEF
7-May-11 6:46am
View
Question edited to remove email address. When someone responds to this on CP you should get a notification - no need to publicise your email address to all the world's spammers! Note also that all responses will go via CP - as that way everyone benefits, not just you.
NuttingCDEF
7-May-11 6:32am
View
So which fields are you also including in your result set that means the records you see are distinct? What other fields do you have in the Students table? If you include the whole record in the results then ANY field that differs between records will prevent Distinct from merging the records.
Are you ***SURE*** the relevant values in your records are distinct? No extra leading / trailing spaces or extra spaces in the middle? Same capitalisation? No spelling errors?
NuttingCDEF
7-May-11 2:44am
View
What server technology are you using? ASP.NET, PHP or what?
What payment method are you using? PayPal, Google Checkout or what?
What do you actually need to send? Email? Download? Streaming? Or what? How big is the ebook data?
What email services do you have? SMTP? Exchange? Or what?
What have you tried so far? What went wrong? Error messages?
NuttingCDEF
7-May-11 2:31am
View
What exactly is the problem? What do you want to know? What's going wrong? What error messages?
NuttingCDEF
7-May-11 2:24am
View
Absolutely - my 5.
NuttingCDEF
6-May-11 12:48pm
View
Start the macro recorder - go to Word - hit Ctrl-End - Stop recorder - look at the code it's recorded.
NuttingCDEF
6-May-11 12:48pm
View
Deleted
Start the macro recorder - go to Word - hit Ctrl-End - Stop recorder - look at the code it's recorded.
NuttingCDEF
6-May-11 6:08am
View
If you need to process 200,000 records at a time - and the size of individual records is such that that number of records takes more memory (physical or virtual) than you have available, you only have 2 options:
1. Add more memory to your hardware / increase the size of the page file (though things may still run slowly with a lot of disk activity as you may end up thrashing the page file), or
2. Redesign your code so that you do not have to hold as many records in memory simultaneously.
Of these, 2. is likely to be preferable. With 1., you will almost certainly hit problems at some point if the database grows / number of records increases - performance will suffer as you have to make more use of the page file and eventually you hit a point where you are back to the out of memory problems.
To clarify one thing - I thought 1 lakh was 100,000 - your comments suggest you are using 1 lakh as 25,000. Can you confirm what you mean by 1 lakh?
You have already stated that you are fetching 1 lakh records from a database of 6-7 lakh. So you are already only fetching a proportion. Can you not subdivide this further? If so, that would almost certainly help.
You have also (I think - but you might want to clarify this) said that due to heavy use of the database you already have to fetch at least 1 lakh of records. This feels wrong - if a databse is large / heavily used surely you want to structure code so that you perform more modest sized queries rather than a few huge ones - the server itself may struggle more if it is having to handle big queries that tie up a lot of server resources while they are running.
In that context you might also consider whether you have appropriate indices / relationships defined in the database so that WHERE / ORDERBY clauses in queries are more efficient and so facilitate optimisation of modest sized queries to improve speed / reduce server load.
I'm not an expert on them, but would be surprised if using Crystal Reports changed any of this very much.
If you need further help, you might usefully post the relevant code so that someone can suggest ways to improve / restructure it.
Hope this helps.
NuttingCDEF
5-May-11 16:43pm
View
Gentle hint - patience is a virtue . . .
NuttingCDEF
5-May-11 16:10pm
View
Am I losing the plot? Or did I see a question pretty much identical to this earlier today?
NuttingCDEF
5-May-11 15:56pm
View
Totally agree - my 5 - so if you need something bigger, you might need a class that looks like a big address space from the outside, but inside stores its data in multiple files of sizes that don't cause addressing problems. Should be a fun one to write!
NuttingCDEF
5-May-11 15:40pm
View
P.S. Is it also worth mentioning:
1. The distinction between symmetric and asymmetric key ciphers and why / when you'd use one rather than the other.
2. That hashes have their uses including how to use / store strong passwords securely and salts.
3. Other cryptographic tools such as signing, certificates and key exchange.
Encryption is an excellent tool, but if you don't know how to use it properly it can give a false sense of security.
NuttingCDEF
5-May-11 15:31pm
View
Good answer - my 5 - and 5 for the others too!
NuttingCDEF
5-May-11 14:42pm
View
Good answer - my 5.
NuttingCDEF
5-May-11 12:47pm
View
What's the problem? Why do you need to worry?
NuttingCDEF
5-May-11 11:48am
View
Agree entirely - my 5.
It's like spreadsheets that don't scale well because you load the entire thing into memory at once - whereas databases are adept at loading only what you need at that instant / processing large volumes of data one chunk at a time rather than in one huge block.
NuttingCDEF
5-May-11 5:17am
View
It feels as though this defeats the point of a CAPTCHA - if the required text can be extracted from what is rendered to the user's browser (e.g. from a hidden field or from the CAPTCHA image) then you lose the protection the CAPTCHA provides.
You need to generate your CAPTCHA text server side, store it server side, generate the image rendered to the user, then on postback compare the text the user entered with what you have stored on the server.
Your web server may be handling multiple concurrent clients, with different text, so you need some way to work out which text is right for each postback.
Inevitably, this means either storing the required text in the user's session - or maybe using a key / value mechanism (key is just an index that can be sent to the user in a hidden field - value is the relevant text) so on postback, use the posted back key to look up what text is expected to compare with the text the user entered. Note that with a key/value mechanism you also need to delete each pair after it has been used (or after a timeout if unused) to avoid replay attacks.
So session or database or some other storage mechanism is required - maybe hold everything in memory if you know you will never have more than a few users.
NuttingCDEF
5-May-11 4:16am
View
Good question! ;-)
NuttingCDEF
5-May-11 3:38am
View
Glad to see that you add comments to your code - but what does "pag meron tong row na to then ok" convey? I've tried Google Translate and it thinks it it's English!
Title looks like a monkey with a typewriter . . .
If you actually have a question / problem - PLEASE tell us what it is - if you don't, there isn't even a faint chance of getting a helpful answer.
NuttingCDEF
4-May-11 18:02pm
View
"Keep the connection open" - agree wholeheartedly! My 5.
NuttingCDEF
4-May-11 16:34pm
View
Good answer - my 5.
My base spec for a boring desktop with WinXP is now 1GB if I don't want it thrashing the page file - 2GB for comfort. And I doubt I'd put Win7 on much less than 4GB. Development environments always seem to need more (even without a VM). 512MB is just too low.
I've just upgraded a few PCs with extra 1GB DDR PC3200 memory at under GBP20 / USD30 each - so long as you know what you are looking for there are some very good deals on eBay! The free Crucial.com memory scanner is also a great help for checking what your PC can take.
Anyone worried about specs might also think about multi-core processors . . .
NuttingCDEF
4-May-11 16:20pm
View
Good method - 5.
NuttingCDEF
4-May-11 16:14pm
View
Agreed - my 5 too.
There might also be an alternative route using Flash - AFAIK Flash can be allowed (by the user) to access webcams - so might also be able to access a scanner similarly - but I'm definitely not a Flash guru so can't really help any further than that!
NuttingCDEF
4-May-11 16:05pm
View
OK, so you'll have something like:
public class MyCritterBrain : ICritterBrain
{
implementation of ICritterBrain members + anything else you need including a MyCritterBrain constructor
}
class SomeClass
{
public void AMethod()
{
Createcritter MyCreatecritter = new Createcritter (); // note that you need to define a Createcritter constructor for this
ICritterBrain[] MyCritterBrains = MyCreatecritter.CreateCritterBrains();
// could put these 2 lines in your implementation of CreateCritterBrains
MyCritterBrains[0] = new MyCritterBrain();
MyCritterBrains[1] = new MyCritterBrain();
MyCritterBrains[0].Name = "Dave";
MyCritterBrains[1].Name = "Jane";
etc.
}
}
NuttingCDEF
4-May-11 16:04pm
View
Deleted
OK, so you'll have something like:
public class MyCritterBrain : ICritterBrain
{
implementation of ICritterBrain members + anything else you need including a MyCritterBrain constructor
}
class SomeClass
{
Createcritter MyCreatecritter = new Createcritter (); // note that you need to define a Createcritter constructor for this
ICritterBrain[] MyCritterBrains = MyCreatecritter.CreateCritterBrains();
// could put these 2 lines in your implementation of CreateCritterBrains
MyCritterBrains[0] = new MyCritterBrain();
MyCritterBrains[1] = new MyCritterBrain();
MyCritterBrains[0].Name = "Dave";
MyCritterBrains[1].Name = "Jane";
etc.
}
NuttingCDEF
4-May-11 15:34pm
View
A few thoughts that might or might not be relevant. Note in particular that I'm much more familiar with C# than VB, so don't accept anything I've said about passing of arguments etc. as gospel without checking it.
1. In the New ThreadWrapper call, you specify 5 parameters - I assume that this is probably a legacy of various code edits, but if not, what effect does it have?
2. See http://www.cryptosys.net/manapi/api_UsingWithDotNet.html - "Alternatively, with C#, you can just include the source code module CryptoSysAPI.cs in your project and there is no need to reference or use the class library DLL." - could you do this to be able to debug at least one layer further into the API - which might give you a clue as to what's going on.
3. ReDim abData1(0) etc. - what effect does the Redim actually have given that you assign to abData1 etc. almost immediately afterwards.
4. If Blowfish.Encrypt returns almost immediately, what does it return and what has it done to abData1 during the call (i.e. before the assignment of the return value to abData1) - maybe assign return value to a new abData4 and then abData1 = abData4?
5. Blowfish.Encrypt takes parameters ByVal (the VB default) as far as I can see - but arrays are reference types, so although you can't change the actual array that the caller's variable references, you can still change individual elements of the array. See http://msdn.microsoft.com/en-us/library/aa903254(v=vs.71).aspx and http://msdn.microsoft.com/en-us/library/t63sy5hs(v=vs.71).aspx. Your Sub takes arrays ByRef though it isn't clear to me why.
6. As it stands I don't see how your code extracts the cipher text produced by the encryption - is this just a result of giving code snippets or is there a real issue here? You assign a return value to abData1 - which previously referred to abData - but the assignment surely just means abData1 refers to the return value and not to abData - it doesn't mean the caller's abData refers to the return value. So unless Blowfish.Encrypt has actually modified the values in the abData1 argument (and hence values in abData) the result won't get passed out anywhere.
NuttingCDEF
4-May-11 13:19pm
View
Long shot - but have you checked the event logs for anything odd?
NuttingCDEF
4-May-11 2:36am
View
Agreed - yes, there is a difference. Anyone care to offer a contrary opinion?
Did you have a question about them? If so, what was it?
NuttingCDEF
4-May-11 1:48am
View
How about some code samples?
NuttingCDEF
3-May-11 17:53pm
View
Any reason why you posted this Q again (rather than perhaps just editing your first post)?
NuttingCDEF
3-May-11 17:10pm
View
Good answer - my 5.
NuttingCDEF
3-May-11 11:40am
View
I think he means a and b are coprime.
NuttingCDEF
3-May-11 11:29am
View
Glad you've got it solved!
NuttingCDEF
3-May-11 10:10am
View
See http://opencv.willowgarage.com/wiki/
I haven't tried doing this, but OpenCV is a "library of programming functions for real time computer vision" and includes stuff (including some fairly sophisticated algorithms) for things like feature detection, object tracking etc., so might well have useful stuff.
I'd guess that a key would be what sort of images you are trying to compare (not the jpeg file format, but what the pictures are actually of) - things like images at different scales, different levels of brightness / contrast or a colour cast, differing resolutions, backgrounds that may need to be filtered out etc. can easily defeat simple algorithms so unless you are looking for extremely close matches I'd expect designing something from the ground up without building on experience of others could be a tough call.
Oh, and OpenCV is open source - free for academic or commercial use.
NuttingCDEF
3-May-11 8:57am
View
Have you looked at OpenCV to see if there is anything there that will do what you want without having to rewrite it?
NuttingCDEF
3-May-11 8:53am
View
Haven't tried it, but if the MAIN window isn't iconic, try using it as a starting point for iteration through windows with the GetNextWindow API - but one thing I don't know is whether this will iterate all top level windows for all processes or whether it will restrict to a single process. So maybe also need to use GetWindowThreadProcessId to check what process owns the window (note the 2nd out parameter that gives the process ID - return value is thread ID).
This all feels very messy for what seems as though it ought to be simple . . .
NuttingCDEF
3-May-11 8:36am
View
IsIconic returns false - so Windows doesn't think it was a minimised window in the first place (see http://msdn.microsoft.com/en-us/library/ms633527(v=vs.85).aspx).
ShowWindow returns 16 - so window was previously visible (see http://msdn.microsoft.com/en-us/library/ms633548(VS.85).aspx).
Can you use Spy++ to check whether the hWnd you have is the right one - restore the window you are after manually and use Spy Find Window to find out what its handle is - then minimise it and then try your app to see what hWnd it is getting. If it's not the same, then the window you are after probably isn't the app's MAIN window, so MainWindowHandle isn't what you want.
I'll see if I can work out an easy way to enumerate top level windows of a process!!!!!
NuttingCDEF
3-May-11 5:23am
View
Agree with both these comments . . . what code? what error? what javascript? what platforms / versions?
NuttingCDEF
3-May-11 5:19am
View
Are you worried about how the text is displayed in the combobox? Or cleaning up the text that you get from the combobox before you use it elsewhere in your application? Or what?
NuttingCDEF
3-May-11 3:03am
View
Yes, if getting enough access to use CASPOL is feasible. But if this is a "website which is hosted in the shared server", it may be that using CASPOL is as impossible as editing the relevant web.config directly. If so, talking to the hosting provider may be the only option.
NuttingCDEF
2-May-11 17:10pm
View
P.S. If all you want to do is get the XFDF served and don't need any other processing, you could still try adding a Mime type to handle it (application/vnd.adobe.xfdf ?) - doesn't explain why the older server works, but might be effective (if a tad quick and dirty)
NuttingCDEF
2-May-11 17:06pm
View
Can you check what ISAPI extensions / filters were installed on the old site. Is there any chance that serving XFDFs relied on a ColdFusion ISAPI component (or any other similar from Adobe)?
A quick google also suggests that ColdFusion / ISAPI / IIS7 may not be plain sailing - see e.g. http://www.codecurry.com/2009/09/installing-coldfusion-on-iis-7.html - not sure where this takes you but it might be worth a look.
NuttingCDEF
2-May-11 16:27pm
View
Can you give an example? What have you tried already? Any error messages / problems encountered?
NuttingCDEF
2-May-11 16:13pm
View
Client side access to server files I agree entirely that you'll need IIS set up appropriately to get direct access.
I don't know what the ultimate constraints are server side, but in ASP.NET on Windows server I've certainly accessed (read and write) folders outside the web root on the server using physical drive paths server side / in ASP.NET server side code - you definitely need to make sure the Windows account the ASP.NET process is running in has appropriate Windows file access permissions (usual ACL permissions, nothing to do with IIS) to access the relevant files / folders, but subject to that I haven't yet hit any problems.
I've also implemented systems that use this to take request through a .aspx page and use request details to retrieve a file from outside the web root (and definitely not accessible direct by the client) and deliver them via the ASP.NET HTTP response.
We really need to know just what the questioner is trying to achieve.
NuttingCDEF
2-May-11 16:04pm
View
Good answer - my 5.
NuttingCDEF
2-May-11 15:55pm
View
If Firefox, have you installed Firebug?
Are you talking about wanting a client side action (JavaScript?)? Or a postback to ASP.NET / server side action? I'm guessing client side - but it's only a guess - if so, is other javascript stuff working on the client (any site / page - not just yours) - are there any Javascript errors / warnings (use Firebug) - does it work in any other browser?
NuttingCDEF
2-May-11 15:36pm
View
What exactly is the problem? What connection method are you using? Http (built in web client / server classes), AJAX, SOAP, raw sockets or what? What is the structure of the various machines / processes in this? Where does ASP.NET fit in? Is the ASP.NET / IIS host the server or the client in this context?
NuttingCDEF
2-May-11 15:29pm
View
Agreed - I was more making the point that if, like many, Guid was the preferred choice for ID, it might not work.
And yes, if he can't modify the database I totally agree that it may be irrelevant - though from his later 'solutions' it looks as though he may well have to sidestep his database constraint somehow.
NuttingCDEF
2-May-11 15:26pm
View
As far as getting 50 chars down to 10 or 16 using encryption / hashing / compression, that looks like a big OUCH! This looks like the sort of string where there are likely to be way too many possibilities to get there even in theory. If you need to be able to recover all of that string (i.e. can't afford to throw any of it away) you need to step outside your current database constraint - store it on disc, set up your own extra database, discuss the problem with your client / boss / user, change something about the source of the strings / how they are generated . . .
NuttingCDEF
2-May-11 15:19pm
View
Depending on the size of the the space of possible strings to be compressed / distribution of strings in the space, there are theoretical limits to what is possible - e.g. if all possible 50 char strings are equally common/likely and the character set uses all values from 0 to 255 then no compression at all is possible!
NuttingCDEF
2-May-11 15:13pm
View
Encryption - typically doesn't change the size of the string (may even lengthen it slightly depending on padding methods etc.).
Hashing - is, by design, a 1-way process - so to retrieve the original you need to use the hashed value as an index to a separate table.
Compression - which is what solution 3 is about is entirely different (specifically lossless, not lossy, compression if you Google it - i.e. you want to be able to get back exactly what you started with, not just approximately what you started with).
NuttingCDEF
2-May-11 15:06pm
View
Agreed - but 50 chars into 10 (or even 16) is a tough call - under 2 (or under 3) bits per char. You might get there with Huffman / LZ etc. for longer strings, but getting that level of compression on a short string relies on being able to exploit known features of the strings.
NuttingCDEF
2-May-11 15:01pm
View
Good solution (specifically point 3) - my 5.Two things I'd add:
1. Note that normal Guids (which are a common choice for ID values) are 16-byte, so can't easily be fitted into 10 chars - so probably need to use an integer auto-increment field not a Guid.
2. An alternative to a separate table (if your design permits) might be to split the 50 chars into maybe 6 substrings and store the chunks in separate records in your table (add an index character [1 to 6 or 0 to 5] on the front to identify the order of chunks - hence why 5 chunks of 10 chars may not work). If the problem is that you can't change ANYTHING about the database structure (including adding a new table), that might still work.
NuttingCDEF
2-May-11 14:07pm
View
The lines you've quoted are the ONLY place it is likely to be used.
Whenever the compiler includes your a.h file, the first thing it does is check whether A_H is defined (ifndef) - if it isn't the compiler knows a.h has not yet been included in that compilation unit and processes the rest of the file (including defining A_H) - alternatively, if A_H is already defined, the compiler knows that a.h has already been processed so won't process it again - note that the #ifndef will have a corresponding #endif at the end of the file
Other files b.h, c.h etc. (or whatever) will have similar constructs using B_H, C_H etc. to make sure they only get processed once.
This matters because if you have a declaration like:
void myfunc(int myarg);
if the compiler processes it twice it will generate an error because it has seen a duplicate declaration.
It's easy to spot errors where a.h is included twice in the same source file - but if x.c #includes a.h and b.h and b.h also #includes a.h, problems with the double inclusion of a.h can be hard to spot. Using the #ifndef A_H etc., it doesn't matter.
NuttingCDEF
2-May-11 13:46pm
View
I haven't tested this, but clearly this (or some variant using assembly lamguage to manipulate the stack / format string / arguments) might well work. The main questions I have are how dependent is the code on the particular platform / hardware the application is being developed for is this code? Is the questioner targeting an Intel processor or something else? How dependent is this on a particular compiler / configuration (e.g. issues of calling conventions, integer sizes etc.)? What chance is there of interactions with things like compiler optimisations causing problems? To get a practical solution, all these need to be at least considered. A subsidiary question is whether, if the questioner can't adapt the printf line of code to implement a solution along the lines I have suggested, what chance is there of being able to insert a function call instead of a string in that code?
NuttingCDEF
30-Apr-11 8:18am
View
See possible alternative solution using Control.ModifierKeys.
NuttingCDEF
30-Apr-11 7:49am
View
More than happy to learn new tricks!
NuttingCDEF
30-Apr-11 7:13am
View
Presumably the counter is counting down from 100 as expected, just too fast or too slow.
Can you estimate what interval this code is actually firing at? How long does it take for the counter to get from 100 to 0?
Just to check . . . you haven't got any other code that accesses the counter variable? And no other events on the form / any of its controls that have inadvertently been linked to your timer1_Tick method? [search the relevant designer.cs to check?]
NuttingCDEF
30-Apr-11 7:07am
View
I'm not clear what the problem is. Can you post some code or an example of what you're getting / what you want / what's going wrong?
NuttingCDEF
30-Apr-11 6:51am
View
Not fired at all? Not fired at the right time - if so, wrong by how big an interval / how accurate do you need it?
Just in case . . . have you specified the interval in milliseconds (not seconds or any other time unit)
NuttingCDEF
29-Apr-11 17:44pm
View
I don't claim to know all the ins and outs of this, but if I look at the application log on my XP PC, there are entries with sources such as "gusvc" and "gupdate1c9a86db35d22a4" - but these don't exist as keys in HKLM\\SYSTEM\\CurrentControlSet\\services\\eventlog\\Application - though they do exist as keys in HKLM\\SYSTEM\\CurrentControlSet\\services, i.e. outside the eventlog key. Keys for sources like MSSQL$EXPRESS exist in both these locations. Others such as "SecurityCenter" exist only in "HKLM\\SYSTEM\\CurrentControlSet\\services\\eventlog\\Application".
Not sure how much this helps, but identifying the source with a registry key evidently isn't quite straightforward.
NuttingCDEF
28-Apr-11 9:08am
View
Why not store all 3 amounts (unit, dealvalue and quantity), then, once they have been initially determined (by a trading system or whatever?) and rounded to the respective precisions required you never need to convert them at all?
So if unit and dealvalue are the starting point, store them, work out quantity and store that too. Thereafter, no more arithmetic.
Or maybe discuss with your user where these requirements come from, whether they understand the implications and how they want you to handle it.
NuttingCDEF
28-Apr-11 9:03am
View
So:
(a) You need to know what precision you need to get back to
(b) You must not round the intermediate result too far or you won't be able to get back
If you NEED an intermediate result that is presented to some specific accuracy, you need to use both the rounded and unrounded intermediate values - one for presentation, the other to have a route back to your starting point. See my final 'e.g.'
NuttingCDEF
28-Apr-11 8:44am
View
See other solution "first rounding needs to have a precision of at least 1 digit greater than the reverse rounding" - agreed - my last section is effectively saying something similar.
NuttingCDEF
28-Apr-11 7:21am
View
Probably need to handle the TextChanged events (fired whenever text changes, not just when focus moves away from the control). This works for pasting text / deleting text with the mouse / context menus as well as keystrokes.
I frequently write a single method UpdateControls that gets called any time any text or anything else changes in a form that updates button states etc. depending on current control values (so check for your pretext as well as blanks). Just watch that you make it lightweight as otherwise the user interface might get quite sluggish.
NuttingCDEF
28-Apr-11 7:09am
View
If this solves the problem and you want to keep the service running, double-click it and set the startup type to Automatic rather than Manual.
NuttingCDEF
28-Apr-11 7:07am
View
First can I check the basics - you definitely do want to use the StateServer mode for handling session state, rather than InProc (the default) or any other mode. The obvious reasons for not using InProc are if you want to maintain session state even if the web server process is reset or restarted, you need to maintain session state for large number of concurrent sessions or if you have multiple servers that need to share session state. What session state handling behaviour are you trying to achieve?
Second, your web.config entry already has the server set to '127.0.0.1', so that part of the error message shouldn't be a problem.
Third, there is an extra space after stateConnectionString - I haven't tested it, but it is conceivable that that might cause the problem.
Fourth, what have you done to check that the ASP.NET state service is installed and running on your web server?
See also http://msdn.microsoft.com/en-us/library/ms178586.aspx for details of session state options in ASP.NET
NuttingCDEF
28-Apr-11 3:20am
View
OK, I'm not familiar with fck editor, but 2 suggestions:
1. How does the content get from the database to a rendered web page? Is there any option for adding class definitions to a DIV tag (or anything else) that wraps a block of content when it is rendered to the web page? I.e. so this is done once by the web designer only. If so, a CSS selector like:
.MyWrapper td
{
...
}
may help.
2. Analyse the resulting HTML and use very specific CSS selectors to identify the menu elements and apply styles to them.
For either of these note that if 2 separate CSS style definitions apply (i.e. CSS selectors for both styles apply to that HTML element) and the elements of the styles conflict, the later of the conflicting elements in the CSS files will override the other.
If you want more help / useful examples, suggest you get hold of the full body tag of a rendered page, edit it down to a menu and a chunk of content (but retaining the full nesting sequence of elements from body tag down to the menu / content) and post it back here.
NuttingCDEF
26-Apr-11 16:36pm
View
Agreed - and might add some stuff in to your class to handle the Word App object intelligently so that you aren't forever starting up / shutting down Word (and killing your app's performance in the process).
NuttingCDEF
26-Apr-11 16:04pm
View
Agreed that you can achieve things through Reflection that may be impossible in other ways, but, as you imply, that seems like overkill for what should be a relatively straightforward coding problem.
But note that a private (or protected) class still won't wash (nested classes apart) - e.g. VS2010 gives compilation error "Elements defined in a namespace cannot be explicitly declared as private, protected, or protected internal"
NuttingCDEF
26-Apr-11 8:44am
View
VLC has plenty of command line options that I would expect to be sufficient to get it to play from any source, including streaming data - though that probably won't get the pause / rewind control etc.
NuttingCDEF
26-Apr-11 6:45am
View
From what you say, it sounds as though it should work. Are you sure the Transaction table doesn't participate in any other relationships that could be causing the problem? Exactly what error message do you get? How are you doing the delete? SQL Management Studio, Linq to Sql or what? Are you doing this in a SQL transaction and, if so, is there anything else going on in the transaction that could be an issue? Can you dump some SQL CREATE code for your tables / relationships that we could look at?
NuttingCDEF
26-Apr-11 6:20am
View
As posed, this seems too trivial - so long as you spend all your money, surely any combination of players will do. Unless there is something missing from the description, does it really need a program? Or is it a question to test whether a candidate can write code at all (in the same vein as fizzbuzz style questions)?
NuttingCDEF
26-Apr-11 6:00am
View
See http://lmgtfy.com/?q=ssl+ev+certificate
Or go to whoever you use for web hosting.
Check EXACTLY what type of certificate you're being offered, EXACTLY what it will deliver, what conditions / requirements the issuer imposes, what it will cost you and what your web hosting service needs to install it (i.e. will / can they accept what you are being sold).
And be ready with your credit card.
NuttingCDEF
26-Apr-11 5:42am
View
Can you be more specific about what you are after / what you've done so far?
Is this about trying to write code that will handle integer / floating point values that will cope with arbitrarily large numbers (beyond the range of standard C data types) / arbitrarily high precision - e.g. you might want to be able to manipulate 1,024 or greater bit integers.
What have you checked? What is working?
NuttingCDEF
26-Apr-11 5:34am
View
6. You are writing to files something like 0.bin, 1.bin, . . . 1023.bin. Before you start, do all these files exist? Or only some of them? Or none? Presumably any that don't already exist are created by your code. Which ones are corrupted when you write to them? The ones that already existed? The ones that are newly created? Some mixture of existing / new? All the files?
4. Are you saying that when writing each single file, the data in that one file should just be an increasing sequence of values - but sometimes it jumps unexpectedly. Is that within a single cycle of writing to each file? Or are you cycling through the set of files multiple times with the corruption happening at the boundary between cycles?
5. Can you get a bit more info on when you get corruption, which files it affects (e.g. 0.bin to 99.bin OK, but 100.bin to 1023.bin corrupted)? Which file does the corruption start at? Or looking at the files in sequence are the corrupted ones mixed up with the good ones?
NuttingCDEF
3-Mar-11 4:20am
View
Code now updated to remove everything that isn't directly related to the WIA stuff (including removing all the try/catches etc.). But note that the problem is not that the code never works, but that their are fairly common driver exceptions.
Update Drivers usually works (so long as there have been no previous errors since the PC was last rebooted), Update Formats often works, TakePhoto sometimes works (and when it does will often work many times - 100s - without an error but can then still fall over). Errors that I've seen have been at Connect and ExecuteCommand.
To answer Dave Kreskowiak's query, yes, as far as I am aware the drivers are the latest. This was only installed a couple of months ago, all updates available from Logitech that I can find are installed (Logitech Updater in the Quickcam software says everything is up to date) and there are no outstanding updates available from Microsoft Update.
Many thanks, David
Show More