Editing User Permissions in SQL Server Express

I'm working on a client project right now and I ran across something that caused me a bit of grief. I imported the database into SQL Express 2005. After the import I was able to view the db, its tables, and its data.

A couple days later when I came back to work on it some more, I was no longer able to view the database contents. Any time I tried to give myself permissions to the database, I kept getting a cryptic error about updating tables.

Permissions error

An exception occurred while executing a Transact-SQL statement or batch.
(Microsoft.SqlServer.Express.ConnectionInfo)
-> User does not have permission to perform this action. (Microsoft SQL Server, Error: 15247)

Turned out that when I imported the database the first time I had run SQL Server Manager as an administrator (I'm running on Windows 7). When I came back to continue my work, I was not running as an administrator. This also explained why I couldn't modify the permissions for my user.

I restarted the SQL Server Manager as an administrator, gave myself permissions under the Security > Logins section. I double clicked my used account in the list and under Server Roles, checked the sysadmin role. I then restarted SQL Server manager as my normal user, and voila, I had access.

I suppose this is old news to SQL Server experts, but it took me a few minutes to figure it out.

Google Nexus One Review

A few months ago I got an itch. I needed a new toy. I had some money and I thought it was time to get myself a smartphone. I didn't want a run of the mill iPhone either. I was contemplating Google's Nexus One. At the time Google was selling an unlocked Nexus One directly. An unlocked phone was pretty tempting. The price tag was one drawback, as well as the ongoing cost of the data plan (I can't imagine owning a smartphone and not having a data plan). It dawned on me that the last PDA I bought was $600 and this phone was less than that.

I contacted a few people in town about their Nexus One and decided to make the leap and bought one. Waiting for it to be delivered was a little painful. Once I paid for it I wanted it right away.

The day I picked it up was great except for the fact that I was out at Keating and couldn't go get my SIM card. I turned it on and was amazed at the quality of the screen. The colors were amazing and the phone just felt great in my hand. Without the SIM card I could still use WiFi to browse the web and set up the phone.

After setting up my personal and work Google accounts the gmail app was suddenly populated with my email. It just worked. The contact list showed a merged set of contacts which was excellent.

Unfortunately the calendar app only shows my calendar from my main account, which is my personal account. The solution was to share my work calendar to my home account then I get all my calendar information in one place.

Overall the integration to Google services is excellent. This makes the time I spent over the past few years entering data into Google Contacts and Google Calendar definitely worthwhile.

When I got my SIM card I also signed up for a data plan. With the SIM card in place and my account updated, placing a call was my next test. So far I have been extremely happy with the call quality. Crisp and clear. The reception has been quite good as well. I was happy with my old phone's reception, but the Nexus One is much better.

So far I have found the phone extremely easy to use. Launching apps, installing new apps, making calls, and browsing the web were all easy to figure out.

There are a few nit picky things that I don't like though. First off is the battery life. The first couple days I had the phone I was playing with it a lot and needed a recharge partway through the day. Once I got used to the phone and used it less I could easily last the day on one battery. The screen usage sure drains the batter, but it is a gorgeous screen.

I also find the external speaker is a little on the quiet side. The ringer sound when the phone is in my pocket is almost too quiet and I have taken to always having it on ring + vibe. This means the speaker phone is also a little quiet. I might have to invest in a Bluetooth headset some day. Of course that will have an effect on the battery life too.

I am not a fan of the slide to unlock feature. It is rather awkward when trying to answer a call and many times I need to try answering two or three times before it actually works. Not cool.

The phone has a built in WiFi radio. It is supposed to automatically connect to familiar networks whenever it is in range. For some reason this doesn't work as advertised. Most of the time I have to manually connect to my home network, or to my work network. Since I don't know how much data I use per month I am reluctant to just always use the 3G connection. Also, WiFi seems a bit faster.

One odd thing is that I had one spontaneous reboot. I was watching a movie that I had recorded on the phone and mid playback it froze. It was stuck for a couple seconds then the screen went black and the phone rebooted.

The phone came installed with Android 2.1 on it. One of the features of Android is multitasking. I could be running multiple apps at a time. On 2.1 this was very limited. Once I got over two apps the phone became very sluggish and non responsive. The task manager I installed usually showed I didn't have much free memory.

Soon after I got the phone Android 2.2 was released through an over the air (OTA) update. Once I got the update I installed it and rebooted. What a difference. The basic phone functions were visibly faster. I could also run more applications and it wouldn't bog down the phone like it did in 2.1 Since 2.1 installed I have not seen my phone being sluggish at all.

After installing a number of apps I started getting warnings I was running out of space. When this happens, the Gmail app inexplicably stops working. It tells me the correct number of unread messages, but it does not show them. Once I delete some apps and make room, the Gmail app starts working again. Very odd. In 2.2 there is now the ability to install apps to the SD card, if the apps enable that feature. This is handy for allowing more apps to be installed. It would be extremely handy if I could just set up the phone to auto install to the SD card if it is supported, or to move all apps that support the feature to the SD card.

Android 2.2 has a great wireless hotspot feature. The Nexus One can act as a WiFi access point and uses the 3G connection to supply the Internet connection. I used this the other day to remote desktop to another computer. Worked like a charm and was very easy to set up.

I love this phone. No it isn't perfect, but I like that Android is a more open platform that Apple's iOS. I like that I can easily create apps and release them to the world. I love how well it integrates with Google's services. I am definitely happy I made the upgrade.

Ads Gone Bad

I was browsing a tech site a while back and noticed that their site was littered with ads. Not only that, but their ad server was not working all that well. Nine Copies of the same ad on one web page? That seems a little extreme. I'm thinking Intel wasn't getting their money's worth on that deal

Too Many Ads

Google Contacts Update

Google recently updated their interface to contacts. Normally I like their updates, but this one sucks. The actual editing of a contact is now more difficult and involves more pointing and clicking than before. Tabbing between the fields results in a horrible flickering and adding a new phone number is clunky. After clicking add, you then have to select the type of phone number.

One other thing that is awful is the phone number display when the number isn't formatted perfectly. I have a large number of contacts with parentheses around the area code. When viewing a contact like this, the last couple digits of the phone number don't get displayed. I actually wish they could revert some of their improvements.

Don't Demotivate Me!

But after years I reckoned developers do not need to be motitvated, they are motivated when they start working – otherwise you wouldn’t have hired them, would you? They are actively demotivated. Companies need to stop demotivating them.

This quote was something that really struck home. I read the article titled "Developer Motivation and Satisfaction" while working at Kodak and during a time when was very unhappy in my position. Changes the company was making were causing enough strife within me to make me consider leaving.

My favorite quote is:

They don’t have to motivate their employees. They have to stop demotivating them.

This hit the nail on the head. I still loved what I was doing for Kodak, and I still loved working with my peers at Kodak. I just hated working for Kodak. Being forced to work in a certain manner and having certain tools and restrictions dictated to me without any explanation really rubbed me the wrong way.

The prime example was email. Everyone in the Kodak Victoria office read their email then filed it away in case it was needed later. We did a lot of design, documentaion, and customer bug investigation via email so it was a treasure trove to us. The IT department mandated that we could no longer store email more than 30 days, unless it was special then we could file it in a certain bucket that allowed it to live for 2 years. Oh, and we were also being restricted to 1GB of storage and no external PST file support.

Because of this I had to drastically change how I handled email putting a much greater emphasis on thinking about an email before filing it. This caused a larger amount of my day to be dedicated to email and this was something I did not like.

Soon after the article above, I read "Unchain the Office Computers!" on Slate.com.

It explained why these new restrictions were hurting my morale.

Here's why: The restrictions infantilize workers—they foster resentment, reduce morale, lock people into inefficient routines, and, worst of all, they kill our incentives to work productively.

Another quote:

This jibes with Pink's argument that it's a sense of autonomy—rather than money—that drive employees to work hard. People work best, he argues, when they feel they're being left alone to do their jobs. But it's hard to feel that way if your computer is constantly throwing up roadblocks in your path.

Because of upcoming restrictions, many people in the office actively researched ways around them. That killed productivity for a while, but also made us hate departments within the company. This again is a morale killer.

As a tech worker who has suffered under these conditions I now feel free. I will no longer work for a large company with these crazy restrictions. I have seen the light. To all managers out there I say this: you have attracted some excellent motivated talent; don't screw it up by demotivating them.

Representing Your Company

With my recent job search, I've noticed something about companies that I feel compelled to write about.

Most companies care what their business partners think about them, most companies care what their customers think about them, and most companies care what their employees think about them. These companies are responsive to those individuals needs and do what they can to keep them informed and up to date.

Companies certainly don't want to get a bad reputation.

My recent experiences have given me a bad taste with a few companies. This all stems from the HR level too. Human Resources. The department that is supposed to deal with people.

I've had HR reps completely ignore my emails and questions. I've had reps ignore my voicemails. If you are working for a company and trying to recruit new employees, why would you give them the impression of an unresponsive, uncaring company? Why would I want to work for a company like that?

Perhaps it stems from the HR person not wanting to give bad news. The flip side is that if I don't hear anything from a company, I spend some time and effort following up with that company. I would rather hear the bad news earlier so that I can move on, and so can the HR person. If it isn't going to work out between myself and a potential job, I want to know as soon as possible.

So what should be done? Keep potential recruits in the loop. If you need more time to make a decision, tell me. If it isn't going to work, tell me. I'm more likely to recommend your company to others if you treat me fairly and respectfully. This is your job as an HR person.

New Projects

A couple weeks ago I learned that I am going to be having a lot of free time soon. Everyone in the office I work in is being layed off.

This of course has its ups and downs. I have the whole month of December off which is great. Downside is I don't have a paycheck for very long.

One of the things I have wanted to do for a while is a little programming on a mobile OS. The hot one these days is the iPhone, but there are a few problems with that. One, I don't have a Mac, and two, there are lots of know issues getting your software into the app store.

One platform that seems interesting, and I can develop for is Android. From wikipedia:

Android is a mobile operating system running on the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance.[3] It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.

I started reading up on how to write apps for Android, their basic architecture, and the development environement, then promptly fell asleep. I needed to get hands on now, so I started setting up a development environment following the instructions on DataSprings site.

One issue I encountered is a bit of an oddball. I set up my virtual device properly, but every time I tried to run it, the emulator claimed I had not created any virtual devices. I tracked down the problem to a non standard computer setup. The setting for My Documents is "D:\My Documents" and the virtual device was created there. Unfortunately the emulator doesn't correctly look up the My Documents directory. It was looking in "C:\Documents and Settings\gfox\My Documents".

I fixed this first by copying the virtual devices to the C drive, but then I undid that and used junction to link the C drive device directory to the actual directory.

So far the craplet I have written has a single button that launches a second "form" when it is clicked. Not bad for a couple days investigation.

I have a couple ideas for applications, so when I am actually not working any more and have some real time to devote, I hope to make some progress.

One hurdle I might face with this project is that I have never done any Java programming. So far the code I have written is very, very similar to C#, so no big deals there. I have a suspicion that I will be referring to Google lots on this.

Switching Things Up

Over the years I have had temporary issues with tendonitis. I've seen my doctor a couple times, but it never amounted to anything. For a few days I take some ibuprofen, adjust my workplace ergonomics slightly and the issue goes away.

A couple years ago I was having a bout of tendonitis, and I decided to mouse goofy. That is to say I switched my mouse to the left side of my keyboard. The first few days were very awkward, but I got used to it.

I also read this article on Lifehacker on why it is a good idea to mouse with the non-dominant hand.

The linked article on Lifehacker posits that doing this stimulate neural connections between the brain hemispheres. I don't know if I would go that far, but I haven't had a single flare up of tendonitis since I switched.

I find it fascinating that when I sit at my computer at home I immediately reach for the mouse with my right hand, and when I am at work I reach with my left. For me mousing with my left hand seems to put me in work mode.

Another Lifehacker article claims that you can boost your willpower and increse your stamina for focusing on tasks by brushing your teeth with your non dominant hand. I think I might try this some time just to do something different.

All on my own I came up with another non-dominant hand mind trick. Whenever I am warming up to play Ultimate, I catch with my left hand. Over the years I have gotten pretty comfortable catching with either hand. I started doing this since I found that there are times in a game where you can only catch with one hand.

Paint.NET is Frustrating

Pain.NET aggravates me. I don't use it very often (which is the problem), but when I do, the pre-release version that I have installed has inevitably expired. Their decision to prevent me from using the app until I upgrade is frustrating and angering. All I want to do is resize an image. I don't want to have to upgrade a perfectly fine piece of software for this.

I know that they really want me to upgrade, but forcing me to upgrade is horrible. Since this has happened to me before I think I am going to go ahead an uninstall it. My time is worth more than this. A long time ago I installed the GIMP. I might have to give that a whirl again.

Being Productive

A couple weeks back the office I work in lost the network connection. Technically we had a network, but DNS was slow to resolve, and we definitely couldn't get to the Internet.

I had a bit of an epiphany about how I work during this outage. I could still work slowly, but I certainly wasn't effective. I decided that I subconsciously solve problems.

My habits are to work for a while, but when I hit a stumbling block in what I was trying to accomplish, I would change contexts entirely and hit a blog, Twitter, or some other site for a couple minutes.

During this break from my work, my subconscious would solve the problem, or at least get me refocussed and when I resumed my task I would pick up and continue right where I left off.

Not having the Internet actually slowed my work down considerably (and not because I couldn't Google the answer).

Several productivity sites I frequent all suggest that the Internet is a distraction and it must be blocked to allow yourself to realize your full productivity. I don't fit that mould.

Syndicate content