Wednesday, January 21, 2015

Why does ArcMap export pixelated lines to pdf/jpeg?

tl;dr: ArcMap's rendering of transparency forces exports to rasterize, causing pixelation. Look at the layer order in your Table of Contents or do not use Transparency in your maps.

I've had this issue for so long it's embarrassing. I would export a map from ArcMap and get very pixelated symbols. At first I just attributed it to ArcMap not being a graphics program and not having the ability to export vector graphics. However, I could see that some lines and text were vector based, and occasionally I would see smooth exports. Why the inconsistency? It was one of those things that bugged me, but wasn't so noticable and important that it made me drop everything and investigate. Finally I had some free time and did some trial and error. 

First I played with the export settings under the General and Format tabs. I've only ever modified the resolution before, and have not changed any other setting. They did not seem to have any effect on my exports.


Then I began looking at the specific layers and started doing test exports. In this map, the circle symbols are below the line (light rail) symbol. 

Below is a pdf export from a map that is zoomed in to 800% in Acrobat. Note the pixelated circles, but the vector based shields and text. At 100%, the drawing looks okay, but you can still tell it's not smooth and vector based.


Next, I by chance moved the light rail line layer below the circle symbols and below is what happened. Nice vector circles! So does it have to do with layering? That would be odd, given the amount of layers that are in a typical ArcMap document. I noticed that below, the light rail line still looked pixelated.


Ahh - Transparency. On the above exports, the light rail line had 50% transparency applied. Below is the map without any transparency. Vector circles and vector lines.


After doing a bit of follow up research, I found a gis.stackexchange post and an ESRI blog post that mention this limitation.

While I'm happy to finally know what is happening and how to control this export pixelation, it is a bummer. I use transparency quite a bit in my maps now and will need to make design changes in the future to keep things vector.

Monday, November 17, 2014

Converting MBR to GPT during Windows Server 2012 Setup OR using more than 2TB of space on your server

Was recently tasked with setting up a number of Dell servers that had a large on board storage array (16TB RAID 6), but after Windows 2012 R2 was installed I noticed I only had 2TB of available space! I tried a number of things in the Disk Management snap-in, but nothing I would do would enlarge the partition. After some Googling, I realized that it was because my RAID volume was formatted as MBR, not GPT.

After more research I realized there was no way to modify the disk after an install and I had no option other than to repave the box (fortunately I hadn't done much on the install).

Below are the steps I used to convert the MBR to GPT, ready to install my OS.


  1. Changed BIOS to UEFI (this took forever for me to figure out. UEFI is tied to GPT and even though when booting to BIOS, it will let you convert a disk to GPT, it won't stay that way during the install)
  2. Start the Windows Server (or other OS) install, but get to a command line (in Server 2012, choose the option to repair an existing installation > command line)
  3. Enter the following commands
    1. DISKPART
    2. LIST DISK
    3. SELECT DISK 0 (make sure that's the disk you want to convert)
    4. CLEAN
    5. EXIT
    6. DISKPART
    7. LIST DISK
    8. SELECT DISK 0
    9. CONVERT GPT
    10. EXIT
  4. Proceed with your installation (for Windows Server, at this point, the installation window has disappeared. No worries, just cd .. up a directory, and then type setup.exe to start the setup again.
After this, you will be able to use all of your disk space. 

Resources;

http://www.howtogeek.com/193669/whats-the-difference-between-gpt-and-mbr-when-partitioning-a-drive/
http://technet.microsoft.com/en-us/library/cc738416(v=ws.10).aspx

Thursday, November 6, 2014

Dell T610 on boot: "Invalid PCIe card found in Internal Storage slot. System halted"

We just shipped a Dell tower server on a pallet up to one of our offices, but when powered on, we did not get a happy message:

"Invalid PCIe card found in Internal Storage slot. System halted"

After starting to sweat a little thinking about how much time I had spent configuring this machine, I had one of our staff unseat the RAID card and then re-seat it. It booted right up. It must have just come loose during transit. A lesson to me, that even if it is a 70lb server and palletized, UPS/FedEx will still throw it around, so pack well!

Monday, September 1, 2014

IT career Best and Worst of 2010

Some time ago I stumbled across a few tumblrs (... tumblogs ... tumblr sites? I'm definitely not hip to this.) where they did a best/worst list of that particular year. It was a really nice idea especially for someone like me who has a terrible memory and who would like to remember these sorts of things. I've been keeping a Google Doc of my own best/worst lists stretching back to 2002 (I only started it this past year but used my Gmail/email*, calendar archives, and feeble memory to help me fill in the past.)

While I have some career details in my personal Doc, it is not that extensive, and I thought it would be interesting to have a blog post dealing with best/worst for just my IT career. This will be a series of posts where I aim to recall the milestones in my IT career. I'll start with 2010 and a few years before.

2007 Best

  • Got my first IT gig (part-time) with a friend of mine who had a small IT consulting firm. I had always been technical and into computers, but this was the time I was forced to learn a lot. I installed Gentoo Linux from scratch via command line using the handbook, learned about Drupal, and did a lot of general helpdesk type stuff. My friend/boss was super helpful and taught me a bunch. He was also very patient. I remember on one occasion a task was to update some Drupal content on an offline site that resided just on a flash drive. I forget the exact details, but I made the edits and returned the flash drive as is (didn't backup the db or anything) so the work was useless! He wasn't mad though, just explained what I had done wrong. This experience ended up not only helping me identify an interest and modest strengths in IT, but also helped me to get a job at my current firm.
2008-2009 Best
  • Went to grad school and helped build custom workstations for me and a colleague. Was able to get some experience with C# programming and 
2008-2009 Worst
  • Had a lot of opportunity to do and learn more in IT including C# programming (I shared an office with a very proficient C# programmer), and server administration, but ended up not making much of it because I was too busy driving 4 hours many weekends to see my fiancee (that was pretty important though!).
2010 Best
  • Landed my first full time job as a GIS Specialist (what I went to school for), but also to assist the current GIS Manager with the IT duties. At the time I joined, the company was roughly 30 staff and had about 5 white-box workstations/servers in the back "server room" (if you could even call it that - it didn't even have AC or a locking door!). The company's email service was POP, served by a crappy host where the domain was registered (Verio.com - feel no shame in calling them out). There was no instant message system, and the calendaring system was made up of everyone having separate, individual google calendar accounts (which really sucked later when we moved to Google Apps for Business!) The management of IT was in transition between the first guy (husband of the president of the company) and the current GIS Manager and things were kind of strung together, but I didn't really know much better at the time. I was just happy to have a place to grow my IT skills while staying in a comfort zone of something I knew fairly well (GIS). I started in May and this first half a year was nice. I was kept busy on the GIS side, and learned more and more about the IT there under little pressure. It was a gentle transition into IT. I learned a lot of great helpdesk troubleshooting techniques, got to build my own workstation (with my very first SSD! - never going back to spinning disks!), and settled into my first job. No real downsides to this year that I can remember. I also married my fiancee which was a plus too!



*One of the disappointments of this task was realizing that I never exported my college email accounts. It was so fun going back into my Gmail archives which stretch back to 2004, but I had a lot more email in my school accounts that would have been an awesome time-capsule into my life back then. So export your school email accounts kids! Before the school turns them off!

Wednesday, August 27, 2014

Active Directory clients and server not synchronizing time (In a Hyper-V environment)

I had a problem with the Active Directory servers and clients I was setting up from scratch. They would not keep time and were constantly 5-6 minutes slow. I would reset the Primary Domain Controller clock (PDC) to correct time, then wait for the time to sync down to clients but it would fall back to being slow again. I was doing a lot of troubleshooting with w32tm but really getting nowhere - until I found this post and realized the problem was due to virtual machines losing time.

All clients were synching to the PDC, but the PDC was synching to the Hyper-V host, which had inaccurate time. Even when I manually changed the time source on our PDC using the command below, it did not work because the PDC quickly reverted to synching to the Hyper-V host machine.

PS C:\Users\Administrator> w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org"

A few moments later

PS C:\Users\Administrator> w32tm /query /source VM IC Time Synchronization Provider

The solution was to manually change the time source on the Hyper-V host

PS C:\Users\Administrator> w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org"
PS C:\Users\administrator.TDG> net stop w32time
The Windows Time service is stopping.
The Windows Time service was stopped successfully.

PS C:\Users\administrator.TDG> net start w32time
The Windows Time service is starting.
The Windows Time service was started successfully.

PS C:\Users\administrator.TDG> w32tm /resync
Sending resync command to local computer
The command completed successfully.
PS C:\Users\administrator.TDG> w32tm /query /source
0.pool.ntp.org

Once this is done, go back to the guest PDC and run a resync

PS C:\Users\Administrator> w32tm /resync
Sending resync command to local computer
The command completed successfully.
PS C:\Users\Administrator> w32tm /query /source
VM IC Time Synchronization Provider

Without prompting a manual resync, the corrected time may be delayed in propagating across your domain.