topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Tuesday April 23, 2024, 10:08 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Stoic Joker [ switch to compact view ]

Pages: prev1 ... 232 233 234 235 236 [237] 238 239 240 241 242 ... 245next
5901
General Software Discussion / Re: WINDOWS 7 THREAD (ongoing)
« on: April 28, 2009, 10:33 PM »
It's a damn good idea in my opinion - if this virtual compatibility layer approach is developed properly it should mean that all legacy support in the native Windows can be dropped so that anything running natively can benefit from a leaner and faster operating system.

Provided the compatibility layer only loads when required it would be a huge incentive for legacy developers to update their code to native status which would be fantastic for end users in the long run.
-Carol Haynes (April 27, 2009, 02:51 PM)

Actually from what I've been reading, it loads completely transparently. A Google search on "Windows XP Mode" will yield a tone of newly released info. but the highlights are:
Free XP license with Business, Ultimate, & Enterprise editions.
Based on VPC7, and has no independent desktop, so apps installed in XP Mode are available and run directly on the Win7 desktop.
Yes their objective with it is to run in the direction you're thinking.

The hang point with Vista was enterprise level customers with legacy apps that were $3,000+ per seat to upgrade if available not wanting to take the "hit" simply stayed with XP. This will give them the best of both worlds and hopefully get them to jump on Win7.

I've never seen an accounting app that needed much from the GPU, so I doubt that will be a concern.

5902
While I've always likes/used Windows Defender, it decided to trigger on Angry IP Scanner this morning ... Which its never done before. Whitelisting it was simple enough, but the fact that I had to speaks to a rather alarming trend by the AV types of blindly triggering on anything that has "potential" for misuse.

At any rate (Not to side track the thread) there is an online petition to the AV companies to whitelist the Angry IP Scanner located here http://www.petitiono...ngryip/petition.html for anyone interested.

Carol I know you're mad at WD but the problem seems to be a larger industry wide issue with FP's spiraling out of control as the AV companies fight with the fact that the 80/20 rule works better then they do ... and trying to protect (the masses) people from themselves is impossible (and foolish).

5903
Developer's Corner / Re: Socket Handle Leak Issue
« on: April 26, 2009, 10:35 AM »
Correction Step 2 is also causing issues. I had at one point thought it was an issue with my threading model, so I found a tutorial (with code samples) that showed a different ("Correct"er?) method of thread handling. I plugged my code into it in a piece by piece manner to see when/which part/if the error could be reproduced.

Unfortunately, the only thing this proved, was that my threading modle was fine... *sigh* But here are the relevent parts of the connection (Step 2) test that are causing the oprhand handle issue. Each time the code fires, the programs handle count (bizzarly)increases by one.

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
int isSocWriteable(SOCKET s) { //======================================================================
struct timeval Timeout;
fd_set writefds;
int iResult;

  writefds.fd_count = 1;
  writefds.fd_array[0] = s;    //====================== No Time to Loiter...
  Timeout.tv_usec = 42000; //(dwMIN_Reply * 1000); //========== This is Measured in Microseconds!
  Timeout.tv_sec = 0; // ^^^ Current Default is 62 Milliseconds (or 62000 Microseconds).
  iResult = select(1, NULL, &writefds, NULL, &Timeout); //========== Get the Results...
return(iResult); //========================================== ...Return the Results.
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

///////////////////////////////////////////////
// PortScannerWindow::goScan
///////////////////////////////////////////////

BOOL PortScannerWindow::goScan() {

SOCKET lhSocket; // Our socket
    SOCKADDR_IN lSockAddr; // The SOCKADDR_IN structure containing IP and port info
    WSADATA wsaData; // WinSock config data structure

    int lConnect; // Connection status flag

int StartPort;
int EndPort;
char* IPAddress;
BOOL bSuccess; // Success flag needed for GetDlgItemInt

char* buffer; // Buffer to hold updated info for the text output area
int nTxtLen;

// Get IP Address, Start Port and End Port
// Remember, we've already validated this input
IPAddress = GrabTextFromEdit(IDE_IPADDRESS);
    StartPort = GetDlgItemInt(m_hWnd,IDE_STARTPORT,&bSuccess,FALSE);
EndPort   = GetDlgItemInt(m_hWnd,IDE_ENDPORT,  &bSuccess,FALSE);

// Initialize WinSock
if(WSAStartup(MAKEWORD(2,0),&wsaData) != 0)
    {
        MessageBox(m_hWnd, "Socket Initialization Error.", "Socket Error",
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}

// Allocate space for text output
buffer = (char*)malloc(100*sizeof(char));

// Loop through from StartPort to EndPort
for (int i=StartPort;i<=EndPort;i++) {

// Initialize Socket
    lhSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    if(lhSocket == INVALID_SOCKET)
    {
         MessageBox(m_hWnd, "Invalid Socket.", "Socket Error",
MB_OK | MB_ICONEXCLAMATION);
    }

  linger ls = {1, 0}; //= ABSOLUTELY NO LOITERING - Get the Answer & Slam the ***
  setsockopt(lhSocket, SOL_SOCKET, SO_LINGER, (LPSTR)&ls, sizeof(ls)); // Door Shut! ***

// Zero out SOCKADDR_IN structure
memset(&lSockAddr,0, sizeof(lSockAddr));

// Fill SOCKADDR_IN structure
lSockAddr.sin_family = AF_INET;
lSockAddr.sin_port = htons(i);
lSockAddr.sin_addr.s_addr = inet_addr(IPAddress);


/*------------------------------------------------------------->
  Set Socket I/O mode: In this case FIONBIO Enables or Disables
  the Sockets Blocking Mode Based on the Numeric Value of iMode.
  If iMode != 0, non-blocking mode is enabled.
  If iMode = 0, blocking is enabled;
<-------------------------------------------------------------*/
int iMode = 1; //====== Set Socket to NON-Blocking Mode During Connection so it
ioctlsocket(lhSocket, FIONBIO, (u_long FAR*) &iMode); // Doesn't Hold Up the Show...

// Attempt connect
lConnect = connect(lhSocket,(SOCKADDR *)&lSockAddr,sizeof(SOCKADDR_IN));

iMode = 0; //============== Switch Socket to Blocking Mode to Verify it is Writeable.
ioctlsocket(lhSocket, FIONBIO, (u_long FAR*) &iMode); //====== Socket is in Blocking Mode.

//============ Make or Break Point for Primary Question; IS Spooler Port 515 Active?!?
    if(!isSocWriteable(lhSocket))  //==================== IF it Has a Spooler, It IS a Printer!

// if(lConnect != 0)
// On connect failure:
{
// Output result of this scan
sprintf_s(buffer, 64, "%s:%d - Closed\r\n",IPAddress,i);
nTxtLen = GetWindowTextLength(GetDlgItem(m_hWnd,IDT_OUTPUT));
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_SETSEL, nTxtLen, nTxtLen); // move caret to end
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_REPLACESEL, 0, (LPARAM)buffer); // append text
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_SCROLLCARET, 0, 0); // scroll to caret
} else {
// On connect success:
// Output result of this scan
sprintf_s(buffer, 64, "%s:%d - Open\r\n",IPAddress,i);
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_SETSEL, -1, -1); // move caret to end
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_REPLACESEL, 0, (LPARAM)buffer); // append text
SendMessage(GetDlgItem(m_hWnd,IDT_OUTPUT), EM_SCROLLCARET, 0, 0); // scroll to caret
}
shutdown(lhSocket, 0x02); // 0x02 = SD_BOTH
closesocket(lhSocket);
}

// shutdown(lhSocket, 0x02); // 0x02 = SD_BOTH
  CloseHandle((void *)lhSocket);
  WSACleanup();  //=== Tell WinSock it's Time to Pick-up it's Toys and Go Home.
return TRUE;
}

Note: the top function (isSocWritable()) is entirely mine, the bottom function (has been modified to include the relevant problem child code) is from the LinkSixteen port scanner code which came from StromCode.com's Win32 Turtorial part 8. Which I'm using as a test framework (to avoid getting fired for posting propritery code from the actual application in question :))

The production code outputs to a ListView control & has much more error checking (which is excluded for clarity).

5904
Developer's Corner / Re: Socket Handle Leak Issue
« on: April 25, 2009, 09:29 PM »
Hm... That's hard to do without posting the code ... but I'll give it a shot.

There's 3 steps to the scan:
1. Raw Socket ICMP to see if the address is "live".
2. connect(...) to port X to see if target is what we want.
3. SNMP collection of relevent info.

Step 3 seems to be fine.

Step 2 toggles non-blocking & blocking arround connect(...) to let select(...) decide if target is a "go".

Step 1 (in the gutted version of the code I'm using for test) seems to be my problem child. I'm using sendto(...) (for speed) to "blindly" toss an empty (payload-less) packet "shell" up the wire, and then letting select(...) control an adjustable "clock" for the pass/fail/next decision. If a reply is returned recvfrom(...) is used to extract the timestamp so it can verify that the target is replying, and is not just a phantom response from the stack saying "Reply from self...target is down". Usually seen when pinging from Vista, LM answers for the down'd target, but the reply time is 10,000+ ms.

Structures for the packet header are all just basic by-the-book stuff.

Let me know if you ned more info, I can post a snippet or two if need be.

Thank you,
Stoic Joker

5905
Developer's Corner / Socket Handle Leak Issue
« on: April 25, 2009, 04:28 PM »
Greetings
   Just to get a few thing out of the way:
1. Yes I am working on a network scanner.
2. No it does not have any malicious intent, it's for the company I work for.
3. I'm working in pure Win32 API C++, so no MFC, .NET, VB runtime crap.

So... Here's what I got.

Code goes out & finds a certain type of device on the network, then collects information about the devices found for display to user (Standard fair for a network scanner). But, If I run the collection routine in a loop to keep the info up to date, I get an ever increasing number of "orphaned" handles, that I never created. This also happens if I only run the scan once, but the impact isn't nearly as damning.

Socket is opened and cleanly closed for each target. But the non-responsive (only...) targets leave a lingering handle (\device\afd in process explorer) that I can not access, identify, or kill.

Note: These "Handles" persist even after the scanning thread is closed.


Any Ideas on how to identify/find, close, free, kill these orphande handles???

5906
Most people are probably aware of it, but you can always get a very recent version of Gooogle Chrome from which all the auto-update and call-home-to-mama-google features have been surgically removed. Works great for me and it is my standard browser for the laptop (since the UI is so space saving)- even online banking is no problem.
The tamed chrome version is SRWare Iron:   
http://www.srware.ne...ware_srware_iron.php
I've always found this (and similar projects) a bit ironic.  "Don't trust Google? Well try this version from someone you know even less about!"

It's great that Chrome is OSS and thus the community can fork it however they please, but as a user I don't feel any more comfortable.  I don't have the time to diff the source and ensure they're removing evil and not adding some of their own, and with there being multiple forks (and growing) it's rough for any of them to develop much of a community.

(I'm not targeting SRWare in particular, but all of the Chrome forks that claim to be less evil.)
So... do you apply the same reasoning to *nix and therefore not trust it either? ...Sooner or later you have to trust someone, even if it is just yourself.

I don't trust Google, becaust I don't trust Google. Sure the have a great search engine, and that's all fine and dandy. But I've yet to see any of their software that didn't have a noticable negitive impact on the machine it ran on.

I spend a lot of time dealing with client machines, some business, some home use. All seem to exibit the same (complaint/resolution) problems in regard to Google's software. If the Shell is dragging, uninstall Google Desktop, & Problem vanishes. Browser Dragging, Uninstall Google Toolbar, problem vanishes. I seen this pattern repete over and over again to the point that it is now a reflex.

Simply put, if I need a slew of benchmarking utilities to measure the impact that any given piece of software has on my machine ... Then I don't care what the impact is. However, if a given piece of software effects the machine to a point that is noticable during average use (especially by an average user) ... then that gets my full undivided attention. Google's software consistently draws the same level of negative attention hence there is no way in hell I'm going to waste my time futzing around with their ("Let's all Go Compute in a Cloud" oriented) browser.

SRWare I've never heard of, which (for this) is good as they haven't annoyed me (Google has) ... So I'm willing to take some time to experiment with their browser. It's been on my to-do list for a month or so, I just haven't had time. But my general impression of them so far is good.

 ...The enemy of my enemy is my friend ... meh, could be... ;)

5907
The only other company (i can think of) that uses a fully automatic (forced) update system is AOL. Google needs to have a really good look at that one simple point, learn from AOL's mistake, and then start giving people options.

AOL has managed to repeatedly hose large numbers of their own clientèle by forcing out patches that (Um...) didn't work exactly the same in all environments. I'll wager that it's only a matter of time before Chrome spits out a not quite fully tested patch and manages to flame-out a large portion of their user-base too.

Frankly, I don't give a damn what they do ... I'm still not going to use their browser. I just thought it would be fun to lump them in with AOL. :)

5908
http://www.google.co...e=utf-8&oe=utf-8
Chantix?!? What a load of crap ... (Rather high Suicide rate as a "Side Effect") ... If you do the math in their commercials your chances of survival are better playing Russian Roulette than taking their product.

I've smoked for almost 30 years, and I think I'll just continue ... as it appears to be "^^^safer^^^" that way.

5909
Living Room / Re: Conficker - The Facts
« on: April 03, 2009, 07:25 AM »
Why is it not foolproof? IMO that's a much easier way for users to detect to Conficker than attempting to download a tool from a site that Conficker blocks.

I nearly hit the roof at work this morning when we got an email from the higher-ups about Conficker, suggesting that if you believe you're infected you download a cleaning utility from Microsoft or Symantec, both of which are blocked by Conficker. Would common sense not tell you to have users check for infection by attemping to access, say, microsoft.com and then if they have issues, provide a URL that Conficker doesn't block from which to download your removal tool. What the hell is wrong with these people?

Ehtyar.

You think that's bad...? ...Symantec had a big banner on their main page yesterday morning that said "Not sure if you're infected with the April 1st bug? For more information click here".

What more information?!? ... (I'm guessing lame sales pitch/I never checked) ... How about just saying "If you can read this you are ok."? It would make more sense, now wouldn't it?

5910
Living Room / Re: Conficker - The Facts
« on: April 01, 2009, 09:26 AM »
This is a classic example of why the 80/20 Rule of Information Security works. ...And throwing (away) mountains of cash on system resource hogging "Baby-Sitter) security applications doesn't.

I have never had to do a major cleanup on a network where A. (80/20) was inforced and B. (baby-Sitter) was ignored. Now, I'm not advocation that folks run without AV, I'm just point to an all to commonly repeating pattern where most (if not all) of this could have been avoided if people just took a few minutes outa their day to do something that's completely free.

5911
Living Room / Re: BIOS Level malware attack
« on: March 31, 2009, 05:23 AM »
I'm not so sure ... If the backup BIOS is accessed with a jumper, then true the bugg has no change to jump in. but if the backup BIOS is acessed via hotkey then the bugg has time to load while the keyboard is being found.

At least that's the impression I got from one of the articles from your link.

5912
Living Room / Re: BIOS Level malware attack
« on: March 28, 2009, 10:13 PM »
... (except of course on motherboards where the flashrom chip can be removed from the motherboard - most seem to be directly soldered on, though).

And any motherboard that has dual BIOS chips since the 'backup' BIOS is generally non-writable, (well, at least on the Gigabyte boards), so you can always cross-flash the normal boot BIOS back into the hacked BIOS.

IIRC, the Gigabyte boards also default back to the non-writable BIOS if something out-of-ordinary is detected in the default boot BIOS, (I'll have to read my manual a bit more I think).
Not quite, because you still have to boot the afflicted Mboard to perform the flash. In which case the "Bugg" can simply block the overwrite of its own block. The creators of the expliot referred to this "feature" as being trivial to implement.

5913
Living Room / Re: BIOS Level malware attack
« on: March 28, 2009, 01:24 PM »
Any chance locking BIOS flashing either through a setting or a jumper on the motherboard would make things safer or is that really just a superficial lock?
The "spin" that most of the researchers seemed to put on it implied that that would be a good start ... but it didn't eliminate the isue of other hardware items being targeted.

I'm not intimately familliar with the low lever archetecture stuff ... but I can follow the conversation, and the upshot is that everybody was so busy trying to defend the OS that the box it ran on was completely ignored ... until now. ...Which kinda makes for an "Oh Shit" ripple effect. ...Best I can tell.

Looks like this thing has been brewing since 03.

5914
Living Room / Re: BIOS Level malware attack
« on: March 28, 2009, 11:04 AM »
Found this while polking through the information above. It's a group of papers from older hacking conferences that (somewhat) outline the history of this attack vector.

@f0dder - From what I was reading, if you start early enough in the BIOS execution, they (pretty much) all start in the same place, so it doesn't really need to be that BIOS specific. (e.g. The initial "launch" is very one size fits all...)


From the Persistant BIOS Infection paper:
- The first instruction executed by the CPU is a 16 byte opcode located at F000:FFF0

- The Bootblock POST (Power On Self Test) initialization routine is executed.

- Decompression routine is called and every module is executed.

- Initializes PCI ROMs.

- Loads bootloader from hard-disk and executes it.

5915
General Software Discussion / Re: Recommend Vista CD Burner
« on: March 28, 2009, 10:15 AM »
I used CDR-Win for years, but it wasn't cooperating real well back when I made the switch to x64. Someone on a forum mentioned ImgBurn & I've used it ever since. ImgBurn does everything I want it to do and is small, fast, and is easy to use. I don't care about multisession disks as they tend to be speed sensitive, unstable, pains in the neck unless you're only planning to use them on the machine they were burned on.


5916
General Software Discussion / Re: 64 bit Vista
« on: March 27, 2009, 07:06 AM »
Along the lines of what f0dder just said (I was thinking 16bit installer issue also) you can try doing a Rip-Over. Just install the prog on a (preferably clean) x86 machine, and then copy the program's install folder over to the x64 box.

If the main executable runs at all (e.g. doesn't throw a "eek I'm 16bit error") you should be able to piece the rest of it together. Some run just fine as is, and some require chasing down a .dll or two from system files to get it going. Any dlls that have to be tracked down should be copied to the programs install folder, not the windows system folders (keeps'em portable, and prevents conflicts with other apps).

Also it doesn't hurt to grab the program's main registry keys in case they contain something it needs to start.

5917
Living Room / Re: Building a Quiet PC
« on: March 22, 2009, 10:16 AM »
I'm running an Asus Commando Mboard (with a passively cooled chipset) in an  Antec 900 case. The case fans have individual speed controls allowing me to have all of them running slowly and whisper quiet ...

sounds great -
but do those fans have lights on them :tellme:
- that would be worse than a noisy case to me ! :)
ROFL ...(is it a computer or a christmas tree?) That is annoying as hell isn't it.

My tower sits under the desk so I can't see the lights and thery're really not that bright. But if you tend to work in a dark room (I do) and it sat on the desk I can definately see it as having tendancy to draw the eye. This wound only be an issue if it was sitting on your right side as there is only a left side window and the front lights have such a low viewing angle you almost have to be viewing it head on to see them.

I'm reasonable sure they can be disabled/removed but it never bothered me enough to delve into...and I've actually come to depend on them as a "Light Meter" for how much dust is on the grill (dim light = clean me).

5918
Developer's Corner / Re: Frustration with User Feedback
« on: March 21, 2009, 08:28 AM »
Um... *Sigh* ...The point of my post was to try and assist the OP by sharing my own experience, not hijack the thread for advertizement. But yes it does require the dll, as ShellHooking (which it uses) can not be done from within an exe (odd but understandable security limitation).

5919
Developer's Corner / Re: Frustration with User Feedback
« on: March 20, 2009, 04:08 PM »
I gota go with Target's earlier premise that most folk only speakup if there is a problem (e.g. No news is good news)

From my own experience with T-Clock and poking through the logs.
It has been downloaded approx 60,000 - 80,000 times
Out of those downloads 24,000+ visitors have been to the T-Clock page of my site
Approx 18,000 - 20,000 of those were unique IPs (so some repeat business looking updates as it's a single page)

Out of those numbers I've received only about 100 emails most of which were suggestions for new features or complaints about removed features.

Out of those numbers, less than 5 people engaged in further conversation beyond my initial response.

Only 3 of those requested to be notified of new releases.

Bottom line:
Out of close to 80,000 people that downloaded my 64-bit resurection of a cult classic program, less than 10 Emailed me specifically to say atta-boy/thank you!

Am I bitter? Hell no! that's just life ... I do it because I love doing it ... other wise I go do something else.

No feedback, is feedback ... other wise they'd be complaining like mad ;)

5920
I sound like a broken watch but registry cleaners are pointless and dangerous. So you have a few out of date entries knocking about (so what) and you probably have hundreds of unused entries installed by common applications such as Windows and Office (to name only two) that deliberately insert empty registry keys that are only filled when you download a particular plugin or what ever.

Just because you don't perceive immediate problems doesn't mean they don't appear down the line. The main problem is that by the time you have a problem you don't even think to blame the registry cleaner.

I am not saying MS is perfect (I know they are not) but if you have a few minutes to spare try installing in VirtualPC Windows Vista or XP clean install (you don't need to activate it) and an MS Office product. Then run any of the registry cleaners and look at how many 'errors' exist on a newly installed system. Many cleaners will literally find hundreds.

I used to use JV Powertools but gave up after I noticed that in a multiboot system it was 'fixing' registry problems in automatic mode with files on the wrong partition (i.e. a different version of windows altogether).
-Carol Haynes (March 18, 2009, 01:23 PM)
Um... Actually I think it's "broken Record"... :) ...But either way I'll signup to sit with you on the replayed point as I agree completely.

5921
Living Room / Re: Building a Quiet PC
« on: March 20, 2009, 09:29 AM »
I'm running an Asus Commando Mboard (with a passively cooled chipset) in an  Antec 900 case. The case fans have individual speed controls allowing me to have all of them running slowly and whisper quiet.

The almost 7" fan in the top of the case finally address the simple fact that heat rises... (duh!) ...and moves a huge amount of air even at its (silent) slowest setting.

The machine has been running 24/7 for the two years since I built it and still doesn't need dusting (internally). I have wipped a bit of buildup off the front grill two or three times, but the internals look fine due the the CPU having an auto fan speed control and the rest being a high volume of slow moving air.

5922
Living Room / Re: Why I Avoid Apple Products
« on: February 20, 2009, 06:28 PM »
I just feel that iPods and iPhones have become a cultish phenomenon which rather belie common sense. I cannot understand why the iPod has become ubiquitous when other media players have equal functions, equal quality in construction and sound, are cheaper to purchase and have replaceable batteries and yet struggle to sell.
Just think fashion accessory/status symbol ... and you've answered your own question. :)

I want my phone, to be a phone, nothing more nothing less. I don't need it to make a statement about me...thats what the attitude I've been carefully cultivating for 44 years is for.

...I cringe at the insanely placed Apple logo's on TV also.

5923
And on the other side of the coin...

(As a comparison) How many times has any systems been penetrated/crashed because of .txt file misuse?!?

PDF Stands for Portable Document Format, it supposed to be read & editable on any platform (Hence the portable part). That's all it was supposed to be, and it should have stayed that way. It was generally never a problem, until Adobe decided to try and make it all things to all people for all reasons. Which was stupid. It's turned into a multidimensional "display" vortex that will suck-up and run anything anyone cares to embed in it ... and it's the anything part that's biting us in the ass now.

You can not put that much potential in one application with out taking some responsibility for what might happen. It was only supposed to be a document reader ... now its turned into the elbbubmug that ate Chicago.

I'm all for boycotting Acrobat, and the nightmare that flash has turned into until they nail the damn things down (/shut) so they quit causing problems that never should have existed in the first place.

Hay nobody had a problem riding Microsoft's ass when Word or Excel had/caused/came up with holes ... why should Adobe get a free pass for making a huge mess.

5924
General Software Discussion / Re: What's your mouse of choice?
« on: February 20, 2009, 05:16 PM »
I like the basic Microsoft USB optical mice.  They feel great in my hand, seem to last forever, and don't cost very much.
Me too, two buttons & a wheel are enough for something I gota operate with my right hand (I'm left handed).

5925
Me I don't mind the swearing at all, actually if you compare the video's dialog to the dialog of an average person when trying to cope with the techno-babble contained in most translated 5 time into 8 different languages electronic device's "documentation" ... I'd say the video was spot on.

I haven't laughed that hard all week.

Pages: prev1 ... 232 233 234 235 236 [237] 238 239 240 241 242 ... 245next