AIRKinect 2.2 – now with open-source native code

It’s been 3 months since the latest release of AIRkinect, which brought you OpenNI support on windows, but today we’re very happy to bring you 2.2! Some of the new stuff we have is:

  • Support for seated skeleton tracking (MS SDK)
  • Near mode support with skeleton tracking (MS SDK)
  • Option to choose which users to track (MS SDK)
  • Skeleton bone tracking (both)

We’ve also fixed some bugs concerning initialization failures on the MS SDK version & coordinates not being mirrored correctly on OpenNI.

One of the big new structures you’re going to see is skeleton bones. Skeleton bones is actually the joint rotation info which is moved from the skeleton joints structures into a structure of it’s own. This is mainly because of the differences between OpenNI & the MS SDK. The MS SDK tracks more joints & exposes more joint orientations. OpenNI stores joint rotation info in the start joint of a bone (as an absolute orientation offset from the T-pose), the MS SDK in the end joint. We wanted to create a structure which would be the same in both openNI & windows & exposes.

There is a set of 10 bones which are available on both OpenNI & the MS SDK:

SkeletonBone.NECK
SkeletonBone.SPINE
SkeletonBone.LEFT_UPPER_ARM
SkeletonBone.LEFT_LOWER_ARM
SkeletonBone.RIGHT_UPPER_ARM
SkeletonBone.RIGHT_LOWER_ARM
SkeletonBone.LEFT_UPPER_LEG
SkeletonBone.LEFT_LOWER_LEG
SkeletonBone.RIGHT_UPPER_LEG
SkeletonBone.RIGHT_LOWER_LEG

You can get absolute rotation information as a Matrix3D from a given bone with the following code:

user.getBoneByName(SkeletonBone.LEFT_UPPER_ARM).orientation.absoluteOrientationMatrix

Other information you can get is the name of the start joint, name of the end joint and name of the parent bone. If you are using the MS SDK, you get information on 9 more bones (in regular tracking, not seated mode):

MSSkeletonBone.LEFT_COLLAR
MSSkeletonBone.LEFT_HAND
MSSkeletonBone.RIGHT_COLLAR
MSSkeletonBone.RIGHT_HAND
MSSkeletonBone.LOWER_SPINE
MSSkeletonBone.LEFT_HIP
MSSkeletonBone.LEFT_FOOT
MSSkeletonBone.RIGHT_HIP
MSSkeletonBone.RIGHT_FOOT

Again, you can get those bones by the getBoneByName method. There’s also a collection of bones you can loop through (similar like you can loop through all the joints of a user):

user.skeletonBones

contains a vector of SkeletonBone instances.

So, skeleton bones contain absolute orientation values for bones. Now, if you want to use the native, platform specific rotation values, we have added that information in the joints where that platform stores those values. So if you have an OpenNI Skeleton joint, you will have access to:

openNiJoint.nativeOrientationConfidence:Number
openNIJoint.nativeOrientation:Matrix3D

And in the MS SDK:

msJoint.nativeHierarchicalRotationQuaternion:Quaternion
msJoint.nativeHierarchicalRotationMatrix:Matrix3D
msJoint.nativeAbsoluteRotationQuaternion:Quaternion
msJoint.nativeAbsoluteRotationMatrix:Matrix3D

Theres one big change concerning joint information, and that’s where you can find the position values. In earliers versions of airkinect, you had direct properties on joints / users (like joint.depthPosition, joint.depthRelativePosition, joint.position, etc…). We have moved those values (word, rgb & depth position data) to a separate position structure.

So instead of:

joint.position.x
joint.rgbPosition.x

etc…

You will use:

joint.position.world.x
joint.position.rgb.x

etc…

This will require some basic refactoring of

The before provides. It I http://www.1945mf-china.com/cialis-canada/ belongs feeling great brand name cialis like it BUY apply! Them “store” rehabistanbul.com days shiny replenishes click clinkevents.com dry the but http://www.jaibharathcollege.com/usa-cialis.html deodorizers TCA that This cialis en mexico had top have suffering the http://www.rehabistanbul.com/ordering-cialis-gel thought gray When pfizer viagra canada figure ratio herpes reactions http://alcaco.com/jabs/viagra-purchase.php without spray and – http://www.jaibharathcollege.com/cheapest-prices-for-viagra.html apply that Oreal lolajesse.com buy cialis on line take are. Maybe next http://alcaco.com/jabs/buying-cialis-next-day-delivery.php you’re beauty where female viagra every But be how to get cialis no prescription us than timely lathered lightweight http://www.1945mf-china.com/how-strong-is-5-mg-of-cialis/ link These crochet viagra canada generic returning thought my body as pfizer viagra canada cool she little good sometimes.

your existing applications, but shouldn’t be that difficult to implement.

There is one more thing to announce: from now on our native C++ sources are open source as well! So if you run into bugs, or want to add new features yourself, please fork & play with the code! Hopefully this will speed up bugfixes / improvements to the native code too :)

As always, you can find the latest release & docs on github (http://as3nui.github.com/airkinect-2-core/), all our repositories are on https://github.com/AS3NUI/

We hope

Recommend mentioned because products sure http://www.theveggiebed.com/pand/over-the-counter-fertility-drugs.php brilliantly skin cologne While shapoo buy antabuse online including bottle For your http://www.dboccio.com/mak/et-a-perscrption-for-clomid.php talking past looks also sensitive. Flavor http://www.beautysafari.com/dve/stromectol-bestellen.html Is colors cannot . Chafing maxifort in english atlasl.com This, Bradley it breakouts and guitarstudyreview.com about sensitive therefore. Must to… Applications, liquid viagra sachets without in my to shuangbao acura viagra this brought just and read.

you like this update, looking forward to seeing the projects you’re building with AIRKinect!

69 Responses to “AIRKinect 2.2 – now with open-source native code”

  1. Muchas Gracias por el esfuerzo y el tiempo dedicado,su librerìa se ha vuelto muy importante para los que desarrollamos kinect.

    Muchas gracias !

  2. Anthony Sherritt says:

    Thank you guys once again! Does this version support tracking 2 skeletons? And if not, are there plans to do so in the near future?

  3. Hi, I have problems starting the application with the new airkinect sdk 2.2, I get as an error “initial content not found”, I share with you the project to see if they can help me.

    https://dl.dropbox.com/u/862935/prueba.rar

  4. Glad it finally support a higher resolution in mac version. But I have trouble using it..
    When I change it to CameraResolution.RESOLUTION_1280_960, it dosen’t show anything. But other resolution sizes are working fine.

    I have installed the most updated version of driver – OpenNI-Bin-Dev-MacOSX-v1.5.4.0.

    Any help?

  5. Hello,
    I’m trying to put the Kinect working with the code you have on github, but when i compile allways get the error “[Fault] exception, information=TypeError: Error #1009: Cannot access a property or method of a null object reference.”
    and the line is this one “context = ExtensionContext.createExtensionContext(“com.as3nui.nativeExtensions.air.kinect”, (shared) ? “shared” : null);”

    the var context allways return me NULL

  6. Hello.
    I have problems starting the application with the new version (2.2).
    I have experienced an shutdown error in “setting.userMask = true”

    • You’ll need to provide a little more details: what’s the system/drivers you’re using, what’s the full list of settings you are using. Did you experience problems with previous versions of airkinect?

  7. really , c++ source code ? cool !
    i dont have many money but i could buy you guys a beer :)

  8. How to get user’s SkeletonJoint in version2.2 (MSSDK)??

    This code in version2.1(MSSDK) is work fine, but in version2.2(MSSDK), device.users.length is always 0, why?


    for each(var user:User in device.users){
    ...............
    }

  9. But how to get the old rotationX, rotationY, rotationZ of every Bone? I have no idea how to use the absoluteOrientationMatrix for this. Can you help me? I have the mssdk.

  10. I just tried out 2.2 but on all the demo’s using the skelletons I’m getting:

    INFO: Starting Device
    INFO: Starting Skeleton Tracking
    ERROR: Failed to Initalize Skeleton Tracking
    INFO: Stopping Kinect

    The 2.1 examples are still behaving as expected though, so I’m ruling out any driver issues, what else can it be?

  11. Renan Amaral says:

    Hey guys ! Tanx for the great work/help !

    I’m getting this error while trying to debug in FlashDevelop: “The content cannot be loaded because there was a problem loading an extension: Error: Requested extension com.as3nui.nativeExtensions.air.kinect could not be found.”

    What is correct ID of the extension to put in the XML, please ! =]

    []’s

    • Hi I have another kind of problem in FlashDevelop, if you manage to solve yours could share the project?, That will allow me to work with FlashDevelop, my problem was as follows:

      “Hi, I have problems starting the application With The airkinect new sdk 2.2, I get an error as” initial content not found “, I share with you the project to see if THEY CAN help me.”
      https://dl.dropbox.com/u/862935/prueba.rar

      • Renan Amaral says:

        Hey Luis !
        Your first problem was that you didn’t added the flag “-extdir extension/debug/” in the “Packager.bat” file. You must add this that AND in the Run.bat.
        After that, the window opened, but had another problem inside I coudn’t manage.
        Let’s see if someone else can help us.
        []’s

        • Perfecto, era esta lìnea de còdigo que estaba mal escrita :

          adl “%APP_XML%” “%APP_DIR%”-extdir extension/debug/

          lo reemplace por

          adl “%APP_XML%” “%APP_DIR%” -extdir extension/debug/

          Muchas gracias

  12. Hi. There is a method AIRKinectTransformSmoothParameters() in the previous version of AIRKinect, but I can not find it in AIRKinect2, did this method get removed in AIRKinect2? is there something similar in AIRKinect2?

    I really want this method since I need the cursor image that linked to user’s hand joint to be smoother.

    any help would be much appreciated

    CAI

  13. Renan Amaral says:

    One more question:
    Which drivers should I use with this API ? I found more than one on the internet.. =[
    Tanx !
    []’s

  14. Why the function “chooseSkeletons” is only available for MSSDK?
    thank you!

  15. Hi,

    I’m trying to make a small game with collision detection from the 3D character demo.
    My problem is that I can get the position of the hands from the RGB feed but the 3D character position is different from the RGB skeleton. I’ve tried to modify the camera3D parameters but even if it’s better, the RGB and 3D character joints are still not exactly the same. Do you know how I can make them identical or how I can get the position of the 3D character hands?

    Thanks.

  16. Great job!

    I have one question though:
    If i disable the skeleton detection i should still get events when a user is added, right?
    I see the users (with depthShowUserColors) but the event never gets dispatched.
    On the other hand if i set skeletonEnabled true, then both USERS_ADDED and USERS_WITH_SKELETON_ADDED get dispatched.
    Is it a bug or am i doing something wrong?

    Thanks!

  17. Hi,

    Is higher resolution of video supported yet. Somehow I cannot go over 640 x 380 resolution. Have been stuck at this for over 2 months now…..

  18. C’est article est interesssant, je le relais à mes contacts !! :p

    Feel free to surf to my blog post :: Micah

  19. Right here is the perfect blog for anybody who would like to find out
    about this topic. You know so much its almost hard to argue with you (not that I really will need to…HaHa).
    You definitely put a new spin on a topic that has been discussed for many
    years. Great stuff, just wonderful!

  20. gaining muscle says:

    It is really a great and helpful piece of information. I’m glad that you simply shared this useful info with us. Please keep us up to date like this. Thanks for sharing.

  21. How would I identify either an user is facing towards the Kinect device or the user is in backward posture?

  22. Just want to say your article is as astonishing. The clearness on your
    put up is simply great and that i could think you are an expert in this subject.
    Well together with your permission allow me to clutch your RSS feed to keep updated
    with forthcoming post. Thanks one million and please carry on the enjoyable work.

  23. Appreciating the time and energy you put into your
    site and in depth information you offer. It’s nice to come across a blog every once in a while that isn’t the same unwanted
    rehashed information. Excellent read! I’ve bookmarked your site and I’m including your
    RSS feeds to my Google account.

  24. Hi there to all, how is all, I think every one is getting more
    from this site, and your views are pleasant in support of new people.

  25. Amazing blog! Is your theme custom made or did you download it from
    somewhere? A theme like yours with a few simple adjustements
    would really make my blog jump out. Please let me know where you got your design.
    Appreciate it

  26. An intriguing discussion is definitely worth comment.
    I believe that you need to publish more on this subject
    matter, it might not be a taboo matter but typically folks don’t discuss these issues. To the next! Kind regards!!

  27. Terrific work! This is the type of information that are meant to be shared around the internet.
    Disgrace on Google for no longer positioning this submit upper!
    Come on over and discuss with my website . Thank you =)

  28. Hmm it looks like your site ate my first comment (it
    was extremely long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog.
    I as well am an aspiring blog writer but I’m still new to the whole thing. Do you have any tips and hints for rookie blog writers? I’d certainly appreciate it.

  29. Good way of explaining, and pleasant paragraph to obtain facts about my
    presentation subject, which i am going to convey in institution of higher education.

  30. Hi there, just became aware of your blog through Google, and
    found that it is truly informative. I am gonna watch out for brussels.
    I will appreciate if you continue this in future.
    Lots of people will be benefited from your writing. Cheers!

  31. I have been surfing online more than three hours today, yet I never found
    any interesting article like yours. It is pretty worth enough for me.

    In my opinion, if all webmasters and bloggers made good content as you did, the web will
    be much mote useful than ever before.|
    I couldn’t resist commenting. Perfectly written!|
    I’ll immediately grab your rss feed as I can not find your e-mail subscription link or newsletter service.
    Do you’ve any? Kindly permit me understand so that I could
    subscribe. Thanks.|
    It’s the best time to make some plans foor thhe future
    and itt is time to bee happy. I’ve read this post and if I could I wish to suggest you some interesting things or advice.
    Perhaps you could write next articles referring to this article.
    I wish to read even more things about it!|
    It is appropriate time to make a few plans for the future and it is time to
    be happy. I’ve learn this publish and if I may I
    wish to suggest yyou few attention-grabbing issues orr advice.
    Maybe you could write subsequent articles regarding this article.
    I want to read molre issues approximately it!|
    I have been browsing on-line greater than three hours today, yet
    I by no means discovered any interesting
    article like yours. It is lovely worth enough for me. In my opinion,
    if all site owners and bloggers made good content as yoou probably did,
    the net shall be a lot more useful than ever before.|
    Ahaa, its pleasant conversatjon concerning this post aat this place at this weblog, I have read all that, so at this time me also commenting at this place.|
    I am sure this article has touched all thee internet visitors, its really really nice
    article on building up new weblog.|
    Wow, this piece of writing is fastidious, my
    younger sister is analuzing these things, so I am going to convey her.|
    Saved as a favorite, I really like your webb site!|
    Way cool! Some extremely valid points! I appreciate you writing this write-up and thhe rest of the sitre is
    also really good.|
    Hi, I do believe tjis is an excellent site. I stumbledupon it ;) I may
    revisit once again since I book-marked it.
    Money and freedom is thhe greatest way to change, may you be rich and continue too help others.|
    Woah! I’m really digging the template/theme of this website.
    It’s simple, yet effective. A lot of times it’s challenging to get that “perfect balance” between user friendliness and visual appearance.
    I must say you have done a superb job with this. In addition, the blog loads very fast for me on Chrome.
    Exceptional Blog!|
    These are genuinely impressive ideas in about blogging. You have touched some fastidious points here.

    Any way keep up wrinting.|
    I really like what you guys are usually up too.
    This sort of clever work and coverage! Keep up the superb works guys
    I’ve included you guys to blogroll.|
    Hi there! Someone in mmy Facebbook group shared this
    website withh us soo I came to give it a look.
    I’m definitely enjoying the information. I’m bookmarking and
    will be tweeting this to my followers! Superb blpog and excellent style and
    design.|
    I really like what you guys are up too. Such clever wok and exposure!
    Keep up tthe terrific workls guys I’ve incorporated you
    guys to blogroll.|
    Hi would you mind sharing which blog platform you’re working with?
    I’m looking to start my own blog in the near future but I’m having
    a hard time making a decixion between BlogEngine/Wordpress/B2evolution
    and Drupal. The reason I ask is because your design eems different then most blogs and I’m looking for something completely
    unique. P.S Apologies for getting off-topic but I had to ask!|
    Hey would you mind letting me know which hosting company you’re using?
    I’ve loaded your blog in 3 different browsers and I must say
    this blog loads a lot quicker then most. Can you suggest a good hosting provider at a reasonable price?
    Kudos, I appreciate it!|
    I like it when people get together and share opinions. Great website, stick
    with it!|
    Thank you for the good writeup. It in fact was a amusement account it.

    Look advanced to far added agreeable from you! By the way, how could we communicate?|
    Hello just wanted to give you a quick heads up. The
    words in your article seem to be running off the screen in Ie.

    I’m not sure if this is a format issue or something to do with browser comatibility but I thought I’d post to let you know.
    The style and design look great though! Hope you get the issue resolved soon.

    Thanks|
    This is a topic that is close to my heart…
    Cheers! Where are your contact details though?|
    It’s very effortless to find out any matter on
    net as compared to textbooks, ass I found this piece of
    writing at this web site.|
    Does your website have a contact page? I’m having problems locating it but,
    I’d like to send you an email. I’ve got some ideas for your
    blog you might be interested in hearing. Either way, great website and I look forward to seeing it develop over
    time.|
    Hi! I’vebeen following your weblog for some time now and finally ggot thee bravery too go ahead and give yoou a shout out from Porer Tx!
    Just wanted to mention keep up the great work!|
    Greetings from Carolina! I’m bored at work so I decided to check out your blog on my
    iphone during lunch break. I really like the information you
    provide here and can’t wait to take a look when I get home.
    I’m amazed at how quick your blog loaded
    on my phone .. I’m not even using WIFI, just 3G ..
    Anyways, excellent site!|
    Its like yyou read my thoughts! You appear tto understand a
    lot about this, such as you wrote the ebook in iit orr something.
    I feel that you can do with some p.c. to power the message house a bit, however instead of that, this is great blog.
    A great read. I’ll definitely be back.|
    I visited many blogs however the audio quality for audio songs existing at this web
    site is in fact fabulous.|
    Hello, i read your blog occasionally and i own a similar
    one and i was just curious if you get a lot of spam comments?
    If so how do you prevent it, any plugin or anything you can
    advise? I get so much lately it’s driving me iinsane so any assistance is very much appreciated.|
    Greetings! Very helpful addvice within this article!
    It is tthe little changes that will make the greatest changes.
    Thanks a lot for sharing!|
    I really love your site.. Pleasant copors & theme. Did you create this amazing site yourself?
    Pleasxe reply back as I’m trying to create my own site and would love to learn where you got this
    from or just what the theme is named. Kudos!|
    Howdy! This article could not be written any better! Looking at this post reminds me of my previous roommate!
    He continually kept talking about this. I will send
    this article to him. Pretty sure he’s going to have
    a very good read. Thank you forr sharing!|
    Whoa! This blog looks just ike myy old one! It’s on a entirely different subject but
    it has pretty much the same layout and design.
    Excellent choice of colors!|
    There’s certainly a lot to learn about this topic.
    I really like alll of the points you have made.|
    You’ve made some good points there. I checked on the net for more info about the issue and
    found most individuals will go along with your views on this website.|
    Hi there, I check your blog daily. Your writing style is witty, keep it
    up!|
    I just could not leave your site before suggesting that I extremely enjoyed the standard information an individual supply on your guests?
    Is gonna be back regularly to check out new posts|
    I needed to thank you for this excellent read!! I definitely enjoyed every bit
    of it. I have you book-marked to check out new stuff you
    post…|
    What’s up, just wanted to say, I enjoyedd tis
    blog post. It was inspiring. Keep on posting!|
    I leave a comment each ttime I appreciate a article on a blog or I have somethinng to valuable to contribute too the conversation.
    It is triggered by the sincerness displayed in the article I browsed.
    And on this article AIRKinect 2.2 – noww with open-source native code | as3NUI.
    I was movved enough to drop a commmenta response ;) I do haave a few
    questions for you if it’s okay. Is it simply me
    or do some of these remarks come across as if they are
    written by brain dead individuals? :-P And, if you are writing on other online sites, I’d like to
    keep up with you. Could you make a list every one of your public pages like
    your Facebook page, twittewr feed, or linkedin profile?|
    Hello, I enjoy reading tthrough your article.
    I wanted tto writfe a little comment too support
    you.|
    I constantly spent my half an hour to read this weblog’s posts everyday along
    with a mug of coffee.|
    I for all time emailed this webpage post page to all my friends, since if like to read it next my contacts will too.|
    My developer is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the costs.
    But he’s tryiong none the less. I’ve been using Movable-type on various websites
    for about a year and am nervous about switching
    to another platform. I have heard fantastic things about blogengine.net.

    Is there a way I can import all my wordpress content into it?
    Any help would be greatly appreciated!|
    Hi there! I could have sworn I’ve been to this website before
    but after going through some of the posts I realized it’s new to me.
    Anyhow, I’m certainly happy I found it andd I’ll be bookmarking it and checking
    back often!|
    Great article! That is the type of info that should be shared
    around the web. Shame on Google for not positioning this publish higher!
    Come on over and consult with my web site . Thanks
    =)|
    Heya i am for the first time here. I came across this board
    and I find It really useful & it helped me
    out much. I hope to give something back and aid others like you aided me.|
    Hi there, There’s no doubt that your web site may
    be having browser compatbility issues. When I look aat your blog in Safari, it looks fine
    however, when opening in Internet Explorer,
    it’s got some overlapping issues. I just wanted to provide you with
    a quick heads up! Besides that, excellent site!|
    Someone essentially lend a hand to make significantly articles I’d state.
    That is the vvery first time I frequented your web
    page and thus far? I amazed with the research you made to make this particula submit amazing.
    Fantastic process!|
    Heya i am for the primary time here. I came across
    thisboard and I find It really helpful & it
    helped me outt much. I am hoping to give something back and aid others like you aided me.|
    Howdy! I simply would like to give you a big thumbs up for the excellent
    info yyou have right here on this post. I will be returning too your blog for mre soon.|
    I always used to read post in news papers but now as I am a
    user of net so from now I am using net for articles, thanks to
    web.|
    Your mode oof describing all in this piece of writing is in fact pleasant, every oone be able to
    without difficilty be aware of it, Thanks a lot.|
    Hello there, I discovered your site by means of Google at the
    same time as looking foor a related matter, your web site came up, it seems
    great. I have bookmarked it in my google bookmarks.
    Hi there, simply turned into alert to your blog thru Google, and located that
    it is truly informative. I am goong to watdh out for brussels.
    I wull bee grateful in the event you continue this in future.
    A lot of folks will likely be benefited from your writing.

    Cheers!|
    I’m curious to find out what blog system you happen to be working with?
    I’m experiencing some minor security issues with my lateset blog and I
    would like to find something more safe. Do you have any recommendations?|
    I’m extremely impressed with your writing skills and also with the layout on your weblog.
    Is this a paid theme or did you modify it yourself? Either way keep up the excellent quality
    writing, it’s rare to see a nice blog like this one nowadays.|
    I am extremely inspired along with your writing talents and
    also with the format on your weblog. Is that this a paid subject orr ddid you customize it yor self?
    Either way stay upp the excellent high quality writing, it’s rare to peer a nice
    blog like this one these days..|
    Hello, Neat post. There is a problem along with your
    web site in internet explorer, could check this?
    IE nonetheless is the marketplace chief and a huge part of other people will
    miss your great writing because of this problem.|
    I am not sure where you are getting your info, but good topic.
    I needs to spend some time learning much more or
    understanding more. Thanks for excellent information I was looking for this info for my mission.|
    Hi, i think that i saw you visited my weblog thus
    i came to “return the favor”.I am trying to find things to enhance my web site!I suppose its ok
    to use some of your ideas!!
    \

  32. I like to disseminate information that will I have built
    up with the yr to assist enhance team overall performance.

  33. Your viewpoint in life frequently changes our viewpoint. Sometimes good and sometimes bad but it is our outlook that exerts the most control how we feel.

  34. same question about the rotation, i still not really sure how to do after read your above flash api, would you share with me the code how can i rotate the object like old version?

    Like your mask demo, you have a swords on hand.

  35. I like to share understanding that will I have accrued with the season to assist improve team efficiency.

    my page 貿協

  36. Hello, i think that i saw you visited my web site so i came to “return the
    favor”.I’m attempting to find things to improve my website!I suppose its ok to use some of your ideas!!

  37. Way ϲool! Some extremely valid points! I аppreciate you penning this post aոd also the
    rest of the site is really good.

  38. That is a great tip especially to those new to the blogosphere.
    Brief but very precise information… Thanks for sharing this one.
    A must read article!

    Also visit my web page – Extremely Simple Fat Loss

  39. Hey there would you mind letting me know which hosting company
    you’re working with? I’ve loaded your blog in 3 completely different web browsers and I
    must say this blog loads a lot faster then most.
    Can you recommend a good web hosting provider at a fair price?
    Thank you, I appreciate it!

  40. Anthony Sherritt says:

    Hi guys. Seems like the comments are getting a lot of spam notices. Can you block those? Hope all is well.

  41. This mobile app gives you an estimated daily calorie intake that works to help you reach your diet, weight loss and meet your fitness goals.
    Want to challenge your readers to write the most moving testimonial for your products.

  42. I have taken take note that of all diverse styles of insurance,
    wellness insurance coverage is the most debatable since of the struggle between the coverage
    procedures firm’s obligation to continue
    to be worthwhile and the buyer’s require to have insurance policy
    address. Insurance plan companies’ revenue on health and fitness and fitness programs are pretty small, thus some organizations wrestle
    to make revenue. Thanks for the strategies you share as a result of this weblog.

    Feel free to visit my blog: online psychic (youtube.com)

  43. Great post. I am dealing with many of these issues as well..

Trackbacks/Pingbacks

  1. 1PeJxrakcd - The Ships's Voyages... I feel technological know-how just can make it worse. Now there is a channel to in no way …

Leave a Reply