Friday, December 23, 2011

Microsoft Exchange on HP Touchpad

I know that I have not been the only one to have trouble setting up Microsoft Exchange email on the HP Touchpad so I wanted to give my quick solution which I saw only once in all the threads that I read.

When you want to set up MS Exchange, you have to know the server's address first of all. I don't want to explain ho to get that now but I will be happy to help anyone who needs it. When I set up my account the trick was to not type in anything for the domain and instead of typing just my username in the username field, I typed my whole email address.

Simple solution but it worked. Feel free to ask for more help if you need it.

Enjoy WebOS,

Hermann

Wednesday, December 7, 2011

Copy folder with Ubuntu smb client

The smb client for Ubuntu is easy enough to use; however I searched for quite a while before I found the exact syntax for the command to copy whole directories instead of just files. I have done this a couple of times now but have never documented it so I figured I should for future reference.

I also feel that the previous times I might have done it a different way so I wouldn't be surprised if some of you can suggest yet another way to accomplish this.

What I used was this (at the Ubuntu terminal).

(My Users folder under my C:\ drive was shared from my Windows machine)

smbclient //192.168.1.2/Users
cd <the directory path of the parent folder of the directory that you want to copy)
recurse (this is so that smb recursively copies all subdirectories and files)
mget <the folder that you want to copy>


You can either use the statements separately in the order provided above or you could use it in one statement as in the following example:

smbclient //192.168.1.2/Users -N -c 'prompt;recurse;cd Hermann\Downloads\;mget "New Movie"'

The above line will get the "New Movie" folder from the machine specified by the IP address.
The -N parameter: this parameter suppresses the normal password prompt from the client to the user
The -c parameter: this parameter specifies that a command to be executed will follow. It is very useful in scripts

Finally I have it documented :)

Let me know if I can be of more assistance!

Thanks,

Hermann



Saturday, December 3, 2011

mpg123 and mpg321 in Ubuntu

I have recently been experimenting with Ubuntu quite a bit. The terminal in Ubuntu is just so powerful and there is really an unlimited number of things that you can do. If you have ever tried to get cron to do your dirty work for you, you would have realized that command line apps just work much easier since if you use GUI apps you would have to manipulate the DISPLAY variable in order for cron to be able to handle the application like you want.

For playing back audio, mpg123 and mpg321 are excellent, simple-to-use, apps. They can do all the basic things like open mp3 files, play lists and even urls. One drawback it seems like is that at this time they don't support an extensive number of formats.

One thing that I thought might be of help to someone is that when you create play lists, make sure that the file contains only the file names of the songs separated by line feeds. (Every file name on a new line). Also do not use "" tags around folders or files that contain spaces in the file names. Just type them as they appear.

You can then play the play list using mpg123 -@ playlist

Enjoy,

Hermann

Thursday, December 1, 2011

New Design

Guys,

I am currently redesigning my blog; however I don't always seem to have the time to finish the design from start to finish so I apologize for any weird layouts that you guys might see in the following couple of weeks.

I think that the end product will be worth it though :)

Hermann

Sunday, November 13, 2011

telnet, openssh, spc Ubuntu to Windows

I am currently doing some research on different technologies to use for controlling one machine from another or do things like copying files and folders between different machines that are on a network. In particular I am interested in different technologies that work well between Windows and Linux machines.

I was quite surprised that after struggling for quite some time last night I was still unable to copy files from a Windows machine to a machine running Ubuntu, attempting to use scp from the Ubuntu machine in order to get some files. I am sure many people will read this hoping to find the answer to the problem; however as of right now, I don't have an answer for you if you are attempting to access the Windows machine from Ubuntu and trying to copy the files and folders from the Windows machine to Ubuntu.

Fortunately I am on a home network and my network is secure and behind a firewall so I have been able to use the samba client in Ubuntu.

The samba client is pretty straight forward to use. I am not in front of my Ubuntu machine right now, but I will try to get the syntax right in the example. In my case I shared the C:\Users folder on my Windows machine. One the Ubuntu machine we can then do something like:

smbclient //192.168.1.2/Users -k -c "get file.txt"

This command will get the "file.txt" file from the C:\Users directory on the Windows machine and put it in the current working directory. This is just a basic example; however there is an excellent resource here.

Also, as always, feel free to let me know if I can be of any more assistance :)

Thanks,

Hermann

Tuesday, November 8, 2011

Microsoft Dynamics GP database schema

Hi guys,

I came across a pretty good explanation of the Dynamics GP database schema (which I am sure has had a lot of you scratching your head.

Please read more about it at the link below:

http://accountingbot.com/wordpress/?p=68

Let me know if I can be of more help.

Thanks,

Hermann

Tuesday, November 1, 2011

maxJsonLength error message

I have run into the following error message on a MS Sharepoint site more than once now and I figured it might be helpful to document it. I ran into this using PerformancePoint Dashboard Designer so my description will be relevant to that.

Exception Details: System.InvalidOperationException: Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.

This has to do with a setting in your web.config file.

For example the following setting restricts the json string length to 50000
<jsonSerialization maxJsonLength="500000">


Although it is not recommended that you change this setting, you could change it. Generally when this error is thrown, it means that you are doing something like trying to display too many members in a chart, or at least trying to filter a set containing too many members. Since behind the scenes the MDX still has to initially work with the whole set before filtering it, you are likely to still run into this problem even when you think that it should not cause an error.


Make sure that your filters are not passing too many members to handle, to the charts for instance.


Hope this helps a bit.


Give me a shout if you want me to be more specific.


Happy coding,


Hermann

Tuesday, October 25, 2011

Cannot open epub on your new Nook?

If you just drag and drop books onto your new Nook (touch), they might now work because of attempts to stop copying copyrighted material. The easiest way is to actually transfer the epub file with Adobe Digital Editions to your Nook. It's a fairly painless process although obviously slightly more annoying than just dragging and dropping!

Happy reading!

Hermann

Tuesday, October 18, 2011

PerformancePoint Dashboard Designer installation URL

I just want to write this down quickly and I hope that some time this can help someone out looking for some real quick information. If you have Windows Server 2008 running on some machine (and you have Sharepoint Enterprise running with some site set up) and you are looking to install or run PPS Dashboard Designer, the easiest way is to go to the url http://<<yoursite>>/Pages/ppssample.aspx. From this page you will be able to install or run Dashboard Designer.

Thanks,

Hermann

Friday, October 14, 2011

Google Chrome user agent style sheet overwrites css

If you have used Google Chrome's developer tools quite a bit, you might know that it has a very useful interface  that specifies from where it is getting it's css settings for a specific element. You might stumble across a case where your css is getting overwritten by css from a "user agent style sheet". It seems like Chrome has a default style sheet for webpages; however if you css is getting overwritten, simply check your css syntax. It is most probably a syntax error that is causing Chrome to ignore your css and opt for using its own.

Happy coding,

Hermann

Wednesday, October 5, 2011

jQuery ajax function returns html code for whole page

I ran into a situation that I hadn't run into before. In my jQuery ajax function the result that was returned was the html code of a whole page. Not to fear, this is an error that should not be too hard to track. In my case, I used servlets and my servlet used the redirect function to redirect to another page after I had used the printwriter to return some html code to the ajax function.

The result was that the redirect function was redirecting to another page after the printwriter had written its result (so the printwriter's result was simply overwritten by the redirect method). Thus the ajax function received the html code of the whole page that the servlet had redirected to.

Check for similar functions (whether you are working in php, Perl, etc.). I have not run into this many times, but it makes sense that any similar case should have almost exactly the same cause.

Happy coding,

Hermann

Friday, September 16, 2011

Measures in PerformancePoint Dashboard filter

You might know how to get dimensions in a filter in PerformancePoint Dashboard filters, but what if you want to change the measures of a report, using a filter?

You can use the MDX Query filter type when creating the filter and then specify [Measures].[Measures].Members as the MDX query to populate the filter.

You can obviously also specify particular members if you do not want all of them.

Thanks,

Hermann

Thursday, September 15, 2011

Changing PPS Report measures with filters

Hi guys,

The below link gave me the information that I needed:

http://social.technet.microsoft.com/Forums/en-US/ppsmonitoringandanalytics/thread/3d4fd073-4f6c-4ce4-ac1b-7953ceff6fb5/

Thanks,

Hermann

MDX Filter Connection Formula

The Connection Formula setting for PerformancePoint Dashboard Designer is quite useful in many instances. For example, if we want to create a report with the top 10 US states by the revenue generated by employees in that state, then we can build the filter using a dimension hierarchy like Employees by State. The problem is that we cannot simply connect this filter to the chart by connecting it directly to one of the chart dimensions. The reason is that if we select "Arizona" from the hierarchy, the natural result that we would want to see in the chart is for it to show the top 10 Employees for Arizona.

To get the desired result, we somehow have to specify that when we select "Arizona" we want to pass all the Employees in Arizona as a parameter to the report. The report can then do all the filtering on this set which includes only Employees from the desired state.

This is where the Connection Formula property comes in very handy. When creating a connection between a filter and a report, it is possible to specify a Connection Formula so that you can actually specify exactly what custom values you want to pass to the report when this filter is used.

The formula has to be written in MDX where <<SourceValue>> refers to the value in the filter, that is selected by the user.

For instance, in the above mentioned case we can use something like the below MDX query (the syntax might not be exactly right). The query assumes that we are using a Employee by Location hierarchy that contains all the Employees as Children of the state members in the hierarchy.

IIF(<<SourceValue>>.Member_Name = 'Arizona', [Hierarchy].[Arizona].Children, "whatever else you want to do here")

Please let me know if I can be of any help,

Thanks,

Hermann

Wednesday, September 14, 2011

Migrating PerformancePoint Charts to another server

It seems that the migration of PerformancePoint content like charts, between servers have been somewhat of a vague area for many of us. I searched around the internet and found that quite a lot of people, like the people in our team, opted to recreate all the content on the new server. This is obviously not a very efficient migration method at all, and this is just not suitable for moving content to the production server of a client.

I found a solution to a part of our problem, but not to the whole problem. Dan English is a BI developer and it seems to me that the guy knows what he's talking about. Read what he has to say about migrating content between servers:

http://denglishbi.wordpress.com/2010/11/20/migrating-performancepoint-2010-content-to-new-server/

The problem with his solution is that we need to have a connection to both the "old" server from where we want to migrate the content and to the "new" server to where we want to migrate the content. I am sure some of you can immediately see that this is still not the optimal solution for migrating content to a client server although it can be done.

What I am looking for is a way for us to package the content that we want to migrate and then restore it on the client server. One of my teammates suggested that it might be possible to do this by backing up the Sharepoint site or site collection (all our content is deployed to Sharepoint sites), but we have not had the time to look into it.

I would appreciate it if anyone can suggest anything. We are working on this and I will definitely post the solution once we have found it!

Thanks,

Hermann

Thursday, August 25, 2011

Ubuntu 11.04

This new version of Ubuntu is worth checking out (and not by all means were the previous versions not worth it). Great added features, including very accessible social networking options straight from the desktop. I am impressed. Try it out. It is a free download.

http://www.ubuntu.com/

Hermann

Friday, July 15, 2011

HTC EVO 3D

I saw the HTC EVO 3D for the first time today. One of the guys in the office just got it so he showed it off a little bit. I have not played with the phone much, but it is famous for its capability to capture 3D photos and videos. I saw him do this and I have to say that it is pretty impressive. No 3D glasses needed to review the photos or videos. I will research a little bit more on the technology that is used to produce this effect.

Nevertheless, seeing a 3D video for this first time without glasses is intriguing and probably even more so to technology lovers!

Hermann

Dimensions not allowing drill down in PerformancePoint OLAP Grid

This is just a quick note that I want to make before I forget it. I recently ran across an incident that I hadn't before and I just wanted to mention it in case it might help someone. The incident was that my dimensions in my OLAP grids were not providing me with the drill down little plus signs that you would normally see next to them. This grid was for a cash flow developed for a business, and since a cash flow is a calculation involving values from the Balance Sheet and Income Statement the Cash Flow SSAS cube included a lot of calculated values.

What happened was that these calculated values were not properly defined for every level of the hierarchy so Analysis Services did not know how to roll these values up to their parent level. I revised all the calculations and the dimensions worked fine.

Hermann

Monday, June 27, 2011

Creating Time Filters in PerformancePoint Dashboard Designer

This post is about creating time filters in PerformancePoint Dashboard Designer, as the title suggests. Of course there are more than one way to do this, but one very simple way is to correctly add Time Intelligence (you can ask me how to do this) to your cube in BIDS and then when you are working in Dashboard Designer, you can add a "Member Name" filter. For this filter, you have to then choose the correct time dimension that is associated with your cube. Once you have chosen the correct time dimension, select the members of the hierarchy, that you want to use for the filter. Once you are done configuring the filter, you have to create a connection between it and the region that you want to be influenced by this filter.

To do this, you can add your filter to one of your dashboards, for instance. Towards the right side of the filter, there should appear a down arrow, that, when clicked, will give you two options, one of which will be Create Connection. Click on this and then select the item that you want to connect to e.g a chart). On the Values tab select the time dimension of the chart that you want to connect to and then you can select Member Unique Name in the bottom drop-down list.

Your filter should now be configured correctly. Save and deploy your Dashboard. Test it.

Hermann

Saturday, June 25, 2011

MDX: Define "Empty" cells so that they are not displayed

This post might not be important to many readers as this is probably a very simple technique to someone who knows MDX well, but I am hoping that at some point someone will find this helpful.

I had named calculations in my SSAS cube and the IIF formula defined a cell to contain "" (empty string) when the calculation could not be completed. The problem with this definition was that the "Filter Empty Rows" setting in Dashboard Designer did not work since these cells were not empty (although the looked empty), but instead they contained the empty string. The easiest fix is to instead of defining the cell to contain "", define it to contain null. Now the cell will be considered empty by Dashboard Designer and would be filtered.

Hermann

Friday, June 24, 2011

HTC Sensation 4G

I had the HTC Sensation in my hands for the first time today. I myself own a LG G2X and without being bias, my experience with the HTC Sensation interface was not as smooth as the one on my G2X. Physically, it is smaller than my phone, and I have to say that the screen quality is very high. I am not sure if it comes out with Android Gingerbread, but nevertheless from what I experienced in my 10 minutes with the phone, the G2X is still at the top of the line for T-mobile.

Hermann

The new Barnes and Noble Nook

I just had the new Nook in my hands about an hour ago. Very impressive device indeed. Extremely light, complete touch screen, and a complete, simple user experience makes this the top reader for me at the moment. It has very impressive battery life - up to 2 months! It is not ideally optimized for web surfing, but it nevertheless provides for a very smooth experience. It is much shorter and a little wider compared to the first generation nook.

At this moment I don't know all the ins and outs of the device yet, but I have quite a lot of experience with e-readers and I played around with it for about 10 minutes. I was very impressed. I also think that it comes at a very reasonable price at $139. Let me know if anyone wants to know more about this device.

Hermann

Thursday, June 23, 2011

MDX

I am currently getting to spend quite a bit of time diving into the MDX language. MDX stands for Multidimensional Expressions. A very interesting and powerful language indeed. It is different from any other computer language that I have come across and is specifically used to query multidimensional structures like SSAS (SQL Server Analysis Cubes) cubes. I am just starting off with it, but it seems like I will be spending an enormous amount of time on it so I hope that I can help anyone with questions about it, out soon!

Hermann

Tuesday, June 14, 2011

T-mobile G2X

I recently exchanged my old phone and got the T-mobile G2X. I had done a lot of research on the phone because, unlike for many people in this day and age, this was going to be my first smart phone. The smart phone market is so huge now that it is sometimes almost impossible to decide which phone you want. I looked at the three major options: Apple, Microsoft and Google (Android).

I really like the new Microsoft OS. I think the experience is really smooth (although that should be a given on a smartphone) and there are some very interesting and user-friendly design aspects incorporated into the OS. One thing I had against the OS was that it still did not (and does not) run on a 4G device. For me it was not worth it to buy a 3G device with 3G being a relatively old technology. I have also heard people say that the app store for Microsoft is not yet big enough, although this was not the deciding factor for me.

As far as Apple's option goes, I had never been quite as into the iPhone as many other people have. I admit that it is a high-quality product and being a Software Engineer myself, I can vouch for the quality of the iOS. With the biggest app store currently available, this is obviously an option well worth consideration for many.

My choice to go with Google was based on a couple of things. Compared with the Apple strategy of restricting access to anything that's not from the "Apple Realm" I think goes against the whole concept of reaching as many people as possible with your device. I understand that it has its advantages. For instance, from a software standpoint, applications can be tweaked exactly to run extremely well on a very specific set of hardware components. Though that may be, I think Google's open approach is probably paving the way for the future. The Internet giant has taken over Apple with regards to smartphone OS sales an is gaining ground as far as tablets go as well.

More about the G2X: So far I have been very impressed with the phone. It sports a dual-core 1GHz process and is very fast. Since the process is made by Nvidia, the phone's visual quality is excellent. Some people have complained about the battery life of the phone; however I have gotten at least 36 hours off of every charge (while using the phone quite often for online tasks).

I will write more soon, but for now all I can say is that this phone provides for a very smooth experience and will not disappoint!

Hermann

Monday, June 13, 2011

Microsoft Exam 70-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance

Hi all,

I apologize for my absence from the blog. I intend to write more often now that I am working full time and not looking for jobs anymore. I am currently preparing for a Microsoft Exam, the more specific title of which can be found in the title of the blog. I am taking the exam this weekend and will post more about it after I pass it :)

Hermann

Wednesday, February 16, 2011

Apache Tomcat Error loading WebappClassLoader

Hi guys,

This is not a very sophisticated fix to not a very sophisticated problem; however I hope it can help someone at some point. A rookie mistake but nevertheless a mistake that anyone can make. If you get the following error message from Apache Tomcat: Error loading WebappClassLoader, it is very likely that somewhere in your web.xml file, a wrong declaration was made. Make sure to include all packages for Servlets included in the web.xml file.

Hermann Kuschke
Hi everyone,

I saw a preview of the HP Touchpad this afternoon. I have to say that I am pretty impressed with what I saw. Looks like the Web OS, and the hardware that they have included will make for a very smooth tablet experience. Seems to me like it is going to be available this summer.

Hermann Kuschke

Monday, February 14, 2011

UNIX classpath

The error that made me think about creating this blog, involved the CLASSPATH variable in UNIX, as the title suggests. My particular case involved Apache Ant (a tool that helps with building projects). The problem arose because I changed the CLASSPATH variable permanently. What can happen in that case is that the CLASSPATH might contain, for instance, an older version of a class file than is needed for the build. So my Ant did not want to execute properly because it did not like what it found in the CLASSPATH.

I have been working with UNIX quite often over the last 6 months and it seems that it is true what many programmers say: Don't set the CLASSPATH permanently!

It seems to be a better option to set it manually when compiling a java program, for example.

Just a quick thought...

Hermann Kuschke

Welcome

Welcome to my technical blog. I am interested in all kinds of technology and I am hoping that we can share and enjoy our love for technology on this blog. I decided to create this blog as even with the vast amount of information that the internet presents to us, there are still some unanswered questions. In particular I am thinking about programming problems that I have run into myself and have found extremely difficult to solve. I am hoping to create one more place where programmers might be able to find what they are looking for. Last but not least, this blog is not just about debugging and I would definitely enjoy technology discussions as well. After all, the best way to learn is probably from one another, right?

Hermann Kuschke