Tuesday, January 30, 2018

Software update silently also create problem silently.

The place I work got a sync server been running fine for months. Until users told me that there is some inconsistency in the report from a data sync process.

Curiously, I remote control into the server and have quick look. Things looked fine initially until I hover my mouse on the sync software icon on the lower right corner, suddenly it just disappeared. Shaking my head, I reopen the sync software on the program menu and I was greeted by an error.

A quick check on Google and technical forum, some users also having the same problem and had to perform a rollback to the previous version.

All these hassles just for fixing an update, which didn't help to have the update in the first place.

The software provider should reconsider the auto-update design by informing the user so they can expect an update is in place and be prepared any unexpected error. I doubt that would happen in any future including Microsoft Windows which is a big offender on this area.

Saturday, November 25, 2017

Bad column name

I came across a program designed by someone using a database table with column name as follows:

Column1_Key, Column2_Key, Column3_Key, Column4_Key...

Mind you that they are not foreign-key-linked-column. The problem is the "_KEY" naming which lost it's meaning because they exist in every single column in that table and provide no extra information.

In short, it's a bad naming practice (sigh.....).

Friday, June 3, 2016

Microsoft SQL Server Developer Edition is now free

Just want to shout out this offer from Microsoft Blog, which is awesome.


Now you can download, test out the new features and develop app using SQL Server tool plus blog about it. Yay!!

Thank you Microsoft!

Sunday, November 1, 2015

Sydney OTN Day 2015

Just want to give a shout out for Sydney OTN on 30th November 2015. There are a couple of sessions that caught my eyes. Well, they are mainly on the database development.

Supercharge Your SQL Skillset
JSON Support in Oracle 12c
12c for Developers
Oracle Database 12c New Features for Developers and DBAs
Database as a Service (DBaaS) Cloud: HA Architecture and Consolidation Methods
Optimize OLAP & Business Analytics Performance with Oracle 12c In-Memory Database Option
PaaS4SaaS The Options
What does Digital Disruption Mean To The Oracle Ecosystem?

Check out the speaker profiles.

The ticket is about ~$53 (+fee+gst) and there are coffee break and light lunch.

Update: I have bought the ticket and looking forward to the 30th of November. :D

Update 30/11/2015: I'm surprised the amount of people turned up (about 60-80) and the topic/speakers covered in the event is absolutely valuable. However, I did find out that Oracle Market was rather small (else I would expect those rooms would jam packed) and that rather made me sad. I will probably put Oracle skill development aside for a while as the demand was not as high as I would imagine and focusing on what the majority Australia market required.

I would like to thank the organizer for setting up this event as it proves to be really helpful and would highly recommend people, who still attached to Oracle Technology, to attend. You never know what new ideas you may find.

Friday, August 28, 2015

Excel does not like Access Nz() function

If you happened to hook up an Excel report to retrieve data from Access and one day your Excel refuse to download the data, have look on the queries in Access that are using Nz() function.

To whoever does not know what Nz() function is, it is used for null value checking and if true, the second argument of the function will be returned. This function is great formatting result, calculation and etc.

To overcome this issue, my solution was to replace Nz() with IIF() function (e.g. IIF(field1 is null, 0, field1) means if field1 is null, return 0 else return field1)). Once I got all the Nz() function replaced, everything went back to normal. Amazing...

The version of Excel and Access for my case is 2007. Hope this helps whoever use Access query with Nz() and suddenly, Excel stops retrieve data from the query.

Sunday, March 15, 2015

Beware of MS Access 2007 crosstab

My case here was,  MS Access was used to import live data from an IBM database using ODBC drivers and there are no data corruption happened. Triple checked that.

I was working a report for my company sales manager where the report was about putting all the type of sales rebates in a crosstab/pivot style report (Sales transactions as row, rebates type as column and values of each rebates for each sales made up the cells). Then the sales manager will use Excel to import the data from the Access database and work on his analysis in Excel. However, MS Access 2007 crosstab has failed to show some of the expected value when there are more than 40+ columns as rebate types.

After some investigation, removing 10 columns seems to help restore those values back, however, all the columns are deemed to be crucial for the sales manager. In the end, I finally figured out by export the data to MS SQL Server Express and run a stored procedure to generate a pivot view there. Due to the MS SQL sat at my computer, where I might turn it off occasionally, the result is exported into an XML file so the sales manager able link Excel to the XML file instead.

Therefore, beware if you are using crosstab because someday you may find some of the value  missing due to too many columns created.

Monday, August 4, 2014

Simplicity of Laptop Fan Cleaning

Why do we need to fan cleaning our laptop? It's simple, most of the laptops nowadays come with a fan and it will suck up dust and trap it at the heat sink. When the dust is build up enough to block the laptop ventilation, the CPU will overheat and hang or shut itself down. As a user who depends on laptop for work, we definitely don't want that to happen.

From the Lenovo website, the G50 series model manual guide on how to fan cleaning your laptop.

Based on the screen shot above, I can see it's rather straightforward. Just open the back panel and remove the fan and then use a brush to clean the heat sink just right beside it.

Ref: http://download.lenovo.com/consumer/mobiles_pub/lenovo_g_z_50_series_hmm.pdf

Now, look at the current laptop I have, which is the HP G6, on how to fan cleaning the laptop.

Apparently I need to strip my laptop down to the motherboard BEFORE I can remove the fan and clean the heat sink. I was in shock after reading the guide because it caused so much hassles just to fan cleaning this laptop.

There's even a Youtube video (search: fan cleaning HP G6) dedicated for the HP G6 on how to strip the laptop down to the motherboard and half way thru the video, I have lost count how many screw the guy has removed. :'(

In short, this has taught me a lesson on always check the laptop model manual guide before making the final purchase decision because it will come back and haunt me when the time comes to maintain it.

Thursday, July 17, 2014

Oracle 12c VM for developers is here

Probably this is an old news and I'm just giving it some shout out here.

OTN Developer Day VM

The goodies in this VM as follows:

  • Oracle Linux 6.5
  • Oracle Database 12c Release 1 Enterprise Edition
  • Oracle XML DB
  • Oracle SQL Developer
  • Oracle SQL Developer Data Modeler
  • Oracle Application Express
  • Hands-On-Labs (accessed via the Toolbar Menu in Firefox)
Download oracle virtual box and load this VM for fun. 


Monday, July 14, 2014

Data dictionary that makes me angry

The user requested for an agreement report that consists of an agreement start date and agreement sold date. I found my table in the database and based on the column name it was straight forward.

AGMTSTARTDATE (Obviously, the column name stands for agreement start date)
AGMTSOLDDATE (This one is definitely the sold date)

The column is self defined obviously and therefore, the report is easy to generate and I passed the report to the user for review.

However, it was all wrong. According to the front-end system screen, the date reflected was the other way round. I was surprised why system screen would put the AGMTSTARTDATE as solddate and AGMTSOLDDATE as startdate.

The problem has prompted me to check in the data dictionary for the definition and it was defined as follows:

AGMTSTARTDATE - This is the agreement startdate. If the an agreement has a status as SOLD, the agreement sold date will be used as startdate.

This is sort of nonsense that really makes me angry. Apparently, the system developer is down right lazy to update the correct value in the correctly labeled column. Was it really that hard to switch the date between the two columns? Gee...

In short, this is just another bad design or lazy developer. :(