Monday, January 13, 2025

Transitioning to Front-End Development: My Journey into JavaScript

 

For years, I’ve been deeply entrenched in the Microsoft stack, working extensively with SQL Server, Oracle Database, and even IBM DB2. While back-end systems have been my bread and butter, I’ve recently felt the pull to broaden my horizons and explore the ever-evolving world of front-end development. It’s an exciting shift, and I’m eager to document my progress as I dive into JavaScript—a language that’s as versatile as it is essential in today’s tech landscape.

Why JavaScript?

JavaScript is often dubbed the backbone of modern web development. From interactive user interfaces to complex single-page applications, it powers a vast portion of the internet’s functionality. As someone with a strong database background, I see JavaScript as a bridge to better understanding the full stack—a skill set that’s becoming increasingly valuable in today’s tech ecosystem.

The Starting Point: Coursera’s JavaScript Course

My company is currently trialing Coursera, which has given me the perfect opportunity to embark on this learning journey. I’ll be starting with Programming with JavaScript, a beginner-friendly course designed to provide a solid foundation in the language.**

The course promises to cover:

  • JavaScript basics: syntax, variables, and control structures.

  • Core programming concepts like functions, loops, and arrays.

  • The fundamentals of working with the Document Object Model (DOM).

These topics align perfectly with my goal to build a robust understanding of front-end technologies from the ground up.

** 1/14/2025 - Note: This course is an introduction to complete newcomers to software development.  I will be skipping through, but wanted to warn others who may be considering it.

Bridging the Gap: From Databases to Dynamic Front-Ends

Transitioning from databases to front-end development may seem like a leap, but I see it more as an expansion. Many of the logical problem-solving skills I’ve honed in database management can be directly applied to JavaScript. For example:

  • Writing efficient queries mirrors crafting optimized algorithms.

  • Understanding relational data models complements managing JSON structures.

  • Debugging SQL scripts translates well to debugging JavaScript code.

While the tools and syntax differ, the underlying principles of clean, efficient, and effective coding remain universal.

Tracking My Progress

This blog will serve as a chronicle of my journey. Expect updates on:

  • Key takeaways and "aha" moments from the Coursera course.

  • Challenges and how I’m overcoming them.

  • Mini-projects and experiments as I put my learning into practice.

Wish Me Luck!

Learning a new technology is always an adventure, and I’m ready to embrace the highs and lows that come with it. If you’re also transitioning into JavaScript or front-end development, feel free to share your experiences, tips, or resources in the comments.

Stay tuned for more updates as I navigate this exciting new chapter in my tech career!

Tuesday, September 2, 2014

Optimizing Performance of Logos.NET SQL Server Database

Intro

I was recently tasked with making a quick review of setup and high level recommendations for the setup of a MS SQL Server based application with a client.  The following contains several generic points for any MS SQL Server based application, but is specifically appropriate for New World Systems Logos.NET application.

TempDB

In many implementations of Logos.NET, there are multiple databases on the Live or Production server.  All these databases will use the same tempdb.  Microsoft best practices[1] indicate that tempdb should be associated with a number of data files equal to the number of cores on the machine.  Though this recommendation is out of date[2] (being accurate for SQL Server 2000), it remains accurate for machines up to 8 cores. 
The Logos.NET database server under my review was running on 2 quad-core processors with 64 GB of RAM and the Tempdb was associated with one data file (~1GB Init size, 10% growth) and one log file (~147MB Init size, 10% growth). 
In order to optimize performance, tempdb should be altered to have eight 1GB data files associated to it.  If this is not attainable due to disk space constraints, four 1GB data files will still provide improved performance.  It is important that the data files be the same size, as there is an existing issue with the algorithm which causes auto-grow to only grow a single file and create an I/O hotspot.  The size and number of the data files, in either case, should be sufficient to prevent the need for auto-growth, which can also have short-term negative performance implications.  Therefore, it is not sufficient to have the data files be significantly smaller with room to auto-grow.
Logos.NET relies heavily on stored procedures for the overwhelming majority of its functionality.  These stored procedures, in turn, rely heavily on temporary tables which, in turn, rely on tempdb.  Due to the large number of databases sharing the single tempdb (by design) and a single data file (against best practice recommendations), performance is likely to degrade during times of heavy use.

Parallelism

The parallelism was set at 5 at the time of my review, but 5 is generally too low for all except pure OLTP (which Logos.NET is not, due to clients heavy use of reporting in the application).  50 is a good initial setting and then monitor and adjust from there.[3]
Max Degree of Parallelism
Whatever the optimal setting for this, it is almost certainly not 0 (likely to cause thrashing if many queries running at once) or 1 (hurt performance of any big queries as no parallelism).  Need to load test, but best recommendations is start with 4 and adjust.[4]

Memory

Max Server Memory
Best practice would be 80% of available.  The machine under consideration had 64 GB available, and assuming 8GB for Windows I would recommend setting at 56GB.


Friday, November 22, 2013

There's a Math library for OneNote and Word!


I use OneNote as my virtual notepad.  I love being able to have my notes in whatever type of office doc, pdf, etc. sync'd and available in my SkyDrive.

I recently had an issue with math notes that caused Mathematica1 font to display as a unknown character (small rectangle which is the default character when an app cannot find the font) as seen in here. 

I resolved the font issue by using Mathematica1Mono instead (bottom of graphic), however the beneficial positive outcome of this issue lies in my stumbling upon a Math library for OneNote and Word 2013 in my search for a resolution.

http://www.microsoft.com/en-us/download/details.aspx?id=36777
(There is also a 2010 version) with these wonderful features:
  • Compute standard mathematical functions, such as roots and logarithms.
  • Compute trigonometric functions, such as sine and cosine.
  • Find derivatives and integrals, limits, and sums and products of series.
  • Perform matrix operations, such as inverses, addition, and multiplication.
  • Perform operations on complex numbers.
  • Plot 2-D graphs in Cartesian and polar coordinates.
  • Plot 3-D graphs in Cartesian, cylindrical, and spherical coordinates.
  • Solve equations and inequalities.
  • Calculate statistical functions, such as mode and variance, on lists of numbers.
  • Factor polynomials or integers.
  • Simplify or expand algebraic expressions.

Friday, November 15, 2013

A new version of .NET or Data Quality Services was installed on this machine. In order to continue to work with DQS please run 'DqsInstaller.exe -upgrade'

I recently tried to use Data Quality Services 2012 and as a result of my having applied service packs / Cumulative updates / hotfixes, etc. to my dev box, I got this error on launch of DQS:
A new version of .NET or Data Quality Services was installed on this machine. In order to continue to work with DQS please run 'DqsInstaller.exe -upgrade'.

That would be fine, if it actually worked like that.  Unfortunately, even after running this and being told I need to restart, restarting, running it again and restarting again, when I launch DQS, I got the new and improved message:

A new version of .NET or Data Quality Services was installed on this machine. In order to continue to work with DQS please run 'DqsInstaller.exe -upgrade'.
OK...I thought I had better try getting some help on the dqsinstaller and see if that leads to anything...

dqsinstaller.exe /?


Microsoft (R) DQS Installer Command Line Tool
Copyright (c) 2012 Microsoft. All rights reserved.

[11/15/2013 11:37:52 AM] DQS Installer started. Installation log will be
written to C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\DQS_install.log

[11/15/2013 11:37:52 AM] Parsing DqsInstaller command line arguments.
usage DqsInstaller.exe [-install | -uninstall | -upgrade |-upgradedlls | -exportkbs | -importkbs] [] [-collation] |[-instance] 'instance name'

-install   - Install Data Quality Services in the provided instance. (Default)
-uninstall - Uninstall Data Quality Services from the provided instance.
-upgrade  - Upgrade Data Quality Services for the provided instance, to current version.
-upgradedlls - Install Data Quality Services while skipping recreating the DQS databases and only upgrade DQS DLLs.
-exportkbs - Export all server knowledgebases.
-importkbs - Import knowledgebases file to server.
-collation - The collation of DB catalogs to install. The collation should be case insensitive.
 - The .dqsb filename used to import/export server backup data.
-instance - Specify the SQL Server instance name that this installer will run against.
-? - Show this usage message.


When catalog collation is not specified the default collation being used is SQL_Latin1_General_CP1_CI_AS.

List of Windows and SQL Server collations can be found at http://msdn.microsoft.com/en-us/library/ff848763.aspx

Press any key to continue...

And this sounded like it might fit the bill:

dqsinstaller.exe -upgradedlls
Wallah, all fixed!  Hope this helps if you have a similar issue.
Heads up - you will need to be a member of the fixed server admin role on the SQL Server instance where the Data Quality Database is installed.


Tuesday, June 5, 2012

Oracle BI Repository Identity Manager shows no users

Q:  When in the Oracle Business Intelligence (OBIEE) Administration Tool (Online) and I open the Identity Manager (Manage->Identity), I select BI Repository and though the roles exist, I see no users.  How can I see them?

A: Select Action from the toolbar, then in the textbox for Specify Wildchar filter to fetch users, use an asterisk.

Friday, March 27, 2009

ORA-01034 and ORA-27101 on WIndows machines

Subtitle: Overthinking the problem

Every site on the net which references these two errors:

ERROR:

ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

seems to suggest that they are symptoms of either the ORACLE_SID not being set correctly or the ORACLE_HOME not being set correctly. Beyond that, they recommend checking the alert log to see if, possibly, there is some more serious problem with the database.I recently encountered these errors on a database whose windows service had started successfully. On a server with the ORACLE_SID and ORACLE_HOME set correctly; with an alert log which had no errors.

I have a simple solution to these two errors which does not involve any of these recommended approaches.

Check to ensure the database is started ;-$ FML

Monday, January 26, 2009

CI Setup part 2

BerliOS uses an old version of subversion (1.2) which may explain my inability to set it up with TortoiseSVN. In any case, I found a much faster, more up to date, and richer host for my Subversion server at BeanStalkApp.com. Setup was a breeze, soup to nuts in about 15 minutes and there were no problems integrating with TortoiseSVN. In fact, they offer instructions on integrating with 9 other products (including Twitter).
Next: Building my CIFactory script...

Transitioning to Front-End Development: My Journey into JavaScript

  For years, I’ve been deeply entrenched in the Microsoft stack, working extensively with SQL Server, Oracle Database, and even IBM DB2. Whi...