Search Results

Search found 56 results on 3 pages for 'niraj deshmukh'.

Page 1/3 | 1 2 3  | Next Page >

  • SQL SERVER – Guest Post – Architecting Data Warehouse – Niraj Bhatt

    - by pinaldave
    Niraj Bhatt works as an Enterprise Architect for a Fortune 500 company and has an innate passion for building / studying software systems. He is a top rated speaker at various technical forums including Tech·Ed, MCT Summit, Developer Summit, and Virtual Tech Days, among others. Having run a successful startup for four years Niraj enjoys working on – IT innovations that can impact an enterprise bottom line, streamlining IT budgets through IT consolidation, architecture and integration of systems, performance tuning, and review of enterprise applications. He has received Microsoft MVP award for ASP.NET, Connected Systems and most recently on Windows Azure. When he is away from his laptop, you will find him taking deep dives in automobiles, pottery, rafting, photography, cooking and financial statements though not necessarily in that order. He is also a manager/speaker at BDOTNET, Asia’s largest .NET user group. Here is the guest post by Niraj Bhatt. As data in your applications grows it’s the database that usually becomes a bottleneck. It’s hard to scale a relational DB and the preferred approach for large scale applications is to create separate databases for writes and reads. These databases are referred as transactional database and reporting database. Though there are tools / techniques which can allow you to create snapshot of your transactional database for reporting purpose, sometimes they don’t quite fit the reporting requirements of an enterprise. These requirements typically are data analytics, effective schema (for an Information worker to self-service herself), historical data, better performance (flat data, no joins) etc. This is where a need for data warehouse or an OLAP system arises. A Key point to remember is a data warehouse is mostly a relational database. It’s built on top of same concepts like Tables, Rows, Columns, Primary keys, Foreign Keys, etc. Before we talk about how data warehouses are typically structured let’s understand key components that can create a data flow between OLTP systems and OLAP systems. There are 3 major areas to it: a) OLTP system should be capable of tracking its changes as all these changes should go back to data warehouse for historical recording. For e.g. if an OLTP transaction moves a customer from silver to gold category, OLTP system needs to ensure that this change is tracked and send to data warehouse for reporting purpose. A report in context could be how many customers divided by geographies moved from sliver to gold category. In data warehouse terminology this process is called Change Data Capture. There are quite a few systems that leverage database triggers to move these changes to corresponding tracking tables. There are also out of box features provided by some databases e.g. SQL Server 2008 offers Change Data Capture and Change Tracking for addressing such requirements. b) After we make the OLTP system capable of tracking its changes we need to provision a batch process that can run periodically and takes these changes from OLTP system and dump them into data warehouse. There are many tools out there that can help you fill this gap – SQL Server Integration Services happens to be one of them. c) So we have an OLTP system that knows how to track its changes, we have jobs that run periodically to move these changes to warehouse. The question though remains is how warehouse will record these changes? This structural change in data warehouse arena is often covered under something called Slowly Changing Dimension (SCD). While we will talk about dimensions in a while, SCD can be applied to pure relational tables too. SCD enables a database structure to capture historical data. This would create multiple records for a given entity in relational database and data warehouses prefer having their own primary key, often known as surrogate key. As I mentioned a data warehouse is just a relational database but industry often attributes a specific schema style to data warehouses. These styles are Star Schema or Snowflake Schema. The motivation behind these styles is to create a flat database structure (as opposed to normalized one), which is easy to understand / use, easy to query and easy to slice / dice. Star schema is a database structure made up of dimensions and facts. Facts are generally the numbers (sales, quantity, etc.) that you want to slice and dice. Fact tables have these numbers and have references (foreign keys) to set of tables that provide context around those facts. E.g. if you have recorded 10,000 USD as sales that number would go in a sales fact table and could have foreign keys attached to it that refers to the sales agent responsible for sale and to time table which contains the dates between which that sale was made. These agent and time tables are called dimensions which provide context to the numbers stored in fact tables. This schema structure of fact being at center surrounded by dimensions is called Star schema. A similar structure with difference of dimension tables being normalized is called a Snowflake schema. This relational structure of facts and dimensions serves as an input for another analysis structure called Cube. Though physically Cube is a special structure supported by commercial databases like SQL Server Analysis Services, logically it’s a multidimensional structure where dimensions define the sides of cube and facts define the content. Facts are often called as Measures inside a cube. Dimensions often tend to form a hierarchy. E.g. Product may be broken into categories and categories in turn to individual items. Category and Items are often referred as Levels and their constituents as Members with their overall structure called as Hierarchy. Measures are rolled up as per dimensional hierarchy. These rolled up measures are called Aggregates. Now this may seem like an overwhelming vocabulary to deal with but don’t worry it will sink in as you start working with Cubes and others. Let’s see few other terms that we would run into while talking about data warehouses. ODS or an Operational Data Store is a frequently misused term. There would be few users in your organization that want to report on most current data and can’t afford to miss a single transaction for their report. Then there is another set of users that typically don’t care how current the data is. Mostly senior level executives who are interesting in trending, mining, forecasting, strategizing, etc. don’t care for that one specific transaction. This is where an ODS can come in handy. ODS can use the same star schema and the OLAP cubes we saw earlier. The only difference is that the data inside an ODS would be short lived, i.e. for few months and ODS would sync with OLTP system every few minutes. Data warehouse can periodically sync with ODS either daily or weekly depending on business drivers. Data marts are another frequently talked about topic in data warehousing. They are subject-specific data warehouse. Data warehouses that try to span over an enterprise are normally too big to scope, build, manage, track, etc. Hence they are often scaled down to something called Data mart that supports a specific segment of business like sales, marketing, or support. Data marts too, are often designed using star schema model discussed earlier. Industry is divided when it comes to use of data marts. Some experts prefer having data marts along with a central data warehouse. Data warehouse here acts as information staging and distribution hub with spokes being data marts connected via data feeds serving summarized data. Others eliminate the need for a centralized data warehouse citing that most users want to report on detailed data. Reference: Pinal Dave (http://blog.SQLAuthority.com) Filed under: Best Practices, Business Intelligence, Data Warehousing, Database, Pinal Dave, PostADay, Readers Contribution, SQL, SQL Authority, SQL Query, SQL Server, SQL Tips and Tricks, T SQL, Technology

    Read the article

  • How to create piano UI in Iphone?

    - by Niraj
    Hi, I am newbei in creating such piano based UI application. I am developing an application in which i have to use Piano. How to create piano UI in Iphone? How to create it using Interface builder ? or is there any other way to create the piano? I am in urgent need to create such UI,If any body has any solution or any useful code or any Link,which would be appreciated. Thanks, Niraj

    Read the article

  • iPod shows more tracks than Library after sync with Banshee

    - by deshmukh
    I am running Ubuntu 11.10, Gnome Shell 3.2 and Banshee 2.2. Banshee correctly recognizes my 80GB iPod Classic (Model No MB147LLm, Version 1.1.2 PC). I have set Banshee to sync the entire library for the iPod. When I sync, the iPod shows more music tracks than the Banshee library. The difference is large - some 5,500 Banshee tracks and about 5,900 tracks on the iPod. What is happening? What is the remedy?

    Read the article

  • Temporary dimming of desktop in 12.04

    - by deshmukh
    I am running Ubuntu 12.04 (almost default install regularly updated) Unity interface on ASUS X53U (AMD Brazos Dual Core C60 with 2GB RAM). On launching Thunderbird and Firefox, the application dims and the cursor changes to wait mode. In case of Thunderbird, this is most pronounced with the wait time of up to a minute. Memory status checked with free indicates around 500MB of free memory on such occasions. The OS is stable and I can switch to a different work-space, etc. What could this be? Is this something normal?

    Read the article

  • Project Hamster notifications missing on upgrade to 12.04

    - by deshmukh
    I have upgraded from an almost default 11.10 install to 12.04. All went well and I can login, logout, etc. without any problem. One very interesting thing about the Project Hamster notifications, though. I have set Hamster to remind after every 27 mins. I do not get these notifications. However, if there is no activity set, I see the notification. In 11.10, I used to get both the notifications. What is wrong? How do I set it right? By the way, the notifications work quite well in Unity. But in Gnome, the problem continues.

    Read the article

  • Which version control system to use?

    - by deshmukh
    I am looking at using a version control system to ensure that I can go back in time to a particular version for all documents in ~, if I have to. What is the best suited tool for this given that: I am without much experience in version control systems Several files will be plain text files but there will be some Libre-Office files also The tool should: Be easy to set-up, run and maintain Have easy to understand configuration options (what directories to track, for how long, how frequently the changes should be captured, etc.) Ideally have a GUI front also Be able to recover deleted files What is the best/ most widely used tool that will be suitable for me?

    Read the article

  • Struck with a serious issue when upgrading to ubuntu 13.10 from 13.04

    - by Piyush Deshmukh
    I installed ubuntu 13.04 alongside windows xp professional. When I tried to upgrade to 13.10 from 13.04, it took some time to download and then it started cleaning the files and then message was displayed that xp cleaned (this msg was seen by my younger brother and then he cut the power off) . Now the computer when starts displays this screen and I dont know how to proceed. To anyone giving solution I would like tell you that I prefer xp over linux(personal reasons). So is there any way to get out of this problem, neithet I can open xp nor linux?

    Read the article

  • Upgrade with backports installed

    - by deshmukh
    I am running Ubuntu 12.04 with backports for TexLive. Ubuntu 12.10 is to contain the same version of TexLive that backport provides currently to 12.04. I, of course, want to move from backport to the normal version of TexLive available in Ubuntu 12.10 repositories. How do I handle the situation? Do I upgrade the normal way and everything will be taken care of i.e. my TexLive installation will now be from repositories instead of backports?

    Read the article

  • Time tracker for lxde

    - by deshmukh
    I have only recently started using lxde. And I am liking it. It is blazing fast, not-at-all resource hungry and just does what I want. The only thing I am missing is a time tracker tool. I have been using Hamster Time Tracker on gnome for quite some time. In lxde, I can still launch the application. But there are no reminders when the time limit is up, etc. The time tracker is just another window. Is there any way to get hamster working in lxde with notifications for time-up and an icon in the panel, etc.? Alternatively, is there another application like Hamster that will do all that Hamster does and WORKS in lxde?

    Read the article

  • Migrate from Thunderbird to Mutt

    - by deshmukh
    I am contemplating moving from Thunderbird to Mutt (provided it is feasible) to move to a faster, simpler application. My current Thunderbird set-up consists of multiple IMAP accounts (gmail and google apps). Only selected folders (read labels) in each IMAP account are stored locally. For all other folders, I glance through the headers and open a message only if I find it interesting. I also use folder bookmarks to navigate to folders quickly. I also move messages across folders with keyboard shortcuts. Is it possible to replicate the set-up in Mutt? Can someone share/ point to a sample muttrc file that does the same thing? It would be great if the muttrc file is adequately commented. On a side note, will it also be possible to import my messages from Thunderbird locally? That will save me considerable network traffic (about 2GB data stored locally).

    Read the article

  • Desktop dims when Thunderbird and Firefox are launched

    - by deshmukh
    I am running Ubuntu 12.04 (almost default install regularly updated) Unity interface on ASUS X53U (AMD Brazos Dual Core C60 with 2GB RAM). On launching Thunderbird and Firefox, the application dims and the cursor changes to wait mode. In case of Thunderbird, this is most pronounced with the wait time of up to a minute. Memory status checked with free indicates around 500MB of free memory on such occasions. The OS is stable and I can switch to a different work-space, etc. What could this be? Is this something normal?

    Read the article

  • Migrate Rhythbox from one computer to another with different username

    - by deshmukh
    I want to migrate Rhythmbox from one computer to another. I have different usernames in both the computers. I will need to carry music files, covers, playcounts, ratings, playlists, etc. Merely copying music files and .local/share/rhythmbox does not work (I guess because Music locations are different on both the computers). What is the best way to achieve this? I will at least like to carry ratings and playlists.

    Read the article

  • Upgrade two computers on the same WIFI network from 12.04 to 12.10

    - by deshmukh
    I have two computers on the same WIFI network at home. Both run on Ubuntu 12.04 and both will need to update to 12.10 shortly. There are some applications that are installed on one but not on the other and vice versa. But they share a large many applications. Please indicate how can I upgrade both in such a way that: I download all the packages required on Computer 1 Move the downloaded packages to the other computer using external HD (that is much quicker than over WIFI) Then upgrade Computer 1 Then upgrade Computer 2 -- after it downloads any packages that are not already available. Also, I am a newbie and would be grateful if the process is simple and properly explained.

    Read the article

  • httpd service keep restarting. after 15-20 mins

    - by niraj
    I have recently purchased Dedicated Server which has 16bg ram and 1TB Harddisk. It has Cpanel and for firewall CSF Installd. I am mainly going to install it for File hosting service. Now the day i moved my httpd service keep restarting every 15-20 mins. It becomes unresponsive after that so have to manually restart it. My httpd settings are Start Servers = 5 Minimum Spare Servers = 5 Maximum Spare Servers = 10 Server Limit = 20000 Max Clients = 10000 Max Requests Per Child = 10000 Keep-Alive = On Keep-Alive Timeout = 5 Max Keep-Alive Requests = Unlimited Timeout 300 TOP is top - 14:53:41 up 1 day, 23:39, 2 users, load average: 0.10, 0.14, 0.09 Tasks: 1563 total, 1 running, 1562 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 0.6%sy, 0.0%ni, 98.1%id, 0.2%wa, 0.0%hi, 0.5%si, 0.0%st Mem: 16303780k total, 16142048k used, 161732k free, 135264k buffers Swap: 8224760k total, 868k used, 8223892k free, 14136616k cached Please help me in this its keep happning.

    Read the article

  • Page auto reload with parameters

    - by Mithil Deshmukh
    I am trying to autoreload my page after every 20 seconds. I am using JavaScript for this instead of the <meta. I have <body onload="SetTimer()" and here is my JavaScript function function SetTimer(){ setTimeout('window.location.replace(window.location.pathname)', 20000) } Now my problem is I also pass a parameter within the querystring when this page is loaded first. But when the page relaods again (window.location.pathname does not include the parameter) hence I am not able to assign values to the labels on the page which is based on the parameters passed.

    Read the article

  • datepicker value is blank when disabled, jquery

    - by Mithil Deshmukh
    Hi. I'm fairly new to jQuery. I have a Jquery datepicker in a user control. I have added a "disable" property to the datepicker. Whenever I save the page(having this usercontrol) the datepicker with disable set to true is empty. All other datepickers save fine. Here is my code. ASPX < USERCONTROL:DATEPICKER id="dpBirthDate" startyear="1980" runat="server" Disable=true ASCX < input type="text" size="8" runat="server" id="txtDate" name="txtDate" onblur="ValidateForm(this.id);" / ASCX Code Behind Public Property Disable() As Boolean Get Return (txtDate.Disabled = True) End Get Set(ByVal bValue As Boolean) If (bValue = True) Then txtDate.Attributes.Add("Disabled", "True") Else txtDate.Attributes.Remove("Disabled") End If End Set End Property My Jquery $(document).ready(function() { $("input[id$=txtDate]").datepicker({ showOn: 'button', buttonImage: '<%=ConfigurationSettings.AppSettings("BASE_DIRECTORY")%>/Images/el-calendar.gif', buttonImageOnly: true }); $("input[id$=txtDate]").mask("99/99/9999", { placeholder: " " }); //Disable datepicker if "disable=true" $("input[id$=txtDate]").each(function() { if ($("input[id$=" + this.id + "]").attr("Disabled") == "True") { $("input[id$=" + this.id + "]").datepicker("disable"); } else if ($("input[id$=" + this.id + "]").attr("Disabled") == "False") { $("input[id$=" + this.id + "]").datepicker("enable"); } }); }); I am sorry, I am not sure how to format the code here. I apologies for the cluttered code. Can anybody tell me why the datepicker value is empty when it is disabled but works fine otherwise? Thanks is advance.

    Read the article

  • ViewPager and Fragment Pager adapter implementation

    - by Rohit Deshmukh
    So I am trying to implement sliding views/fragments using viewpager and fragment pager adapter. convert_home is my main xml file that has android.support.v4.view.PagerTitleStrip and temperature.xml and velocity.xml are my two other views. I have no clue where I am going wrong. package app.converto; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class ConverTo extends FragmentActivity { SectionsPagerAdapter mSectionsPagerAdapter; ViewPager mViewPager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mSectionsPagerAdapter); setContentView(R.layout.converto_home); mViewPager = (ViewPager) findViewById(R.id.pager); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.converto_home, menu); return true; } public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { switch(i){ case 0: Fragment1 fragment = new Fragment1(); return fragment; case 1: Fragment2 fragment2 = new Fragment2(); return fragment2; } defaultFragment fragment3 = new defaultFragment(); return fragment3; } @Override public int getCount() { return 2; } // // @Override // public CharSequence getPageTitle(int position) { // switch (position) { // case 0: return getString(R.string.velocity); // case 1: return getString(R.string.temperature); // case 2: return getString(R.string.distance); // } // return null; // } } public static class Fragment1 extends Fragment{ public Fragment1(){ } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //return inflater.inflate(R.layout.temperature, container, false); View view = inflater.inflate(R.layout.temperature, container, false); TextView textView = (TextView) view.findViewById(R.id.sample); textView.setText(getArguments().getString("title")); return view; } } public static class Fragment2 extends Fragment{ public Fragment2(){ } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //return inflater.inflate(R.layout.velocity, container, false); View view = inflater.inflate(R.layout.temperature, container, false); TextView textView = (TextView) view.findViewById(R.id.sample); textView.setText(getArguments().getString("title")); return view; } } public static class defaultFragment extends Fragment{ public defaultFragment(){ }//end constructor @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // return inflater.inflate(R.layout.temperature, container, false); View view = inflater.inflate(R.layout.temperature, container, false); TextView textView = (TextView) view.findViewById(R.id.sample); textView.setText(getArguments().getString("title")); return view; }//end oncreate }//end default fragment }

    Read the article

  • openquery giving differnt results

    - by Mithil Deshmukh
    I have 2 similar queries select * from openquery(powerschool, 'select * from TEACHERS where teachernumber is not null and schoolid=''1050'' and teacherloginid is not null order by teachernumber') and SELECT * from openquery(powerschool, 'SELECT NVL(teachernumber,'''') from TEACHERS where teachernumber is not null and schoolid=''1050'' and teacherloginid is not null order by teachernumber') The first one is giving me 182 rows while the second one gives me 83. What's wrong with the queries?

    Read the article

  • How to append text into text file dynamically

    - by niraj deshmukh
    [12] key1=val1 key2=val2 key3=val3 key4=val4 key5=val5 [13] key1=val1 key2=val2 key3=val3 key4=val4 key5=xyz [14] key1=val1 key2=val2 key3=val3 key4=val4 key5=val5 I want to update key5=val5 where [13]. try { br = new BufferedReader(new FileReader(oldFileName)); bw = new BufferedWriter(new FileWriter(tmpFileName)); String line; while ((line = br.readLine()) != null) { System.out.println(line); if (line.contains("[13]")) { while (line.contains("key5")) { if (line.contains("key5")) { line = line.replace("key5", "key5= Val5"); bw.write(line+"\n"); } } } } } catch (Exception e) { return; } finally { try { if(br != null) br.close(); } catch (IOException e) { // } try { if(bw != null) bw.close(); } catch (IOException e) { // } }

    Read the article

  • Serial Mac OS X constantly freezes/locks/dissappears for USB to Arduino

    - by Niraj D
    I have a problem with my C++ code running in Xcode with both the AMSerial library as well as the generic C (ioctl, termios). After a fresh restart, my application works well but after I "kill" the program the Serial (I think) is not released. I have checked my open files under /dev and have killed the connection to serial USB from there, but my C++ still can't open the USB port. I have narrowed this down to being a low level Mac OS X issue, regarding blocking the port indefinitely, regardless of closing it using the aforementioned libraries. Just for context, I'm trying to send numbers through my USB port, serially to an Arduino Duemilanove at 9600 baud. Running Serial Monitor in Arduino is perfectly fine, however, running through a C++ application it freezes up my computer, occasionally, my mouse/keyboard freeze up: requiring a hard reset. How can this problem be fixed? It seems like Mac OS X is not USB friendly!

    Read the article

1 2 3  | Next Page >