Monday, March 31, 2014

HOWTO: Count Unique Values in a Column using Excel

I thought this would be an easy function to find, but of course, Microsoft proves me wrong again.

= SUM(1/COUNTIF([select data],[select data]))
Then make sure to use CTRL+SHIFT+ENTER.

This does not address blank cells.

Reference

http://www.excel-easy.com/examples/count-unique-values.html

Friday, March 28, 2014

Buggish: Curly Braces with Confluence v5.1.5 (Jira) and SharePoint

I continue to have issues with the links from SharePoint due to the curly braces. I had hoped the Wiki upgrade would have resolved this which it kind of does.

The editor no longer has odd behaviors when saving and editing the links where the text/link combination kept growing each time the page was edited and saved. But, it does not fix the link issue.

Now, the issue is that the link appears but is not a hyperlink. Also, the curly brace at the end is not made part of the link. This behavior seems to suggest to me that there is a conflict with the editor interpreting part of the link as a macro.

If I removed the curly braces, the link becomes clickable. Thus, I still use the same workaround as before.


Reference
Complaint: Curly Braces with Confluence v3.x (Jira) and SharePoint
Upgraded to Confluence 5.1.5

Thursday, March 20, 2014

Life: Visa CC Changed due to Target Hack

It is just life that I have to go through this credit card change hassle just because I went to Target once to buy a box of envelopes. So many stores like nearby supermarkets, bookstores, and whatnot, I choose the one that gets hacked.

The hacking event happened a while back and I did get a warning from the Chase site that my new card will be sent (which I have not received). I watched my account and no suspicious activities.

Then suddenly a couple days ago, my card suddenly was declined. This is very odd because I was just using it the previous day. After logging on, I found that they already changed my card number. Well, I'm glad that I no longer had any automatic charges that went to my old card but what a pain that would have been to change at a random time.

Review: SharePoint 2010 - Designer Email Editor, Calculated Column - Left, Substring, Right

Summary

Cannot be done in the Email Editor, but there is a crappy workaround  with Calculated Field.

Backdrop

I did not have a say in the design of our group's SharePoint site. It was not designed using a normal form. I have found my way into the designer to play around with some of the functionality because I need a way to get a substring of a field. The 'developer' working on this does not seem to understand what a substring or text manipulation is. Since I am not familiar with SP, I am playing around to see if I could "point" him the right direction after I figure it out.

Details

There does not appear to be any text manipulation in the email editor. Alternate solution is to create a calculated column. 

I need to provide the last item in a comma delimited field. I found this was impossible if there were more than two items unless there were more parameters to FIND or a FINDLAST function. FIND will return the first comma while I need the position of the last comma. Without a loop, there is no way to navigate to the last comma. 

Fortunately since I am entering the data, I decided to enter the late item at the start of the field. Thus switching to the LEFT function and FIND the first comma. While writing the function code for this, I ran into a few unexpected errors.

The primary problem is that FIND returns an ERROR if a comma is not found. I was expecting a 0 or a -1 or a false. To get around this, I had to use ISNUMBER which then returned either a 0 or a false (documentation says Yes which I seem would be No for false).

At least this does not cause problems if there is an ERROR, the display will just be #ERROR#.

Reference

http://3sharp.com/blog/building-dynamic-strings-in-sharepoint-designer-workflows/
http://msdn.microsoft.com/en-us/library/bb862071(v=office.14).aspx

Wednesday, March 19, 2014

Review: Google AdSense - Page View Counts are Lower than Other Sources

I have been watching the page views between Google AdSense, Blogger, Google Analytics, and Google Webmasters, and AdSense is much lower in count than the other sources. I expected this is due to all the ad blocks that exist on the internet. Another possibility is that firewalls are blocking out the ads depending on corporate regulations.

I did find interestingly is that my page count view has been growing slowly yet by AdSense actually decreased although very slightly. Although not a huge sample, the trend according to Blogger is that my page counts have increased from the low 50s to upper 60s, while AdSense decreased from 27 to 25 (metrics in 'per day' units).

Provided my assumptions, this would seem to indicate that 1. I attract more users that have ad block, 2. I attract more users that are behind corporate firewalls (I guess it could be personal but I am going to assume that number is very negligible), and 3. revisiting users have installed ad blocks in between. Given the nature of this blog, my guess would be #1.

I wonder if there is a way to verify that conclusion.

Monday, March 17, 2014

Interview: Rating Yourself on a Scale

"Where do you place yourself on a scale in [insert vague subject] from 1-10? 1 is nothing at all and 10 is knowing everything."

Simply put, I think the answer is always 7-9. You may go with a 5-6 if the subject is not directly related to the position, like piano for an engineering position (unless the specific engineering position deals with pianos).

Explanation of My Logic

First of all, they are not going to accept anyone with a score below 7. So why not try 7 at the minimum? You were not going to get the job anyways if you answer less. Worst case, you get called out on your knowledge on the subject but at least you got the interview. At which point, you just hope your other strong points will compensate for the "lie". Even then, the "lie" is insignificant because the scale is so subjective anyways that you can talk your way out of it.

The score cannot be 10 because you cannot possibly know everything. You may still get the interview, but it is way to easy for someone to question your ability when you are unable to answer certain basic questions in a few that you do not know. In this case, it may be worth not having the interview because it will be a waste of your time. You will have a much better chance with a 9 than a 10 even if you think you know everything. Because if you really were a 10, you will not need to be going through an interview process especially one that is going to ask for your expertise on a scale.

So at this point, the answer cannot be 1-6 or 10. This leaves 3 numbers: 7, 8, and 9. If you are an amateur go with 7. If you are experienced, go with 8. If you think you are an expert, go with 9.

Amateur is someone that can look up (i.e. Google) the question and find an answer. Experienced is someone that can do some of the work on your own (i.e. without supervision or review board). Expert is someone that other people will come to you for recommendation, design, or proof-of-concept.

My Perception on Reality

Like almost all interview questions, the answer is what the recruiter wants to hear not your real answer. If you were a real all-star, you wouldn't need to go through the regular grueling interviews that most of us common folks have to go through.

For the few that struggle with projecting an untruth or using my (insane) logic above, I will sadly tell you that my experience has very unkind to me. I have tried to actually scale myself to my knowledge of the subject. For example, I say that I am an average programmer so that I say that is a 5. I can easily say that I have not received any follow up calls when I give that answer.

I have spoken with a few friends of mine who now have been in the field for about as long as I have. They know my level of experience. Trusting their words, my experience is actually much higher than what I rank myself. Even then, they say that it is subjective to the people that they had to interview. They tell me that they get plenty of people who rank themselves 8-9 who barely know any programming.

Although they are easy to filter out in the interview, the automated systems are much more lenient. Unfortunately, this also means that people like me will be filtered out even though my experience is clearly higher than others. Basically, this is a total win-win for exaggerating your skill sets because not only do you at least get an interview, you also removed some of your competition.

Because of this, I am extremely tired of seeing "requires excellent communication skills, writing and oral" because the level of 'excellence' is no where what I think is actually excellent. To me, excellent means something that you excel at and should make fewer errors than most people. I do not consider myself on the excellence caliber, yet I am oftentimes correcting other people's emails, messages, logs, etc.

I do not even mean simple, human error type errors. I mean that they consistently spell the same common words incorrectly. Words that are commonly spelled correctly like beautiful or introduction. It does bother mean when someone uses manger instead of manager but I do not think it is acceptable to misuse than and then. Not using the serial comma bothers me, but I will reluctantly accept it.

I have even had coworkers (including managers) have me write out the communications just because I word things better. Yet when we post the job description, they still use that they require excellent communication skills. 

Can you speak English (with or without an accent)? Do you use spell-check? Do you know basic grammar (there was a director born and bred in the US midwest that spelled grammar as grammer)? If you answer yes, then the answer is that you have excellent communication skills.

We have hired people where I cannot even understand the person because of his accent. We have hired people who cannot spell. We have hired people who have very poor grammar. So, do not lose an opportunity just because you have lower self-esteem than other people.

Hopefully someday recruiters will learn the fruitlessness of these types of questions to candidates. The scales are useful but it should be derived from questions that are not relative to the candidates' perception of the industry.

Relative/Subjective Scale

Assuming that I am an average programmer, I will not be researching all the programming languages, all the designs, all the architectures, etc. There is no way that I would know what a 10 would even mean. Obviously, the scale could not be on the subject itself because everything is basically infinite.

A better idea would be that it is relative to other people in the industry. I think of myself as average because I find an equal number of people who can program better as those who cannot program better. Truthfully even as I rethink that concept, there are so many people out there that know things that I do not know... basically, the more I think the smaller my value on the scale becomes.

Even assuming that I am a pioneer in C#, there are still so many people who will know Java, C++, VB, and so many more programming languages better than I can. How can I possibly put myself on the scale?

Sigh... I just have to state that I hate these types of questions, not because of the reasons I stated above because logic is comforting to me. But because, I still try to figure out if there are better logical answers even though I know there are none thus just wasting my energy. I hope writing this will help.

Sunday, March 16, 2014

Buggish: Motorola Droid RAZR Google Maps not switching to Landscape Mode

Solution

Updated to latest version, forced stop the application, restarted phone. Forced stop may or may not be required but it was a step that I did before restarting. Since I cannot reproduce the issue, I cannot confirm any or all steps.

Story

For the last month, I have not been able to get Google Maps on my Droid RAZR (the first version) to switch to landscape mode. Other applications are able to switch between portrait and landscape normally. I've restarted my phone and forced stopped the application.

Nothing seems to fix this problem. This is quite a problem for me because I'm able to squeeze the phone in landscape position into the dashboard of my car only thus not requiring any type of docking station.

On the bright side, I've gotten better at judging turns even with my phone appearing sideways. I have my map on a locked north position.

So while writing this post, I restarted my phone just to verify my tests and, behold, Google Maps can now switch to landscape mode. I had restarted my phone a couple times before. The only thing I can think of was that I did just download an update. Then, I forced stop the application. At this point, the problem still exists. After I restarted, the problem has gone away.

This makes me question how applications are executed after an update. Why did the update not autocorrect the problem? Even if the update did not trigger the change, the forced stop should have ended the process. This seems to indicate to me that there is some cached memory, probably on the OS level. That hypothesis does not explain why my other applications do not have the same problem.

Sunday, March 9, 2014

Buggish: Google Drive gadget broken on my Google Sites


Google Drive encountered an error. If reloading the page doesn't help, please report the error. To learn more about Google Drive, please visit our help center. We're sorry for the inconvenience. Thanks for your help! - The Google Drive Team

This is embedded in my sites page which was working the last time I was on which was a while ago. I have continued to add date to the spreadsheet in Google Drive. Today, I decided to go onto the sites page to see if the list was updated. Instead of the sheet, I saw the error above.

I attempted to modify the gadget. At first, clicking on the link to the spreadsheet did not work. I clicked Change button to reapply the correct sheet. Now, click on the link brings up the spreadsheet. After saving all the changes, I continue to get the error above. Clicking on the Open Sheet link at the bottom of the gadget brings up the proper spreadsheet.

I'll check back again at at a later time to see if this error is fixed. This is the first time that I saw the error.

Updated:
After further investigation, I found this error occurs with the new Google Spreadsheets. I tested with an older Google Spreadsheet which still works.

Tuesday, March 4, 2014

Work Life: Hire Character. Train Skill.

"Hire Character. Train Skill" ~ Peter Schutz

I saw this quote on LinkedIn and thought it interesting. Although it sounds nice, I have rarely found any company that train any skill sets. Maybe that is because of my limited knowledge of different companies. I would guess that I know about 10-15 companies.

Even with that said, character is still very important in the dynamics of a company. For example, I work very well in an open-knowledge environment where people share information and their knowledge. This is very evident in my current role where the group is slowly converting contractors with employees.

Although it is odd that contractors are more open about their work, I think the main contribution to this difference is the age group. The contractors are a much younger generation than the transferring employees. The employees are coming from a very old technology group that is slowly phased out.

It makes business sense from a 1000 foot view why this transition is happening, so I am not going to delve too much into that. What I find interesting is that the incoming employees are very possessive of their work, but not aggressively possessive. By this, I mean that there are small nuances in their behaviors that make it more difficult for our group to adapt to certain issues.

On top of that, they are very compartmentalized in their view of their roles. Before, we share some responsibilities when we are overwhelmed with a certain task. Thus, we were somewhat interchangeable in our roles. If one of us were out, someone else could easily back up for a small period of time. Now, the new employees are very reluctant to explain what they do and very reluctant to take other work. Oftentimes, they just say that they are too busy with their work.

What I really dislike about this is that meetings now require more people which in turn makes it less effective for each person on the call. Today, there is a call that requires three people from our group because it impacts three different roles. One of the roles is more encompassing the other two which was assigned to one of the employees.

I have been trying to explain that she was the only person needed from the call because she has access to our data. We only contribute about 5 minutes worth value to a 30+ minutes meeting. Although I've explained this, she says that she is too busy to know that information thus requiring us on the call.

It may be possible that she is very slow in this, but I used to manage her role, the one I have now, and other roles. I used to do all that before without a lot of problems (yes, I am not fully utilized now but I use the time to learn the technology and help with other more value-adding processes). Thus, I have a very hard time understanding why she does not have time for something that took me about 4 hours a week to do (I tracked that because her predecessor also had the same time issue).

Even if I was wrong in my assumption and she really is busy, she is also on my daily calls that provides the status to the very information that she needs and something she should be tracking. Of course her excuse is that she is multitasking so does not know what is going on. First, my list is a subset of hers thus there is really no reason for her not to ever be doing something else. In other words, all my items are relevant to her list. Second, if she does not get anything from my meeting then she should not need to join my meeting.

Basically, the newcomers are not as focused in making our time more effective. With each new person, this pattern seem to be normal and also seem to be acceptable. At the same time, the general feel within our entire project group is that quality seem to be decreasing. This has been going on for over half a year.

I guess that was a long way of ranting and saying that character is important because it changes the dynamics of the group. And sadly, I'm not sure if it is better to hire character than skills. Although skills can be taught and character may have greater impact, my reluctance is our ability to understand someone's character within a short interview process. Even then, can any character pick up the required skills needed?

Sunday, March 2, 2014

Life: February Weight Update

I am down 1.5 pounds since a beginning of February. Although I am up half a pound from the lowest weight in February, this is still good news because I did not exercise at all.

I've been distracted with my project, mortgage, and soon taxes will be on my mind. I've also been cleaning weekly. I've used an entire small box of baking soda. It is amazing how much easier it is to clean things with it. Also the realtor has shown the place a couple times so I also had to be out for a little but. I think the cleaning may have been a partial workout, in some sense.

Besides the cleaning, I do occasionally do a few jumping jacks or running in place for 1-3 minutes every so often to stay warm. I do not understand why certain days just feel much colder even though the thermostat is always displays the same temperature.

I think I ate out only a handful of times last month. I want to say 4 times which included 2 buffets. Otherwise, I've been cooking. There was maybe a couple days where I ate primarily meat, but most meals were primarily vegetables. Most meals include 2 onions, 1-2 sticks of carrots, half to a whole bell pepper, a few cloves of garlic, and a pound of meat. Sometimes there is enough for a second meal. I do get hungry still, but have been mostly eating fruits like banana, grapefruit, and oranges. I also made a lot of soup based meals with the leftover bones. Most soups include the same ingredients plus turnip or napa.

Note:
I am about 56 pounds over the largest ideal weight for my height. I am not aiming to lose weight quickly. I am trying to slowly change my way of life to healthier alternatives which includes the way I see life.


Reference:
http://www.rush.edu/rumc/page-1108048103230.html

Saturday, March 1, 2014

Life: Blogger January/February 2014 Stats

Analysis

Seems that my traffic is decreasing a little bit. I think this is due to the decrease in a couple of my older posts that have been driving most of the traffic. My guess on that is due to the age of the posts as they over a year old. 

I still have not figured out what keeps causing the 1 or 2 visits on each of my pages. The first visit almost always occurs within a few minutes of posting, but sometimes could take up to a day or two. The second visit is more erratic in that it could be within a day to a few days (maybe a week).

I am glad to see that my traffic sources are now search engines. Last year there were a couple that would always sneak onto my list that were for other advertising. I do not think that I did anything to change that, so hopefully that is just blogger cleaning up the data or the ad sites disappeared or the ads do not think it is worth there time anymore.

I am trying to reuse my lables, so hopefully the number of single tags will decrease over time. Or perhaps, I will be trying to increase the higher count labels.

Google Analytics

Visits (January) = 450
Visits (February) = 371

Unique Visitors (January) = 403
Unique Visitors (February) = 330

Page Views (January) = 615
Page Views (February) = 436

Pages per Visit (January) = 1.37
Pages per Visit (February) = 1.18

Google Webmasters

Total Queries (January) = 275
Total Queries (February) = 266

Approximate Impressions (January) = 8,500
Approximate Impressions (February) = 6,960

Approximate Clicks (January) = 600
Approximate Clicks (February) = 437

Google AdSense

February = 794 Views
January = 951 Views
All = 2037 (since 12/19/2013)

Ad clicks = 0

Blogger

Comments (January) = 9
Comments (February) = 2

Posts (January) = 24
Posts (February) = 18

All Time History Visits = 14,967
Last Month History Visits = 1,285

Review: Google AdSense (@2000 page views)

Earnings

I reached 2000+ page views a couple days ago but wanted to wait till the end of the month to see how this will change my balance. So far no change to my balance even thought my estimated earnings for last month was $0.01, so I am still at $0.37.

So it appears, I do not earn anything just by having ads on my page when no one clicks on it. I thought that I would at least get something for having ads. I plan to try this for one more month, then switch to the wider ads.

Note

Please do not click on the ads unless you are intentionally interested in the ad (per Google's terms of use/service). I am not blogging for income. I am just analyzing the service. TIA


Reference

http://douglastclee.blogspot.com/2014/01/review-google-adsense-1000-page-views.html