Friday, March 28, 2014

Batch convert Word documents to .pdf files in Word 2007 and later

This is brilliant. "Faster" posted some vbs macro code in 2011 which uses Word 2007 and later to convert all files in a folder to .pdf files (or other formats, even on earlier versions of Word).

A few cautions: the original files are not modified, but the generated .pdf files are put in a sibling folder to the one you select. For instance, if you provide the path c:\docs\wordfiles, the pdfs will be created in c:\docs\wordfilesconverted. Also, make sure there is nothing but Word files in the folder you select, because it will try to convert any files it finds in the given path. Fortunately, it doesn't recurse into subfolders, so you can dump non-word documents into a temporary subfolder before you run the conversion.

For posterity, here is the code:
Option Explicit

Sub ChangeDocsToTxtOrRTFOrHTML()
'with export to PDF in Word 2007
    Dim fs As Object
    Dim oFolder As Object
    Dim tFolder As Object
    Dim oFile As Object
    Dim strDocName As String
    Dim intPos As Integer
    Dim locFolder As String
    Dim fileType As String
    On Error Resume Next
    locFolder = InputBox("Enter the folder path to DOCs", "File Conversion", "C:\myDocs")
    Select Case Application.Version
        Case Is < 12
            Do
                fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML", "File Conversion", "TXT"))
            Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML")
        Case Is >= 12
            Do
                fileType = UCase(InputBox("Change DOC to TXT, RTF, HTML or PDF(2007+ only)", "File Conversion", "TXT"))
            Loop Until (fileType = "TXT" Or fileType = "RTF" Or fileType = "HTML" Or fileType = "PDF")
    End Select
    Application.ScreenUpdating = False
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set oFolder = fs.GetFolder(locFolder)
    Set tFolder = fs.CreateFolder(locFolder & "Converted")
    Set tFolder = fs.GetFolder(locFolder & "Converted")
    For Each oFile In oFolder.Files
        Dim d As Document
        Set d = Application.Documents.Open(oFile.Path)
        strDocName = ActiveDocument.Name
        intPos = InStrRev(strDocName, ".")
        strDocName = Left(strDocName, intPos - 1)
        ChangeFileOpenDirectory tFolder
        Select Case fileType
        Case Is = "TXT"
            strDocName = strDocName & ".txt"
            ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatText
        Case Is = "RTF"
            strDocName = strDocName & ".rtf"
            ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatRTF
        Case Is = "HTML"
            strDocName = strDocName & ".html"
            ActiveDocument.SaveAs FileName:=strDocName, FileFormat:=wdFormatFilteredHTML
        Case Is = "PDF"
            strDocName = strDocName & ".pdf"

            ' *** Word 2007 users - remove the apostrophe at the start of the next line ***
            'ActiveDocument.ExportAsFixedFormat OutputFileName:=strDocName, ExportFormat:=wdExportFormatPDF
           
        End Select
        d.Close
        ChangeFileOpenDirectory oFolder
    Next oFile
    Application.ScreenUpdating = True
End Sub
Activate the Developer tab in Word, then open up the vbs console (or create a macro) and paste this code in (make sure the lines don't wordwrap like they do on this page), then run it. Assuming you're running Word 2007 or later, be sure to delete the apostrophe where indicated.

For more details, check out the original post.

While we're on the subject, may I further recommend PDFbinder as a free program which allows you to merge many pdf files into a single multi-page file. And also Compress PDF, a free online service which compresses your .pdf file sizes.

~Till next time!

Labels: ,

Thursday, February 13, 2014

Setting up AutoCAD with common support files while allowing some customization

This is going to be another dense post, intended mostly to remind myself of how everything is set up, but posted also to help people already familiar with the way AutoCAD is deployed and customized. Please make sure you know how to work with cuix files and load them via the customization file portion of the options dialog before proceeding.

Our firm recently rolled out AutoCAD (and BDS) 2014 to our users. For the past few releases (since 2008, I believe) I've been very interested in using common support files stored on the network, but have always had to come back from the edge because of one or two limitations such a setup would impose: the inability for users to have their own .pgp file (command alias list) has always been a big one among these.

This time however, I believe I finally have figured out the "right" way to do this stuff, and I wanted to document it here while it's still fresh.

First of all, the benefits of sharing support files. It has happened in the past that, for instance, I create a new line type for a job, which ends up being very useful and I want to make a part of our library for everyone. Or a new hatch pattern. Or change some buttons on our custom ribbon tab, etc. I used to have to make the change to my own support files, then copy them into the deployment folder (for any future re/installs), then send out an e-mail to everyone with the location of the updated files and ask them to manually copy the new files into two locations on their local machines. Both of these locations were within (different) hidden directories, and so depending on the machine, had to be manually typed in, and one of the locations was a path that's about 18 miles long. That was the only way of ensuring that they had the new files, both now in the future when an inevitable new Windows profiles might be created and set up using AutoCAD's userdatacache.

Obviously this is a painful and annoying process, for everyone.

The promise of shared support files, on the other hand, is that I (as an administrator, not a typical user) can make a change, once, and upon the next launch of AutoCAD, everyone's files are automatically up-to-date since all our installations are literally using the same files. Obviously in the case of laptops (which will be asked to run AutoCAD away from network connectivity) we have to make use of offline files (and for the love of cheese, do this via Windows Policy using Administratively Assigned Offline Files), but we've already been doing that, so that literally took no additional effort in our case.

But AutoCAD's deployment routines aren't so fine-grained that I can specify that acad.cuix, our enterprise cuix, hatch file and linetype files should be shared, but that (for instance) the .pgp file shouldn't be. And even if it were, it's a pain for the users to have to navigate through 18 layers of folders to get at their .pgp file if they want to change or add a command alias.

The first discovery (I would link to a forum post if I remembered what it was, but it was a rather oblique reference to this process anyway) is that AutoCAD has a list of support file paths, and it treats the list as a hierarchy, going down the list until it finds the file it's looking for, at which point it stops looking for it. So even though our shared support file path does include a single acad.pgp file, nobody's machine is actually using it. Why? Because as part of the AutoCAD installation, I told it to create a new folder at c:\acadsupport and stick another acad.pgp file in there. Then I put c:\acadsupport at the top of the list of Support File paths. Any files in acadsupport are now available to AutoCAD (and functionally override whatever identically-named files may be in the shared support file directory on the network).

That seemed like the end of it ... until someone asked how to customize their Quick Access Toolbar. Ouch. You see, I'd created a "default" Quick Access toolbar in our enterprise cuix file and added it to the workspace I'd created in the same enterprise cuix file for everyone to use. (This workspace has our custom ribbon tab, for instance). And the problem is that everything in the enterprise cuix is read-only (presumably so that one person can't change everyone else's workspace in the event that the main customization file isn't shared). So the Quick Access toolbar was forced to be identical and unchangeable for everyone...which is contrary to the way most people are used to using those toolbars (for instance, in Office).

The solution ended up being creating an additional cuix file that contains nothing but a Quick Access Toolbar. I used the transfer tab of the CUI window to copy the Quick Access Toolbar into a new file, and saved the resulting cuix file as quickaccess.cuix. That way it is set up with some default buttons for convenience. Then I included it as part of the AutoCAD deployment to get installed to c:\acadsupport.

Since I'd already included a quick access toolbar in our enterprise customization file, I first had to edit the workspace definition so that it didn't include any quick access toolbar. If you don't find yourself in the same situation as I did, skip this paragraph. (By the way, the easiest way I found to edit the enterprise cuix file is to set it as your main customization file and set acad.cuix as the enterprise customization file temporarily). In the left side of the CUI window, expand your enterprise customization file and under Workspaces, highlight your workspace. Now in the right side of the window, right-click the quick access toolbar and choose "Remove from workspace". Then click the "Customize Workspace" above the right side panel, and uncheck the box next to the quick access toolbar on the left side of your custom CUI file under "Quick Access Toolbars". Now exit customize workspace mode, and right-click the quick access toolbar on the left side of the window and choose to delete it from your cuix file entirely.

Now you're ready to link in a personalizable quick access toolbar. Make sure acad.cuix is set to your main customization file. In the CUI window, at the bottom of the main customization file tree, there's an entry labeled "Partial Customization Files". Right-click this item and load c:\acadsupport\quickaccess.cuix. Since everyone is sharing this acad.cuix, all their installations will now look for this file. (if it doesn't exist, it won't pop up an error or anything, it will just note that it's unresolved).

Now you need to update the workspace stored in your enterprise file to include the quick access toolbar stored within this partial cui file. Set your enterprise cuix file as your main customization file (swapping acad.cuix over to the enterprise customization file node at the same time so it's still available), then get back into the CUI dialog. Find and select the workspace you want this quick access toolbar to show up in, then on the right panel click the "Customize Workspace" button. On the left panel, scroll down to the partial cui file, expand it to the quick access toolbar item, and check the box next to the default quick access toolbar you made. It should show up on the right panel now under Quick Access Toolbar. Exit customize workspace mode. Now put acad.cuix back as the main customization file, and your enterprise cuix file as the enterprise customization file again.

One final step: to make sure the settings get saved, set your current workspace to your enterprise workspace again.

Now each user should be able to freely customize their own quick access toolbar however they want...their personal toolbar is saved in c:\acadsupport\quickaccess.cuix (you should see the timestamp on that file update whenever they add or remove a button). The shared acad.cuix file is set to look for that file, and the toolbar contained therein is used by the workspace saved in the enterprise cuix file. (By the way, you can't load quickaccess.cuix as a partial customization file under your enterprise file, because remember that it and anything it loads is marked read-only).

*whew*

Of course, you could simply store the workspace and any of your enterprise customizations in the shared acad.cuix, but (although I don't know the actual reason it's set up this way) it does seem prudent to keep your customizations in a separate file from all of AutoCAD's defaults - especially since that file is set to read-only by all your users. acad.cuix is easy enough to restore to default, but your own customizations might get goofed up beyond help if your users discovered they had the power to get in and tweak things.


The final result: here's how my CUI window looks. The Quick Access toolbar is stored in a cuix file in each user's local c:\acadsupport directory (and thus customizable and personal), which is loaded by the shared acad.cuix and used in the workspace stored in the shared enterprise customization file.

Labels: ,

Tuesday, August 21, 2012

Using DFS shares from Metro

I like Windows 8. I really do - and I can't wait for good tablet hardware to come out with it's release.

However, the interface-formerly-known-as-Metro, being a v1.0 product, has a few issues which I find to be more than annoying.

One is that it doesn't appear to be possible to use Unicode characters in any Metro apps ... bye-bye Metro Remote Desktop! (I use nice, strong passwords, that's why).

Another is that, incredibly, the Metro file picker doesn't understand DFS shares. That is, it sees the share itself, since I've mapped it using Group Policy, but when you open it to browse, all your shares within are gone - the root appears to be completely empty!

One workaround is to click the "File" label in the top-left of the dialog, and select instead "Network". But then you have to type in the UNC path of the share to browse. That's a lot to ask of a user - and defeats all of the reasons to use DFS!

I've just found another workaround, with the help of an article at The Super Site for Windows and the Windows 8 help file. To start, understand that many of the Metro apps expect to work within the structure of Libraries. Now, if you can add your DFS shares to an existing (or new) library, you're done. This is the best solution so far, because it'll use the mapped address (for instance, Z:\share1) instead of a non-dynamic UNC path (for instance, \\server23\share1$). Using the mapped address means it's dynamic and keeps working if you redirect the shares to a new location.

But you can't add a network location unless it's indexed. Easy enough if the shares are small- make them available offline! But if you can't / don't want to make all your DFS shares available offline, here's the official way to, "Add a network folder that isn't indexed to a library":
(From the Windows 8 help file):
  1. Tap or click to open Computer.
  2. Create a folder on your hard drive for your network folders, for example c:\share.
  3. Create another folder within that folder, for example c:\share\music.
  4. Select the subfolder you just created, tap or click the Home tab, tap or click Easy access, choose Include in library, and then select the library to which you want to add the folder.
  5. Delete the folder.
  6. Swipe in from the right edge of the screen, and then tap Search.
    (If you're using a mouse, point to the upper-right corner of the screen, move the mouse pointer down, and then click Search.)
    .
  7. Enter cmd in the search box, and then tap or click Apps.
  8. Press and hold or right-click Command Prompt in the search results, and then tap or click Run as administrator.
  9. Enter mklink /d, and then enter the path of the folder you just deleted and the path of the network folder. For example, mklink /d c:\share\music \\server\music. This creates what is called a symbolic link.

Lest I forget to mention it, Metro apps also don't appear to understand symbolic links themselves (probably the reason it doesn't understand DFS shares), or even normal SHORTCUTS, so you can't just make the dynamic links in a folder on your desktop and get there that way. They have to be included in a library to resolve.


Obviously, this solution is less than ideal for a few reasons:
1) The only way I can think of to avoid having to do this manually per-user, per-machine, is to run a logon script that copies the pre-formed *.library-ms file to Libraries AND creates the symbolic links.
2) It bypasses DFS entirely, so the shares aren't dynamic, if you need to hand off traffic or change hosting servers for a share
3) When you're browsing for a file in a Metro app, it doesn't group by location; you see everything from all the roots of each library location, arranged alphabetically.
4) And just to call out the elephant in the room, yes, it's 2012, and the official way of solving this problem in Windows 8 still starts with, "open command prompt". Unbelievable.


Still, it's a start. Kind of.

Labels: ,

Monday, April 11, 2011

NASA Stereogram

I just made this for fun today- it's a stereogram made up of all the names of NASA astronauts, as listed on Wikipedia on April 7, 2011. They read in columns; the leftmost column is unaffected by the stereogram, so you can read all the names. Now, use the wallpaper method to view the stereogram (that is, not the cross-eyed method) and see what you can see :)


If anyone's interested, I used Excel to pare down the copied list from Wikipedia, then ran a custom AutoIt script I made a year or so ago for creating ASCII stereograms. Finally, I copied the text into AutoCAD so I could have ultimate control over the character width and spacing, and exported as a .png from there.


ASCII stereograms are fascinating to me, since you can actually analyze it and understand how your brain makes it work. The fact that your brain processes the anomalies to assemble a 3-d image almost instantly, is just stunning to me. What a design!


Edit: Here's another one- same basic process, but I made up a more intricate pattern this time. Just in time for the 50th anniversary of manned space flight and the 30th anniversary of the first shuttle launch!

Labels: ,

Thursday, February 3, 2011

Windows Phone: XML as a source

The post at http://weblogs.asp.net/scottgu/archive/2010/03/18/building-a-windows-phone-7-twitter-application-using-silverlight.aspx is incredibly useful to illustrate how to parse an online XML feed to populate a ListBox control dynamically (including the "bodies" of a Panorama page, which are just ListBoxes).

...and here is a page that may do the same for JSON: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer(v=vs.95).aspx

Labels: , ,

Saturday, October 23, 2010

Windows Media Center custom menu strip

My hopes of having a real Windows Media Center set-top box be released this year having been dashed, and having for various reasons begun looking into other online media consumption services for the TV, I've started to try and plug in as many services into Media Center as possible.

Third-party support for plugging them in is a bit spotty from app to app, with some of them adding themselves to the "Extras" menu (Boxee), and some of them creating their own custom menu on which they sit all alone (Hulu).

Finally today, I found a wizard called WMCWW that lets me (very) easily create a new custom strip and place as many other plugins on it as I want, then even delete the custom menus that those services created (Hulu) so I don't see duplicates.

Works on x86 x64 Windows 7...yay!

Labels: ,

Monday, August 16, 2010

Group photo sharing through yogile.com

Here's a nearly universal truth: if a picture of a kid exists, that kid's parent wants a copy. Really self-controlled parents might go ahead and delete pictures that are blurry or where their kid is clearly not the subject of the picture. Maybe. But they want to make that choice themselves, and that means that any time you get a group of kids together in this age of ubiquitous digital cameras, there's going to be about 250 pictures per half-hour that every parent is going to want a copy of, from every other parent.

If said parents don't want to trust that everyone else will remember to include them in the list when sending out pictures (which may or may not happen), the solution has historically been for the event-planner to tell everyone to e-mail all the pictures to them, at which point they will make copies of all the pictures and get them back out to all the attendees.

Here's my question for you: has that ever worked out for you? In my experience, the absolute best scenario is that most of the parents will get copies of their pictures to the planner. But then the planners get to figure out when to draw the line of, "everyone who's going to send pictures, has sent them". And not only is it very easy to keep procrastinating, "just in case more come in", they really have no motivation to get those picture dispersed back out. After all, said planners now have all the pictures, so now they're happy, and their attention quickly turns to something else. And if they're really ambitious and actually decide to really get it done, they'll always end up being shocked at how many kids are in the pictures, and therefore how many copies they'll have to make and re-disperse.

Then along came services like Facebook, Flickr, Snapfish, Photobucket, etc. These well-meaning services have the right idea, which is to allow everyone to contribute photos into a single album, then provide everyone access to the pictures when they want to check in on their own. But they all require you to have an account to contribute and/or to view the album. And that's really a pain, as you're asking all these frazzled, non-techie parents to try and maintain all these different accounts, many of which they'll only use once. What happens is that if they register, they only end up spreading their invariably re-used credentials across the digital world, then forgetting that they even have that account. (Of course, I know that you use a unique log-on and password for every site for which you have an account, right?) And then they wonder why they get all this spam in their e-mail for the next twelve years.

Well, this morning I heard about a service that really makes a lot of sense. Yogile.com allows you to create a photo album for an event and optionally password-protect it. You get to pick a unique web address and e-mail address for this event. Then when you ask people to send pictures, they can either e-mail them as attachments or upload them at that site. If it's not a protected album, they can also view the photos from the event at the address you picked. And the best part is, anyone can contribute. Nobody needs to register if all they want to do is contribute pictures and view public albums. And yogile also makes sure that any pictures added to your album are sent to you (the album creator), so you don't even have to remember to log on and check for new additions.

It looks like it's free for up to 100mb, and $24.95 per year if you want unlimited storage with an ad-free interface. Here's the summary of their service from their page:

•Lets multiple people contribute with ease.
•Add photos as e-mail attachments or uploads through the site.
•Customizable URL and e-mail address per album, to share with anyone who wants to add photos.
•No need for these users to register, keeping the process simple

So I haven't used it yet, but this is just the type of thing I've wished for in the past, so you can be sure that I will before too long. And I just wanted to share (and post it so I can remind myself of it when I do need it).

Labels: , ,

Wednesday, July 15, 2009

NASA Image of the Day Desktop Slideshow for Windows 7

Using the information I compiled and posted previously, and in honor of today's scheduled shuttle launch, I made a Windows 7 Desktop slideshow theme file that uses NASA's Image of the Day (large) feed to decorate your desktop wallpaper with daily-updated pictures of Space and NASA operations.

Unfortunately, due to how NASA runs their image feed, you can't download previous days' images into your slideshow...so the first day you load the theme, there will only be one picture. The next day, it'll flip back and forth between the new day's image and the previous one, etc. After about a week, it'll have a good number of images to draw on for your slideshow.

To control how many images are kept for the Desktop Slideshow, open up Internet Explorer 8 after having loaded the theme. Open up the "Feeds" tab of the "Favorites" window, and right-click on the feed called "http://www.nasa.gov/rss/lg_image_of_the_day.rss" choosing "Properties" in the context menu that pops up. Under the "Archive" section of the properties sheet, you can set the number of attachments (pictures) you want to keep.

The nice thing is, you can install the theme, causing IE to subscribe to the feed, then go back to whatever theme you'd been using before. Even though the theme isn't active as your Desktop Slideshow, IE will continue to download each day's picture in the background (keeping a default of 200 max). So you could come back a week later and set the Nasa Image of the Day theme as your background again, and it'll have a far greater number of pictures available to shuffle between.

One final note: it took my computer 5 minutes or so to download the picture, during which time my desktop was a plain black background. Once it downloaded, it just faded in, nice 'n pretty.

Enjoy!

NasaIotD.theme

Edit: I found a way to "seed" the feed with previous images so that you can have more pictures than just the number of days you've had the theme, and it's not horrible a horrible process, either.

Once you're subscribed to the feed, right-click it and choose "Properties", as documented above. In the "Update Schedule" section, there's a checkbox that'll be checked to "Download Attachments", and next to it, a button labeled "Show files". Click the button, and you'll see all the pictures already downloaded from that feed (probably only one picture, if you've just subscribed to the feed). Copy that folder's path to your clipboard, then you can close that window, as well as the feed properties dialog. Now go to NASA's Image of the Day page. Grab the large versions of any past pictures you want to include, and right-click on the link offering to download the full-size version, choosing "Save target as...". When it prompts you for a path, paste in the feed-specific path you just copied, and save the picture there.

Now your slideshow has many more pictures available to rotate between! (If you want to make sure it worked, go back to your Personalize menu from the desktop, and re-select the Nasa Image of the Day theme. It should rotate to one of the new pictures you just added).

Note that you don't HAVE to use only NASA's Image of the Day pictures to seed the feed; you can put any pictures from any source you want to into that folder, and it'll get included in the rotation. It just kind of makes more sense to use something from the same feed :)

Labels: , , , , ,

Wednesday, June 3, 2009

RSS-based Windows 7 desktop slideshows

I know the title of this post is rather obtuse, but this is something I'm excited to see has been included in the forthcoming Windows 7.

Windows 7 finally has native support for wallpaper "slideshows"...that is, you specify a GROUP of pictures you want to cycle smoothly between at the interval you choose, rather than having to always look at the same picture on your desktop.

What I didn't know until this blog post however, was that you can also make/choose a theme that points to an RSS picture feed for the picture sources. That means, we can make a file on our website that points to some high-res pictures of Kate, then send a small .theme file to our family. They double-click on the .theme file, and their desktop will begin showing a slideshow of some of Kate's pictures that we chose for that purpose. Later, as we publish more pictures, they will automatically be included in our family's wallpaper rotation, with no extra work on their part.

What a nice way to share pictures effortlessly! Now if only there was a screensaver with that capability...

Edit: apparently there is at least one such screensaver, but it's a visual C# sample project, not a completed screensaver you'd want to run. I tried it out, and it's iffy at best, not to mention that it's certainly only for geeks who are not of the faint of heart). I still think this is a great idea that would go over very well with grandparents, for instance ;-)

From the Engineering Windows 7 blog:

Enthusiasts can create a theme where the desktop background slide show points to an RSS photo feed. For example, my sister lives across the country and we only see each other about once a year. An easy way for me to keep her up to date on my family is to send her a Windows 7 theme which points to my RSS photo feed. When I upload new photos they will appear on her desktop automatically.

Because there are a few different ways to create an RSS photo feed, the process to include an RSS photo feed in a Windows 7 theme will only work if your RSS photo feed links to the high resolution photos using the “enclosures” method. The feed should only reference picture formats such as JPEG or PNG. Due to this limitation themes must be created manually when including an RSS photo feed.

So, to create one of these themes you can follow these steps:

Download the template from MSDN.
Open the template using Notepad.
Replace {themename} with the name you want to appear in the Personalization Control Panel themes gallery.
Replace {rssfeedurl} with the full path to your compatible RSS photo feed.
Save the changes as a file with the “.theme” extension.


After that, you e-mail your friends and family that .theme file and all THEY have to do, is double-click on it and choose to set it as their theme. All the hard stuff (the above steps) are done on your (the creator of the feed/publisher of the pictures) end. However, I personally expect that online photo services will pick up on this capability very soon and starting offering you a .theme file download for all the pictures you've uploaded to their site, taking the burden of all that hard stuff off you.

Very cool stuff.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Update: I just tried this, and it works very well, except that it seems to be pretty picky on using only really well-formed RSS feeds: the feeds through Picasa, Photobucket and Webshots, for instance, didn't work. However, Flickr's feed did work. Even pictures which are oriented the "wrong" way (usually portrait [tall] instead of landscape [wide]) can be told by the .theme file configuration to crop and resize, so nothing gets "stretched" or "squashed" and it still fills the screen. There are other options too, naturally.

I love it! :)

BTW, here are my "test" files that worked for me. Open Kate.theme on Windows 7 to see it in action! (I'm not going to be updating these, so don't expect the pictures to be updated past the 12 pictures from March I used)
You don't need to download KateDesktopSlideshow.xml, but I provided it in case you want to see the minimum required for a working RSS file (right-click it and download it, rather than opening it in your browser, to see the codes). The pictures are pulled from the Kate pictures section of our website.

Kate.theme (Note: this theme won't work anymore; you can download it and set it as your theme, but it won't find any pictures. Since we migrated our site fully over to blogger's servers, the feed I used in this theme is no more).
KateDesktopSlideshow.xml

One more edit: I just discovered a lame side-effect of having an RSS-based desktop slideshow...it subscribes you to the slideshow's feed in IE and Outlook (and the RSS gadget, and anything else that ties into the "shared" Windows RSS feed library). So now I get notifications in IE and Outlook whenever a picture is added...nice if that's what I want, but in my case, I don't want that. I wish it were kept separate.

Note you can delete that folder from Outlook with no problem, but if you delete the feed from IE's favorite/feed list, the slideshow stops rotating and just stays on whatever the last picture was to show.

Labels:

Monday, May 25, 2009

Media Center Plugins

Google Maps for Media Center (confirmed working in Vista- you have to save it in "%userprofile%\AppData\Roaming\Media Center Programs" or whatever your equivalent path is. For using it on an extender, use c:\users\mxc1\AppData\Roaming\Media Center Programs or equivalant.

=========

Personally untested, intriguing plugins:

Yougle (This one is supposed to bring online streaming video services to the media center (You Tube, etc). It doesn't list Hulu.

Media Control (This plugin is supposed to give better control over captions, fast-forwarding videos, etc)

Labels: , ,

Friday, May 22, 2009

Installing Windows 7 on netbooks with no optical drive

This is based on information I found here, but modified slightly to a nicer process, in my opinion :)

The problem is that installing Windows 7 (Beta and RC confirmed, RTM likely to be the same) requires a DVD drive, which many netbooks don't have. The good news is that you can still install it to these computers (assuming they meet the minimum requirements), you just have to make your own bootable media. Here's how: (Note I've done this on an Acer Aspire One netbook, but the steps are similar for other computers).

Step 1 - Download or acquire the Windows 7 iso or DVD. I personally like burning the ISO to DVD, rather than mounting it, but if the only computer you have is your netbook, you'll clearly need to download the iso and mount it without burning it. For burning the ISO on XP and Vista, I recommend the ISO Burner Powertoy. If you're running a flavor of 7 already, it's got native ISO burning capabilities. If you're going to just mount the iso as a drive directly, you'll need something like Daemon Tools (and you need to be somewhat of a geek to follow their instructions).

Step 2 – We need a device the computer can boot from. I've had better luck with SD cards rather than USB drives, personally. The specific one I've used was a 16GB Micro-SD card in an SD adapter, but I've also loaded up an 8GB SD card I got for $25 (see my previous post about the Wii menu upgrade and the card I got for that), and it worked too. Regardless, you need a drive BIGGER than 4GB. Note not all computers can boot from SD cards, though...make sure you confirm your computer's boot options. I used an Acer Aspire One netbook though, and it can boot from SD.

Plug the drive into a computer (I recommend a computer other than your netbook so you can use the Windows 7 DVD physical media, but it's up to you).

Format the device you want to boot from to get it all nice 'n clean. I recommend a quick format with NTFS file system, but I've heard Fat32 works as well. You can do this by right-clicking the drive in My Computer and choosing "Format", or by following the diskpart instructions at the page I got the original instructions from (linked to at the beginning of this post).

Open a command prompt as administrator. In Vista and 7, click start, type in cmd, then hold ctrl and shift while pressing enter (or right-click the cmd that appears in the search results and choose "Run as Administrator". In XP, you just need to be using an account with administrative privelages.

Navigate to the boot directory on your Windows 7 media:
cd E:\boot
(where E:\ is the mounted ISO or the DVD drive containing the Windows 7 disk)

Using bootsect, we’ll make the USB/SD media a bootable NTFS drive, ready for a Windows 7 image (my drive was labeled G):
bootsect /nt60 G:
If it gives an error about not being able to get a lock on the media, eject the media, maybe reboot the computer, and try again. If it returns "Access Denied", you're not running the command prompt as an administrator.

Step 3 – Copy the installation files from the Windows 7 disk or mounted ISO to the USB drive.
I like using xcopy to make sure I get everything:
xcopy e:\*.* g: /e /h
(again, my DVD or mounted ISO drive is e: and the USB/SD drive is g: in this example)

We're done with the command prompt now, so you can close the window or type Exit.

Step 4 – Begin installation on the Netbook
Plug in the USB/SD drive and turn on (or restart) the netbook
On start up press F12 to select the bootable drive (or if that option doesn't show up, press F2 to enter setup and turn on the option to allow F12 to show boot options).
Select the USB drive and press return
The netbook will boot from the USB drive, and prompt you to press any key to boot from cd or DVD. Press something (I like pressing enter or space) and setup will begin. From this point forward, if you see it prompt you like that again, do NOT press anything...you only want to boot from the DVD media at the beginning of the setup.

Step 5 - Installation
Now, if you want to install to the netbook and overwrite what's currently on your computer, you can proceed with the prompts as normal...it's pretty easy, even for a non-geek. (But I recommend doing a "Custom (advanced)" installation, NOT an upgrade installation). If that's the case, you can skip the rest of this post...congratulations!

However, if you want to dual-boot your computer using the VHD capabilities built into Windows 7, continue below:

When the Welcome to Windows 7 screen comes up with a button to "Install Now", press Shift+F10. A command prompt will open.

Type diskpart and press enter

Wait a minute for it to get to the diskpart> prompt. Now type:
create vdisk type=expandable maximum=80000 file=c:\Win7.vhd
to create a virtual hard disk file in your C:\ that can hold up to 80 GB, but will only be as large as you need (that is, it will start off as kilobytes, then expand the file as you add things to the virtual hard drive, up to a maximum of 80GB).

It should complete that very quickly. Now type:
select vdisk file=c:\Win7.vhd

Again, that should return immediately. Now type:
attach vdisk

When that's done, type exit, press enter, then type exit and press enter once more. The command line should be closed now. Go ahead and click the Install Now button in the Windows 7 installation routine. When it prompts you for what partition to install to, choose the 78GB (or so...it's not exactly 80GB) partition. It will warn you that Windows cannot be installed to this partition, but ignore that warning, it will work just fine, thank you very much.

Continue installation as normal.

Step 6: renaming the dual-boot options (useful if you have multiple Windows 7 VHDs installed, or if you are dual-booting with XP, which will be labeled only, "Previous version of Windows"). Totally optional...requires a higher level of geek.

Once you're in Windows 7 at the desktop, open up the command prompt as an administrator again. Type: bcdedit

It will list all your boot options. If you have XP as one of the boot options, you'll see one with {ntldr} as the identifier. If you want to rename that to something other than "Earlier version of Windows", (say, Windows XP) you can type in:
bcdedit /set {ntldr} description “Windows XP"

Otherwise, look for the identifier string for the option you want to rename. The one you're currently in will usually be {current}, while a different inactive Windows 7 or Vista installation might either be identified by {system} or by a really long string of random letters and numbers between curly brackets. DO NOT rename {bootmgr}...don't even touch this one. Once you've found the one you want to rename, use the same command as above, but replace {ntldr} with the identifier of the option you want to rename (including the curly brackets), and "Windows XP" with whatever you want the option to read (for instance, I've got "Windows 7 beta" and "Windows 7 RC" as two options on my computer).

Labels: , ,

Wednesday, March 25, 2009

OnLive to Take Video Games to the Cloud

Interesting technology brought to my attention here: OnLive to Take Video Games to the Cloud...it allows (or will, when it's released) you to play high-end video games on computers that couldn't otherwise (cross-platform or low-end hardware, for instance), as long as you have a quick internet connection, for a monthly subscription. Verrrry interesting :)

I'd personally love to see out-of-date games that don't run on modern OS's as well as hard-to-find games like RealMyst show up, in addition to just the high-end new stuff. I don't understand how they can stream that kind of quality, but I can't wait to see. It looks like it might be much better than the lackluster GameTap service; even though they appear very similar on the surface, GameTap still required your hardware to do the heavy lifting (after having downloaded the whole game, a glitchy process), rather than centralizing the processing on their servers and simply sending you the video.

Labels: , ,

Missing Remote

"Guide: How to Enable Concurrent Sessions in Vista"

Just a quick entry here so I can find it later- they've figured out how to allow concurrant remote desktop sessions in Vista Business and Ultimate, as well as enabling remote desktop hosting on Vista Home Premium. Most useful for users of Windows Media Center, since remoting into the media center computer kicks extenders off.

NOT MS-approved or supported. NOT NOT NOT.

If you're on Business or Ultimate, there's also a .zip here that makes it even easier. Just be sure to run the right version (Business or Ultimate) as an Administrator.

Labels: , ,

Friday, September 19, 2008

War of the browsers, part 3q2008

I'm using several "next-gen" internet browsers right now, namely Internet Explorer 8 Beta 2 and Google Chrome Beta. Here are my personal reactions:

Internet Explorer:
Much better than Beta 1, this browser is really stable. Far more sites are compatible with this very standards-compliant browser...more than I was afraid might be the case. And for those sites that don't render correctly, they've got a logical button that renders it the "old" way, and it actually does just what you'd expect it to. Bravo.

I love the colored grouped tabs. However, I don't think that every tab opened by pressing the "Home" button should automatically be grouped together. Personal opinion. By way of explaining what I mean, understand I've got IE set up to only open my "first" home page when I launch the browser (I've got somewhere around 7 home page tabs set though). If it's first thing in the morning and I WANT all of my home page tabs, they're just a click of the home button away. Otherwise, I only get one tab that I can navigate anywhere I want. But when I press the home button, all my home pages come up, and are colored as one group. I think you should be able to set how they're grouped when you set the home page tabs so they come up that way every time. Which leads me to my next wish...

I really want better control over the tab groups. For instance, if I have a tab group with seven tabs in it and I want to split it into two groups, the only way of doing that is to right-click a tab in the middle and choose to "Ungroup this tab". Now I've got two tab groups. Not ideal, but not bad. But if I want to group two existing tabs, you've got to start a tab group (requires you to launch a new tab from one of the existing tabs...hopefully there's a link somewhere on one of those pages), then drag the tab you want to group with those BETWEEN the grouped tabs. Now it's a part of that group, and you can close the extra tab. That's quite a process. However, I do a bit of GUI work myself, and I admit, though I can imagine how I'd like the feature to work, I can't imagine a good way of providing ACCESS to that feature. It's not a small task.

The address bar and search bar modifications are good, though I had to read the IE blog to find some of the "hidden" features. I love that I can finally re-order my search engine list! The only thing I'd like here is the ability to manually change the icon associated with each search engine; I have a few that I manually created at Microsoft's Internet Explorer Search Provider Gallery, and they all use the default icon, so it's hard to tell at a glance when you're typing a query which icon to click on in the drop-down.

I'm surprised that nobody's heralded the fix of a common complaint in IE7; you can now move the bar with your home button, etc wherever you want. Though I'm used to it now, so it's stayed in its default location.

The new "New Tab" page is nice, though I actually prefer Google Chrome's similar page. Which brings me to...

Google Chrome

At first, this browser appears to be the sleek and fast browser Google promises. I ended up having more complaints with this browser than I expected to, however.

First, this browser leaks memory worse than Firefox 2. If I leave it open for more than an hour, my computer slows to a crawl. At least it pops right back to full speed as soon as I close Chrome though. Oddly, Chrome's task manager doesn't list it as using more memory when it's bogging than when it's first launched. I guess that's what "memory leak" means though; it's using memory it's not supposed to be using.

The install process was really nice; quick to install a very small download. It should be easier to find where it asks you if you want to import settings from your existing browser, however.

Each time I installed Chrome, I told it not to import any settings, but it still auto-logged me into several secure websites, which means it's still using some settings from IE. That concerns me.

I like the fully draggable tabs- being able to drag a tab from one window to another, or to the desktop is really nice. I wish IE had this.

The Application Shortcuts window is intriguing, but I missed having a back button. I really only use this for specific pages like Pandora. I wish that each Application Shortcut was actually an xml-based (or similar) archive with any and all files (cookies and alternately cache files) needed for that shortcut so you could (for instance) have different Application Shortcuts that would open up Gmail in different accounts automatically. If they did this, I'd actually use it much more.

Similar features are harder to find in Chrome than in IE. They need to list the same things in the "New Tab" page as IE, without getting rid of what they DO list.

That being said, I love the "New Tab" page (which doubles as the home page) in Chrome. It makes sense to give me thumbnail links to my most commonly-visited websites, and I like this being my home page. Even having the equivilant control as the "links toolbar" in IE only show up on this page makes sense.

I really don't like that I can't press and hold my mouse wheel and drag the mouse to scroll quickly in Chrome.

I actually miss having a separate search box- I use it as a temporary notepad type area in IE

Searching from the address bar is NOT new - IE was offering this at least in version 5, but it's more discoverable now than ever before, and it's not a bad idea. That being said, searching with multiple search engines in Chrome is horribly broken. Ironic, since Google is, at its heart, a search company. You can only do it in Chrome by using keywords. For instance, if you wanted to search with Google Images in IE, you'd type your query in the search box and choose Google Images instead of your default search engine from the dropdown. In Chrome, you have to assign a keyword to each alternate search engine, then type the keyword (for instance gi for google images) before your query in the address bar, then select "search gi for..." from the drop-down. It's really a pain.


So all in all, I look forward to the release of IE8, and I hope that Chrome serves to keep pressure on the more mainstream browsers (IE and Firefox), but I don't see it becoming a real long-term player in the browser war. But that's just my opinion.

Labels:

Engineering Windows 7

If you're interested in the dialog of what the next Windows will be, or are interested in what all has to be considered in designing an Operating System, I've found Engineering Windows 7 to be a really good read. It gives you a bit of respect for the designers as well; read some of the comments on their posts and try to imagine how you'd try to answer everyone's requests simultaneously!

...Though I quickly tired of the comments and just found that getting the updates through Outlook 2007 via RSS is the best way to read it ;-)

Labels:

Tuesday, July 15, 2008

Password recovery/reset in NT (XP and Vista)

I'm trying a few programs for a friend who had some odd problems and is now password-locked out of his new laptop. Please note none of these are intended for domain computers.

First: Password crack (read)
Ophcrack (http://ophcrack.sourceforge.net/)
-They have separate XP and Vista Live CD versions- I'll report back if/how they work. This one is supposed to let you see what the password on a local account, with no change, allowing you log in with no loss of EFS encrypted files, but only works for a limited keyset (alphanum, usually). So it wouldn't work for people who use strong passwords like me. (I include alt+numpad characters that are out of ascii range...a side benefit is that nobody can get in using FTP on my account...ever).

Edit: I tried this tool first, but it didn't work for me. Whether that is because whatever the password was changed to was too complex, or because the tool just didn't work, remains to be seen. I'll try this out on some other machines later.


Second: Password reset
Offline NT Password & Registry Editor (http://home.eunet.no/pnordahl/ntpasswd)
This Live CD is supposed to work with all NT computers (2008 not yet officially supported) that are not domain-joined. It just resets any user's password to blank, regardless of what it was before, allowing you to login and change it to whatever. Using this one will cause you to permanently lose access to any files encrypted with EFS, every time. However, most people don't use EFS, so it's a good solution. If you've forgotten your password, you'll lose EFS files anyway, no matter how you try to get in. Again, I'll report back how this works.
Edit: this tool is more complex than any beginner will want to use, but it ended up doing the trick for me, after I figured out which partition I should be using it on :). It seemed illogical to me that I should use it on the partition labeled boot, since the boot partition should be the CD I booted from, not the default boot partition for the machine! The GUI is dense and not recommended- the text version seemed to do the trick much better. I'm more comfortable in a console for stuff like that anyway. Recommended, if you know what you're doing.

Labels: , ,

Thursday, June 5, 2008

Travian web browser game

So we've found this really fun game called Travian- it's kind of like Age of Empires, but in much closer to realtime. And you're playing against thousands of people from all over the world. And it runs 24/7. So you gain resources at a set rate per hour, and that's a real hour...whether you're logged on or sleeping or whatever. You can upgrade your resource fields to make more per hour, build buildings, and of course, raise an army, allowing you to steal other players' resources. It's really a blast.

It started off just being me playing, but Kyla was intrigued and soon started her own game. Now she's playing on two servers, and I'm on three. It's great, because you can spend as much or as little time on it as you wish- five minutes a day is more than adequate, so it's easily something anyone's schedule will accomodate- Daniel's even started a game on the same server as us and he's doing quite well! We all started on one of the servers that was just beginning (each game lasts just over a year or so), so we'll eventually be among the 'big dogs' on the server.

Anyway, it's highly recommended...and since it's all online, you can log in from any internet-connected computer or even most phones! No software required, and no unreasonable requirements. It's really addictive though.

Edit: some links I find useful:
http://code.google.com/p/travianearth/
http://travianhelper.nl/

Labels: , ,

Tuesday, April 8, 2008

IEBlog : IE Automatic Component Activation Now Available

Awesome; I've been waiting for this: IE Automatic Component Activation Now Available

Once you install the April update for Internet Explorer, you won't have to click on embedded objects (like Flash or Java objects) to activate them anymore! It's only been annoying, but there are so many sites that will feel like a seamless experience again, finally.

Kudos to Microsoft for doing what it took (licensing of some technology, if I'm not mistaken) to get rid of this annoyance!

Labels:

Tuesday, April 1, 2008

Avoid gmail's "on behalf of" problem

The issue: gmail offers a way to send e-mail through their web, pop or imap interface so that it's supposed to appear that it was sent from another account you own and aggregate into gmail for storage. However, in strict keeping to standards, gmail sends out BOTH addresses, so some clients show a from: tag like "From abc@gmail.com ON BEHALF OF abc@xyz.com".

I HAVE FOUND A SOLUTION FOR THIS PROBLEM, however it requires you to use Microsoft Outlook 2007 as your client (or another client I'm not aware of that allows you to redirect where your sent messages are saved).

-Tell gmail to check your other e-mail address via POP (just follow gmail's directions).
-Don't use outlook to check your other e-mail address via POP.
-Enable IMAP access for your gmail account (Settings->Forwarding->Enable IMAP) in the gmail web interface.
-Set up Outlook 2007 as follows:
Incoming Mail Server: imap.gmail.com (just like gmail tells you to)
Outgoing Mail Server: [put here whatever your other e-mail provider tells you to use for POP clients...something like smtp.xyz.com usually]
Logon User Name: [your gmail address] (just like gmail tells you to)
Logon Password: [your gmail password] (just like gmail tells you to)
Outgoing server requires authentication: Log on using: [your POP credentials for your other e-mail provider...usually just your other e-mail address and password]
Incoming server port: 993 (just like gmail tells you to)
Outgoing server port: [whatever your other e-mail provider tells you to use].
-Now, once you're connected to gmail and have synced the folders, go back into Account Settings, and "Change" your gmail account. Click the "More Settings ..." button, and under the "Folders" tab, tell it to save your sent items for this account in [Gmail]\Sent Mail.

What this all does:
You're actually sending the e-mail straight through your 'normal' pop server directly from Outlook. It's not looping through gmail at all, so there's NO way that the recipient of your message could glean your gmail address from that sent message. However, once the message is sent, Outlook posts the sent message to gmail's Sent Mail folder via IMAP. Thus, the message gets synced up to gmail as if you'd sent it straight from gmail.

So then when your recipient replies back to you, it goes back to your other e-mail address, which you're having gmail gather messages from. Outlook will get their reply via IMAP from gmail. If you reply to them again, it's likely that gmail's servers will be shown in the message headers, but I don't believe your actual gmail address is shown in any way (I may be wrong). But still, they'd have to dig through the message headers for it; there are no common user-viewable fields that gmail.com would show up in. In gmail's web interface, you'll still see the 'conversations' linked together, just as if you were sending from gmail.

Note that I didn't tell you to allow gmail to send using your other (POP) account...for this to work, your messages MUST be sent from Outlook (or another imap client that can save sent messages in Gmail's custom folder path). If you send a message from gmail's web interface, you'll be sending from your @gmail.com address. Though you'll still see those sent messages show up in the "[Gmail]\Sent Mail" folder in Outlook, that's probably not exactly what you want. Best case, your recipient's email clients will again show "On behalf of" in the From: field on your message.

Still, this is the best solution I've found...nobody on the web that I can find has posted this method. Now if only Outlook would let me delete the "Junk E-mail" and "Sent Items" folders from imap accounts...these show up in gmail as available labels, and I haven't found any way to get rid of them. It'd sure be nice if gmail just sent messages straight through the pop servers you elect, just like a real e-mai client does...then you wouldn't need Outlook to do this, and you could just JUST the gmail web interface (which is, after all, quite nice).

Labels:

Thursday, March 20, 2008

Environment Variables I need for CAD

This is just a list of variables I find that I need to use to allow AutoCAD profiles to be copied into "Default User" profile on Vista, supposedly (I haven't figured out how to get it to work)...

%programfiles% = C:\Program Files
%userprofile% = C:\Users\[username]
%appdata% = C:\Users\[username]\AppData\Roaming
%localappdata% = C:\Users\[username]\AppData\Local
%temp% = C:\Users\[username]\AppData\Local\Temp

Labels: , ,