Author Archives: Gwilym

Its a hard life being a Panda…..

I have forgotten how bad anxiety attacks can be having not had one in quite a long time, but the amount I’ve had this week, took their toll a little bit.

With java RMI out of the way, my family sorting its self out, and a talking to from my friends I feeling alot better(thought I am currently in a strange sleep deprived high).

All I need to do now is:
Phoenix presentation
SEG Poster
ToC Bench Test
Not get kicked out of university

Im sure not how well these will go, but I have some excellent friends and I think even if I screw up my degree or get kicked out, I gonna be ok.
I have always planned my life as if being a university student was my only option, but its not as I’m a good programmer, life can go on with out a degree, though I would prefer to have one.

If you a friend of mine and your reading this, then I thank you with all my heart, for I am not insane, and I am strangely happy deep down inside despite how badly my life is going at the moment, and you are a big part of that.

Me thinks sleep is now in order….
😀

GPU Programming thoughts

As I discussed in All for One, and One for All{} I am becoming increasingly obsessed with GPU’s I do truely believe they hold the greatest untapped power in most modern computers. No only this as we are seeing a rising trend in multi-core CPU’s, these ideas may become more relevant to CPU programming.

Further thus to my Idea of the ‘For all’ loop I considers some other ways in which native parallel computing could be put to use in a 3rd-level Language.

  • For All Loop
    A alternative to the ‘For Each’ where work could be sent to a GPU with multiple cores and each core performed one or more of the iterations.
  • Distribute Statement
    An alternative to the ‘Switch’ statement where you expect 2 or more cases to be true, thus the code for each case when resolved to true would be run on one of the GPU’s cores.
  • Independent method
    This would be work like a static method, but would be completely independent of the class(no reference to non final static variable’s).This would allow the safe running of this method, on multiple core in parallel. This could be very useful in recursive algorithums were the methods make multiple calls to its self. eg in a quick sort
    return quickSort(left[]) + pivit +quickSort(right[]);

    there is no reason why the left and right quicksorts could not be run in parallel.

These ideas still contain many problems eg. an Independent method, containing a forall loop, containing a distribute statement. Not to mention how to keep it all ‘thread safe’. However I have ideas on how these problems may one day be solved, it is my intention to use these as the basis of my dissertation, with a view to possibly even designing a language witch implements some if not all of them.

All for One, and One for All{}

A topic that has be plaguing my brain for some weeks now is GPU’s I have come to believe they are a very good source of untapped power inside modern computers, and not simply for graphics.

This gist of a modern day GPU which are a specialized processor. Their highly parallel structure makes them more effective than general-purpose CPUs for a range of complex algorithms, particularity that of graphics programming algorithms.

However the range of the algorithms they are good for is not limited only to graphics, their simple highly parallel structure, with multiple cores means they extremely well suited to performing simple operations on very large amounts of data in no particular order.

for example We have an array
int[] a;
of 100 items.

if we assume the i++ operation takes one second, and all other operations take so little time as to be of no consideration.

A normal for each loop

for (int i: a)
{
i++;
}

would take 100 seconds

However if this work could be sent to a GPU with 100 cores and each performed one iteration, it would still use 100 CPU styles but they would be in parallel, and thus the execution of the loop would only take 1 second. I dub this idea the for all loop


for(int i :: a)
{
i++
}

This will allow programmers to deicide between for each and for all loops. The former still being necessary for when the items in the array need to be processed singularly/ in order.

Nivida already have CUDA programming language for the geForce GPU’s , it is my belief that should Sun or another big company chose to implement this idea it would be feasible to make nearly all GPU’s available to a interpreters of many languages.

Mistakes

A old friend of friend turned up, and told me about all the mistakes they just made, they wanted by advice do this is what I told them, I thought might just be relevant as everyone makes mistakes

L

We often just make mistakes, We do stupid things. This makes us human, it doesn’t make you a bad or a stupid person. Every person you meet on the street has done many dumb things most of them just as foolish, often more so. Most of them however never have the guts to face what have done they deny it to them self’s, even more don’t have the wisdom to recognise the mistakes they have made. You should be proud that you are not one of these people, and celebrate the fact you can learn from this and become and more powerful and complete person than they can ever aspire to be.

My advice to you is this, first forgive yourself, this is the hard part, but once you have you can begin to feel whole again. Go outside, don’t hide, face the sun and tell it you feel crap about everything but it’s over now, you’re going to sort things out. Don’t let anyone tell you you’re a worse person, no one has ever done something so stupid they are worth less as a human being.

Do what you can to sort things out, look at what you did and see if there is anything you can learn from it. Gather your friends around you, any that won’t come are not worth bothering with. Then put it all behind you and just Live….

Remember you heart may be broken, teardrops may fall, Love is painful, but friendship can help. I am your friend, I won’t promise to be your friend forever, because I won’t live that long. But let me be your friend as long as I live. If you ever think I have forgotten you are wrong, you are always in my thoughts, and there is always a place in my heart just waiting for you visit.

Your Loving friend…

Gwilym

The Modern Switch Statment

switch (someInt) {
case 1:
case 2: System.out.println(“Forgot a break, idiot!”);
case 3: System.out.println(“Now you’re doing the wrong thing and maybe need hours to find the missing break muahahahaha”);
break;
default: System.out.println(“This should never happen -,-“);
}

I was think about this and its stupid, because nearly every time I write a switch statement I want to break; not wanting to is more of a freak occasion that the norm.so it would seem to me that sane thing to do is change so that instead of being break; driven they would instead be continue driven. This would solve alot of problems and many a programming bug has been caused my a missing break;

such that the new switch statment would look something like

switch (someInt) {
case 1:System.out.println(“Just minding my own business”);
case 2: System.out.println(“I nicely execute only on a 2”); continue;
case 3: System.out.println(“I execute on a 2 or a 3”);
default: System.out.println(“This should never happen -,-“);
}

Visualization

Some thoughts on our next visitation project:

Fill the area of the woman/ man shape to show percentages, this is double use of data ink proving data which is also a label.

However will almost certainly need a line are faded color to show the rest of the male female shape to allow an idea of the percentage to be  gained.

Use only half male/female shapes to reduce duplication, and allow easier comparison

possibly reinforce the heights with a black line, this is a waste of ink, and is duplication but I believe it will aid in visual pop-out.

For anyone reading this wants to know more about graphics I would recommend

The Visual Display of Quantitative Information

1 13 14 15 16 17