≡ Menu

DataCamp for Learning Data Science

I have long been a fan of sites that use gamification to teach technology-related skills such as programming languages and database concepts.

I have used various free sites (such as Codecademy and Khan Academy) and premium sites like Code School. Each of these sites have strong and weak points, but all of them have been useful to some degree, and well worth the time and money (when necessary) invested.

A new site that I’ve just recently discovered is DataCamp. This site teaches both R (with which I currently have very little experience) and Python (which I’ve used much more extensively) as they are used for data analysis, especially in the realm of Big Data and data science. This site is not free; it currently costs $300 per year or $29 per month. I have signed up and will begin learning R. As I progress, I’ll report my thoughts on the site – especially as to its value, both from a monetary and time cost perspective.

Relation Between Games and Studies
Co-produced by :Game Period & Deep In The Code
Article from GamePeriod.com

PSA: Be Wary of Unsolicited Business Loans and Other Offers of Money

This is my first post that is completely unrelated to the topic of software development or information technology, but I decided to write this public service announcement since anyone who runs a website is likely to be targeted by these types of scams.

Over the last several days, I have received numerous calls per day from a phone with a New York City area code: 347-352-7696. The caller always identifies himself or herself as representing a company called “MCE Financials”. No company by that name shows up in Google, so my suspicion about their legitimacy as a business is confirmed.

In each case, the caller does not know my name, but mentions the name of this website, and then says they can make me a business loan. If I say “I’m not interested” or “put me on your Do Not Call list”, they hang up with no response – usually before I can finish my sentence – and then call back a few hours later with the same routine. A truly odd scamming technique, especially since they call back from the same number each time.

I ran the phone number through 800Notes to see if anyone else had reported them. A few other people mentioned experiences similar to mine.

Since I never told them I was interested in anything they had to offer, I never got to the stage where they would have asked about bank account or Social Security information. I imagine that would have been the next step.

Should you be confronted with these unwanted calls, and you live in the United States of America, you can report them to the Federal Trade Commission. Even before that, make sure that your number is on the National Do Not Call Registry.

FTC phone scams page

Chrome Developer Tools Not Working

Recently I had to replace my Windows PC at work, and as a result, had to reinstall all of my applications, including Google Chrome. When I tried to open Chrome Developer Tools using the F12 key, nothing happened. The Inspect option seen when right-clicking on a web page was grayed out. I opened the drop-down menu to try to open DevTools from there, and that option was also grayed out.

Developer Tools is disabled

Several searches indicated that one could look at Chrome Policies (accessible at chrome://policy if you’re running Chrome) to see if it was disabled there. Sure enough, that was the case.

Chrome policy page showing DevTools disabled

Chrome Policies are not editable from this page; in Windows one must edit them via the Windows Registry.

Open the Registry using regedit.exe from a Command Prompt or a shortcut in the Start Menu, and navigate to [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] and set the key called DeveloperToolsDisabled to 0.

Registry Editor showing [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome] branch

Close the Registry Editor, go back to the Chrome Policies tab, and click the Reload button in the upper left-hand portion of the screen.

The “true” value for the DeveloperToolsDisabled Policy Name should change to “false”.

Now you should be able to open DevTools again!

I was testing an old Excel application that I had moved from one server to another and kept getting this error when running it on the new server:

VBA run-time error ORA-01013

The error ORA-01013 (“user requested cancel of current operation”) is commonly a timeout issue. What could be causing a query to timeout on one server, but not another?

In debugging the code, I found that no CommandTimeout property had been set on the Connection object.

Dim cnnRawData As ADODB.Connection
Set cnnRawData = New ADODB.Connection
cnnRawData.ConnectionString = glbConnectString
cnnRawData.Execute glbSetCurrentSchema

If it is not explicitly set, this property will default to 30 seconds. However, this did not explain why the query did not timeout on the old server.

The connection to the Oracle Database was being made via ODBC, so I opened the 32-bit ODBC Administrator to see if the connections had been set up differently. This is where I realized what the problem was.

On the old server, the connection configuration looked like this:

ODBC config on old server

And on the new server it looked like this:

ODBC config on new server

See the difference? (Aside from the Description field, that is!)

It’s the “Enable Query Timeout” checkbox in the Application tab. By default, when creating a new connection, it is checked. I unchecked the box and saved the connection, and the error went away.

This is not necessarily the best way to do it, however. I might want some queries to timeout, and not others. In this case the solution would be to set the CommandTimeout property for this particular VBA macro to 0:

Dim cnnRawData As ADODB.Connection
Set cnnRawData = New ADODB.Connection
cnnRawData.ConnectionString = glbConnectString
cnnRawData.CommandTimeout = 0
cnnRawData.Execute glbSetCurrentSchema

This would prevent timeouts on this particular connection, but not any others that might be made using the same ODBC connection.

Solving the ROW-00060 Error When Using SSIS with Oracle

I have built SSIS packages to load data from one Oracle database to another before, but never had I come across this error until recently:

“ROW-00060: Internal error: [dainsert,16] Source: Oracle Destination: Oracle Error Occurred @ after 403k records.”

Initially, I thought that some constraint had been violated on the destination data source – like an attempt at a NULL value being inserted into a NOT NULL column. I ran the package a few times and noticed that the row count was always in the neighborhood of 400k and that the package had run for hours. I thought it odd that so many rows could be inserted with no problem, and so a double- and triple-checked to make certain that the constraints on the source columns were the same as those on the destination ones.

Though there were no clear cut solutions explaining exactly why this error happens, several different people on different fora mentioned that they had overcome this particular error (at different row counts, not always 400k!) by using a connector from Attunity rather than the one that comes with the Oracle Client. Fortunately, this driver is made to work with SSIS and is distributed by Microsoft. This driver not only works with Oracle, but also with Teradata. Choose the version based on the version of SSIS you are using.

Version 2.0 for SQL 2012
Version 3.0 for SQL 2014
Version 4.0 for SQL 2016

After installing the connector into Visual Studio and restarting VS, you should be able to use it by selecting “Oracle Source” and/or “Oracle Destination” from the SSIS Toolbox.

Attunity Oracle Source in SSIS

After setting up the new source and destination connections, I was able to run the SSIS package to completion, loading over five million rows of data in less than an hour!