IBM (and the world) are celebrating 50 years of mainframe, "Make the Extraordinary possible". To honor the mainframe, I want to point you to a series of IBM-produced videos from few years back. The series is labelled "THE MAINFRAME: The Art of the Sale", featuring real IBMers and lots of wisdom...
Lesson One:
Lesson Two:
Lesson Three:
Lesson Four:
Lesson Five:
Lesson Six:
Henrik's thoughts on life in IT, data and information management, cloud computing, cognitive computing, covering IBM Db2, IBM Cloud, Watson, Amazon Web Services, Microsoft Azure and more.
Showing posts with label humor. Show all posts
Showing posts with label humor. Show all posts
Monday, April 7, 2014
Friday, June 28, 2013
Video: say No! No! and No! (NoSQL, Big Data Parody)
It is Friday, the weekend is close by and this week I started playing with DB2's upcoming NoSQL for JSON support. So why not finishing off the hard work week with some insights into the history of NoSQL and also Big Data and a really deep technical look at the coolest features...
Monday, April 15, 2013
(Updated) Special hybrid, object-capable, all purpose database
Recently I had to deal again with a special database. Let me share my observations.
This special database seems to have excellent compression capabilities as a ot of stuff can be cramped into it. From the outside the database looks small, but it seems to be able to store 10 times its advertised capacity.
This database can handle relational data, large objects, unstructured data, etc. and has several storage areas and storage types. For the experienced user data access is really fast and it seems index-only. For the infrequent user the only way of data access is through repeated table scans.
The database is equipped to deal with "situations" and act in "emergencies". Its capabilities include having candy up for distribution exactly when needed, a first aid kid with the right number and size of bandaids, chapstick, hand lotion, and some hand sanitizer.When fully loaded, the database can be used as a self-defense device, can be thrown as projectile even on longer distances.
I could go on with more features (you can in the comments), but do you know what database I described above...?
Update: My wife's handbag is one of the described special databases.
This special database seems to have excellent compression capabilities as a ot of stuff can be cramped into it. From the outside the database looks small, but it seems to be able to store 10 times its advertised capacity.
This database can handle relational data, large objects, unstructured data, etc. and has several storage areas and storage types. For the experienced user data access is really fast and it seems index-only. For the infrequent user the only way of data access is through repeated table scans.
The database is equipped to deal with "situations" and act in "emergencies". Its capabilities include having candy up for distribution exactly when needed, a first aid kid with the right number and size of bandaids, chapstick, hand lotion, and some hand sanitizer.When fully loaded, the database can be used as a self-defense device, can be thrown as projectile even on longer distances.
I could go on with more features (you can in the comments), but do you know what database I described above...?
Update: My wife's handbag is one of the described special databases.
Labels:
big data,
compression,
cookies,
data in action,
enthusiast,
humor,
indexing,
IT,
Life,
mobile,
performance,
travel
Tuesday, March 12, 2013
pureXML: The two most beautiful words in the English language
From 2008, but still current and funny: "Dragons are green, my friend"
The Pitch Meeting, part 1
The Pitch Meeting, part 2
The Pitch Meeting, part 3
The Pitch Meeting, part 1
The Pitch Meeting, part 2
The Pitch Meeting, part 3
Wednesday, January 16, 2013
Parents at the playground and DB2 components
Right now it is not the time for outdoor playgrounds in Germany, but nonetheless: Have you ever watched parents on a playground? They make up an excellent analogy to how some of the DB2 components work.
When you are at a playground with a group of parents and kids, usually the kids play and the parents talk. However, as a background process parents (in most cases) take note of what the kids are doing. If one of the own children falls, gets hurt, scratched, has a mouthful of sand, or other health issues, the observing parent arrives, fixes the problem. The child goes back to playing, the parent back to talking.
In DB2 this is called the fault monitor facility. It keeps DB2 up and running in case of "exiting prematurely" (a.k.a. crash). Commands like db2fmcu and db2fm help setting up the facility. Once it is set up, try a "kill -9" on the db2sysc process and see what is happening...
Another interruption to the socializing parents (I want to use that term as this is social media... ;) occurs when the kids cannot get along sharing a showel, a toy car, or are fighting too heavy about something else. In that case, a parent shows up and tries to make sure everyone gets along well again.
In DB2 and other database systems we have a similar concept called deadlock detection. With many DB2 databases now making use of currently committed semantics for the cursor stability isolation level, deadlocks should be rare.
Not the situation as above, but making sure your child is not kept too long in the queue for the swing or other critical playground equipment is another critical aspect of parenting. That concept is called database monitoring and lock waits are something to keep an eye on.
So the next time you are on the playground socializing, tell others about DB2...
When you are at a playground with a group of parents and kids, usually the kids play and the parents talk. However, as a background process parents (in most cases) take note of what the kids are doing. If one of the own children falls, gets hurt, scratched, has a mouthful of sand, or other health issues, the observing parent arrives, fixes the problem. The child goes back to playing, the parent back to talking.
In DB2 this is called the fault monitor facility. It keeps DB2 up and running in case of "exiting prematurely" (a.k.a. crash). Commands like db2fmcu and db2fm help setting up the facility. Once it is set up, try a "kill -9" on the db2sysc process and see what is happening...
Another interruption to the socializing parents (I want to use that term as this is social media... ;) occurs when the kids cannot get along sharing a showel, a toy car, or are fighting too heavy about something else. In that case, a parent shows up and tries to make sure everyone gets along well again.
In DB2 and other database systems we have a similar concept called deadlock detection. With many DB2 databases now making use of currently committed semantics for the cursor stability isolation level, deadlocks should be rare.
Not the situation as above, but making sure your child is not kept too long in the queue for the swing or other critical playground equipment is another critical aspect of parenting. That concept is called database monitoring and lock waits are something to keep an eye on.
So the next time you are on the playground socializing, tell others about DB2...
Tuesday, November 13, 2012
Where are the soap bars...? - Database Appliances
Do you remember the days when there were soap bars in the hotel bathrooms? The days when you began washing the hands and then realizing that the soap bar had to be unwrapped? The room service would restock soap, clean the soap dish, and empty the waste basket. Now enter the age of appliances. Many hotels have switched over to "appliances", wall-mounted soap dispensers. They allow for savings for the hotels due to less effort (service, restocking, ...) and are "greener", i.e., the dispensers cause significantly less waste.
The same transition is also happening for database servers. Instead of purchasing hardware (server, storage, network equipments, etc.) and software separately and assemble and test them on-site in a lengthly process, appliances often are delivered ready-to-use (see IBM PureData System). The key to success is to have the right ingredients. Would you use a soap dispenser that says "good for hands, hair, and dishes"? You would expect to have cream soap, shampoo and conditioner, and other cleaning liquids in separate appliances. The same is true for database appliances. That is the reason why IBM (other than some competition ("supports both OLTP and OLAP" )) is offering PureData System for Transactions, PureData System for Operational Analytics, and PureData System for Analytics. Different workloads and requirements need database appliances with different ingredients.
BTW: I still like a nicely shaped, slightly scented bar of soap. It makes the right gift...
The same transition is also happening for database servers. Instead of purchasing hardware (server, storage, network equipments, etc.) and software separately and assemble and test them on-site in a lengthly process, appliances often are delivered ready-to-use (see IBM PureData System). The key to success is to have the right ingredients. Would you use a soap dispenser that says "good for hands, hair, and dishes"? You would expect to have cream soap, shampoo and conditioner, and other cleaning liquids in separate appliances. The same is true for database appliances. That is the reason why IBM (other than some competition ("supports both OLTP and OLAP" )) is offering PureData System for Transactions, PureData System for Operational Analytics, and PureData System for Analytics. Different workloads and requirements need database appliances with different ingredients.
BTW: I still like a nicely shaped, slightly scented bar of soap. It makes the right gift...
Wednesday, September 26, 2012
How the iPad changed our vacation
After moving to Germany in 2008, our family vacation this Summer was finally (see here why not sooner) in San Jose and San Francisco. The kids were able to use "their" playgrounds of the past, see their preschool and take a look at the school our older son was a student at. What was interesting for all of us was to watch how mobile technology, here the iPad, changes lifes. Note that I am a frequent traveler myself (and sometimes could be one of the cases described below...), but below is what stuck out to the rest of the family.
- While in the past, breakfast rooms were dominated by big screen TVs and the usual morning news, now many people are eating and "smartphoning" or "iPadding" at the same time, occasionally turning heads towards the TV.
- While walking in San Francisco (not much walking in San Jose) special care needs to be taken of people walking and talking. When someone is yelling next to you, the person on the other end of the phone is usually meant. At first this was irritating to the kids.
- iPads are the new "pocket cameras". People are taking pictures using "big screens"...
- Beware of people holding an iPad in front of them and trying to navigate the streets. It was kind of funny and disturbing to see that lamp poles are not on the maps... (and this was before iOS 6 ;-).
- On crowded buses (e.g. line 30) we noticed people trying to locate the position using an iPad to decide when and where to get off.
Monday, August 20, 2012
Welcome to Switzerland! Choose your database territory wisely...
One of the many international aspects of living in the Lake Constance region is that you encounter Swiss, Austrian, and German people, and even those from Lichtenstein on a daily basis. Language (mostly the dialect) is the most obvious differentiator in direct contact as well as a license plate on car. Sometimes, there are also the small and funny struggles with technology which show country-specific preferences.
Depending on the weather, it often happens that you walk in downtown Friedrichshafen and suddenly receive a text message "Welcome to Switzerland!" and your mobile phone started roaming using a Swiss mobile phone company instead of your German mobile provider. Similary, depending on the weather again, you can easily pick up a German provider along the Swiss shore or in Romanshorn waiting for a ferry to Germany. Always make sure that your phone has the right provider, else it will be expensive even receiving a call.
Then, there also funny annoyances like Google Maps. It is showing the Swiss-German border in a very liberal way. The German Reichenau island is, according to Google, Swiss territory. Fortunately, the borderline is clear to everyone and the countries are cooperating and helping each other across the lake.
When working with a database system like DB2, you also have to select the territory, codepage and collation for a database. You could have German, Swiss, Austrian (though no Lichtensteinian) databases side by side in a single DB2 instance. One thing you cannot do is to change the territory as we can do on the mobile phone when picking our home provider. So it would continue to say "Welcome to Switzerland!"
Larger Map
Depending on the weather, it often happens that you walk in downtown Friedrichshafen and suddenly receive a text message "Welcome to Switzerland!" and your mobile phone started roaming using a Swiss mobile phone company instead of your German mobile provider. Similary, depending on the weather again, you can easily pick up a German provider along the Swiss shore or in Romanshorn waiting for a ferry to Germany. Always make sure that your phone has the right provider, else it will be expensive even receiving a call.
Then, there also funny annoyances like Google Maps. It is showing the Swiss-German border in a very liberal way. The German Reichenau island is, according to Google, Swiss territory. Fortunately, the borderline is clear to everyone and the countries are cooperating and helping each other across the lake.
When working with a database system like DB2, you also have to select the territory, codepage and collation for a database. You could have German, Swiss, Austrian (though no Lichtensteinian) databases side by side in a single DB2 instance. One thing you cannot do is to change the territory as we can do on the mobile phone when picking our home provider. So it would continue to say "Welcome to Switzerland!"
Larger Map
Tuesday, August 7, 2012
Partial early blog posting
Two of the many performance enhancements in DB2 10.1 are called PED (partial early distinct) and PEA (partial early aggregation). Work is done as early as possible, though only partially, to reduce data volume already in an early stage and speed up the total query. Having said that, I am done. :)
P.S.: This may be only partial information on PED and PEA, but it helps you speed up query performance and is light in reading...
P.S.: This may be only partial information on PED and PEA, but it helps you speed up query performance and is light in reading...
Friday, June 15, 2012
It is "venerdi" in "it" - a Friday idea
It is Friday and close to afternoon. What to do next? I type "Friday" into the search field of the DB2 Information Center and in the result list I notice the function DAYNAME. In the description I notice that I can provide a locale or language code as parameter.
Let's give it a try, it is Friday afternoon:
1
----------------------------------------------------------------------------------------------------
venerdì
1 record(s) selected.
If your language or country is not listed, try it yourself. Have a nice weekend.
Let's give it a try, it is Friday afternoon:
db2 => values(dayname(current date))
1
----------------------------------------------------------------------------------------------------
Friday
1 record(s) selected.
1
----------------------------------------------------------------------------------------------------
Friday
1 record(s) selected.
db2 => values(dayname(current date, 'de'))
1
----------------------------------------------------------------------------------------------------
Freitag
1 record(s) selected.
db2 => values(dayname(current date,'fr'))
1
----------------------------------------------------------------------------------------------------
vendredi
1 record(s) selected.
db2 => values(dayname(current date,'es'))
1
----------------------------------------------------------------------------------------------------
viernes
1 record(s) selected.
1
----------------------------------------------------------------------------------------------------
Freitag
1 record(s) selected.
db2 => values(dayname(current date,'fr'))
1
----------------------------------------------------------------------------------------------------
vendredi
1 record(s) selected.
db2 => values(dayname(current date,'es'))
1
----------------------------------------------------------------------------------------------------
viernes
1 record(s) selected.
db2 => values(dayname(current date,'in'))
1
----------------------------------------------------------------------------------------------------
Jumat
1 record(s) selected.
db2 => values(dayname(current date,'it'))1
----------------------------------------------------------------------------------------------------
Jumat
1 record(s) selected.
1
----------------------------------------------------------------------------------------------------
venerdì
1 record(s) selected.
If your language or country is not listed, try it yourself. Have a nice weekend.
Friday, May 25, 2012
IBM Commercial from the past with a still up-to-date problem
Remember when IBM sold the first Personal Computers? When manuals got printed? And there were IBM printers? And there were real friends (not just on Facebook)...? :)
Enjoy the (long) weekend, maybe an upcoming vacation, or just Spring...
Enjoy the (long) weekend, maybe an upcoming vacation, or just Spring...
Monday, April 23, 2012
Consistency checks: Failed Groupon email
This morning I had the usual mix of emails in my private inbox: Filtered and unfiltered spams, some emails directly for me, and a set of marketing emails. When I wanted to delete an email sent by the German Groupon site, I spotted something that didn't make sense. My first reaction was to re-read the email, then to press the button to load the "remote content" (for safety and privacy reasons this is disabled by default). Now with pictures, the content still didn't make sense:
As a database guy and also lecturer my reaction was that this will be a great talking point when the topic of consistency checks and constraints is on the agenda again. But how to make sure, I can always access it and point others to it? Here we go... ;-)
![]() |
Screenshot of Groupon email |
Tuesday, February 14, 2012
DB2, I love you!
Today is Valentine's Day and - my wife is hopefully not reading this blog entry - time to say "I love you" to DB2. I love that you are so uncomplicated. You take care of memory management on your own, you are so resource-conscious, so versatile! You store things away in a fraction of space I would have needed. I know you understand me, regardless of whether I speak SQL, XPath, XQuery, SQL/PL, PL/SQL, etc. You don't even mind if I use an Oracle dialect. And you are resilient and you continue, even when I am down.
And best of all, you already have thought of flowers, they are built in.
And best of all, you already have thought of flowers, they are built in.
Wednesday, December 14, 2011
If you are late, just say you are super asynchronous... (HADR)
Well, not everybody is on time and waiting for them can hold up a meeting, important decisions, or completing tasks. The same waiting can happen in an IT environment for various reasons, e.g., a replication or synchronization process taking longer because of network congestion or temporarily overloaded hardware. But what can you do when other tasks are waiting for?
When using DB2 HADR (High Availability Disaster Recovery) some thoughts have to be put into the decision of what synchronization mode to use. Starting with DB2 9.7 FP 5 there are now 4 instead of 3 modes offered:
If you want to learn more about HADR for DB2, take a look at the best practices section on developerWorks. In August a new paper on DB2 HADR has been added that focuses on the configuration and tuning of HADR environments. And remember, you are not reading the paper late. You are just super asynchronous with the news...
When using DB2 HADR (High Availability Disaster Recovery) some thoughts have to be put into the decision of what synchronization mode to use. Starting with DB2 9.7 FP 5 there are now 4 instead of 3 modes offered:
- SYNC (synchronous): the transaction log has been written on both the primary and standby
- NEARSYNC (nearly synchronous): the transaction log has been written on the primary and has been transferred to the standby
- ASYNC (asynchronous): the transaction log has been written on the primary and is ready to be sent over to the standby
- SUPERASYNC (super asynchronous): the transaction log has been written on the primay
If you want to learn more about HADR for DB2, take a look at the best practices section on developerWorks. In August a new paper on DB2 HADR has been added that focuses on the configuration and tuning of HADR environments. And remember, you are not reading the paper late. You are just super asynchronous with the news...
Friday, June 10, 2011
Friday Fun: What people drink on the airplane...
Earlier this week when flying back I had some spare minutes and actually read the fineprint on the back of my boarding pass. The section "Dangerous goods in passenger baggage" notes that, among others, poisonous substances and radioactive materials are prohibited. However, at the bottom it is pointed out that, among others, this rule does not apply to alcoholic drinks. Well, that explains the behavior and facial expression of some fellow travelers...
Friday, May 27, 2011
Tuesday, November 16, 2010
What "pureXMLness" do you have...?
The longer and the more intense the work with XML in a database system of your choice (this is DB2, right?), the more often comes the question: What pureXMLness do I have?
To what degree am I using pureXML? How much XML does my system have? Is our system mostly relational or XML (remember DB2 is hybrid)? How do we measure how XML is used? Give me some numbers for our CIO, it's Q4.
To give a scientifically-proven, valuable answer, something that stands the test of time and holds up to all questions from the business side, I came up with THE pureXMLness factor. How is it computed? The following is the simple query that needs to be run against the DB2 database in question. It's an XQuery of course.
xquery
let $i:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysindexxmlpatterns"),
$j:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.syscolumns where coltype='XML'"),
$k:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxmlstrings"),
$l:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxmlpaths"),
$m:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxsrobjects"),
$n:=db2-fn:sqlquery("select xmlcast(cast (avg(xda_hit_ratio_percent) as float) as xml) from sysibmadm.bp_hitratio")
return <pureXMLness>{avg((($i+$j+$m) div 20,($k+$l) div 300,$n))}</pureXMLness>;
Let me know what pureXMLness you have or if you think you have a better formula...
To what degree am I using pureXML? How much XML does my system have? Is our system mostly relational or XML (remember DB2 is hybrid)? How do we measure how XML is used? Give me some numbers for our CIO, it's Q4.
To give a scientifically-proven, valuable answer, something that stands the test of time and holds up to all questions from the business side, I came up with THE pureXMLness factor. How is it computed? The following is the simple query that needs to be run against the DB2 database in question. It's an XQuery of course.
xquery
let $i:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysindexxmlpatterns"),
$j:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.syscolumns where coltype='XML'"),
$k:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxmlstrings"),
$l:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxmlpaths"),
$m:=db2-fn:sqlquery("select xmlcast(count(*) as xml) from sysibm.sysxsrobjects"),
$n:=db2-fn:sqlquery("select xmlcast(cast (avg(xda_hit_ratio_percent) as float) as xml) from sysibmadm.bp_hitratio")
return <pureXMLness>{avg((($i+$j+$m) div 20,($k+$l) div 300,$n))}</pureXMLness>;
Let me know what pureXMLness you have or if you think you have a better formula...
Tuesday, August 31, 2010
Food: Where business and life meet
Working at home has advantages. There is the "lunch is ready in 5 minutes" call to remind me to get ready to make the few meters from my desk to the table on time. Sometimes, those instant messaging windows pop up (US East Coast wakes up or urgent European business) and it becomes a struggle to be at the table when food is served. And I usually don't help to prepare lunch during the work week. But all that changed today.
I can point to the following video, actually a recent IBM commercial, and claim: "Darling, see how I helped with the food?".
I can point to the following video, actually a recent IBM commercial, and claim: "Darling, see how I helped with the food?".
Wednesday, May 5, 2010
New uses for the DATE function?
I just read about a new dating site that will cater only to fans of Apple products. The site's name? Cupidtino. If you know the San Francisco Bay Area and Silicon Valley (or you are an Apple fan) you know that Apple's headquarter is in Cupertino, CA. What a nice name and wordplay.
When I told my wife about the dating site I also mentioned that in the database world everything is much simpler. Let's just invoke DATE() and wait for your lucky match...
Disclaimer: I and my family don't own a single Apple product.
When I told my wife about the dating site I also mentioned that in the database world everything is much simpler. Let's just invoke DATE() and wait for your lucky match...
Disclaimer: I and my family don't own a single Apple product.
Friday, March 26, 2010
Sink Friday
Some years ago, ThinkFridays were still popular at IBM. They could be used to work special projects and to extend skills. Here is something in that spirit:
Subscribe to:
Posts (Atom)