GQAdonis

Cool as the other side of the pillow…
RSS icon Email icon Home icon
  • Myers-Briggs Personality Test

    Posted on February 5th, 2010 GQAdonis No comments

    This morning, I took my Myers-Briggs personality test AGAIN with the following results:

    ENTP – “Inventor”. Enthusiastic interest in everything and always sensitive to possibilities. Non-conformist and innovative. 3.2% of the total population.

    Take Free Jung Personality Test
    personality tests by similarminds.com

    A list of tests that you can take for free online is here. Taking these tests really help when it comes to understanding yourself, other people, and how to relate with people having other personality types. I also scored on the Enneagram test in the following manner:

    Enneagram Test Results
    Type 1 Perfectionism |||||||||||||| 60%
    Type 2 Helpfulness |||||||||||||||||| 73%
    Type 3 Image Awareness |||||||||||||||| 63%
    Type 4 Sensitivity |||| 16%
    Type 5 Detachment |||||| 23%
    Type 6 Anxiety |||||||||| 40%
    Type 7 Adventurousness |||||||||||||||||| 76%
    Type 8 Aggressiveness |||||||||||||||| 66%
    Type 9 Calmness |||||||||||||||||| 73%

    Your main type is 7
    Your variant is sexual

  • An Idea for iPhone and Mobile: Cross Platform XML Object Binding with JavaScript

    Posted on January 28th, 2010 GQAdonis 2 comments

    In my work developing mobile applications, I have been searching for an idea that would allow me to build applications ONCE and share them on multiple platforms. As a secondary goal, whatever I come up would support a dynamically extensible plugin architecture where additional code and features can be downloaded to the device without redistributing the application through the AppStore or whatever means are provided for other platforms (Android, BlackBerry, etc.).

    First Analysis Answers

    When I first analyzed this issue, I examined the idea of exclusively utilizing “hybrid” applications that made use of an embedded browser to provide an extensible “runtime” (the JavaScript engine that every browser provides) that did not violate the iPhone license agreement by installing an unapproved runtime (like .NET or some other technology) on the iPhone.

    I found two open source frameworks that operated using this technique:

    • PhoneGap. This open source library provides support for iPhone, Android, and BlackBerry. The “application” is an HTML page that loads from the resources distributed with an application shell for the target platform, and all development is done in JavaScript. Hooks into an embedded browser allow the interface to communicate with the shell to execute native code operations.
    • QuickConnect iPhone. This framework works very similar to PhoneGap. There are really no significant differences other than the approaches to hooking into the aforementioned embedded browser.

    What I did and didn’t like

    The cool things about these frameworks and the resulting applications were the following:

    • Any web developer with JavaScript knowledge could build an application. For Android and iPhone, this was especially cool, since both utilize the WebKit browser.
    • The application could indeed be developed once and run on multiple platforms with access to features common across those platforms (camera, media, accelerometer, GPS and location, etc.).
    • The JavaScript API’s were very consistent in both frameworks across platforms.

    That being said, there were several things I didn’t like about the resulting applications:

    • Drawing and application performance was slow(er), because the browser is the only mechanism available for displaying things.
    • User interfaces did not seem as responsive as native versions of the same applications.
    • Special features of specific devices were unavailable.
    • HTML does not give you everything you might need in an application, and there can be some impedance mismatch between the “web” application paradigm and what is needed from a mobile application. Native windows are sometimes just better and necessary.

    My grand idea

    What I decided I really want in cross platform mobile development are the following:

    • No compromise in performance. I want a way to utilize the “hybrid” approach where it makes sense (like for displaying structured content from external sources) but have access to native user interface features and elements provided by the platform directly.
    • I want a way to support visual and non-visual plugins through an extensible architecture where code can be introduced from external web sources at runtime without, once again, taking a hit on performance.

    The answer, it seems, is composed of two parts:

    • Use JavaScriptCore or some other JavaScript engine (like V8, which is what Google’s Chrome browser uses) directly from a native application shell to provide a runtime environment for common code in JavaScript.
    • Create an XML schema for describing applications that maps XML elements to native classes in a manner similar to XAML from Microsoft, MXML from Flex, or the Android SDK XML schema. The aforementioned JavaScript engine would be used to allow for programming to be done in the context of the XML document or as a “code-behind” file like in ASP.NET.

    Application shells

    Native application shells would be written for each supported platform on top of an application library whose purpose is to interpret the contents of an application XML file, hook contained functions into events associated with classes supported by XML elements, and download extensions or other code from whatever external sources are defined, caching modules on the device after some validation process.

    Conclusion

    This approach achieves my stated objective with the following benefits:

    • Less actual code is necessary to build and wire applications. This effect can be observed in WPF and Silverlight applications.
    • Hybrid methods can still be used, so designers can still use HTML as the application if they like.
    • Performance is greatly enhanced by using the JavaScript engines directly. JavaScriptCore actually compiles to native code. Because execution is not bound to web page processing, the chances that cached native code is used can be assured to be greater.
    • JavaScriptCore and V8 can be built for any ARM-based phone platform. A great article describing how it can be used within and outside the context of a web view can be found here.
    • Non-visual application functions and services can also be developed efficiently using JavaScript.
    • External code can be validated and packaged in more creative ways than with a strict hybrid. Application updates can be done dynamically without redistributing the application.
  • Quote of the Day–The Spiritual Journey

    Posted on January 10th, 2010 GQAdonis No comments

    This quote for today resonates with me, because it provides clues to the true natural of spirituality and the continual journey of spiritual awakening:

    “The spiritual journey does not consist in arriving at a new destination where a person gains what he did not have, or becomes what he is not. It consists in the dissipation of one’s own ignorance concerning one’s self and life, and the gradual growth of that understanding which begins the spiritual awakening. The finding of God is a coming to one’s self.”–Aldous Huxley

    About the Author

    Aldous Huxley was an English writer best known for writing novels, including Brave New World–a futuristic novel set in the year AD 2540 (530 years from now). He was widely regarding as an intellectual, humanist, and pacifist as well as a philosopher.

    What this means for me today…

    I am currently reading a book by Deepak Chopra called The Book of Secrets: Unlocking the Hidden Dimensions of Your Life. This morning, I read Secret #6, which is titled “Freedom Tames the Mind.” Without basically regurgitating the whole chapter here, the general point is that our growth along the path of our spiritual journey is many times constricted by our thoughts regarding the collection of choices we have already made in our lives–and the judgments we have placed on them. Because the results of those choices–whether considered good or bad by our judgment–actually contain elements of both when fully analyzed, we are bombarded with a plethora of conflicting lines of thought referred to as samkaras, the Sanskrit word for “to flow together.” These “grooves in the mind” makes future thoughts flow in the same direction. This prevents us from actually exercising “free will” in decision making or “living in the moment,” as is so important in spiritual growth. We are, in effect, imprisoned by our past in this way, the problems associated with conflicting lines of thought based on an inaccurate perception of past events are many.

    The Connection

    The connection my reading and this quote lies in the answer suggested at the end of the chapter. The goal of the solution is to free the mind from these past considerations, so one can exercise free will, live in the moment, and make a “choice as if making it for the first time.” One might say that this might lead to a person repeating past mistakes, which is the common irrational fear, but this is prevented by discovering the part of one’s self–the Inner Self–that resides inside each of us and always knows the right answer. The “samskaras” from our past sit in between our true selves and the real answer–and need to be cleared away, so we can be free. Thus spiritual awakening occurs as a function of self discovery–the realization that we already have the answers we seek. We just need to look in the right place. With the right intent, even decisions that might be considered “bad” are reworked by the Universe that responds to our intent and can make “lemons into lemonade.”

  • Quote of the Day–Growth

    Posted on January 9th, 2010 GQAdonis No comments

    This quote of the day is all about my current mission for this year:

    Every moment of our lives we are either growing or dying—and it’s largely a choice, not fate. Throughout its life cycle, every one of the body’s trillions of cells is driven to grow and improve its ability to use more of its innate yet untapped capacity. Research biologist Albert Szent-Gyoergyi, who was twice awarded the Nobel Prize, called this syntropy, which he defined as the ‘innate drive in living matter to perfect itself.’ It turns conventional thinking upside down…As living cells—or as people—there is no staying the same. If we aim for some middle ground or status quo, it’s an illusion—beneath the surface what’s actually happening is we’re dying, not growing. And the goal of a lifetime is continued growth, not adulthood. As Rene Dubos put it, ‘Genius is childhood recaptured.’ For this to happen, studies show that we must recapture—or prevent the loss of—such child-like traits as the ability to learn, to love, to laugh about small things, to leap, to wonder, and to explore. It’s time to rescue ourselves from our grown-up ways before it’s too late.–Robert Cooper, from The Other 90%: How to Unlock Your Vast Untapped Potential for Leadership & Life

    Jesus once said:

    “At that time the disciples came to Jesus and asked, ‘Who is the greatest in the kingdom of heaven?’ He called a child, whom he put among the, and said, ‘Truly I tell you, unless you change and become like children, you will never enter the kingdom of heaven. Whoever becomes humble like this child is the greatest in the kingdom of heaven. Whoever welcomes one such child in my name welcomes me.’”–Matthew 18:1-5

    We must always retain our childlike capacity for growth if we are to fulfill our potential.

  • Quote of the Day

    Posted on January 8th, 2010 GQAdonis No comments

    The following quote struck me today as the obvious “quote of the day”:

    “This is the true joy in life, the being used for a purpose recognized by yourself as a mighty one; the being a force of nature instead of a feverish selfish clod of ailments and grievances complaining that the world will not devote itself to making you happy. I am of the opinion that my life belongs to the whole community and as long as I live it is my privilege to do for it whatever I can. I want to be thoroughly used up when I die, for the harder I work, the more I live. I rejoice in life for its own sake. Life is no ‘brief candle’ to me. It is sort of a splendid torch which I have a hold of for the moment, and I want to make it burn as brightly as possible before handing it over to future generations.”–George Bernard Shaw

    George Bernard Shaw was an Irish playwright and activist, who, ironically, believed in socialism. He founded the London School of Economics and Political Science and was a most revered figure in English and Irish culture for his philosophical ideas until his death in 1950 at the age of 94.

  • Open Source CoverFlow implementation

    Posted on December 31st, 2009 GQAdonis No comments

    Alex Fajkowski has provided an open source implementation of a CoverFlow interface for iPhone that is approved for use in AppStore applications. He blogs about it here.

  • NSOperation, NSURLConnection, and NSRunLoop on iPhone

    Posted on December 31st, 2009 GQAdonis No comments

    When using an NSOperation with an NSURLConnection performing asynchronously, this blog post indicates that one must add a connection port (an empty NSPort object) to the current run loop in order to keep the thread alive during the “polling” process using the NSRunLoop during the execution of the start message on the subclassed NSOperation.

    Handling Credentials

    This forum post talks about how to integrate the use of credentials using an NSOperation and NSURLConnection. These two articles are important to be taken together, because in order to respond to authentication challenges from a server (e.g., basic authentication challenge from a REST web service), the only way to do it is with asynchronous networking, because that is the only way a delegate is used in the connection process.

  • New Year’s Resolution — Quote of the Day

    Posted on December 31st, 2009 GQAdonis No comments

    I never intended to establish a New Year’s Resolution for 2010, for the new year simply serves as the second year in the progress of my personal 5 year plan. However, after reading the following quote, I changed my mind:

    “My chief task has been to conquer fear. The public sees only the thrill of the accomplished trick; they have no conception of the tortuous preliminary self-training that was necessary to conquer fear…no one except myself can appreciate how I have to work at this job every single day, never letting up for a moment. I always have on my mind the thought that next year I must do something greater, something more wonderful.”–Harry Houdini

    Fear is the most common human emotion that prevents progress–fear of failure, fear of success, fear of self, etc. In order to go beyond the boundaries of previous experience and performance, this must be conquered in the same manner as Houdini routinely experienced in the execution of his most dangerous illusions. I have chosen to devote 2010 to the elimination and mastery of fear–privately and publicly.

    Happy New Year!

  • Quote of the Day: Law of Attraction

    Posted on December 21st, 2009 GQAdonis No comments

    The following quote embodies the perfect application of the Law of Attraction:

    I’ve always believed in magic. When I wasn’t doing anything in this town, I’d go up every night, sit on Mulholland Drive, look out at the city, stretch out my arms, and say, “Everybody wants to work with me. I’m a really good actor. I have all kinds of great movie offers.” I’d just repeat these things over and over, literally convincing myself that I had a couple movies lined up. I’d drive down that hill, ready to take the world on, going, “Movie offers are out there for me, I just don’t hear them yet.” It was like total affirmations, antidotes to the stuff that stems from my family background.–Jim Carrey from Interview in “MovieLine”, July 1994

    Start each day in this way, and miracles will happen all the time.

  • Excellent OpenGL ES Series of Articles

    Posted on December 10th, 2009 GQAdonis No comments

    This article is the beginning of a multipart series of tutorials on OpenGL ES programming on the iPhone. A must read for anyone interested in that.

    Here is Part 2, and here is Part 3.