Friday, April 25, 2014

Coding: Loading SharePoint Objects (C# SharePoint)

This was not the behavior I was expecting, so here is a reminder to myself. When loading objects from SharePoint using the SP Client, I must load the object and still execute query.

            clientContext.Load(object);
            clientContext.ExecuteQuery();

object can be fields, lists, item, etc.

Another unexpected behavior is that dictionary's KeyCollection does not use an indexer, so enumerators have to be used to iterate through the collection.

Tuesday, April 22, 2014

Coding: Where to find where SharePoint Client (SPClient_x86) installed to - Microsoft.SharePoint.Client.dll

Downloaded file from:

For me the files were installed to:
C:\Program Files\Common Files\microsoft shared\SharePoint Client

I am posting this because I could not find where the files were installed to. When looking online, it led to the wrong folder. http://msdn.microsoft.com/en-us/library/office/ee539974(v=office.14).aspx

Wednesday, April 16, 2014

Life: Should I get a Smart TV or a larger regular TV?

I am needing a TV. I have not owned a TV since 1999. There was a brief time that I had a roommate with a TV but even then I rarely ever used it. During that time, TV has changed quite a bit.

One of the new features is the Smart TV. I am torn between a 60" for about $1000 with a 55" with Smart TV for $1175. Is $175 worth a new feature but a smaller view screen?

At first, I was torn because the concept sounded nice but I could just connect a PC or laptop to the TV. I could probably buy a small micro box or used system. But it would be nice if it was automatically integrated with the TV. Then, what about updating the software? And who maintains the OS, upgrades, etc.?

After reading the reference-1, my thoughts were confirmed. There did not seem to be a good reason for me to get a Smart TV (although the thought of developing a third party application did cross my mind).

Technically, this will be my second TV purchase because I bought a 19" for $100 just so that I had a TV to test out my TV service. I really wish there was an easy way to continue to use the small TV without having to rent another top set box.

I've been reading about Chromecast. That appears like a nice solution for the small TV although I probably would not be able to get regular TV service on it.

Also like to mention that there are also different types of TV: LED, LCD, and Plasma. Today, most TV sold are LEDs (fortunately less thinking for me). There were a couple Plasma which are much, much cheaper than the LED of the same viewable size.


Update

Unfortunately for me, by the time I pulled the trigger there were no more un-smart TVs. >:o

But fortunately, someone happened to return a 60" Sharp Smart TV so it had a 10% open box sale. The person returned it because they ended up wanting a larger TV so it was practically brand new. Sweet! I ended up buying that for around $1200.

I've had it for several weeks and every show I watch is new to me, so marathons are such time wasters! The logical part of me is telling me that life before a TV was much better. I played around with the Smart TV but I do not use it much. I ended up buying a Chromecast and it has been great for me, so I definitely would not recommend get a Smart TV if you have the option and save a couple hundred dollars. Chromecast may not make the Smart TV function obsolete, but AppleTV, Roku, or Amazon Fire will probably come close and have additional features. Chromecast is the cheapest of the options. I have a post on my first impressions (reference-2).

Reference

[1] http://www.rtings.com/info/what-is-smart-tv
[2] http://douglastclee.blogspot.com/2014/07/review-chromecast-first-impression.html

Thursday, April 10, 2014

Review: Replacing Flat Tire on Honda Civic 2012 (1 hour)

I do not know what I ran over the other day, but I suddenly got a low air alarm on my car as I was driving last night. When I got back home, I could hear the air coming out of the front driver side tire. It was dark and rainy so I figured I'll look at it in the morning.

Sadly (but not surprised), my tire was flat as can be in the morning. This is my first time having to put on a spare tire. All the previous times, I had enough air to make it to a repair shop.

So, I tried to see how far I can go but I got on stuck on the very first step, where to put the jack. I went to the trusty YouTube videos. The jack went where it seemed pretty obvious. There is a notch near each wheel on where the jack should go. This is where I would have guessed if I were stuck in the middle of nowhere. I was concerned because the area is an edge not a flat surface which was what I was expecting.

Before raising the jack, I had loosened the lug nuts as recommended on the video. Then, I spent a lot of time trying to raise the jack. I had some trouble because I was too close to the lawn so I did not have complete clearance to make continuous circles. Eventually, I got it to where it needed to go.

The lug nuts were easy to figure out although I had to put a lot of weight into it to loosen them up before. Everything up to this point is demonstrated in the first video [1]. I even laid the nuts out so that I could put them back in the same order.

Then I got stumped because my tire was stuck. The video [1] shows the tire easily came up, practically just fell off. I was really tugging and at some point I realized that I should stop before I knock the car off the jack. Then, I looked for another video [2] on stuck tires.

Fortunately, someone happened to come by and was able to help me. He was able to get a piece of plywood and a mallet. He basically did what was on the second video except he used the plywood to prevent any potential damage the mallet could do. With a couple hard hits, he was able to get the tire to pop off.

I put on the spare, then put the lug nuts back on in a star pattern as recommended in the video. I brought the car to a tire repair place nearby and had my tire patched up for $28 including tax and service. The guy even said that it was patched from the inside and 'plugged' from the outside. Supposedly, patching the inside is better which made sense to me.

Although I was a little bummed by the flat, I felt good about the experience in putting on a spare and getting this all done in a day. I probably could do the entire process within 15-30 minutes.

I still had the low air warning with the spare tire. I am not sure if it went away when they replaced the tire or if they had to enter some code to reset it.

Steps to Replace Flat Tire with Spare

1. Loosen lug nuts
2. Place jack in appropriate spot
3. Raise car until front tire is off the ground plus a little extra if the tire is extremely flat
4. Remove lug nuts
5. Remove tire
6. Put on spare
7. Put on lug nuts and tighten in a star pattern
8. Clean up tools, put flat tire in car

Reference

[1] https://www.youtube.com/watch?v=3gSyHyrFN2Y - Video on replace the front driver side tire on a Honda Civic
[2] https://www.youtube.com/watch?v=H7PWwrcGREM - Video on getting tire off when stuck (EricTheCarGuy)

Monday, April 7, 2014

Review: TurboTax Online 2014 (for 2013 tax)

It cost me just under $100 for TurboTax to file my 2013 taxes, about how much it would have cost me to pay for an accountant.

I am not a huge fan of the new layout at first. It was a little confusing on what I needed to do with the edit or add portion. This was confusing because it said that it was importing my data from 2012 tax season. Then I get to this screen with all my information with 2012 and 2013 data where the 2013 data was empty (because I have not fill in any information yet). When I click on each item, I only had options to edit or remove. Nothing has changed from last year, and I have to enter the information again?

It is kind of a pain that my employer is yet to have their payroll automatically pulled from TurboTax. I was also not sure what to put in when it asked me if I moved since the last filing because I did move but it was this year.

It was hugely convenient that Scottrade was one of the available companies to import data from because I have made many trades in the last few months. This was nice because it was able to separate the DIV from the INT and from my long term trades. The confusion was a bit on the long term trades because there was a lot of extra pages that were not pertinent from Scottrade. With the auto import, I was able to figure out what the fields were for... eventually.

Otherwise, the whole process took me about 1 hour to complete.

Work Life: Yesterbizday

Yesterbizday is the last business day before today.

Thursday, April 3, 2014

Life: Blogger March 2014 Stats

Google Analytics

Visits = 361

Google Webmasters

Total Queries = 299
Approximate Impressions = 7400
Approximate Clicks = 500

Google AdSense

Page Views = 792
Clicks = 1

Blogger

Pageviews Last Month = 1788
All Time Comments = 34
All Time Posts = 192
All Time History Visits = 16930

* Approximations are rounded down

Tuesday, April 1, 2014

Work Life: Windows Shared Folder

Sometimes you do not have control over how teams manage their files. Here are some of my thoughts when they use Windows folders without source control.

Cons

Version Control

One common occurrence when you have multiple people working on the same files is that someone may override another person's changes. This could occur maliciously or innocently. There is a good chance that if multiple people are working on the same file that they replace the files around the same time. The last person may not have known the file was just updated during the time they were uploading the changes.

Folder Structure

Unless there is an enforcer, everyone has their own breakdown on how data should be broken down or sorted. For example, internal processes could be broken down as Internal > Processes for someone that deals more with internal team vs external teams or Processes > Internal for someone that deals with processes vs templates vs administration.
This process breaks down further when someone is tasked to upload a file to the shared drive without clear knowledge on how all the folders are structured. Thus oftentimes, the person will just create another folder in what they think would be the best bet. A clear indication of this is when you find a lot of folders that have a single file in it.

Duplicate Files

Due to the cons of folder structure, there is also a good chance that users upload the same files in different locations. Although this is also possible in other file sharing solutions, most of the other solutions do have search which help reduce this possibility. Microsoft's search within network folders is less reliable than local files which also is not always reliable.
This makes it difficult for a new user to know which is the official file to use (assuming the person finds both files).

Naming Convention

Due to the above limitations, people have come up with different workarounds. One of the most common ones is to append new, updated, backup (bkp), or a date. After several versions, more files are stored where most will never be used again. By the time that such files may have use, there will be confusion if 'new' is newer than 'new2' or 'new new' or 'newer' or 'newest'.
Sorting is also quite difficult especially if a date is used. Most people like to use the MMDDYY or MMYY or MMYYYY. When the dates spans multiple years, the files no longer sort in chronological order because alphabetically 02.2014 will come before 03.2013, where it should be 03.2013 then 02.2014. Sorting also becomes even more difficult when different delimiters are used: periods, dashes, subscores, spaces.
There is also confusion with MMDD with small values because it is not intuitive whether the file is MMDD or DDMM or MMYY (for example 0102). The problem with MMDDYY is similar in that it can be confused with YYMMDD, for example 010203. The year will eventually need to be appended because theoretically 50% of new files will be created in the second half of the year and 25% in the last quarter. Continuing the same process will likely extend to the following year. Now, the user can either update all the files or they create even more subfolders which is just more overhead or clutter the shared drive.

Best Practices

These are some practices that I like to use.

Dates

I recommend that people use YYYYMMDD if they have to use dates. There are two benefits to this. First, it is clearer that the first part is the year (primarily because the years will never be less than 1200 and months will never be 20+). If for some reason the date is for earlier than the 13th century, use some sort of delimiter. A delimiter could be useful in either case and should be decided by the team. Removing the delimiter is useful in reducing file length which some systems still have issues with. Second, the file system will naturally sort pseudo-chronologically (pseudo because it still sorting alphabetically).

File Backup / Version Control

I recommend that you make a copy of the file you are going to edit then rename the file with the current date (YYYYMMDD). When ready to publish to someone else, copy the file again but rename without the date (assuming you do not want to include the date for aesthetic). This will prevent someone from accidentally click save and override changes by accident. This also prevents file locking issues (use your userid if someone else is modifying the same file). And this is somewhat like version control. If additional backups are needed in the same day, unique identifiers can be added to the end of the file. They should avoid using adjectives, preferably another count for example 20140101.01 or 20140101.01.myid (to identify who owns this iteration). A policy should exist that these exceptions should be deleted at a future date to cleanup and declutter the shared drive.

Folder Structure

There is little that can be done to enforce folder structure especially when managing multiple environments and multiple teams. Ideally, a desired file can only go into one folder or the other, for example internal or external, process flow or templates. This way of thinking would cause increase levels of subfolders which is also undesirable. A user should be able to navigate to their desired files around 3 levels. Any more, the folders have to attempt to be as exclusively mutual as possible.