test
Posted in Uncategorized on June 21st, 2010 by Logical – Be the first to commentThis is a test connecting the WordPress blogging platform to Microsoft Live.
This is a test connecting the WordPress blogging platform to Microsoft Live.
Wrestled with a Word file today. It was corrupted, and the result was that two of the XML files inside the .docx file were truncated to a zero length. They were NOT, however, the contents of the document itself: By opening the XML of the document itself, I could see very plainly that my document was intact. I had to decompress another similar document, copy over the missing XML files, and then recompress and rename all of the files back together again.
Finally my document was working again, but it felt like a pretty hollow victory – this is not something most people can do by themselves, and furthermore Word’s own document recovery was not able to perform the task of recovering my file, even though all of my data was still intact!
Only some structural stuff about the document was missing – the data was still there. Turns out that Word 2007 is pretty pathetic at recovering data, even though the XML theoretically makes it easier.
Okay, I’ve been banging my head over AVG 8 a bit. Apparently, the heuristic analysis detects a lot of legit stuff, and the virus vault cleans itself after so many days. The result? I’ve actually lost a lot of stuff over the years, and I simply can’t recover all of it. I’ve known that AVG deletes stuff, but I could always recover it from the vault.
BUT this “delete after 30 days” thing seems to be a recent addition
. It’s killed a lot of stuff I wanted to keep!
In addition, “Web Shield” seems to slow down my Internet connection so much that it times out and makes it nearly useless.
Now I’ve disabled Heuritsic analysis, turned off the 30 day delete period, and I may just keep Web Shield disabled for now. In the meantime, I’m seriously considering switching to another antivirus vendor.
This is great – better registration options, some very nice plugins, and everything is working properly
. The spammers are completely gone as far as I can tell, especially now that I require registration to comment. Hopefully this means I can make this into an active blog again, which I haven’t really been able to do because to do so would have meant sifting through and approving comments among a lot of spam. Now I probably won’t even require approval anymore, since only registered users can create posts.
Now all I need to figure out is the next thing to blog about
.
After a while of having to deal with all sorts of troubles, including a lack of time, I’ve finally got around to doing some things I should have done a long time ago.
Hopefully, this will mean more frequent updates, and I hope the new WordPress is better at blocking spam. The older version was just flooded with comments waiting for approval, nearly all spam, and it made it virtually impossible to sort out the real comments from the spam. I sincerely hope this has improved.
One thing that kinda annoys me about a lot of other programmers is a “rule” some person names Rob Pike invented and something that I occasionally encounter in other programmers. It goes like this (quoted from a wikipedia article on Unix philosophy): “Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants.”
Quite frequently, the best algorithms are also a bit more complex – they can handle large loads easily, but at the expense of having some extra overhead when the set of data is small. This is the most apparent with sorting algorithms, where a more complex algorithm can be several orders faster than a simple algorithm for large data sets.
This violates another programming principle that I always follow: Always assume that the users will push your software to the limits. Quite frankly, assuming that n is small is a big, huge mistake. In the real world, there are always people who will put a heavy load on the software for some reason or another – and I frankly don’t want my software to break down when it is being used heavily. I want it to remain responsive and robust.
Besides – when n is small, then it doesn’t matter if you’ve for a bit more overhead! Who in the world is going to notice that your sort is slower when it’s only taking a few milliseconds to sort?
This philosophy makes no sense to me at all. Assuming n is going to be small is a very poor assumption, and when n is small, nobody is going to notice anyways. Unless you’re really being pressed by your boss to finish the project quickly, I’d say take the extra time to implement a proper algorithm that scales nicely when n gets large. Otherwise you’re going to find yourself in a lot of pain rewriting your code when your users push your algorithms to their limits – and they will, no doubt about it.
The only time it really makes sense is when you’re implementing a hybrid algorithm that detects when the data set is small and uses the simpler algorithm for the more trivial cases. But even then – profile the code to make sure the hybrid is faster, don’t just assume it is just because it’s simpler. Also profile the code to adjust the size at which it switches algorithms is optimal.
I think many developers overestimate how much overhead some of the better algorithms have. Are they more complex? Sure. Are they hundreds of times slower for small data sets? I seriously doubt it. They’re actually not that complex, and the best algorithms are actually based off of simple concepts.
Ok, so I try to sell something on eBay – at first things go pretty well. A potential customer contacts me, asks some questions, etc. We negotiated a lower starting price, so I start the bidding at a lower price.
In the message I tell him that if he isn’t outbid, he gets the item.
Well, guess what? He got outbid. As a favor (or so I thought), I tell him about the other bidder.
So, what does he do? He rails against me whining about how he wanted to “buy” the item at a lower price and accuses me of purposefully bidding to artificially raise the price!
Now, I understand that this could be a problem on eBay – and since I have zero reputation so far since I’m so new, I understand somebody could be suspicious.
However, it IS an auction, and nobody makes any guarantees that somebody else won’t come along and bid higher. That’s how an auction works – the sale goes to the highest bidder. Somebody outbid him and was willing to pay more for it – so that’s who it goes to. Sorry, but that’s just the economics of an auction, and that’s how eBay works. I can’t control it. Economics never guarantees that people always get the price they want.
Sooo . . . lesson learned.
- No longer am I going to remind people of new bids. I think eBay has the ability to remind them anyways.
- If somebody asks to “buy” something, I’m going to make it clear that it’s an auction, not a sale. I looked up eBay’s policy, and once an item is on eBay, it’s against their rules to take down the auction and do a separate sale anyways. If you really want to get it, outbid everybody else. If you can’t afford to outbid everybody else, then you’ll just have to live with the fact that you’re not going to get the item.
- Lowered prices are not going to happen anymore. Either accept the minimum bid or don’t buy at all. The minimum bid from now on is going to be the absolute minimum price I’ll accept, or $0.99 if I just want to sell it for any price.
Just ran across an article claiming that Vista has 65 Mistakes. It’s an old article, but it’s worth talking about.
It’s a bit hidden, but it’s there.
So – why am I harping on an old beta article? Because somebody bought it up in another forum just to thrash at Vista. Unfortunately that list is from a beta version of Vista, and the vast majority of stuff in this particular list was fixed long ago. It seems that people who dislike Vista will do anything to make it look like a horrible OS.
I’ve been looking into the problem of spam, which seems to be as prevalent as ever. Seems to me that people are trying to create a lot of non-solutions for it, and we’re just stuck with “solutions” that at best reduce it a bit and at worst don’t do anything at all.
Non-solutions:
-Blocking port 25. Getting around a port block is Networking 101. It’s easy, practically trivial. In addition, this also blocks legitimate connections – people who don’t use their ISP’s email often use SMTP to send messages via their own domain name service.
-Telling ISPs to fix their own stuff. While this can ensure that a good ISP is not a spam source, this does nothing about the person who has a bad ISP. It’s well known that many major ISPs are irresponsible and do nothing about spam. We need a solution where the user can control his/her email without having to rely on the ISP. We cannot rely on our ISPs to fix our solution for us.
-Blacklists. They need to be constantly updated, and spammers are constantly changing addresses and using zombie machines. This is a very reactive solution, and guarantees that some spam will get through before the blacklist is updated. This is all the spammer needs. We need more proactive solutions.
-Waiting for other people to implement the solution first. This just leads to everybody waiting and nothing happening.
-Pretending user authentication isn’t important or is ineffective. One of the biggest problems of spam is that it can be hard to identify legitimate users. As long as that continues to be the case, the spammers will just keep pretending to be somebody they’re not and get though spam filters. Positively identifying good people is every bit, if not a whole lot more, important than identifying bad people.
-Creating closed solutions covered with IP protection. All this does is to create a niche market and does not solve the problem on a wide scale. If the solution is to be adopted widely, the protocols must be open and free from patents.
We need to quit burying our heads in the sand with passive “solutions” that do not work and start using more proactive solutions that do work.
A close relative of mine and myself both have GPSes, and I’ve used both of them enough to warrant a word or two about them. The GPSes in particuar are the TomTom ONE and the Mio C220 – both are budget GPS systems, with the TomTom being a bit more expensive.
First and foremost, the UI: Despite extravagant claims that its UI is “simple,” the Mio’s UI is anything but. To do even a simple task like navigating to a POI, you have to tap seven times:
-Menu
-POI
-Category
-Sub-category
-The POI itself
-OK
-Route To
The TomTom?
-Middle of screen
-POI
-Category
-The POI itself
A vast improvement.
What’s worse is that even though the TomTom has a much simpler interface, it’s much more feature rich than the Mio. How or why in the world anybody would design such a complex interface for such a feature poor device like the Mio C220 is beyond belief.
In addition, the interface for locating something is vastly better on the TomTom: It’ll show you the top hits automatically so you can go to them directly, where the Mio only tells you how many hits you have. The TomTom also allows for more free form input, while the Mio has strict rules: You can’t have symbols, and every word is capitalized the same.
This seems to reflect a fundamental difference in design philosophy: Mio seem to have an elitist “we know what’s best for you” philosophy of design, while TomTom has a much more relaxed “feel free to do what you want” design.
The differences in philosophy are even more striking if you want to do some customization or dare I say “hacking.”
Want to play around with the internals of the TomTom? No problem – just plug it into a computer, and it appears as a regular drive with the whole folder structure easily accessible. Lost your CD? No problem, the TomTom itself has a copy of the drivers and software. Wanna change the startup and shutdown splash screens? No problem, they’re just bitmaps. Want a cool looking icon for your new POI group? No problem, that’s a bitmap too. The TomTom is easily a very open platform that allows a good deal of customization and hacking.
The Mio, on the other hand, is as closed as you can get. The USB connector at the bottom is not very useful beyond charging the unit. Accessing the internal Flash memory where the OS lies requires REAL hacking – and oh, yeah, if you lose your DVD (which unfortunately I have), you’re basically stuck with what you’ve got – you can’t update it at all, as the website itself is (purposefully, it seems) doesn’t have the software for communicating with the device. They’ve gone to some pretty great lengths to try to prevent anybody from digging too deeply into the device.
Also, the makers of the TomTom are pushing ahead with both dynamic and community based features that really add a lot of value to their devices. Real time traffic updates, community involvement in the map making process, custom POIs that can be shared by the community, etc. They really look like they’re pushing ahead on the innovation front.
The Mio people, on the other hand, are thinking about maybe releasing a new map update sometime. And don’t you dare share your POIs.
More and more, I’m loving the TomTom a whole lot better – and quite frankly, you’re getting a whole lot more bang for your buck than with the Mio. It’s well worth the extra few dollars.