OK question: what's wrong with this picture?  See comments for the answer!
The Sony S1 and S2 keys on my new Vaio SZ61WN are the most useless keys ever invented. The software that comes with them allows me to do exactly NOTHING in addition to what the rest of the keyboard already offers.
Let's see (from the useless app that is required for the keys to work):
Mute: Fn+F2 Sleep: Fn+F12 / close screen Hibernate: Power Max brightness: Fn+F6 External display/multiple monitors: Fn+F7 VAIO Help and support centre: WTF??? VAIO status monitor: Start+etc (ok a handful of keystrokes) Launch application: Win+R works pretty well
This must have been done in the last 3 minutes before the sign-off or something, this is the most unimaginative and useless list of "utilities" ever invented. What's MOST annoying though is that it does NOT offer to act as keys that are actually not available, such as Play/pause or Prev/Next or the middle mouse button for Pete's sake.
It's a nice laptop otherwise (well I'm overlooking the extremely stupid software-based switch between headphones and speakers which causes music players to fall over the moment you unplug the headphones - as if you pulled the sound card out!)
How hard can it be to remember the positions of some items that the user can rearrange? Must be impossible at Microsoft. The desktop icons continue to get relocated randomly, ever since about 10 years ago and still in Vista.
The new Gadgets thingy must have been developed by the very same person because it also likes to randomly shuffle the gadgets around.
Seriously, how hard can it be to keep the bastards in place? Fri, Dec. 28th, 2007, 09:11 pm Unicode...
Another day, another rant... It's quite hard to write non-Unicode programs in C#/.NET but some people do it on purpose, apparently: http://dotnet.jku.at/projects/Prof-It/Downloads.aspxQuote: "Unicode: Prof-It can only scan C#-files whose identifiers don't include Unicode. Only a..z, A..Z and '_' are allowed for identifiers. Unfortunately, C# allows all Unicode signs as identifiers. This would bloat the scanner of Prof-It dramatically. Therefore, Prof-It now only allows the German signs 'Ä', 'ä', 'Ö', 'ö', 'Ü', 'ü' and 'ß' in addition to a..z, A..Z and '_'." Now... What The Fuck?! "Unfortunately, C# allows all Unicode..." - erm, what's so unfortunate about this? "This would bloat the scanner of Prof-It dramatically" - o.O jawdrop HOW? The "string" class is already unicode; how on earth is anything saved by not supporting other characters?... "Therefore, Prof-It now only allows the German signs" - lol now this is just too good! :) I know, my next program will selectively filter out all German characters as a revenge! Sat, Oct. 20th, 2007, 10:23 am
There's no such thing as f*cking "illegal characters" in passwords damnit!!!! When will the world get this?!
To all the websites which disallow !, ', :, etc in the passwords: you suck! Tue, Aug. 28th, 2007, 11:57 pm Mouse glitch
It was really late and I was really tired, but I just had to finish installing some stuff on my freshly formatted drive. I was working from my bed in a pitch-dark room, because someone was already sleeping and she wanted me to be there too. This meant I had to VNC, which is not very convenient but I get to work from my bed! So... I move the mouse to close a window and all of a sudden... OMG... the mouse cursor leaves the screen and floats into the air!....
I thought I was hallucinating... Then I thought I was probably just dreaming... I even considered the remote chance that it actually... but no way, it just couldn't possibly...
The mouse pointer promptly returned. Actually no, I moved it back myself because it freaked me out so bad. That was good - at least I was still in control of it!
Suddenly it dawned upon me - I was VNC'ing! The mouse never floated into the air, it simply left the remote screen and travelled onto the black border surrounding it. Very simple. No wonders or anything. Slightly disappointing... but at least I'm not mad yet! Tue, Aug. 28th, 2007, 11:54 pm Bundled crap
I'm reinstalling various software on my PC; one of them is Skype.
Yesterday I got a new version and this bastard cheated me into installing some extension for Firefox... Just because I didn't pay as much attention as I normally do... argh! And just when I realised what has just happened, the Skype logo appeared with the motto "Take a deep breath". Funny, that was exactly what I was doing - taking a deep breath to stop myself from breaking something of anger. Mon, Mar. 26th, 2007, 09:06 pm Software
Of the things I hate in my everyday life 95% are software. The other 5% are wires but that's another story.
I hate software every day. Every time I use my PC there's always something that sucks. Some programs suck completely, but everything else sucks even more. Others are mostly OK but have that one annoying aspect that really sucks.
But it's not just PC's - no, damnit, I can't get away from sucky software even when I'm not at my PC. I love lots of things about my camera. But there are certain things I really hate in it. Turns out, every single one of those is a software thing. Gaah! My microwave has the most unusable software ever! And now I discover that my R/C charger, which I thought was pretty good, has a really stupid software feature: a Safety Timer.
You see, if you overcharge a battery it may explode. So someone thought it would be nice to cut off the charging process if the end-of-charge detection fails to trigger. OK, fine, I thought - only to discover that the maximum charging time available is 300 minutes, and there's no way to disable the timer. That of course is not one of the things mentioned on the box.
Get it: the charger says it can charge Ni-cad batteries. Mine is Ni-cad. It can charge 1-14 cells; mine is 8. It can charge at 100mA, and that's what mine needs! Except that my battery requires 14 hours of 100mA while the charger stops at 6. So on the shelf my charger is entirely compatible with my battery, but due to a sucky SOFTWARE feature it requires THREE sessions, while any cheapo charger can do this in one go!!!
Many people complain about offline editing of files in Perforce. Few people seem to know of a very simple trick, and I find it strange that in spite of all this negative feedback about offline editing Perforce-the-company do not seem to try to bring people's attention to this very simple sequence:
1. Either remove read-only attribute or just overwrite files at will 2. p4 open ... 3. p4 revert -a
Command 3. will simply revert all files which were not changed. Easy!
I wish Perforce could do true file moves (and renames too, but if it could just simply move a file to a different location *and behave as if it's always been there* that would be enough for me).
Topic as old as computers themselves, can I possibly have anything to add?
Just wanted to mention how much I hate MATLAB for not having a goto nor any other sensible and readable way to break out of multiple nested loops. Anyone who consciously makes the decision not to have gotos must REALLY think about it, and provide other convenient ways for the various goto-based idioms. Matlab doesn't. Perhaps this is just simply because it is so old?...
So I bought this new Fuji F30 camera (which is totally great), I plug it into my computer's USB port and it enumerates as a digital camera. I suppose this is the right thing to do (as opposed to enumerating as a flash drive, like Casio cameras do for example), however the WinXP camera driver sucks! The camera is only visible in the Explorer (and some special photo programs which explicitly support cameras). A "normal" program just simply does not even see the camera and its photos. There is no option to mount the camera's images under a drive letter.
In any case, Explorer itself is also really crap in handling the camera. Can't do 99% of the usual stuff one can do with normal files on normal flash drives. Can't cut. Can't move files back onto the camera. Can't anything! Read/delete, that's it. WTF!!! What's the friggin' point?!
So, I appreciate Fuji trying to do The Right Thing, but actually enumerating as a normal flash drive would have been so much more convenient. Or at least having an option for that in camera's menu :)
P.S. I thoroughly recommend the camera despite all this. It's got almost full manual controls, brilliant low light performance, and is small! Brilliant battery life, too. Of course it uses the stupid xD cards not used by anybody else (other than Olympus)... But if you're after an advanced high-quality yet tiny camera - go for this one!
Everyone who's used both Delphi and Visual Studio 2005 would have noticed one rather annoying behaviour in Visual Studio 2005: Cut & Paste a control quietly forgets about all the events associated with that control. Now this may make sense for Copy & Paste, but doing this totally invisibly for Cut & Paste is totally annoying. E.g.:
- The developer wants to move a fully working, debugged and tested control into a different container (e.g. a panel or something). No functional change is intended.
- He cuts & pastes the control into that container, because that's how he always moves things between containers. This works in any standard Windows app (like Word and Excel, but also Delphi)
- Everything looks fine, the project builds, the developer is happy and forgets about this. There was no functional change after all; only a minor visual restructuring.
- Some time later the developer discovers that the control stopped behaving properly. Buttons don't click, edits don't update the Modified flag, etc.
- The developer must go back (quite far in some cases!) and find all those events that were dropped (10s of them for complex controls).
There is no way for the developer to realise this is going to happen other than by getting caught several times. Even once the developer is aware of this there is no easy way to move such a control into a different container. Baaaad.
Mon, Sep. 4th, 2006, 06:24 pm Excel slowness
I never quite understood why it takes about 10 seconds of HDD thrashing on my very modern PC to do something as basic as bolding a cell in Excel. Granted, it only happens once, but contrary to what the developers probably thought ( it only happens once, that's fine) I do get rather annoyed by this. I can't even imagine why this happens, given that there are already lots of other bolded cells in my workbook. What can it possibly be loading?
I've only been using my sister's iPod for a few hours and already have discovered many flaws bad enough that I'll never buy one of these (at least this particular model - the 30 GB video iPod). It's amazing that the product is so great on the outside that I actually really wanted one of these, but a few things are just too bad to be acceptable. Here's my list (only a few hours' use, remember!)
- Cannot listen while charging from USB - this one is an absolutely unexplainable limitation
- When you connect it via USB you get a new drive letter - this is normal. However you cannot just simply copy files to it, unlike every other MP3 player in the world. Instead you have to use some special software, which is crap enough in itself, but moreover, every single program I've tried sucks. The bloody iTunes (95% of which I don't even want!) couldn't copy a movie (which was in the RIGHT format!), only MediaMonkey plugin managed to do this... Can't I just copy my movies, photos, songs onto it and be done with it?...
- No mains charger comes with it, and a separate one costs an unbelievable price. No, really. It was £25 (almost $50 USD) when she bought her iPod.
- Battery life is too short to make it attractive as a video entertaining device on long trips. Only barely enough for a movie. Exacerbated by being unable to use while charging.
- The reset procedure is so well hidden that I'll probably forget it by the next time it freezes on a plane or something. It'll just have to lie and drain the battery flat.
- The USB connector has an Apple logo on one side - every time I plug it in I think it's the "top", when in fact the USB logo is on the other side. Extremely annoying, even if rather minor.
I'll add more as I discover them.
C# 2.0 requires that in order to be able to use new() on a generic type, the new() constraint must be used. For some reason this is true even if there is another constraint which covers the presence of a constructor: an inheritance constraint for a class with a constructor. I really don't get this: why can C# infer that where T : MyClass implies that T has all the methods of MyClass, except the public constructor? o.O
Rant: can't Microsoft be more creative when naming their downloads? 50% of them are named Setup.exe, so if you save them all in one big "Incoming" folder they overwrite each other unless you rename them manually. More annoying though is the following: both .NET Framework v1.1 and v2.0 Redistributable packages are called "dotnetfx.exe", which means that if your application installer tries to be friendly and checks whether you've already downloaded the package, it can't tell the difference between the two.
I don't understand something. Why do bitwise shift operators always have lower precedence than addition? Do people really want/use this behaviour? Making shifts bind as tight as multiplies would make so much more sense. Wouldn't it? Things like fixed-point arithmetic or fast multiples/divides by powers of two would be much easier to write...
Have I mentioned yet that .NET is annoying? A Form has a property called WindowState, which can be either Normal, Minimized or Maximized. So, how can I tell whether a minimized window will be Maximized once I've un-minimized it? Without actually un-minimizing it? The problem is, Minimized and Maximized are logically separate boolean properties, where Minimized overrides Maximized. However ever since the dawn of Delphi and subsequently C# (and possibly in other languages too), they were forced together into one property for some obscure reason. I mean, I understand that visually the form is in one of three states, but logically there's more to it. All of the above applies to window size, too. There's no way to obtain the size a maximized window will be when it's restored without actually restoring it. Why hide these useful things, they are stored somewhere already! P.S. Anyone seen Form.Restore method? Do I really have to store the previous state (Normal/Maximized) prior to minimize simply in order to be able to programmatically un-minimize (as opposed to Restore)? P.P.S. No, really, this is all so straightforward; a window can be Minimized, Un-minimized, Maximized and Un-maximized. Can I please have the functions to do these trivial operations?
Matlab is a technical scripting language strongly biased for matrix (i.e. array) processing. A Matlab variable can contain a complex number, an N-dimensional array (of complex numbers) or an N-dimensional cell (an array of other arrays). An empty array is represented with []. An empty cell is {}. To create an array of elements a, b and c, we write arr = [a b c]. Makes perfect sense. Now suppose A, B and C are all arrays. To make a cell with these, we write cell = {A B C}. Makes perfect sense again. Array elements are accessed with (), e.g. arr(i). Cell elements are accessed with {}, e.g. cell{i}. Multidimensional arrays and cells are accessed like arr(m,n) and cell{m,n} respectively. Now the really confusing bit. In order to delete an element from an array, the following syntax can be used: arr(i) = []. Since the left-hand side is like an element access and the right-hand side is like an empty array, one may guess that cell elements can be deleted like this: cell{i} = {}. However this is not valid syntax! In fact, this must be written like this: cell(i) = []. WTF?! Is this crazy or what? Why suddenly brackets with a cell? I think I know what's going on. Cells are really just arrays whose elements are of a special type. In fact, accessing cell(i) returns a 1x1 cell. So, using the example above, cell{1} is equal to A, whereas cell(1) is equal to {A}. My theory is that all these apparently weird things are required for one simple reason: the designers wanted the syntax [A B] (where A and B are arrays) to concatenate arrays A and B. Obviously if the user wants to create an array with the two elements A and B, a different syntax is required, namely {A B}. But since a cell is just an array, the usual array stuff still applies, and this includes the delete-element syntax. A side effect of all this is that to concatenate cells CA and CB, one cannot write {CA CB} (because this creates a cell with the two elements CA and CB). Cells are concatenated by writing [CA CB]. Conclusion: all these advanced matrix (i.e. array) and cell operations are somewhat tricky to learn, but mastering them is totally worth it, and I wish Perl incorporated some of Matlab's great language ideas.
Hmm... Is this weird, or am I being stupid?
The Invoke method of a form accepts a parameter of type System.Delegate. It will execute this delegate in the GUI thread. I want to pass an anonymous method to it. The following code seems sensible:
Form.Invoke(delegate{ SomeLabel.Text = "blah"; });
However this doesn't compile with the error message "Cannot convert anonymous method block to type System.Delegate because it is not a delegate type". The fact that System.Delegate is not a delegate type is weird in itself, however what's more weird is that the following works:
delegate void MyDelegate();
Form.Invoke((MyDelegate)delegate{ SomeLabel.Text = "blah"; });
WTF?
|
|