Installing “Active Directory Users and Computers”

I often need to know what users belong to an AD group. To do this you need to install the “Active Directory Users and Computers” feature.

active-directory-users-and-computers

This feature comes as a part of the “Remote Server Administration Tools for Windows 10” installer.

After installing it you can open it by hitting the Windows key and typing “Active Directory Users and Computers”. You can then right click the AD node on the left and select “Find…”.

Advertisements

Google’s Project Fi will not save you from bad cell reception at your home

The only cell phone network with decent signal at my house is Verizon. Verizon is an OK company; they have good customer service. My only complain is they are expensive.

I love the Google ecosystem so I got very excited when I heard about Project Fi. I waited until the Nexus 6P’s price dropped (when The Pixel came out) to switch over to Project Fi.

One of the big features of Project Fi is that it can switch from Wi-Fi to cell towers (of 3 cell networks) seamlessly while you have a call going on. And it can also switch from any of the 3 cell networks seamlessly picking the one you have best reception with.

I made the switch over to Fi.

It was no surprise to me that the 3 cell networks Fi is currently partnered with (Sprint, T-Mobile, U.S. Cellular) had less reception than Verizon.

But this is where Google Fi began to fail for me: It is not smart enough to know that my Wi-Fi quality is better than the cell tower quality. From my home, it still tries to use the towers even though the tower call quality is unacceptable.

I called Fi support to complain and they mentioned they could update my settings so Wi-Fi took precedence over cell towers. It was annoying to have to call to get them to do what I thought the phone would have done on it’s own based on the advertising on Fi’s website. It was also disappointing that it was always going to choose Wi-Fi when it was available as opposed to finding the best call quality comparing both Wi-Fi and cell towers.

Then came the final disappointment. All Wi-Fi calls have a strange echo heard by the non-Fi person on the call. At this point all my calls at home were going through Wi-Fi; I thought this was going to work out great. But then we noticed that the person on the other side of the call would ALWAYS hear a 1 second delayed echo of themselves. Everyone thought it was annoying and some could not even talk to me because they were so distracted by listening to their voice.

This echo was experienced also on Google Hangouts calls. Others (see here and here) are experiencing the same thing. Wi-Fi calls with Skype, WhatsApp, and Boss Revolution work fine even though support tried to blame it on all Wi-Fi calls for a little while.

Sadly, I had to cancel the service. Cell phone call quality is already crappy (compared to the good old land lines) when things are working as expected; anything worse than that is unacceptable.

 

Why I went back to Android from iPhone

I’m a long-time Android power user. I’ve been using Android for about 10 years now and always wondered why some people loved iPhones. So I decided to try one out. My plan was to stick to the phone for 6 months to make sure I gave it a good shot; but after 2 months of using it; I decided it was not worth it and went back to Android.

The phones I compared were an iPhone 7 and a Samsung Galaxy S7.

The iPhone 7 was not all bad. Here are the areas where it felt superior (note they are all hardware related):

  • Camera is slightly quicker
  • Finger print scanner is quicker

Here is where Android was superior (note they are all software related):

  • Back button
    • The placement is the same across apps.
    • You can always reach it with your thumb where the optimal grip of your phone is not jeopardized
      • the iPhone has it at the top left or top right. Both places are not optimal for how common you do this action.
  • You can customize the position of your home screen icons.
    • the iPhone only lets you customize the sort, but they are always positioned from top to bottom. And again, the top of the phone is really hard to reach; why do they force their users to use it?
  • You can install apps from the web browser
    • On the iPhone, all your app research has to be done either on the phone or on iTunes, none of which let you open multiple tabs at the same time.
  • Custom mp3 ringtones are easy to set up.
    • On the iPhone you need iTunes and the ringtone has to be converted to a spceific codec. I was not able to convert my special mp3 ringtone to that format; not sure why.
  • Does a better job at embracing the cloud
    • You can access all your photos/documents on any device (pc, phone, tablet) that has a web browser.
      • This means you can go to your buddy’s computer and just log in to a website to see all your photos. Same thing with your documents, spreadsheets, etc.
    • The iPhone also syncs things to the cloud but they are not that easily accessible from devices that are not yours.
  • Allows you to install apps that can read/send text messages.
    • This enables magnificent apps like MightyText where you can enter the text message on a web browser running on a desktop and send it through your mobile phone.
    • The iPhone allows you to send text messages from a desktop or laptop but you have to use their apps that only run on Mac OS. This means the desktop or laptop has to be a Mac.
  • This one is very worthy of a bullet: You don’t have to use iTunes.
    • Granted that you really only need iTunes to do power user things on your iPhone.

Conclusion:

Both are good phones and operating systems.

The iPhone has superior hardware. If you don’t like to customize things and you use your phone mostly for normal things (phone, calendar, maps); you will prefer this phone.

Android has a superior UI and is way more customizeable. If you are a power user that enjoys tons of app choices; this is definitely the phone for you.

Analyzing IIS C# Memory Leaks

There comes a day in a developer’s life when you have a memory leak. This is not too common in the C# world but it happens. When it happens it is usually in production; and it spoils your day for sure.

In this post I’ll show you how to get a memory dump of the IIS process running your website (application pool) and then I’ll show you how to open it an analyze it.

Step 1: Getting the Memory Dump

Go to the server (production, staging, dev, wherever) where the memory leak is happening.

  1. Open up the Task Manager
  2. Click on the Details tab
  3. Right click on any of the existing column headers (name/PID/status)
  4. Click on “Select Columns”
  5. Check the “Command Line” column and hit OK
  6. Sort the list of processes by Name
  7. Find all the w3wp.exe processes
  8. Identify the one running your app pool by looking at the “Command line” OR “User name” column
  9. Right click on the process
  10. Click “Create dump file”

Step 2: Analyzing the Dump File

There are several tools for analyzing Dump Files. Visual Studio (VS) has that functionality as well and chances are you already have VS installed on your machine.

To see the C# type (class name) that is using tons of memory:

  1. Take the dump file generated in Step 1 and place it in the machine that has VS installed.
  2. Open Visual Studio
  3. Go to File>Open>File
  4. Open the Dump File
  5. This will open the Minidump File Summary
  6. On the Actions section of the report hit “Debug Managed Memory”
  7. This opens the Managed Memory report
  8. Sort the report by “Inclusive Size” descending
  9. The types at the top of the list are the ones using up all your memory

From here you are on your own. You need to understand what those types do and why they are using all the memory. On my particular situation, my IoC container was set up to use singletons on tons of WCF client classes. I registered those types as transcients in the container; that solved my problem.

Best Way to Store a Yakima Cargo Box in Your Garage

The Yakima Cargo Box I own is a RocketBox Pro 14. I used cables, pulleys, and a winch to hang it right on top of where I park my car. When I winch it down, it lands right on my car’s cross bars.

yakima-rocketbox-garage-1

The box fits well on top of the opened garage door. You can see that and the winch on this pic:

yakima-rocketbox-garage-2

On this pic you can see the pulleys and cables:

yakima-rocketbox-garage-3

This final pic has the car right under the box:

yakima-rocketbox-garage-4

This project was a lot of fun; it involved pulleys and a winch! I thought I’d share this in case someone’s looking for ideas.

EMF Meter Comparison (ED88T, ED78S, Trifield 100XE)

After searching for the right EMF meter for my home, I decided to buy the Cornet ED88T. On this post you will find why.

These are four types of EMFs that you want to measure in areas where you spend a significant amount of time:

  1. Microwave Radiation
    • Sources: wireless technology like Wi-Fi routers, cell towers, cordless phones and “smart” meters
  2. Magnetic Fields
    • Sources: power lines, improper home wiring and appliances
    • Health: They decrease the immune system and are known to be carcinogenic3
  3. Electric Fields
    • Sources: unshielded electrical wiring
    • Health: They rob you of a good night’s sleep3
  4. Dirty Electricity
    • DE are the frequencies that travel on your home wiring from things like solar power inverters, florescent lighting, dimmer switches and wireless “smart” meters)
EMF type Cornet ED88T Cornet ED78S Trifield 100XE
Microwave Radiation  Yes  Yes  Yes, but not accurate2
Magnetic Fields  Yes  Yes  Yes
Electric Fields   Yes, but the scale is not ideal1  No Yes, but the scale is not ideal2
Dirty Electricity  No  No  No

Once you have the ED88T, you can watch this video to learn how to use it and you’ll probably wonder what the safe maximums are for all the readings:

EMF type Safe Max3 Safe Max in Cornet ED88T screen readings
Microwave Radiation  100 (day) 10 (sleep) microWatts/squared meters (uW/m2)  0.1000(day), 0.0100 (sleep) miliWatts/squared meters (mW/m2)
Magnetic Fields 1.0 milliGauss (mG)  00.10 microTesla (uT)
Electric Fields  Less than 10 V/m  0010. V/M
Dirty Electricity 25-50 Graham-Stetzer Units

Here are some of the readings I’ve collected.

Building your own Annoy-a-tron with an ATtiny85

The annoy-a-tron is a little device that makes a small beep every X minutes. If you hide it well enough in a co-worker’s cube, it will drive him/her insane and will do almost anything to find it.

The annoy-a-tron is currently out of stock at ThinkGeek and I really wanted to prank someone at the office with it. So I did some research and decided to build one.

I decided to go with the ATtiny85 because I enjoy coding more than I do soldering. Instead of buying a 555 timer chip with resistors, capacitors, etc. like they are doing here, I just need to program the chip, wire up a battery and a speaker. I chose the ATtiny85 over the Arduino hardware because the ATtiny is cheaper and draws less power.

The final product looks like this:

20150621_223628

And the software I put together makes a beep of customizeable tone frequency and length at random time intervals.

These are the parts you need to build the circuit:

The ATtiny85 is cheaper if you buy it in bigger quantities, I regret not buying more just so I can have different programs (different random intervals, tone, and tone length) loaded on the chips ready to go. SparkFun doesn’t have the best prices so look around if you will buy in bulk. I trust SparkFun and that’s why I bought most things there though.

You need a programming board to program the ATtiny85. I chose the Tiny AVS Programmer instead of the official one because I wanted to try out the Arduino IDE. To set up the IDE with the programmer, just follow the programmer’s hookup guide.

The Circuit:

The circuit is very straight forward. You just wire:

  • The positive end of the battery holder to the positive pin on the ATtiny85 (the solder tail).
  • The negative end of the battery holder to:
    • The negative pin on the ATtiny85
    • The negative pin on the piezo speaker
  • The chosen out pin (I chose pin 1) of the ATtiny85 to the positive end of the piezo speaker.

20150621_223603

The Program:

I used the Arduino IDE (set up with the Tiny AVR Programmer Hookup guide) to program the ATtiny85.

Click this link to get the source code of program I loaded on the ATtiny85.

The program was deeply inspired by TinyTone to generate the tones and millionOhms to preserve power by getting the ATtiny85 to go to sleep.

I found that testing the program out takes a long time since you have to actually wait and see how the chip behaves. The program works like I want it to but I still have some questions that I’d like to ask an Arduino IDE (c++) expert or need a good amount of time to test out:

  • are the #include statements optional?
  • are the #define statements actually setting a variable or are they optional?

Testing those things would take time since removing them might not make compilation break but it might make the ATtiny85 not go to sleep properly and use more battery than expected. So I would have to see how long the battery lasts to really know if it is sleeping properly or measure the current being used by the ATtiny85 with an ampmeter.

Well, I hope you have fun with the ATtiny85! I’ve tried it with a couple of beta victims and I’m ready for a real one tomorrow.