Psalm 3: Faith against Foes

 based on Psalm 3 (original)

I cry out oh Lord for help
They surround me on every side
Will you save me in my need?
Many are saying you’ll not provide.

But I know you are my shield
You will lift my head up high
I call out, and you answer me
I know, my aid, you’ll not deny.

If I lie down and fall asleep
I know I’ll wake and rise with glee
I will not fear 10,000 men
For the Lord my God, He shelters me.

Rise up my saviour and my God
Deliver me Lord from my foes
Break their jaw, shatter their teeth
Strike down them who against me rose

The Lord provides our one true hope
From Him receive all you desire
May your blessing, God, be on us all
And let us become what you admire

author: Dr David H. Akehurst

If you liked this, consider reading some of my other poems.

(I have always thought that it would be good to read a translation/interpretation of the psalms that actually read like poetry in the English language. I know that many other people have done this, however a few years back I was house bound for a few weeks and had a go at writing poetry based on them. This is one of the results.)

Thoughts about life: Know, deeply, that God Loves You

Know, deeply, that God Loves You

He really does, more than you can possibly imagine. What parent does not love their child, what creator does not feel for His creation, especially if that creation had the ability to feel also. If we make something – whether our childhood creations brought lovingly home from school, to bigger projects we take on as adults – we feel for the things we make, things we invest a bit of yourself in. These inanimate creations capture a bit of our hearts, how much more so would a child. How much more so, do we, Gods creation, and able also to love, capture His heart. How much must He cry when we are hurt, or hurting, How much He longs to reach out and comfort us if we will let Him. How much does He want us to have the best life we can – so much that He sent Himself/His son to die for us, so that we can have the fullest and best life. If we seek Him, He will prosper us. He has the plans to bring us all we could ever dream of and more than we can imagine. But we tend to ignore Him, not listen, not put ourselves where we can receive these gifts. Sometimes we can be really dumb. Sometimes we are just hurt, and we need first to allow Him to heal us, before we are able to receive some of the good things. Often we have been given good things, and we take them for granted, don’t notice, forget, or throw them away without thinking – again mostly through being hurt and broken people – but it can be through us making bad choices, or simply not being aware that God is there, and He loves us with the intensity that only an eternal and infinite God can provide. Step into it, bask in it, lap it up, it is infinite, it won’t run out as a source – it will run out of you, it will overflow into those around you, and they will feel it too – then perhaps they will notice Him, accept His love, and allow it to flow into someone else.

[1 Cor 8v3, Jer 29v11]

The Grace of God: Get a Revelation of it!

Understanding, really understanding, the Grace of God is the one thing that will help us in our journey as a christian beyond anything else. I don’t mean simply knowing what the word means, though that is a helpful starting point, but knowing it deeply inside your heart and soul and mind – in other words, what I am recommending, is to get a revelation of grace.

The topic of grace is sufficient to fill pages and pages, even a whole book is probably insufficient to fully explore the topic and this post will only scratch the surface. However, I hope to talk about grace sufficiently to motivate you into wanting to get a revelation about it and excite you about the possibilities of what could happen in our lives once we really get it. I hope that what I have to say will speak to your heart or rather, I hope that God is able to speak to your heart via what I have to say.

I cannot speak about grace without speaking of Gods love for us. Gods love for us is the biggest example of grace, illustrated in particular by the life, death and resurrection of Jesus, His son.

Think about this for a moment. There is nothing we can do to make God love us less, and nothing we can do to make Him love us more.

Think of something that you could do that you think God would like – regularly reading your bible, attending church every Sunday perhaps, or working at the local homeless shelter or even, maybe more dramatically, selling or giving all your worldly possessions in order to raise money to help feed the poor. You could do these things and they will certainly help your life and help the lives of others. But they will not make God love you any more. They will not get God to increase the amount of love He has for you. He already loves you with an infinite boundless love that can fill you to overflowing and, most importantly, Gods love for you is based on His decision, not on what you do or don’t do.

Similarly, think about something that you could do that you think God would not like. None of us are perfect, we probably regularly do something that we know is hurtful to God or to ourselves or other people. When you do that thing, when you hurt someone emotionally or physically, or when you do something that harms your own relationship with God, God does not start to love you less. Not even a little bit less. What ever you do, however wrong you think it is or was, God still loves you just as much. Gods love for you is based on His decision to love you, not based on what you do or don’t do.

This love, this decision to love us, irrespective of our actions, is an example of grace. We don’t deserve to be loved as God loves us. We have done nothing, and could do nothing that would cause the creator of the universe to think he aught to love us. But He does.
Grace, undeserved favour. Do we deserve gods love? Do we deserve it regardless of what we do? Whether you answer that with a yes or a no, we are given Gods love. In abundance, overflowing, more than we can contain, God wants to fill us with his love.

Dad, Dad, do you still love me, our doubts say to us inside, do you still love me even though I have again done that thing that causes you pain?
Yes, my child, I still love you. Not only do I love you, I forgive you, and I will heal you, clean you, and celebrate your life. Again and again as many times as is necessary.
Dad do I have to do something to make it right? What punishment must I endure?
My child, I love you, all you need to do is come to me and accept my love. Accept my forgiveness, accept my grace.

How hard this seems to be for us to do sometimes! That action of simply coming to God and accepting His forgiveness and His grace. Do you understand, can you grasp it, the depths and the strength of Gods love and Grace for us?

King David is one of my favourite characters from the bible. Maybe I am biased because I share his name. But what I love about him is that he clearly understands about grace, and this is before Jesus was born. David is a very human King. He messes up, repeatedly, breaking many of the Gods laws. And yet he is described as a man after Gods own heart. He repeatedly repents of his mistakes, he returns to God every time. For example, how many of us have arranged for someone to be killed so that we can sleep with their spouse? No don’t answer, I don’t want to know. But, King David did that! [2 Sam 11] And then, in the next chapter [2 Sam 12:22], all be it a few months later, he is praying to God for the life of his son, believing for God to have grace and to and heal his son.

Do you have that same understanding of Gods grace? Can you go your own way, do something that hurts God, others, or yourself, and still return to God? Asking for his forgiveness, believing in his love and Grace? I encourage you, try it. Please don’t kill anyone. Don’t go out of your way to go against Gods way for us to live. But are any of us perfect? No, we are bound to make a mistake again, and when we do, we should go straight to God. When you do so, you will experience His grace [Rom 5:20]. I know this personally, because I have done this, and He has the same grace for you that He has for me.

Experiencing grace is the best way of understanding it, not just intellectually understanding, but understanding it deeply, in your heart. We experience grace from God, but also we experience it from one another. Every time we show grace to someone, we help them to experience grace and to get a better understanding of it. Then they in turn are more able to be gracious to others, but it all starts from God. In particular, showing grace to those who don’t have a relationship with God is important. Such people don’t recognise their own experiences of Gods grace to them, so we can illustrate God to them, by being gracious ourselves, on His behalf.

I know it is difficult. It is hard to show grace sometimes. But it is also, surprisingly, hard to accept grace sometimes and it is only through learning to accept and experience grace for ourselves that we are then able show grace to others. God is overflowing with grace for us, He wants us to take it from him. Believe and have faith, at every opportunity, for Gods favour on and in your life.

Many of the parables Jesus told have got grace at the centre of their message. In fact it is the grace illustrated in the those parables which made the stories so significant, and in some cases hard to accept. The parable of the workers in the vineyard [Mat 20] ends with the land owner illustrating grace. The ones he hired last did not deserve the same pay, but the land owner chose to be generous, he chose to give undeserved favour – grace, in the form of generous wages- to them.

The story of the prodigal son [Luk 15:11-32], with his father, full of grace, running to him [Luk 15:20] and celebrating the sons return [Luk 15:22-24]. Give a banquet and invite the poor, the crippled, the lame, the blind [Luk 14:13] – show these people grace, favour them with the banquet, and the following parable of the great banquet [Luk 14:15-24]. Not to forget all the people whom Jesus actively favoured by healing them. They had not done anything to deserve such favour, they did not pay Him, some didn’t even ask [Mat 12:13], many did not even thank Him [Luk 17:11-19], and Jesus didn’t ask them for anything in return, but they were all given a free gift of healing – grace in action.

Once we can really fully accept grace, and let it flow into us and out again, when we really “get it”. When we do that, I believe that our lives will radically change and we will really start to shine with the light, love and grace of God. Just imagine what your family would be like if every one always had grace for one-another. Imagine if that were the case in your local church, or neighbourhood. Imagine it extends to your whole town, city, country. Imagine living in a world full of grace, people who at every opportunity, will favour one another with love, forgiveness, help, finances, food, shelter, etc, without asking anything in return. How exciting is that thought? Well, it all starts with us as individuals fully grasping, understanding, how much grace God shows to us.

Getting such a revelation is normally a process. Some are lucky and have a “Road to Damascus” moment [Acts 9:1-19]. But for me any many others it is a journey, a process, and the best way to proceed along this journey is to practice. Practice receiving grace. Once we regularly appreciate and recognise how much grace is given to us by God, I believe we cannot help ourselves, but to give grace out in return. So practice receiving, then give out of what you have received. God gives, we take from Him, and are then able to give to others.

God loves to give to us. He gives love, healing, blessings, friendships, families… You name it, what is it that you are in need of, or even just wanting. You have a loving father who wants to give to you. Live in the expectation of receiving His undeserved favour in every circumstance of your life and don’t question whether you deserve it or not. Of course you don’t deserve it. God gives to us because of His love for us, not because of what we do or don’t do.

Grace, undeserved favour, go and practice receiving it.

  1. Grace is one of the most important concepts from Christianity
  2. We experience grace from one-another and from God – in particular the grace given via and through the life, death and resurrection of Christ.
  3. The best way to get a revelation of grace is to practice receiving it. The results will transform your life and the life of those around you.

Thoughts about life: Men and Women

Having a romantic relationship with someone is a great blessing. However, remember you are very different, they are not you, however close you get, however much you talk. They are not telepathic, they do not know what you are thinking or even think in the same way. Men and women are fundamentally different. Women are relational, emotional, communicators, men are fighters and have a tenth of the communication ability of a woman. Respect and the ability to ‘be sufficient’ are very important to a man. You will both hurt each other throughout your lives. This is a way for God teach us about grace and forgiveness, the more deeply you love them the more they are able to hurt you and the more grace and forgiveness you must practice, this is called working at a relationship. As you grow together you learn to hurt each other less often, but it will always happen, we are not perfect people. The joy far outweighs the pain, and you being able to have that grace and forgiveness for someone is one of the signs that you have the right person. Enjoy, it is all part of God’s blessing.

Psalm 2: The opposition of Nations

based on Psalm 2 (original)

Governments and presidents oppose the Lord’s anointed King.
Why do nations still conspire, their people plot in vain?
By casting off (like chains) the guidance of His holy word,
How will they win? What do they hope to gain?
He could rebuke them if they listen, with His anger and His wrath.
But the one in heaven knows they’re fools and laughs at their mistake,
He has installed a gracious King upon His holy hill
And with these words proclaims Him King, all opposed will break.
Your are my son, today I have become your Dad,
Just ask! The nations and the earth will all belong to you
Rule them with an iron fist and break them if you will
Though my grace abounds and fills you through and through”
So tremble and be wise, all you kings and rulers on the earth,
Serve and respect the Lord your God, rejoice in His chosen Son
His righteous anger may be shown, destroying all opposed.
Better to be blessed, and seek to shelter underneath the Holy One.

author: Dr David H. Akehurst

If you liked this, consider reading some of my other poems.

(I have always thought that it would be good to read a translation/interpretation of the psalms that actually read like poetry in the English language. I know that many other people have done this, however a few years back I was house bound for a few weeks and had a go at writing poetry based on them. This is one of the results.)

Does God Exist?

“Does God exist?” A question that many people have argued about for a long time.

Personally I think that belief or faith in the existence of God is a personal choice. We should all respect that different people will make different choices. We should not get upset or argue unpleasantly with people over that choice it is their own to make. Faith, after all, is a matter of believing in something for which there is no immediate evidence. Hence, it must be a choice for us all to make, and I do not mind what choice you make, that is between you and God.

What matters, is the impact that that choice make on your life. Does your choice to believe, or not, in the existence of God, develop your character in such a way that your life has a positive or negative impact on the lives of others. What is the external visible result of that personal internal choice?

Fix Windows Update High Processor Usage

How to Fix Windows Update High Processor Usage?

Windows Update can sometimes cause high processor usage (50%-100%).

Option 1

A possible cause that is worth checking is if you have run low on disk space.

Ensure that there several Gb of free disc space (ie. > 5Gb).

Option 2

If windows is running as a Virtual Machine, try updating the VM host application,
e.g. check for new version of VirtualBox.

Option 3

Check out this link, and try running Windows Update troubleshooter, useful link

Creating a Software Development Support Server

Software development requires a number of server based tools to support it. This post provides a quick list of such tools and then describes how to set them up.

  • Source Code Control
    • git, svn, mercurial
  • Continuous Integration
    • Jenkins/Huson
  • Static Analysis
    • Sonar

Git

Installation

This is probably already installed as it may come with the linux distribution (e.g. Ubuntu), else

  • sudo apt-get install git

Configuration

Apache

This is optional, but enables easier access to other services by providing proxies from port 80.

Installation

  • sudo apt-get install apache2
  • sudo a2enmod proxy
  • sudo a2enmod proxy_http

Configuration

none

Postgres

This is used later to support sonar.

Installation

  • sudo apt-get install postgresql postgresql-contrib
  • sudo apt-get install pgadmin3 (you will probably use the gui admin tool at some point)
    • At the time of writing, apt-get installs v9.4 of postgresql and 1.18 of pgadmin3,
    • Although this partially works, pgadmin3 core-dumped several times at me
    • This link has instructions for installing pgadmin3 v1.20
  • sudo -u postgres psql postgres (to configure the postgres admin user)
    • password postgres (from the psql propmt: to set the postgres user password)
    • CREATE EXTENSION adminpack; (to enable pgadmin to work with psql)
    • q (to quit psql)
  • Edit the file ‘/etc/postgresql/9.4/main/pg_hba.conf ‘
    • Change the line
      # Database administrative login by Unix domain socket
      local      all         postgres            peer
      to
      # Database administrative login by Unix domain socket
      local      all         postgres            md5

Other help:

Jenkins

Installation

  • wget -q -O – https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add –
  • sudo sh -c ‘echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list’
  • sudo apt-get update
  • sudo apt-get install jenkins

Configuration

  • edit /etc/defaults/jenkins
  • change ‘HTTP_PORT=8080’ to define the port you wish to use for jenkins, e.g. 8180

In order to get a proxy to jenkins from port 80, e.g. http://localhost/jenkins, we must configure the default apache Virtual host.

Add the following to the end of the <VirtualHost> element in the 000-default.config file typically found in ‘/etc/apache2/sites-available’.

ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jenkins http://localhost:8180/jenkins
ProxyPassReverse /jenkins http://localhost:8180/jenkins

Then restart apache

  • sudo service apache2 restart (or sudo /etc/init.d/apache2 restart)

Sonar

Installation

  • add ‘deb http://downloads.sourceforge.net/project/sonar-pkg/deb binary/’ to the end of the file ‘/etc/apt/sources.list’ (http://sonar-pkg.sourceforge.net/)
  • sudo apt-get update
  • sudo apt-get install sonar
  • edit file /etc/opt/sonar/conf/sonar.properties
    • find the following section and uncomment/modify the appropriate lines
      # User credentials.
      # Permissions to create tables, indices and triggers must be granted to JDBC user.
      # The schema must be created first.
      sonar.jdbc.username=sonar
      sonar.jdbc.password=sonar
    • find the following section and uncomment/modify the appropriate line as follows
      #----- PostgreSQL 8.x/9.x
      # If you don't use the schema named "public", please refer to http://jira.codehaus.org/browse/SONAR-5000
      sonar.jdbc.url=jdbc:postgresql://localhost/sonar
    • Modify the sonar port using the following lines
      # TCP port for incoming HTTP connections. Disabled when value is -1.
      sonar.web.port=8280
    • Modify the url path/contex
      # Web context. When set, it must start with forward slash (for example /sonarqube).
      # The default value is root context (empty value).
      sonar.web.context=/sonar
  • Create user ‘sonar’ in posgres
    • start pgadmin3
    • add a new Login Role with name and password as written above in the sonar.properties file
    • add a new database named ‘sonar’ (or named as written in the sonar.properties file)

Other help:

Configuration

  • edit /etc/defaults/sonar
  • change ‘HTTP_PORT=8080’ to define the port you wish to use for jenkins, e.g. 8280

In order to get a proxy to sonar from port 80, e.g. http://localhost/sonar, we must configure the default apache Virtual host.

Add the following to the end of the <VirtualHost> element in the 000-default.config file typically found in ‘/etc/apache2/sites-available’.

ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /sonar http://localhost:8280/sonar
ProxyPassReverse /sonar http://localhost:8280/sonar

(Only the last two lines are required if you have the others already in the file)

Then restart apache

  • sudo service apache2 restart (or sudo /etc/init.d/apache2 restart)

Ports

Always a good idea to keep a record of what service is running on which port.

80 : apache
8080 : app server (wildfly, tomcat, etc)
5432: postgresql
8180: jenkins
8280: sonar

Developing and Managing Multiple Modules: Eclipse OSGI and Maven

Eclipse and maven do not play nicely with each other. They try, but there are some fundamental differences that make it tricky. I will first describe some of those differences. Then I will discus how I have gone about developing an managing Eclipse/OSGI bundles using maven and Eclipse.

Differences

Version numbers

  • Eclipse versions are numbered X.Y.Z.qualifier. The qualifier is optional and adds a timestamp.
  • Maven versions are also typically X.Y.Z-SNAPSHOT. The SNAPSHOT is optional and adds a timestamp.
  • These seem similar, the only difference being the use of a ‘.’ or a ‘-‘ to separate the main version number form the timestamp.
  • The problem occurs with respect to the interpretation of a qualifier/SNAPSHOT variant of a version.
    • In eclipse a qualified version is considered to be newer than a version without the qualifier.
    • In maven the SNAPSHOT version is considered a precursor, i.e. an earlier (development) version.

Dependency Scope

  • Eclipse/OSGI dependencies (defined in the MANIFEST.MF file) are not, by default, transitive.
    • I.e. if A depends on B which depends on C, then A does not, by default, have access to the definitions in C.
    • If B ‘reexports’ C, then A has access to it.
  • Maven dependencies (defined in the pom.xml file) are, by default, transitive.
    • I.e. if A depends on B which depends on C, then A does have access to the definitions in C.
    • If B makes the dependency on C ‘scope=provided’ then A will not have access to C, but to execute A, a runtime dependency on C will be needed.

Dependencies – which Version

  • Both Eclipse/OSGI and maven allow the version number of a dependency to be defined. In fact it is to be encouraged. However the class path may not be what you expect.
    • The OSGI framework/container/runtime allows for different versions of the same bundle/jar to coexist and hence  multiple different versions of the same code may be executed. I.e. Each bundle will use the version of the bundle it references at compile and runtime.
    • In maven, the class path will determined by its Dependency Mediation rules, meaning that you get the “nearest definition”. This means that at compile time you can force dependency on a particular version (by explicitly including a dependency on that version), however at runtime the class path may provide a different version of the jar.

Development

I am a big fan of Eclipse as a Java IDE. I find it works well for me. Except, when I want to use maven to build the modules.

One easy option is to use Tycho. This solution means that a developer can essentially avoid having to understand maven. Tycho takes over maven almost completely and in my opinion using Tycho cannot be said to be ‘using maven’. Tycho-on-maven and native/original-maven are best considered to be separate things.

Tycho has many advantages, but I find that it is slow to build, and releasing/deploying p2 repositories does not seem to be as simple as the nexus/maven approach. Hence my investigation into an alternative.

One thing I particularly like about maven is its directory layout. In particular, a maven module contains the source code for the modules alongside the tests for that module, and those tests are, by default, executed as part of the build. It actively encourages module-based unit testing. The deployed jar (sensibly) does not  include the test code.

The Eclipse m2e project goes along way towards making the use of Eclipse for the development of maven modules nice and easy. Except, when those maven modules are also developed as OSGI-bundles/eclipse-plugins.

My approach to building OSGI/Eclipse bundles using maven is as follows:

Code Layout

Use the standard maven folder and file layout structure.

MANEFEST.MF

    • Use the org.apache.felix:maven-bundle-plugin to generate a manefest file
    • or, put a hand written manefest file in src/resources and tell maven to include it in the built jar. Using the maven-jar-plugin

In either case, tell the eclipse IDE where to find the MANEFEST.MF file using the file .settings/org.eclipse.pde.core, for each project as shown below,

BUNDLE_ROOT_PATH=target/classes
eclipse.preferences.version=1

(change the value of BUNDLE_ROOT_PATH to be the location of the MANEFEST.MF file)

Handling the Differences

Version numbering: This should not really be an issue provided you only release “proper” versions (i.e. non-SNAPSHOT).

Dependency Scope: Limit the scope of maven dependencies to ‘provided’ unless you want the depended on artefact to be included in the exported API of your artefact.

Dependencies – which Version: Yet to find a solution?

Dependencies to existing eclipse bundles

Eclipse has a large number of existing bundles which are usually found in the eclipse IDE installation, or via a p2 site referenced in a .target file. If we build with maven, how do we tell maven about these bundles?

Generate p2 Repository

To generate a p2 repository from maven artifacts you can use the org.reficio:p2-maven-plugin. The configuration in the pom file tells the (maven) plugin which artefacts to include in the p2 repository.

Useful Links

Thoughts about life: Practise Generosity

Why do we practise generosity? My answer is as follows,

In order that money and the acquisition of money does not become my primary goal in life. Practicing generosity reminds me that money is a means to enable me to bless others and that it serves as a tool to help me meet my purpose. Money is not important for its own sake. Be resourced so that you can make righteous use of the resources. Jesus had riches, and a treasurer, and used the money righteously. [Mat 6v24, John 12v6, Mat 2v11].