March 28, 2020

Changing DNS

Top DNS Servers

  • Primary DNS: 8.8.8.8
  • Secondary DNS: 8.8.4.4
  • Primary DNS: 208.67.222.222
  • Secondary DNS: 208.67.220.220
  • Primary DNS: 1.1.1.1
  • Secondary DNS: 1.0.0.1
  • Primary DNS: 9.9.9.9
  • Secondary DNS: 149.112.112.112

How do I make the switch on my computer?

Okay, this is where things can get a bit tricky, but it should be manageable for everyone. 
If you’re a Windows user

PHOTO: Screengrab

  • Go to Start Menu 
  • Click Settings
  • Click Network & Internet
  • Click Change adapter options
  • Double-click on Ethernet or Wi-Fi, depending on how you’re connected
  • In the pop-up window, click Properties
  • Double-click on Internet Protocol Version 4 (TCP/IPv4)
  • Choose Use the following DNS server addresses
  • Key in the digits of your chosen public DNS server, with the Preferred DNS server being the primary one, while the Alternate DNS server is your secondary one
  • Click OK to make the changes, exit the Control Panel

March 1, 2020

Design Thinking .. Summarized

Design Thinking
ref: https://www.cio.com/article/3528292/what-is-design-thinking-an-agile-method-for-innovation.html

Definition
Design thinking is an agile, iterative process for approaching design and innovation that centers on users’ desires and needs, and enables your company to pivot as the industry changes and technology evolves. Design thinking acknowledges that there isn’t one way to solve a problem. As such, the design thinking methodology encourages questioning, experimenting, observing and innovating in an environment that embraces diverse opinions and ideas.

Design thinking principles

  • Wicked problems:  “wicked problems” stands for ill-defined or tricky issues that have unclear solutions and require creative thinking or non-traditional strategies to solve.
  • Problem framing: With design thinking, there is more than one way to view a problem. Problems aren’t taken at face value. Instead, they’re recontextualized and re-interpreted to find a solution.
  • Solution-focused thinking: Instead of focusing on problems, a design thinking model looks at solutions first, which can help improve understanding of the problem.
  • Abductive reasoning: This form of logical inference starts with an observation or set of observations and then asks you to find the simplest, most likely explanation for the problems observed. It’s an important style of reasoning that is used in design thinking to reframe problems or ideas to find several ways to address the problem or opportunity.
  • Co-evolution of problem and solution: When design thinkers work on a problem, they switch between thinking about the problem and looking at ideas for a solution to help come up with even more solution ideas.
  • Representations and modelling: Computer models and physical prototypes are used to identify requirements, which can sometimes be abstract, and to enable your team to test, refine and evaluate new ideas.

Design thinking process
There are four main phases of design thinking that your team will cycle through while developing solutions and products. Rather than a detailed prescription to follow, design thinking offers a loose structure that you can interpret as needed for your business needs.

Inspiration: This is usually the first phase of the design process during which you will try to understand the problem or opportunity. You’ll want to establish objectives, benchmarks, key points of contact, requirements, technology needs and how your solution or product will fit into the industry market.

Empathy: Empathy is arguably one of the most important phases and principles of design thinking. When designing solutions, products, services or hardware you need to truly understand the perspective of the client or end-user.

Ideation: This phase involves developing as many ideas as possible using both divergent and convergent thinking. You’ll alternate between divergent thinking, which involves a diverse group of people who engage in structured brainstorming, and convergent thinking, which zeroes in on the best ideas to select one to follow through with.

Implementation and prototyping: Once you have established a few of the best ideas, it’s time for modeling and prototyping by creating actual products and services that can be tested, evaluated and refined.

July 5, 2012


9 Beliefs of Remarkably Successful People

The most successful people in business approach their work differently than most. See how they think--and why it works.
man holding a picture of a blooming tree
Getty
 
17K
Share
I'm fortunate enough to know a number of remarkably successful people. Regardless of industry or profession, they all share the same perspectives and beliefs.
And they act on those beliefs:
1. Time doesn't fill me. I fill time.
Deadlines and time frames establish parameters, but typically not in a good way. The average person who is given two weeks to complete a task will instinctively adjust his effort so it actually takes two weeks.
Forget deadlines, at least as a way to manage your activity. Tasks should only take as long as they need to take. Do everything as quickly and effectively as you can. Then use your "free" time to get other things done just as quickly and effectively.
Average people allow time to impose its will on them; remarkable people impose their will on their time.
2. The people around me are the people I chose.
Some of your employees drive you nuts. Some of your customers are obnoxious. Some of your friends are selfish, all-about-me jerks.
You chose them. If the people around you make you unhappy it's not their fault. It's your fault. They're in your professional or personal life because you drew them to you--and you let them remain.
Think about the type of people you want to work with. Think about the types of customers you would enjoy serving. Think about the friends you want to have.
Then change what you do so you can start attracting those people. Hardworking people want to work with hardworking people. Kind people like to associate with kind people. Remarkable employees want to work for remarkable bosses.
Successful people are naturally drawn to successful people.
3. I have never paid my dues.
Dues aren't paid, past tense. Dues get paid, each and every day. The only real measure of your value is the tangible contribution you make on a daily basis.
No matter what you've done or accomplished in the past, you're never too good to roll up your sleeves, get dirty, and do the grunt work.  No job is ever too menial, no task ever too unskilled or boring.
Remarkably successful people never feel entitled--except to the fruits of their labor.
4. Experience is irrelevant. Accomplishments are everything.
You have "10 years in the Web design business." Whoopee. I don't care how long you've been doing what you do. Years of service indicate nothing; you could be the worst 10-year programmer in the world.
I care about what you've done: how many sites you've created, how many back-end systems you've installed, how many customer-specific applications you've developed (and what kind)... all that matters is what you've done.
Successful people don't need to describe themselves using hyperbolic adjectives like passionate, innovative, driven, etc. They can just describe, hopefully in a humble way, what they've done.
5. Failure is something I accomplish; it doesn't just happen to me.
Ask people why they have been successful. Their answers will be filled with personal pronouns: I, me, and the sometimes too occasional we.
Ask them why they failed. Most will revert to childhood and instinctively distance themselves, like the kid who says, "My toy got broken..." instead of, "I broke my toy."
They'll say the economy tanked. They'll say the market wasn't ready. They'll say their suppliers couldn't keep up.
They'll say it was someone or something else.
And by distancing themselves, they don't learn from their failures.
Occasionally something completely outside your control will cause you to fail. Most of the time, though, it's you. And that's okay. Every successful person has failed. Numerous times. Most of them have failed a lot more often than you. That's why they're successful now.
Embrace every failure: Own it, learn from it, and take full responsibility for making sure that next time, things will turn out differently.
6. Volunteers always win.
Whenever you raise your hand you wind up being asked to do more.
That's great. Doing more is an opportunity: to learn, to impress, to gain skills, to build new relationships--to do something more than you would otherwise been able to do.
Success is based on action. The more you volunteer, the more you get to act. Successful people step forward to create opportunities.
Remarkably successful people sprint forward.
7. As long as I'm paid well, it's all good.
Specialization is good. Focus is good. Finding a niche is good.
Generating revenue is great.
Anything a customer will pay you a reasonable price to do--as long as it isn't unethical, immoral, or illegal--is something you should do. Your customers want you to deliver outside your normal territory? If they'll pay you for it, fine. They want you to add services you don't normally include? If they'll pay you for it, fine. The customer wants you to perform some relatively manual labor and you're a high-tech shop? Shut up, roll 'em up, do the work, and get paid.
Only do what you want to do and you might build an okay business. Be willing to do what customers want you to do and you can build a successful business.
Be willing to do even more and you can build a remarkable business.
And speaking of customers...
8. People who pay me always have the right to tell me what to do.
Get over your cocky, pretentious, I-must-be-free-to-express-my-individuality self. Be that way on your own time.
The people who pay you, whether customers or employers, earn the right to dictate what you do and how you do it--sometimes down to the last detail.
Instead of complaining, work to align what you like to do with what the people who pay you want you to do.
Then you turn issues like control and micro-management into non-issues.
9. The extra mile is a vast, unpopulated wasteland.
Everyone says they go the extra mile. Almost no one actually does. Most people who go there think, "Wait... no one else is here... why am I doing this?" and leave, never to return.
That's why the extra mile is such a lonely place.
That's also why the extra mile is a place filled with opportunities.
Be early. Stay late. Make the extra phone call. Send the extra email. Do the extra research. Help a customer unload or unpack a shipment. Don't wait to be asked; offer. Don't just tell employees what to do--show them what to do and work beside them.
Every time you do something, think of one extra thing you can do--especially if other people aren't doing that one thing. Sure, it's hard.
But that's what will make you different.
And over time, that's what will make you incredibly successful.

May 11, 2012

Failed to read wsdl file from url

javax.xml.ws.WebServiceException: weblogic.wsee.wsdl.WsdlException: Failed to read wsdl file from url due to -- java.net.ConnectException: Tried all: '1' addresses, but could not connect over HTTP to server: 'sinuxu31', port: '7909'


When the above error occurs, you must check the following.


1) Check that you can view the wsdl URL using a browser
  • If the WSDL URL is not accessible then the server hosting the web service is unavailable. 
  • Check if you are blocked by any firewall rules.
  • You can use the following command in UNIX to get the wsdl file
    • wget -O google-wget.txt http://www.google.com 
    • cat google-wget.txt
 2) If the WSDL URL is accessible via Browser then check the connectivity to the external server from the server where Web service client is hosted.
  • Try ping the external server to check whether able to reach the server in the network
    • ping <external_server_host_name></external_server_host_name>
  • If the ping is not working, check that hosting server is on the network
  • Check if there is any firewall rule set to blocking the network traffic from the calling server
  • Telnet to the external server to check whether the Connection to the server is established properly
    • telnet <external_server_host_name> <port_number></port_number></external_server_host_name>
  • If telnet fails, check whether the port is opened from the calling server to get a connection to the external server
  • Do  a nslookup for the external server to check whether the DNS server name mappings
    • nslookup 
    • > <external_server_host_name>
  • If the nslookup fails, check the DNS server name mappings are done properly.

JMS Message Destination Error

In this example i am trying to create a Point to Point messaging service. i am using JEE 5 and Glassfish. I encountered the following error message when using annotations.

SEVERE: NAM0007 : Message Destination Reference java:comp/env/jms/p2pQueue has not been linked to a Message Destination
15-Sep-2009 17:02:38 com.sun.enterprise.appclient.MainWithModuleSupport
WARNING: ACC003: Application threw an exception.
javax.naming.NamingException: Message Destination Reference java:comp/env/jms/p2pQueue has not been resolved
at com.sun.enterprise.naming.NamingManagerImpl.bindObjects(NamingManagerImpl.java:521)
at com.sun.enterprise.appclient.AppContainer.preInvoke(AppContainer.java:137)
at com.sun.enterprise.appclient.MainWithModuleSupport.(MainWithModuleSupport.java:383)
at com.sun.enterprise.appclient.MainWithModuleSupport.(MainWithModuleSupport.java:259)
at com.sun.enterprise.appclient.Main.main(Main.java:200)



This is caused by the following incorrect @Resource references.

@Resource(name = "jms/p2pQueue")
private static Queue p2pQueue;
@Resource(name = "jms/QueueConnectionFactory")
private static ConnectionFactory p2pQueueFactory;


The correct annotation should be

@Resource(mappedName = "jms/p2pQueue")
private static Queue p2pQueue;
@Resource(
mappedName = "jms/QueueConnectionFactory")
private static ConnectionFactory p2pQueueFactory;




February 8, 2010

Using Log4j and Streaming the Logs as per instance/file

The following setup can be used to generate a simple logging mechanism which will log the information on a per instance per file basis.

A simple log4j.properties file setup.

 
#### Use two appenders, one instance logs to X another to Y
log4j.logger.X=debug, X
log4j.logger.Y=debug, Y

log4j.appender.X.layout=org.apache.log4j.SimpleLayout
log4j.appender.X=org.apache.log4j.FileAppender
log4j.appender.X.File=exampleX.log

log4j.appender.Y.layout=org.apache.log4j.SimpleLayout
log4j.appender.Y=org.apache.log4j.FileAppender
log4j.appender.Y.File=exampleY.log

A Java code that decides which logger to use.

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class FormatNumber
{    public static void main (String args[])
    {
        BigDecimal b = new BigDecimal("-1232323222.1049");
        BigDecimal c = b.setScale(4,BigDecimal.ROUND_HALF_DOWN);

        DecimalFormat format = new DecimalFormat("#,##0.00");
        String o = format.format(c);

        BigDecimalRounder g = new BigDecimalRounder("-1232323222.1049","Y");
        c = g.roundUpToScale(2, BigDecimal.ROUND_HALF_UP);
    }
}

import java.math.BigDecimal;
import java.util.Enumeration;
import org.apache.log4j.Appender;
import org.apache.log4j.Logger;

public class BigDecimalRounder extends BigDecimal
{
    private Logger log = null;
    public BigDecimalRounder(String decimal, String name)
    {
        super(decimal);
        log = Logger.getLogger(name);
    }

    public BigDecimal roundUpToScale(int scale, int roundingMode)
    {
        BigDecimal returnDecimal = null;
        if (super.scale() >= scale)
        {
            int j = super.scale();
            while (j >= scale)
            {
                returnDecimal = super.setScale(j, roundingMode);
                log.debug("log to file: " + returnDecimal.toString());
                j--;
            }
        }
        return returnDecimal;
    }
}



June 24, 2009

Temporary Tablespaces

What are Temporary Tablespaces: (reference: http://www.orafaq.com/node/2)

Temporary tablespaces are used to manage space for database sort operations and for storing global temporary tables. For example, if you join two large tables, and Oracle cannot do the sort in memory (see SORT_AREA_SIZE initialisation parameter), space will be allocated in a temporary tablespace for doing the sort operation. Other SQL operations that might require disk sorting are: CREATE INDEX, ANALYZE, Select DISTINCT, ORDER BY, GROUP BY, UNION, INTERSECT, MINUS, Sort-Merge joins, etc.

The DBA should assign a temporary tablespace to each user in the database to prevent them from allocating sort space in the SYSTEM tablespace. This can be done with one of the following commands:

SQL> CREATE USER scott DEFAULT TABLESPACE data TEMPORARY TABLESPACE temp;
SQL> ALTER USER scott TEMPORARY TABLESPACE temp;

Note that a temporary tablespace cannot contain permanent objects and therefore doesn't need to be backed up.

What are TEMPFILES?

Unlike normal data files, TEMPFILEs are not fully initialised (sparse). When you create a TEMPFILE, Oracle only writes to the header and last block of the file. This is why it is much quicker to create a TEMPFILE than to create a normal database file.

TEMPFILEs are not recorded in the database's control file. This implies that one can just recreate them whenever you restore the database, or after deleting them by accident. This opens interesting possibilities like having different TEMPFILE configurations between permanent and standby databases, or configure TEMPFILEs to be local instead of shared in a RAC environment.

One cannot remove datafiles from a tablespace until you drop the entire tablespace. However, one can remove a TEMPFILE from a database. Look at his example:

SQL> ALTER DATABASE TEMPFILE '/oradata/temp02.dbf' DROP INCLUDING DATAFILES;

If you remove all tempfiles from a temporary tablespace, you may encounter error: ORA-25153: Temporary Tablespace is Empty. Use the following statement to add a TEMPFILE to a temporary tablespace:

SQL> ALTER TABLESPACE temp ADD TEMPFILE '/oradata/temp03.dbf' SIZE 100M;

Except for adding a tempfile, as illustrated in the above example, you cannot use the ALTER TABLESPACE statement for a locally managed temporary tablespace (operations like rename, set to read only, recover, etc. will fail).

How does one create Temporary Tablespaces?

Oracle provides various ways of creating TEMPORARY tablespaces (mainly to provide backward compatibility). One should use the most recent method available:

- Prior to Oracle 7.3 - CREATE TABLESPACE temp DATAFILE ...;
- Oracle 7.3 & 8.0 - CREATE TABLESPACE temp DATAFILE ... TEMPORARY;
- Oracle 8i and above - CREATE TEMPORARY TABLESPACE temp TEMPFILE ...;

Oracle 8i and 9i example:

SQL> CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/oradata/mytemp_01.tmp' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;

For best performance, the UNIFORM SIZE must be a multiple of the SORT_AREA_SIZE parameter.

Oracle 9i example using OMF (Oracle Managed Files):

SQL> CREATE TEMPORARY TABLESPACE temp;

Default Temporary Tablespaces:

In Oracle 9i and above, one can define a Default Temporary Tablespace at database creation time, or by issuing an "ALTER DATABASE" statement:

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;

The default Default Temporary Tablespace is SYSTEM. Each database can be assigned one and only one Default Temporary Tablespace. Using this feature, a Temporary Tablespace is automatically assigned to users. The following restrictions apply to default temporary tablespaces:

- The Default Temporary Tablespace must be of type TEMPORARY
- The DEFAULT TEMPORARY TABLESPACE cannot be taken off-line
- The DEFAULT TEMPORARY TABLESPACE cannot be dropped until you create another one.

To see the default temporary tablespace for a database, execute the following query:

SQL> SELECT * FROM DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

All new users that are not explicitly assigned a TEMPORARY TABLESPACE, will get the Default Temporary Tablespace as its TEMPORARY TABLESPACE. Also, when you assign a TEMPORARY tablespace to a user, Oracle will not change this value next time you change the Default Temporary Tablespace for the database.

Other Considerations:

Some performance considerations for temporary tablespaces:

- Always use temporary tablespaces instead of permanent content tablespaces for sorting (no logging and uses one large sort segment to reduce recursive SQL and ST space management enqueue contention).
- Ensure that you create your temporary tablespaces as locally managed instead of dictionary managed (Use sort space bitmap instead of sys.fet$ and sys.uet$ for allocating space).
- Always use TEMPFILEs instead of DATAFILEs (reduce backup and recovery time + other advantages as described above)
- Stripe your temporary tablespaces over multiple disks to alleviate possible disk contention and to speed-up sorting operations (user processes can read/write to it directly).

Monitoring Temporary Tablespaces and Sorting:

Unlike datafiles, tempfiles are not listed in V$DATAFILE and DBA_DATA_FILES. Use V$TEMPFILE and DBA_TEMP_FILES instead.

One can monitor temporary segments from V$SORT_SEGMENT and V$SORT_USAGE

DBA_FREE_SPACE does not record free space for temporary tablespaces. Use V$TEMP_SPACE_HEADER instead:

SQL> select TABLESPACE_NAME, BYTES_USED, BYTES_FREE from V$TEMP_SPACE_HEADER;

TABLESPACE_NAME BYTES_USED BYTES_FREE
------------------------------ ---------- ----------
TEMP 52428800 52428800

SQL> select sum(free_blocks) from V$SORT_SEGMENT where tablespace_name = 'TEMP';
SQL> select inst_id, tablespace_name, total_blocks, used_blocks, free_blocks
from gv$sort_segment;