Sunday, October 3, 2010

The Craftsman 62, The Dark Path.

Fri, 17 Mar 2002, 14:00

"Hey Alphonse," Jerry called as I walked by, "let's do a bit of practice.  I've got a kata I'd like to show you."

I felt I could use the break so I walked over and sat next to Jerry.

"Sure, Jerry, what's a Kata?"

Jerry rolled his eyes.  "You've never done a kata?"

I could feel my guard going up, but I tried to relax.  "No, can't say I have."

Jerry smirked and then called over to Jasmine: "Hay Jaz, do you want to tell Alphonse what a kata is?"

Jasmine's long dark hair swished playfully as she turned her head to face me.  She nailed me with those sparkling green eyes as she answered: "What, the hotshot's never done a kata?"

"He says not.  Can you believe it?"

"Jeez, what do they teach these kids nowadays?"

"Oh come on!" I said, starting to get annoyed.  "You guys are only a couple of years older than me, school hasn't changed that much."

Jasmine smiled at me, and I felt my annoyance evaporate.  That smile...  "Relax Alphonse, we're just poking fun at you.  A kata is just a simple program that you write over and over again as a way to practice.  We do them all the time.  It's part of our normal discipline."

"You write the same code over and over?"  This was new to me, and it didn't make a lot of sense.

Jerry nodded and explained: "Yeah.  Sometimes we'll do a kata two are three times in a row, exactly the same each time.  It's a good way to practice your hot-keys."

"And sometimes," Jasmine added, "we solve them in different ways, using different techniques as a way to learn different approaches and reinforce our disciplines."

"And sometimes we just do them for fun." Jerry concluded.

"Which one are you going to show him?" Jasmine asked.

"I was thinking about doing 'Word Wrap'."

"Oh, that's a good one.  You're going to like this Alphonse.  You guys have fun." And with that she turned back to her work. 

I turned to Jerry and asked: "Word Wrap?"

"Yeah, it's a simple problem to understand, but it's oddly difficult to solve.  The basic premise is really simple.  You write a class called Wrapper, that has a single static function named wrap that takes two arguments, a string, and a column number.  The function returns the string, but with line breaks inserted at just the right places to make sure that no line is longer than the column number.  You try to break lines at word boundaries."

I thought about this for a moment and then said: "You mean like a word processor, right?  You break the line by replacing the last space in a line with a newline."

Jerry nodded.  "Yeah that's the idea.  Pretty simple huh?"

I shrugged.  "Sounds simple, yes."

Jerry pushed the keyboard in my direction.  "OK, then why don't you start."

I knew this was a trap of some kind, but I couldn't see how.  So I said: "I suppose we should begin with simple degenerate tests."  I took the keyboard and began to type. I got the first few tests passing as Jerry watched.


Jerry got real interested as I wrote this.  When I got the second test working he said: "What's all that @RunWith and @Suite stuff you are typing?" 

I smiled.  Apparently I was about to teach Jerry something.  "Oh, yeah." I said nonchalantly.  "That's the TestNest pattern.  I learned it from Justin a few days ago.  It lets you put more than one test class in a file.  Each test class can have it's own setups and teardowns."

"Yeah, that's kind of slick.  But who's this Justin dude?"

I pointed and counted ceiling lights.  "He works just down the hall, beneath the 8th light."?

"You mean by those guys who are always walking on treadmills while they code?"

I nodded and kept on coding while Jerry stared back down the hall and recounted the lights. 


Jerry looked back just in time to see that last test pass.   He looked over the code and nodded.  "Yes, that's just about exactly how I solved it the first time.  That replaceAll is a bit of a hack isn't  it."

"Yes, but it gets the test to pass.  'First make it work, then make it right.'"

Jerry nodded.

"Anyway, it's pretty straightforward so far." I said.  And so I went on to write the next test.


Jerry nodded sagely.  "Yes, that's the obvious next test."

"Yes, and with the obvious failure." I agreed.  So then I looked back at the code. 

I stared at it for a long time.  But there did not seem to be any simple thing that I could do to make the test pass.

After a few minutes, Jerry said: "What's the matter Alphonse?  Stuck?"

"No, this should be simple.  I just..."  In frustration I took the keyboard and began to type.  I typed for quite a while, adding and erasing code.  Jerry nodded knowingly, and sometimes grunted.  After about five minutes Jerry stopped me.  The code looked like this:


"Are you sure you're on the right track, Alphonse?"

I looked at the code and realized that I had been coding blindly.  I ran the tests in desperation, but they just hung in an infinite loop.  I could kind of feel what needed to be done, but it wasn't at all clear how I should proceed. 

"Give me another shot at this." I said, as I erased all the code and started over.  Jerry just smiled and watched as I flailed around for another five minutes or so.  Finally, with lots of tests failing he stopped me again. 


"What are you doing wrong, Alphonse?"

I stared at the screen for a minute. Then I said: "I know I can get this working,  give me another shot."

"Alphonse, I know you can get it working too; but that's not the point. Stop for a minute and tell me what you are doing wrong."

I could hear Jasmine stifling a giggle.  I looked over at her, but she didn't meet my eye.  Then I took my fingers off the keyboard and hung my head.  "I can't seem to get this test to pass without writing a lot of untested code." I said.

"That's true." Said Jerry, but it's not quite the answer I was looking for.  You were doing something wrong.  Something really wrong.  Do you know what it was?

I thought about it for awhile.  I had been trying to figure out the algorithm.  I had tried lots of different approaches.  But all my guesses turned out wrong.  --   Oh!

I looked Jerry square in the eye and said:  "I was guessing."

"Right!" Jerry beamed.  "And why were you guessing?"

"Because the test was failing and I couldn't figure out how to get it to pass."

Now Jerry narrowed his gaze, almost like he was looking through me.  "And what does that tell you?"

"That the problem is hard?"  I guessed.

"No, Alphonse, the problem is not hard.  When you see the solution, you're going to be very angry at yourself.  The reason you could not figure out how to pass that test, Alphonse, is that you were trying to pass the wrong test."

I looked at the tests again.  They seemed perfectly logical.  So I asked Jerry: "How could these be the wrong tests?"

Jerry smiled with a grin that rivaled Jasper's.  "They are the wrong tests, Alphonse, because you could not figure out how to pass them."

I gave Jerry a stern look.  "You're being circular, Jerry."

"Perhaps I am.  Look at it this way.  The test you are trying to pass is forcing you to solve a very large part of the problem.  Indeed, it might just be the whole problem.  In any case, the bite you are taking is too big."

"Yeah, but..."

Jerry stopped me and said: "Did you ever read The Moon is a Harsh Mistress Alphonse?"

"Uh... Heinlein, wasn't it?  Yes, I read it a few years back.  It was a great story."

"Indeed it was.  Do you remember this quotation?"
"[W]hen faced with a problem you do not understand, do any part of it you do understand, then look at it again."
"As a matter of fact, I do.  I thought it was very profound."

"OK then Alphonse, apply that here.  Find some part of this problem that you do understand."

"I understand the problem..."

"No,  you think you understand the problem, but clearly you don't.  If you understood it, you'd be able to solve it.  Find some simpler tests to pass."

I thought about this for a few seconds.  What was so hard about this problem?  The thing I'd been struggling with was how to deal with breaking the lines at spaces?  Each of my "solutions" was tangled up with hunting for just the right space to replace with a line end.

I looked at Jerry and said: "What if I solved the part of this problem that did not deal with spaces?  Lines that have no spaces only need to be broken once they've hit the column limit."

Jerry pointed at the keyboard, and I started again.  I wrote the same degenerate tests.


But then I changed tack and wrote a test that wrapped a line without spaces. That test was trivially easy to pass.


The next test was pretty obvious. It should continue to wrap a string without spaces, creating lines that are no longer than the column limit.


Jerry looked at the test and nodded. "How will you solve that, Alphonse?"

"I just need to put a loop into the wrap function." I said.

"I think there's an easier way." He said.

I looked at the code for a bit, and then said: "Oh! Sure, I could recurse."


The tests passed, and Jerry nodded approvingly. "That looks like a framework you could build upon. What's next?"

"Now that I can wrap lines without spaces, it ought to be easier to wrap lines with spaces!"

"Give it a shot." He said.  So I wrote the simplest test I could.  A space right at the column limit.


"Do you remember how you made that test pass last time?" Jerry asked.

"Yeah." I grimaced. "I use the replaceAll hack."

"Is that how you're going to solve it now?"

I looked at the code, and the answer was obvious.  "Of course not!" I exclaimed. "All I need to do is check to see if the character at the column limit is a space!"  and I wrote the following code.


"Why'd you put that wrap call in there?"  Jerry asked. "You're getting a little ahead of yourself, aren't you?"

"I guess, but it's kind of obvious that it belongs there.  Just look at the symmetry!"

"I agree." Jerry said smiling.  "Continue on."

The next test was just as obvious.  The space should be before the column limit.  So I typed the following:


"Passing this one is going to be tricky." I said under my breath.

"Is it?" Jerry queried.

I looked again, and it hit me.  "Oh, no, it's just a small change!"  And I typed the following.


The tests passed, and I was getting excited.  "This is so strange, the whole algorithm is just falling into place!"

"When you choose the right tests, Alphonse, they usually do."

"OK, so now let's make the column boundary really small so that it has to chop the string up into lots of little lines."


"That one passes right away!" I said.  Wow, I think we're done.

"Not quite." Jerry said.  "There's another case."

I studied the tests.  "Oh, there's the case where the character after the column limit is a space." I wrote the tests, and it was trivial to pass.


Jerry smiled as the tests passed. "That's the algorithm all right. But I bet you could clean this up a bit."

"Yeah, there is a lot of duplication in there." So I cleaned up my work with the following result.


I looked at the code in some astonishment. This really was a very simple algorithm! Why couldn't I see it before?

"You were right." I said to Jerry. "Now that I see this algorithm for what it is, it's kind of obvious. I guess choosing the right tests is pretty important."

"It's not so much choosing the right tests, Alphonse; it's about realizing that you are trying to solve the wrong test."

"Yeah, the next time I get stuck like that, and start guessing and flailing, I'm going to re-evaluate the tests.  Perhaps there'll be simpler tests that will give me a clue about the real solution."

And then I stopped myself and asked: "Is that true, Jerry? Is there always a simpler test that'll get me unstuck?"

Jerry was about to answer when a spitwad hit him in the side of the face.  Jasmine was laughing and running down the hall.  Jerry lept out of his seat to chase after her.

I just shook my head and wondered.

215 comments:

  1. Such a great post! I've just finished reading TDD by Kent Beck and wanted to try it out. I had the first few passing tests really quickly, but afterwords I just couldn't get the next test FAIL! Fail u say? Exactly fail. (The reason for that was that i was finished, without having all the cases tested, but the reason for this reason was having wrong tests in the first place).

    ReplyDelete
  2. Excellent post! The concept of "smallest bite" have always been central to my understanding of TDD. This post makes a wonderful point in stressing that choosing a "bite small enough to swallow" is not all about the test itself - it is about the solution it drives. I will definitely include a ref to this post in my future classes on TDD.

    ReplyDelete
  3. Hahahahaah! This and some cinnamon buns totally made my monday morning. Fantastic funny and educational read. Thanks!

    ReplyDelete
  4. I've never commented on a blog post before, but I have to say, this was a very nice post! I learned a lot reading through it, thank you!

    ReplyDelete
  5. Wow this is not only a great story. I also like it because it's written like an entertaining novel. This could be a good way to design tutorials in general! I will keep that in mind.
    What's even more important to me is the fact that this is a great way to teach TDD newbies!
    I will bookmark this blog post and the next time someone asks me, "hey what's that TDD thingy all about?", I will give him this link. :-)

    Greetings,
    Rainer Hilmer

    ReplyDelete
  6. FYI, TestNest is built into JUnit:

    http://kentbeck.github.com/junit/javadoc/latest/org/junit/experimental/runners/Enclosed.html

    Yes, there needs to be better docs...

    ReplyDelete
  7. Where can I find the Craftsman articles #53 to #61?

    I looked at http://objectmentor.com/resources/publishedArticles.html under the Crafstman link but that only goes up to 52.

    I have read all of them up to 52 and then this one came out and it is 63. I feel like I have missed out on some of the Ruby exploration that 52 left on.

    ReplyDelete
  8. Hi Matt,

    I asked Bob via Twitter and he answered this: "You'll find them at Informit. http://bit.ly/cM9bgW Clean Code Tips 1-12"

    Good luck

    ReplyDelete
  9. Just thought you should know these code snippets don't show up in the RSS feed (at least not with google reader).

    ReplyDelete
  10. assertThat(wrap("word word word", 9), equalTo("word word\nword"));

    does not work.

    int space = (s.substring(0, col+1).lastIndexOf(' '));

    and removing the else-if does the trick.

    ReplyDelete
  11. Thanks Carlos! Now I can catch up on the ones I missed.

    ReplyDelete
  12. What Tobias said, I got automatically from the tests and he's right. Here's my code, I hope it's received well... Oh, and it's C#

    namespace WordWrapKata
    {
    public class Wrapper
    {
    public static string Wrap(string value, int column)
    {
    if (column >= value.Length)
    return value;

    int space = value.Substring(0, column + 1).LastIndexOf(' ');

    if (space != -1)
    return value.Substring(0, space) + "\n" + Wrap(value.Substring(space + 1), column);

    return value.Substring(0, column) + "\n" + Wrap(value.Substring(column), column);
    }
    }

    [TestClass]
    public class WordWrapTests
    {
    private const string STR_TellusIsEenMooiBedrijf = "Tellus is een mooi bedrijf";

    [TestMethod]
    public void Does_ReturnEmptyString_When_EmptyStringProvided()
    {
    // Act
    string result = Wrapper.Wrap("", 10);

    // Assert
    Assert.AreEqual(string.Empty, result);
    }

    [TestMethod]
    public void Does_ReturnSameString_When_ColumnIsHigherThanLengthOfString()
    {
    // Act
    string result = Wrapper.Wrap(STR_TellusIsEenMooiBedrijf, STR_TellusIsEenMooiBedrijf.Length + 1);

    // Assert
    Assert.AreEqual(STR_TellusIsEenMooiBedrijf, result);
    }

    [TestMethod]
    public void Does_SplitAtExactColumn_When_NoSpacesProvided()
    {
    // Act
    string result = Wrapper.Wrap("WordWordWord", 4);

    // Assert
    Assert.AreEqual("Word\nWord\nWord", result);
    }

    [TestMethod]
    public void Does_SplitAtSpace_When_WithinTheSmallestString()
    {
    // Act
    string result = Wrapper.Wrap("Word Word Word", 4);

    // Assert
    Assert.AreEqual("Word\nWord\nWord", result);
    }

    [TestMethod]
    public void Does_EverythingCorrect_When_ProvidingComplexAndLastTest()
    {
    // Act
    string result = Wrapper.Wrap(STR_TellusIsEenMooiBedrijf, 6);

    // Assert
    Assert.AreEqual("Tellus\nis een\nmooi\nbedrij\nf", result);
    }
    }
    }

    ReplyDelete
  13. Oh, and something else, the original code isn't thread safe with the static member variable. My code is! :)

    ReplyDelete
  14. Just paste the code above in a test project, btw.

    Once you get the recursion, I guess the solution is almost always the same. Not that it matters though. I'll try again in two weeks or so, see what happens than. I did not know this kata yet. Great story btw! Especially the ending! :)

    ReplyDelete
  15. Great article, great story. Although I've read this via Instapaper and the code snippets were also missing like in the RSS. But it wasn't a real problem. The TDD part of the story is very insightful but you really got me in the first few paragraphs with the code katas!

    It reminded me of my old friend I met in school years ago. He was actually the one who thaught me to program for the first time. But what he did was that he almost constantly programmed the game of snake. You know the one where you control a snake on the X and Y axis and it eats food and growths in length etc. He must have written it many times again and again from the ground up through the years.

    Now I think it's never too late to start doing code katas so I will start with them now.

    ReplyDelete
  16. That recursion doesn't look like a tail call. So now test it with a string that should become 10000 lines and see your call stack overflow...

    ReplyDelete
  17. A shorter, more efficient last-index computation:

    int space = s.lastIndexOf(' ', col);

    ReplyDelete
  18. >That's the algorithm all right.

    This is the funniest part because the algorithm is not right at all, as Tobias noticed. This is a brilliant story showing that TDD should not be used for algorithms development.

    ReplyDelete
  19. Hey, I just checked out the Transformation Priority and Sorting, but, what if you introduce a test with repeated numbers?, like [4,4,4,4] (or something like that). Cause to me it is a fail test.

    ReplyDelete
  20. There is another case where the solution seems to fail. Consider this:

    Wrapper.wrap("line1 l ine2", 7)

    It returns "line1\nl ine2" instead of "line1 l\nine2".

    I guess, the quality of a TDD solution really depends on the test cases it´s based on. So the question is: how can you come up with a list of prioritized test cases if you don´t understand the problem and/or don´t have a clue as to how the solution should look like? Because that seems to be the case in this demonstration.

    This is not to blame Uncle Bob. Rather I guess that´s so often the case we need to be aware of it and don´t just trust some TDD process. TDD does not solve our problems. It´s only as good as our understanding of problem domain and solution are before (!) we start coding.

    ReplyDelete
  21. People, aren't you a morons? Just look at this with a fresh look! Because Java has no just functions, you are to create class, than static method, which creates dynamic method, which actually does what you want.
    A good example of how clumsy OOP can be.
    Dammit, I want to unsee this.

    ReplyDelete
  22. شركة تنظيف منازل بالرياض

    نحن شركة المنزل لدينا خدمات تنظيف المنازل بالرياض فنحن نقوم بتنظيف الاوانى والحوائط والرخام والشبابيك كما ان لدينا خدما تنظيف الكنب بأجود انواع الخامات وبأرخص الاسعار فكل الخامات التى نستخدمها فى التنظيف لا تؤثر على الاقمسة ولا تغير لونها
    شركة تنظيف كنب بالرياض

    http://elmnzel.com/%D8%AE%D8%AF%D9%85%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%86%D8%B8%D9%8A%D9%81/cleaning-riyadh/





    ReplyDelete
  23. حملات للصيانة لجميع المحافظات فى مصر فى صيانة كاريير اتصلوا بنا فى مركزنا لاننا نقدم لك جميع ما تحتاجة فى الصيانة
    http://carriermaintenance.com

    ReplyDelete
  24. خصومات على خدمات التنظيف فى افضل شركة تنظيف بالمدينة المنورة شركة فرسان الخليج التى تقدم لجميع عملائها افضل الخدمات فى التنظيف باقل الاسعار
    http://www.forsan-elkhaleg.com/17/Cleaning-company-in-Madinah

    ReplyDelete
  25. السرعة فى تنفيذ خدمات الصيانة فى مركز صيانة كريازي نحن نتعامل بدقة كبيرة فى صيانة الاجهزة لكى نجعلها كالجديدة مرة اخرى
    http://www.maintenanceg.com/Kiriazi-Agent-Services.html

    ReplyDelete
  26. الدقة فى تنفيذ خدمات مسك كلمات والتسويق الالكتروني بشركة سوقني سنجعلك تتصدر اولى النتائج بمحركات البحث بوقت قصير
    http://www.swaqny.com

    ReplyDelete
  27. خدمات صيانة وتنظيف و عزل خزانات بمكة فى شركة العنود لدينا افضل الفنيين وفرق العمل فى خدمات العزل
    http://www.el3nod.com/1/company-tanks-isolation-cleaning-mecca

    ReplyDelete
  28. الإخلاص و الآمانة التي تقدمها لكم بأرخص الأسعار منها نقل اثاث الطائف التي تحرص علي تقديمه لكم فريق متميز فهي من أكبر الشركات بالمملكة العربية السعودية.
    للتواصل الآن عن طريق :-
    http://www.xn-----jtd6bya2cendpd.com/%D9%86%D9%82%D9%84-%D8%B9%D9%81%D8%B4-%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D9%81-2/

    ReplyDelete
  29. شركة سوقني تقدم لكم عروض و خصومات في تصميم موقع الكتروني و ذلك حيث قد صل الخصومات إلي 30% و الذي يناسب جميع العملاء كما يقدم لكم أفضل الخدمات.
    للتواصل معنا عبر موقعنا :-
    http://www.swaqny.com/Web-Design

    ReplyDelete
  30. خدماتنا المتميزة التي نقدمها من خلال فريقنا المتخصص فنحن أكبر و أهم شركة نقل اثاث بالمدينة المنورة و بجميع أنحاء المملكة العربية السعودية .
    للتواصل الآن عن طريق مقعنا هذا :-
    http://www.forsan-elkhaleg.com/20/Moving-furniture-company-in-Madinah

    ReplyDelete
  31. يمكنك الاتفاق الان مع الشركات المتخصصة في تحضير معدات مطاعم و مطابخ و تركيبها و تصميم ديكورات على ارقى مستوى
    التواصل عبر:
    http://www.hotel-restaurant-eg.com

    ReplyDelete
  32. ان صيانة يونيون اير تقدم فريق عمل لتصليح الاجهزه على مستوى رفيع من الخبرة و الكفاءة لامكانية مساعدتكم في تصليح اعطال الاجهزه
    التواصل عبر:
    http://unionairemaintenance.com

    ReplyDelete
  33. خصومات على مصاعد كهربائية فى الشركة العربية للمصاعد نحن لدينا اشكال مختلفة من المصاعد اختا منها ما يناسب حجم منزلك
    http://elevatorss.com

    ReplyDelete
  34. للحصول على خدمة فورية مميزة فى شركة كشف تسربات اتصلوا بنا فى شركة امتار التى تقدم لكم خدمات مميزة وبارخص الاسعار
    https://amtar-ksa.com/%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87/

    ReplyDelete
  35. يتوافر لدي توكيل كاريير افضل شبكة كول سنتر علي مستوي مراكز الصيانة تعمل علي استقبال جميع الشكاوي الذي يعانون منها في اجهزة التكيف لديهم من العملاء فيالوقت نفسة التي يقوموا بالاتصال بنا فيه حتي لا يتوجد ارهاق او معاناه في التواصل معنا في اي وقت
    http://www.carriermaintenance.com

    ReplyDelete
  36. تتميز شركة الاخلاص والامانة بفريق عملها المدرب علي اعلي مستوي من الكفاءه والفاعليه في انتقال الاثاث والحفاظ علي كل قطعة بعناية شديدة لذلك تعد من افضل شركات نقل اثاث بالطائف و بالنسبة الي اسعارها تنفرد بكونها ارخص شركة نقل عفش بالطائف


    ReplyDelete

  37. شركة تمديدات الغاز المركزي بجدة

    لاننا دائما متميزين يوجد ثقة متبادلة بين عملائنا وبيننا فى تقديم خدماتنا حيث اننا نقوم

    تمديد الغاز المركزي بجدة
    باقل الاسعار حتى نكسب رضا عملائنا ولانننا نعلم جيدا ان


    توصيل الغاز المركزي للمنازل بجدة
    اصبح من اساسيات اى منزل فوفرنا العمالة الماهرة والاجهزة الحديثة التى تساعدنا على تقديم هذه الخدمة بكل كفاءة

    http://ahbabelmadina.com/%d8%b4%d8%b1%d9%83%d8%a9-%d8%aa%d9%85%d8%af%d9%8a%d8%af%d8%a7%d8%aa-%d8%a7%d9%84%d8%ba%d8%a7%d8%b2-%d8%a7%d9%84%d9%85%d8%b1%d9%83%d8%b2%d9%8a-%d8%a8%d8%ac%d8%af%d8%a9/

    ReplyDelete

  38. Despite the brevity of the illustrations in this article, I have found the article to be very educational. This is due to the fact that it gives the readers to get updated on the education materials and the use of the same. In addition to that, this forum gives the visitors the opportunity to freely contribute.

    Newsletter Content Writers

    ReplyDelete
  39. I do like the sense of humor that this post has, it is very nicely crafted and offers very nice information. The chance given to contribute is highly appreciated, I have the chance to freely say my mind about the relevance of the post. If Producing Animations with a Christian Theme is proving to be quite challenging for you why not try our services. We are accessible 24.7, always ready and equipped to assist.

    ReplyDelete
  40. عزيزي عميل مدينه الخرج نوفر لك افضل خدمات التنظيف المختلفه من منازل ومجالس وغيرهما وايضا نوفر لك مكافحة الحشرات بالخرج لنوفر لك افضل سبل الحصول علي منزل نظيف وخالي من الحشرات وذلك بافضل الفنيين وامهرهم
    شركة تنظيف خزانات بالخرج
    شركة تنظيف بالخرج
    نستخدم افضل المكينات المخصصه في تنظيف الموكيت والسجاد الخاص بالمساجد والتي تعمل عن طريق تنظيف موكيت المساجد بالمنظفات الحديثه لكي نصل الي اعلي مستوي من التنظيف
    كما ان جودة التنظيف الخاص بتنظيف الموكيت تعتمد علي نوعيته مع استخدام المكينات الحديثه وبالاضافه الي الايدي العامله المدربه حديثا
    شركات مكافحة حشرات بالخرج
    شركة رش مبيدات بالخرج

    ReplyDelete
  41. This comment has been removed by the author.

    ReplyDelete
  42. سارع الان بالتواصل مع فضل فريق الان فى مصر من شركة امن وحراسه الان على اعلى مستوى ممكن لذى يقدم العديد من العروض المختلفة الان من شركة حراسات امينة التى تقدم افضل المواصفات الصارمة الان ,وباقل الاسعار المختلفة من
    الان فى مصر


    ReplyDelete
  43. تعرف الان على افضل المميزات المختلفة من رقم صيانة كاريير الان التى نقدمة الان على اعلى مستوى ممكن من صيانة تكييفات كاريير الان التى نقدم الان على اعلى مستوى ممن من رقم صيانة كاريير الان فى مصر , وباقل الاسعا رالممكن

    ReplyDelete
  44. تعرف الان على افضل المميزات المختفة الان فى مصر من شركة مكافحة حشرات التى تقدجم اليكم افضل العملاء الان على اعلى مستوى ممكن فى مصر ويوجد ابادة حشرات بالمنزل لتخلص من كافة انواع الحشرات التى توجد فى المنازل الان , وباقبل الاسعار المختلفة , كما اننا نقدم شركة ابادة حشرات الان على اعلى مستوى ممكن , وباقل الاسعار المختلفة

    ReplyDelete
  45. نخصومات الان على اعلى مستوى ممكن من افضل العروض الان من المختلفة فى تركيا من مركز زراعة الشعربتركيا التى نقدمة الان , كما اننا نقدم افضل الخصومات الان وباقل الاسعار الممكن من تكلفة زراعة الشعر الان

    http://www.hairtransplant1.com

    ReplyDelete
  46. This comment has been removed by the author.

    ReplyDelete
  47. يمكنكم الان التعرف علي اقوي العروض والخدمات الرائعة فى كافة المحافظات المختلفة الان فى مصر من صيانة ثلاجات وايت ويل الرائعة والمتخصص من رقم صيانة وايت ويل ثلاجات لصناعة احدث الانواع الاجهزه المزلية فى العديد من المحافظات الان وباقل الاسعار الرائعة حيث اننا نعمل على تقدم اهم الخدمات المختلفة وقطع الغيار الاصلية التى تقدمة الشركة الان مع فريق كبير من امهر المتخصصون فى العديد من انواع الصيانة التى تقدمة الان من ل الخط الساخن وايت ويل وباقل الاسعار التى لا مثيل لها الان فى مصر والوطن العربي

    ReplyDelete
  48. تقدم شركه تنظيف بالبخار بجدة كافة خدمات التنظيف بالبخار للحصول على منزل متميز من شركة تنظيف بالبخار بجدة
    وهذا لأن الطرق التقليدية في التنظيف تسبب الكثير من الضرر للمفروشات وللكثير في المنزل من شركة تنظيف بالبخار بجدة هذا إلى جانب عدم ضمان التعقيم الكامل ولكن مع البخارؤ نضمن التطهير الصحي لكل قطعة بالمنزل بدون جراثيم أو فطريات من شركة نقل عفش بجدة إل جانب عامل الوقت فالتنظيف بالبخار لا يحتاج لأي وقت أو مجهود فهو يقضي على أصعب البقع في أسرع وقت لاننا نقدم افضل شركة نقل عفش بمكة
    الان وباقل الاسعار الرائعة التى لا احد يقدمة الان

    ReplyDelete
  49. الأمور المهمة فى حياتنا هى النظافة لأنها تقي الإنسان من الامراض وتجعلنا نعيش فى جو صحي ونجد فى الآونة الأخيرة انتشار التنظيف بالبخار من شركة تنظيف بالبخار بمكة وبالفعل اثبت فعاليته ويعتقد بعض الناس ان له أضرار أكثر من الفوائد ولكن مع العلم اثبت انه من اهم امور النظافة فى إزالة الدهون والأوساخ لذلك ان الاميرة كلين اكبر شركة تنظيف بالبخار بمكة جاءت لكم بمفاجأة وهى خدمة من شركة تنظيف خزانات بمكة بأحدث الأجهزة لنخدم اهل مكة ونساعدهم فى تنظيف منازلهم او الفلل الخاصة بهم من شركة مكافحة حشرات بمكة وكذلك نقدم الخدمة للمؤسسات والشركات والمستشفيات فنحن افضل شركة نقل عفش بمكة التى نقدمة الان فى السعودية

    ReplyDelete
  50. نقدم في مركز صيانة توشيبا العديد من الخدمات المتميزة و التي تضمن لك الراحة و الرفاهية في ايجاد الحل الافضل في التخلص من اي مشكلة و اي نوع من الاعطال في اي جهاز كهربائي حيث ان توكيل توشيبا يقدم مواصفات الصيانة الشاملة الفعالة الدورية و للحصول علي خدمة تصليح ذات درجة عالية من التميز اتصل بنا علي رقم صيانة توشيبا في اي وقت

    ReplyDelete
  51. دبي تعتبر الواجهات شركة تنظيف بدبي من أهم الأماكن التي يجب تنظيفها على أكمل وجه، حيث أن نظافة شركة تنظيف بالشارقة الواجهات هي دليل على نظافة المنزل؛ لهذا شركة تنظيف بدبي يجب الاهتمام بها بشكل كبير وذلك من خلال شركة تنظيف فى دبي التواصل مع شركة تنظيف واجهات منازل في الشارقة شركة تنظيف بعجمان فإن الشركة سوف تتمكن من القيام بهذه المهمة مع اختلاف أنواع المنظفات

    ReplyDelete
  52. مع شركتنا انتم بامان فقد قامت المؤسسة بفعل خدمة مميزة للقيام بافضل عمليات تطهير الخزانات بمكة حيث اننا نقوم بتنظيف اى نوع من انواع الخزانات المتواجدة لديكم كما اننا نتعامل معه باهتمام عالية ومتميزة فنتعامل مع كل نوع على حدى
    شركة تنظيف

    تنظيف منازل

    شرکة تنظیف منازل

    شرکة تنظیف بالكويت

    ReplyDelete
  53. Hello! This is my first visit to your blog! This is my first comment here, so I just wanted to give a quick shout out and say I genuinely enjoy reading your articles. Your blog provided us useful information. You have done an outstanding job.
    https://ivc-services.com/india-visa-singapore/

    ReplyDelete
  54. Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers. Keep it up in future, thanks for sharing such a useful post. Our toll-free number is accessible throughout the day and night for the customer if they face any technical issue in BROTHER PRINTER Call us +1888-621-0339 Brother Printer Support USA Brother Printer Technical Support Phone Number
    Brother Printer Tech Support Phone Number

    ReplyDelete
  55. Thanks for sharing such a great information with us. Your Post is very unique and all information is reliable for new readers. Keep it up in future, thanks for sharing such a useful post. Our toll-free number is accessible throughout the day and night for the customer if they face any technical issue in BROTHER PRINTER Call us +1888-621-0339 Brother Printer Support USA Brother Printer Technical Support Phone Number
    Brother Printer Tech Support Phone Number

    ReplyDelete

  56. Thanks for sharing such great information with us.
    Your blog is very unique and all information
    is reliable for new readers.
    virtual servants

    ReplyDelete
  57. Smart studies also involve depending on others, that is, taking help( be it Java Assignment Help, help with projects, help with keeping up with timetables and commitment), suggestion, ideas wherever they can find it.

    ReplyDelete
  58. Personal Java Training Online by 12 Yrs Experienced Sw Engineer at www.javatutoronline.com Learn Java Coding easily at your speed.

    ReplyDelete
  59. very couple of websites that come about to be detailed beneath, from our point of view are undoubtedly very well worth checking out

    happy marriage anniversary wishes messages

    ReplyDelete
  60. One thing that I like about the blog is that it is helpful for all types of students. We Best Online Assignment Help website to encourage students to indulge themselves in more mind-sharpening activities rather than only studying. Visit our website to get amazing essay, proof-reading, editing and project related help.

    https://greatassignmenthelp.yolasite.com/

    http://helpassignment.onesmablog.com/How-Assignment-Help-Experts-Make-Your-Exam-Days-Easier--20698055

    ReplyDelete
  61. Thank you for such an interesting blog. If you are looking for more such informative blogs, visit Great Assignment Help website. Here you will not only find information, but also best online Assignment Help from professionals.

    https://greatassignmenthelp.yolasite.com/

    http://helpassignment.onesmablog.com/How-Assignment-Help-Experts-Make-Your-Exam-Days-Easier--20698055

    ReplyDelete
  62. After reading this web site I am very satisfied simply because this site is providing comprehensive knowledge for you to audience. Thank you to the perform as well as discuss anything incredibly important in my opinion. We loose time waiting for your next article writing in addition to I beg one to get back to pay a visit to our website in
    python Training institute in Pune
    python Training institute in Chennai
    python Training institute in Bangalore

    ReplyDelete
  63. Abc assignment help is a customized online assignment writing help offering Computer network assignment help to students studying in any college/university across the globe. We have an in-house team of PhD writers holding a vast experience in managing assignments as per the specific university guidelines. We make every effort to improve the overall grades of students through our round-the-year support and assistance in any of the subjects.

    ReplyDelete
  64. Great Article… I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.
    Data Science course in Chennai
    Data science course in bangalore
    Data science course in pune
    Data science online course
    Data Science Interview questions and answers
    Data Science Tutorial

    ReplyDelete
  65. Your good knowledge and kindness in playing with all the pieces were very useful. I don’t know what I would have done if I had not encountered such a step like this.
    Best Devops online Training
    Online DevOps Certification Course - Gangboard
    Best Devops Training institute in Chennai

    ReplyDelete
  66. Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune | rpa course in bangalore
    rpa training in chennai

    ReplyDelete
  67. Superb. I really enjoyed very much with this article here. Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article. thank you for sharing such a great blog with us.
    rpa training in bangalore
    best rpa training in bangalore
    rpa training in pune | rpa course in bangalore
    rpa training in chennai

    ReplyDelete
  68. TutorVersal provides one of the most affordable online assignment help to students in Australia. Our team comprise of professional subject experts who have an experience of more than seven years in the education industry. We provide assignments written exactly as per the marking rubric and guidelines given by the universities. Our academic helpers prepare 100% plagiarism-free and high-quality work and deliver them right on time. Scoring HD grades has become a lot easier now!
    Contact us now and avail of the best assignment writing help in Australia!

    ReplyDelete
  69. Thanks dear for sharing such an amazing information. Visit for
    Mutual Fund Agent

    ReplyDelete
  70. Thanks dear for sharing such an amazing information. Visit for
    sound engineering courses

    ReplyDelete
  71. This blog are really useful for me, thanks for sharing with us. Visit for
    Lifestyle Magazine

    ReplyDelete
  72. Highly Professional Finance Assignment Help Inbound Services In Australia.
    A lot of students every year face extreme difficulties in preparing their highly valuable finance assignments. Therefore, to provide them with quality assistance, My Assignment Help OZ is offering their most-accurate finance assignment help services to guide students facing problems in their academics. Also, the team constantly strives to achieve 100% client-satisfaction by providing MYOB assignment help, financial accounting assignment help and specialised services in various other subjects as well.
    Along with professional finance assignment services, we also provide live sessions to students who have insufficient conceptual knowledge. Thus, any student can avail our professional services, by writing to us at info@myassignmenthelpoz.com .

    ReplyDelete
  73. احدث ترددات قنوات الافلام تردد قناة Mix Hollywood علي النايل سات

    ReplyDelete
  74. We at top quality assignment believe that there is no shortcut to success and to attain success, hard work, dedication, and commitment must be present. We are an online platform where students check & write reviews for assignments related websites, my assignment help. We provide our service at Australiaassignmenthelp.com

    ReplyDelete
  75. كيفية اختيار شركة تنظيف مثالية
    هناك العديد من شركات التنظيف هناك ، والفرق بين شركة تنظيف كافية وسيئة وممتازة يحدث فرقا حقا. إذاً كيف تعرف أي أعمال تنظيف مهنية تستخدمها؟ هنا قائمة من 15 أشياء للبحث عنها قبل التعاقد مع خدمة التنظيف. بعد قراءة هذه القائمة ، سوف تعرف كيفية معرفة أي شركة تنظيف جيدة وأيها لا (قبل توظيفهم):

    1. الحصول على أسعار الأسعار من ثلاث شركات على الأقل.
    هناك عدة أسباب لذلك يجب القيام بذلك. ليس فقط لمعرفة أي شركة تنظيف هي أفضل الأسعار ولكن أيضا لمعرفة مدى وجود فجوة في أسعار نفس الخدمة. "قد تحصل على ما تدفعه مقابل" قد تكون مبتذلة ولكن هذا لا يجعلها غير صحيحة. في حين أن الاختلافات في الأسعار ليست كبيرة ، فمن الأفضل أن تذهب مع أي أعمال التنظيف المهنية التي تمنحك أقصى ضجة لجهودك. ولكن إذا كان التناقض في الأسعار مختلفًا بشكل كبير ، فيجب أن يخبرك ذلك بشيء ما وأن يعطيك سبباً للشك.

    أيضا عند السؤال عن أسعار الأسعار ، يوصى بالسؤال عما إذا كانت أسعار الأسعار تشمل كل شيء (المواد واليد العاملة) ومقدار خدمة تنظيف خاصة يمكن إضافتها إلى خدمات التنظيف التي يتم تقديمها.
    شركة تنظيف الشارقة
    2. اسأل كم من الوقت كانوا في الأعمال التجارية.
    هناك العديد من الشركات التي تأتي وتذهب حتى الأعمال التي تمكنت من البقاء في العمل لفترة قصيرة يقول شيء إيجابي عن شركة التنظيف. على الرغم من أن طول العمر ليس ضمانًا للعظمة ، إلا أنه يجب أن يكون عاملاً مهمًا. (بعد كل شيء ، كيف يمكن أن تظل الأعمال مفتوحة لسنوات عديدة إذا لم نكن راضين عن العملاء العائدين؟)

    3. أسأل عما إذا كانوا يضمنون عملهم.
    معظم الشركات تقول إن رضاك ​​مضمون ، ولكن ماذا يعني ذلك؟ هل يعني ذلك أنهم سيقدمون لك استردادًا إذا كنت غير راضٍ؟ من المهم معرفة ذلك قبل توظيف أي شخص للقيام بوظيفة لك (وخاصة تلك التي تضمن الرضا).
    شركة تنظيف مطابخ الشارقة
    4. اطلب قائمة المراجع.
    شركة جيدة سيكون لها عملاء مخلصين ومرتاحين. من المستحسن أن تسأل عن قائمة المراجع حتى تشعر بالراحة مع العلم أنك تتعامل مع شركة تنظيف لديها قاعدة عملاء كبيرة من العملاء الراضين.

    5. هل يمكنها توفير جميع خدمات التنظيف التي تحتاجها؟
    عند التعاقد مع عمال النظافة المهنية فمن الأفضل أن تعرف كل الخدمات التي تقدمها. لماذا استئجار مجموعة من شركات التنظيف عندما يمكنك استئجار واحدة للقيام بكل الوظائف التي تحتاجها؟ من السهل تتبع شركة واحدة تقوم بتوظيفها (وعدم الاضطرار إلى تجاوز هذه القائمة في كل مرة تقوم فيها بتوظيف شركة تنظيف جديدة) على العديد من الشركات؟ هل تقوم شركة التنظيف بأعمال تنظيف الأرضيات ، تنظيف السجاد ، خدمة خادمة؟ من الأفضل معرفة جميع الخدمات التي تقدمها قبل استئجارها. إذا كانت هناك شركتان للتنظيف للاختيار من بينها ، وكانت جميع الأشياء الأخرى متساوية ، فمن الأفضل أن تقوم بتوظيف الشركة التي تقدم معظم الخدمات.
    شركة تنظيف منازل الشارقة
    6. هل يقدمون منتجات التنظيف الخضراء؟
    بفضل تدفق حركة التنظيف الخضراء ، يمكن للمرء استئجار شركة تنظيف خضراء دون القلق إذا كانت المنتجات التي يستخدمونها أقل جودة لأنها مفيدة لك. في الوقت الحاضر ، فإن التنظيف الأخضر يؤدي وظيفة جيدة مثل التنظيف غير الأخضر ، ولكنه يفعل ذلك بشكل أفضل ، لأنه ينظف دون إضافة مواد كيميائية وسموم إلى الأرض. إذا كنت مهتمًا بالتنظيف الأخضر ، فتأكد من أن عمال النظافة المحترفين الذين تبحث عنهم يتوافقون مع ختم الموافقة الأخضر.
    شركة تنظيف شقق الشارقة
    7. هل يقدمون خدمات تنظيف الطوارئ على مدار الساعة؟
    إذا كانت هناك حالة طوارئ ، مثل الطوفان أو الأنابيب المكسورة أو المرحاض المسدودة أو غير ذلك من المشاكل التي تحتاج إلى التعامل معها على الفور ، فمن المطمئن أنه يمكنك الاتصال بشركة التنظيف في أي وقت من اليوم لإنقاذك من أي كوارث قد يحدث. بعد كل شيء ، يجب أن تكون شركة التنظيف الخاصة بك على دراية بمبنىك وبإمكانك الوصول إليه ، لذلك من الأسهل عليهم حل حالات الطوارئ والكوارث من أولئك الذين لم يعملوا من قبل.

    ReplyDelete
  76. Thank you for raising me well. I am so happy to have an extraordinary mother like you
    motherdayquotesi.com
    happy mothers day 2019

    ReplyDelete
  77. Office Setup has no relationship with any of these outsider affiliations aside from if such relationship is unequivocally showed up. Office.com/Setup permitted use and specific ensures related with the thing, mechanical gathering, and peripherals, you should contact the key removed.
    http://office-comoffice.com/

    ReplyDelete
  78. Excellent post! The concept of smallest bite have always been central to my understanding of TDD.
    Strategic management assignment is providing the assignment writing services for management persons with the brand of MyAssignmentHelp
    So if you need management assignment help then connect with me on MyAssignmentHelp

    ReplyDelete
  79. This is truly a great read for me. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
    Connect with homework helper for take the help on college homework by an expert's

    ReplyDelete



  80. Get 24x7 quick help & fix computer problems like computer freezes randomly, slow computer and computer repair. Call toll free Computer Support number
    Printer offline

    Garmin Support Phone Number

    Garmin map update

    ReplyDelete

  81. Setup your norton Antivirus with help from norton setup , norton.com/setup after reaching the site go
    with the given steps. http://norton-nortoncom.com

    ReplyDelete
  82. Yahoo Mail Technical Support
    Yahoo Mail Technical Support Is provide support on your all yahoo mail's technical issue which you are facing in your
    yahoo mail. If you are facing any Technical issue in your yahoo mail then call +1800-284-6979 yahoo mail technical support officer
    and get your issue resolved qickly . feel free to call us.

    https://www.fixemails.com/blog-post/how-can-i-contact-yahoo-for-yahoo-mail-technical-support/

    ReplyDelete
  83. this is a smart post! thanks for it. gatineau

    ReplyDelete
  84. aol email problems you are using Aol email And facing any problem in your Aol email then call official Aol email Toll Free Number 1800-684-5649. And talk with aol email help support officer for all your aol mail problem . feel free to call 24x7 around o clock.

    ReplyDelete
  85. HND Advertising Assignment Help is the way of communicating with the public/users of the products or services regarding the products or services. It means the process by which the company communicates with the users of a product/service. Advertisement is a message paid for by those who send them, which have the intention of informing or influencing the people who are receiving them. Advertising a set of several marketing and promotional activities which are approached to attract the mass (public) attention towards a product or an organization, which done by paid announcements via printing, broadcasting, or electronic media. In today’s highly competitive world, every organization uses advertisement in any form to stay in the market for longer. Advertising can be done with help of anything from television, print, newspapers, journals.
    ozpaperhelp@gmail.com

    https://www.ozpaperhelp.com/

    https://www.cheapassignmenthelp.co.uk

    https://www.freeassignmenthelp.com
    https://cheapassignmenthelp.blogspot.com/
    Whatsapp :+61-451442632.+91-7503070001,+44-7437875635

    ReplyDelete
  86. Thanks for sharing great information. I always love to read and spread this kind of information that is unique and really informative.
    https://ladybugfeetdesigns.com/

    ReplyDelete
  87. HP Support Help 24X7 strive hard to solve these issues
    by imparting the comprehensive solutions to the customer queries and concerns. Our strength of listening is what that makes us unique.
    Any complications regarding the HP products including Printer, Computer, Laptop, Tablet, Scanner, Desktop,and Driver
    Support will be dealt with and solved by our Technical Support Specialists.

    ReplyDelete
  88. Thanks for sharing great information. I always love to read and spread this kind of information that is unique and really informative Luxorr Media

    ReplyDelete
  89. To write a dissertation paper is really a tough job. To write it, one needs to have a complete research on a particular topic because its complexity is so high and that's why its demand has been growing steadily. Eventually, it brings a burden for students to complete their dissertation paper with all needed requirements. Students have already a lot of academic pressures and hence they look for online thesis help.

    To help such students, the experts of my assignment help are always there to provide them dissertation paper writing help. Our team has observed all the challenges and difficulties students face while drafting their dissertation papers. To provide the students with much-needed dissertation help, we have developed a wide range of services. If you need help with your dissertation, this is the best place to be.

    ReplyDelete
  90. Get Online Assignment Helper from GotoAssignmentHelp at the Cheapest Rates!
    Assignments are absolute headache for the students given the amount of work that they need to do in order to get the assignment done and this is the reason why Australian assignment help has gained popularity among the present day commerce students. Hence, if you have been looking for the most professional way to get your assignment done within the deadline, avail help with assignment online and be assured of best essay help online service.

    ReplyDelete
  91. Welcome to the Most Official printer support Website. Canon Printer Support Helpline Number USA .here you can Find the best Solutions of Your printer and Driver's issues. We repair all printers brands including Canon printer support and support all printers for a lifetime. Canon is an American multinational company which was founded by Michael SPOTIFY. we have Top technicians of printer support. They will assist you and support your printer by stepwise guidance in all printer issues. they will discuss your other problems with free of cost. and provides you the best ideas that solve your issues very quickly.The Canon printer Technical Helpline Number USA available for 24/7 hours for supporting your printer just dial our Toll-Free +1-800-883-8020.

    ReplyDelete
  92. نحن شركة عالم الصيانة لمكافحة الحشرات بالرياض بفنيين متخصصين فى المكافحة وبافضل الاجهزة والمبيدات الحشرية مع الضمان بعدم عودة الحشرات الى منزلك مرة اخري ويوجد قسم اخر للتنظيف فلل شقق خزانات مجالس سجاد موكيت سيراميك جلى رخام وبلاط ويوجد قسم لنقل الاثاث مع الفك والتركيب والتخزين ويوجد قسم لكشف التسربات والعزل للاسطح والخزانات والمقاولات العامة من بناء ولياسة ودهانات وبلاط وجبسبورد وتسليم مفتاح

    شركة مكافحة الصراصير بالرياض
    شركة مكافحة حشرات بالرياض
    شركة مكافحة النمل الابيض بالرياض
    شركة مكافحة الفئران بالرياض
    شركة مكافحة البق بالرياض
    شركة رش مبيدات بالرياض
    شركة مكافحة النمل الاسود بالرياض

    ReplyDelete
  93. Hi are facing trouble with your printer ? And you want to improve your printer speed in case you can call us our toll free helpline number Hp printer technical support number USA +1-800-883-8020. Here you can get industries expert technician where you can discuss your trouble with our expert.And for more information you can also visit our site https://printersupporthelplinenumber.com/hp-printer-support.html
    Hp Printer Customer Service Number USA,
    Hp Printer Technical Helpline Number USA,
    Hp Printer Help Number USA,,
    Hp Printer Help Desk Number USA,

    ReplyDelete
  94. hp printer in error state Phone Number +1 800 684 5649 provides a wide range of comprehensive online technical support for its users 24/7 and not in any means we are associated with the product manufacturer.

    hp printer in error state

    ReplyDelete

  95. Academic life is the golden time for student. Although, many students have to simultaneously take care of other domestic responsibilities. Most of the students are reluctant to spend several hours sitting in front of laptop and desktops while searching for relative informative study material.
    The problem does not terminate when the relevant information material is gathered. Then, the next set of problem arrives. Even if the relevant material is gathered, presenting the content in an imposing manner to the professor remains a challenge. It is here at Assignment Help serves the qualified assignment writers from top universities in the world who offers assignment help on Math homework help
    online Math homework help
    do my math homework help
    online math homework helper

    ReplyDelete
  96. ماركات الاجهزة المنزلية و مواقع الصيانة الخاص بيهم داخل جمهورية مصر العربية
    توكيل صيانة الاجهزة المنزلية صيانة كريازي صيانة اريستون صيانة سامسونج صيانة وايت بوينت.

    صيانة كريازي
    صيانة اريستون
    صيانة وايت بوينت
    ا صيانة ال جي
    صيانة وايت ويل
    صيانة زانوسي
    صيانة سامسونج
    صيانة يونيفرسال



    ReplyDelete
  97. مميزات
    تركيب السواتر:
    1-تعزل الحرارة والشمس وتوفر الخصوصية.

    2-عزل فناء حديقتك ومنزلك عن الشارع والمارة بالطريق.

    3-حماية المنزل من الرياح الشديدة.
    2-سواتر شينكو
    ساتر الشينكو من أرخص أنواع السواتر حيث يبدأ سعر المتر المربع من 70 ريال.
    مظلات الابواب الخارجية

    ReplyDelete
  98. مظلات سيارات و مظلات خشبية بالرياض مظلات حدائق خشب تصاميم 2019https://alakhtiarumbrellas.com/%d9%85%d8%b8%d9%84%d8%a7%d8%aa-%d8%ae%d8%b4%d8%a8%d9%8a%d8%a9/
    تناسب المظلات المظلات الخشبية الفناء والأماكن الخارجية حيث تقوم المظلات الخشبية بوظيفتها فى التظليل بجانب الشكل الجمالي الذي تمنحه للمكان.

    -تصاميم مظلات حدائق خشبيةمظلات خشبية للحدائق
    نقوم بتركيب سواتر القماش الاسترالي المتوفر يضمان 10 سنوات ونراعي اختيار نوعية قماش مضمونة لا تتأثر باشتداد سرعة الرياح.

    ReplyDelete
  99. This is one of my favorite blogspot site and i read it daily i helped me alot
    Furniture123 Promo Code

    ReplyDelete
  100. Wow this is great article, I just amazed reading it
    Tu Kuja Man Kuja Lyrics

    ReplyDelete
  101. Good post. Clearly written and nice way of expressing the content in a positive thought. Nice research and good work, thanks for sharing! London Tigers Security

    ReplyDelete
  102. Skype Customer Service
    Skype Support number +1-877-606-0409|| Helpline Support
    SKYPE Support number +1-877-606-0409 number USA DAIL assistance available 24*7. Connect SKYPE Support number +1-877-606-0409 is one of the suitable way to connecting to Toll Free number +1-877-606-0409 SKYPE number center and then you can get complete technical help and support. SKYPE Support number is an American multinational company which was founded by Michael SKYPE using its company headquarters in Round Rock, United States of America. Skype Support number software is one of the proven best Antivirus software. If you own a device or system and you are connecting via Skype contact number +1-877-606-0409

    ReplyDelete
  103. Facebook about:-
    FACEBOOK Inc. is associate degree yank transnational conglomerate company headquartered at Whitacre Tower in Downtown metropolis, it's the world's largest telecommunications company, the most important supplier of mobile phonephone services, and therefore the largest supplier of fastened phonephone services within the u. s. through Facebook Support Number +1 877-606-0409 Communications. Since June 14, 2018, it's additionally the parent company of mass media conglomerate WarnerMedia, creating it the world's largest media and recreation company in terms of revenue. As of 2018, Facebook Support Number +1 877-606-0409 is hierarchic #9 on the Fortune five hundred rankings of the most important u. s. companies by total revenue.

    ReplyDelete
  104. What a nice blog! I have enjoyed reading through the article.
    Thanks for your nice informative blog regarding the topic
    My Assignment Help is also share kind of information which is
    is the No. 1 online assignment help in the US, UK and Australia. Now you
    can hire our experts to secure A + grade. We are the most prestigious
    assignment help services in the USA offering expert assistance in various
    disciplines like java, python, c++, C# from 2000+ experts in the US. The continued growth of treat
    assignment help in the industry is a clear indication of our simplicity in
    all areas.
    Need online assignment help, hire our experts and Feel free to get in touch with us at any time of the day or night if you require assistance.
    Assignment Help
    Click Here for more information : ☞

    Java Assignment Help

    ReplyDelete
  105. What a nice blog! I have enjoyed reading through the article.
    Thanks for your nice informative blog regarding the topic
    My Assignment Help is also share kind of information which is
    is the No. 1 online assignment help in the US, UK and Australia. Now you
    can hire our experts to secure A + grade. We are the most prestigious
    assignment help services in the USA offering expert assistance in various
    disciplines like java, python, c++, C# from 2000+ experts in the US. The continued growth of treat
    assignment help in the industry is a clear indication of our simplicity in
    all areas.
    Need online assignment help, hire our experts and Feel free to get in touch with us at any time of the day or night if you require assistance.
    Assignment Help
    Click Here for more information : ☞

    Java Assignment Help

    ReplyDelete
  106. Yahoo is no doubt one of the best web-based service providers among its users. And Yahoo mail is one such service where users have opportunity to share messages with other users efficiently and effectively. However, some of its users are unable to proceed on the Yahoo account recovery process. If you are unable to recover your Yahoo account on your own, you must contact one of our Yahoo experts straight away.

    ReplyDelete
  107. Do you want to recover yahoo password as quickly as possible? Adopt our cutting-edge procedure to recover your account in the shortest possible timeframe. Managing email problems is kind of a tedious task for the new users and they always look out for options that can ease out the things. If you are the one who is experiencing the same issue with this platform, call Yahoo customer care today.

    ReplyDelete
  108. Gmail platform is best known for its easy accessibility and extensive features. There might be a chance you may get the issue of Gmail not receiving emails due to some changes in the configuration. For that, some of its users are complaining on several forums – that, my Gmail is not receiving emails, how to resolve it? You must contact our Gmail expert to fix this sort of issue on time.

    ReplyDelete
  109. Gmail account recovery process is not the tricky one as many of its users would think. Yet, many of its users are complaining on several forums – that, “I want to recover my Gmail account password but unable to do so.” If you have such an issue, you need to contact our Gmail executive to get the methods instantly.

    ReplyDelete
  110. Are you in search of the top assignment help online service? Do you need a facility which can cater to your individual and specific needs? We offer detailed, customized papers, delivered to them within the specified time frame! Place an order today!

    ReplyDelete
  111. Outlook developed by Microsoft giant is a popular email client that helps users to manage their personal information and many more! However, some of its users are getting Outlook send receive error while accessing their accounts. If you are getting such an issue, you must contact our Outlook experts right away.

    ReplyDelete
  112. Children should be made to understand that there will always be laws to be followed even as they grow into adulthood. freelance writer for hire

    ReplyDelete
  113. افضل شركات غسيل وتنظيف الكنب
    شركة تنظيف كنب بالاحساء
    نقدم تنظيف بافضل الاجهزه فى
    تنظيف الكنب وغسيل معا التعقيم

    ReplyDelete
  114. Hey There. I found your weblog the use of msn. That
    is a very smartly written article. I'll make sure to bookmark it and come back to read more of your helpful information. Thanks for the post. I'll definitely comeback.

    are huffy bikes any good

    ReplyDelete
  115. Online prosthetics and orthotics for providing FREE counseling & guidance online ☎️ +91-9818560331. Talk to mobillitysolution for free.Prostheses Parts and Types
    There is a wide variety of prostheses that are designed to function — and in many cases look — like a natural arm, leg, hand, or foot. Although there are many different designs, most have similar parts. These include:
    • A socket into which the stump of the amputated limb fits
    • The suspension, which holds the prosthesis onto the stump
    • The shaft
    • The foot, hand, or hook
    • A covering for cosmetic appearances
    The socket is often lined with foam or silicone to protect the stump. Special socks are also worn over the stump to ensure a proper fit and improve comfort.


    123 6th St. Melbourne, FL 32904
    Phone: +91-9910344331
    Email: info@mobilitysolution.in

    ReplyDelete
  116. شركة كشف تسربات
    شركة فحص فلل بالخبر
    Types of harmful insects
    There are different types of harmful insects, which must be controlled in order to avoid their damages, including:
    Flies: This insect carries many pathogens, such as viruses, bacteria, and helminth eggs, which leads to diseases such as cholera, conjunctivitis, and diarrhea. Decaying.
    شركة عزل اسطح بابها
    شركة كشف تسربات بابها

    ReplyDelete
  117. assignment help
    There are many assignment Help service providers out there in the market but are those service providers Australian based

    companies? Probably not, My Assignment Help has been operating in the market for last 10 years now and we are proud to say

    that we have helped over thousands of students with their essays, case studies assignment help

    ReplyDelete
  118. Latest Jobs in Pakistan where one can find new upcoming career opportunities 2022 from all top companies in Pakistan including multinational, private, government, NGO’s, overseas and others. Jobs pk is Pakistan’s top job search website where job seekers can get access to latest job opportunities of January 2021, December 2020 and November 2020 from top employers in Pakistan, newspapers, classifieds, job boards & company career pages.
    admission

    ReplyDelete


  119. شركة ليلى نقل اثاث دبي هي شركة تقدم خدمات المنزلية و أثاث المكاتب
    و الفنادق داخل الإمارات المتحدة في أي وقت و في كل مكان.
    نقل اثاث دبي

    ReplyDelete
  120. nice http://www.pakistanjobs.pk/deputy-commissioner-district-office-jobs-o1282

    ReplyDelete
  121. شركة نقل اثاث بالرياض 0500091013 ارخص شركة نقل عفش – إدارة سعودية
    تقوم شركة نقل عفش بالرياض بتغليف العفش باعلى واجواد انواع الخامات المستخدمه كالاسترتش نقوم باستخدمه فى
    حالات تخزين العفش حتى لا يودئ الى تلف الاثاث فى حالا ت التخزين لفترات طويله كما نستخدم الكرتون
    المضلع والفوام والبابليز وسلتيب ثميك للف الاثاث وحمايته من التجريح والخدش كما
    تستخدم شركة شركة نقل عفش بالرياض عربيات مجهزه لنقل الاثاث وهناك مقاسات مختلفه من تلك السياره
    تقوم شركة نقل عفش بالرياض بتغليف العفش
    فك وتركيب اثاث المنزل
    تغليف الأثاث
    خدمات التنظيف
    افضل شركة نقل عفش بالرياض
    نقل الأثاث الي أبعد المحافظات و الأماكن
    أفضل و أرخص شركة نقل أثاث بالرياض
    هدف شركة القمة هو راحة العميل من خلال تقديم خدمة شاملة و مميزة بأرقي أسلوب و دون أن يتحمل العميل أي من متاعب النقل فهي تمتلك .
    سيارات مجهزة علي اعلي مستوي المفتوح منها و المغلق .
    عمالة مدربة مكونة من نجاريين و فنيين متميزيين .
    الأوناش الهيدرولكية التي تصل الي الأدوار الشاهقة .
    مجموعة من أكفء قائدي السيارات الحاصلين علي رخص قيادة يستطيعون تحمل القيادة في كافة الطرق و السفر الي أبعد المحافظات .
    لديها ايضا جميع خدمات الفك و التركيب و التغليف و النقل و الرفع والتنزيل ( يدوي _ أوناش هيدروليكية ) ا بواسطة أكبر المتخصصيين و تحت اشراف مجموعة من أكبر المشرفيين .
    افضل شركة تخزين عفش بالرياض
    وكما توفر شركة نقل عفش بالرياض شخص لتنظيم العفش داخل السياره عن طريق وضع الزجاج فى اماكنه
    والرخام فى المكان المخصص لها معنى تلك الكلام ان شركة مفكو ايجيبت تضمن لك توصيل الاثاث
    بدون خدش واحد اوكسر كما اننا لانحصل على اى اموال الا بعد اتمام العملية تماما وبعد ارضاء العميل هدفنا هو
    وصول اثاث الشقق والفيلال والقصور والشركات والفنادق والمحلات الكبراء فى جميع المحافظات بدون خدش واحد فقط.

    كما انه منوف لدى شركتنا خدمة تخزين الاثاث فلدينا الاماكن الجهزه لاستيعاب تخزين الاثاث لاي مده ولاطول فترة يريدها العميل فلدينا الامان المجهز للحفاظ على الاثاث من الرطوبه وتغيير الجو والحشرات لدينا امهر العماله الثي تقوم بخزين الاثاث باحدث الطرق والاساليب

    نقل اثاث بالرياض
    [URL=https://elawaeil.com/%D8%B4%D8%B1%D9%83%D8%A9-%D9%86%D9%82%D9%84-%D8%A3%D8%AB%D8%A7%D8%AB-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6-%D8%B9%D9%85%D8%A7%D9%84%D8%A9-%D9%81%D9%84%D8%A8%D9%8A%D9%86%D9%8A%D8%A9/]نقل اثاث بالرياض[/URL]

    ReplyDelete
  122. Nice Post and Appreciated your support. We are proud that clients hold against using our moving, relocation services through repeat business. Therefore our Moving Services as mentioned below! Furthermore:
    movers and packers in dubai, Movers in Dubai.

    ReplyDelete
  123. شركة كشف تسربات الغاز بالرياض

    شركة تمديد غاز مركزي بالرياض

    افضل شركة تركيب نظام امان الغاز بالرياض

    شركة غاز بالرياض

    شركة تمدبد مواسير غاز بالرياض

    تمديدشبكات الغاز المركزي

    تمديد خطوط الغاز بالرياض

    شركة كشف تسربات الغاز بالرياض

    شركة تمديد غاز مركزي بالرياض

    افضل شركة تركيب نظام امان الغاز بالرياض

    شركة غاز بالرياض

    شركة تمدبد مواسير غاز بالرياض

    تمديدشبكات الغاز المركزي

    تمديد خطوط الغاز بالرياض

    شركة كشف تسربات المياه بالرياض

    شركة عزل خزانات بالرياض

    شركة عزل اسطح بالرياض

    شركة حل ارتفاع فاتورة المياه بالرياض

    شركة عزل فوم بالرياض

    تسليك مجاري بالرياض

    شركة عزل ايبوكسي بالرياض

    عزل مائي بالرياض

    عزل حراري بالرياض

    رش مبيدات الحشرات بالرياض

    مكافحة الحشرات بالرياض

    شركة كشف تسربات المياه بالرياض

    شركة عزل خزانات بالرياض

    شركة عزل اسطح بالرياض

    شركة حل ارتفاع فاتورة المياه بالرياض

    شركة عزل فوم بالرياض

    تسليك مجاري بالرياض

    شركة عزل ايبوكسي بالرياض

    عزل مائي بالرياض

    عزل حراري بالرياض

    رش مبيدات الحشرات بالرياض

    مكافحة الحشرات بالرياض

    شركة كشف تسربات المياه

    شركة عزل فوم بخميس مشيط

    شركة عزل فوم بابها 

    شركة عزل فوم بالقصيم 

    شركة عزل اسطح جيازان

    شركة عوازل بالرياض

    شركة عوازل بابها 

    شركة عوازل بعسير

    شركة عزل فوم بخميس مشيط

    شركة عزل فوم بابها 

    شركة عزل فوم بالقصيم 

    شركة عزل اسطح جيازان

    شركة عوازل بالرياض

    شركة عوازل بالرياض

    شركة عوازل بعسير

    شركة كشف تسربات المياه بجدة

    شركة كشف تسربات المياه بجدة

    تسليك مجاري بالضغط




    تسليك مجاري بالضغط


    ReplyDelete
  124. We are the best packers and movers in dubai. In the age in which it is evolving rapidly,
    you may have to change your home to make your lifestyle better.
    movers in dubai
    movers in ajman
    movers in sharjah

    ReplyDelete
  125. Fabulous post, you have denoted out some fantastic points, I likewise think this s a very wonderful website. I will visit again for more quality contents and also, recommend this site to all. Thanks. 2022 status video download

    ReplyDelete
  126. Buy from the best earphones under 2000 wireless in India for all types of people get it now. wireless earphones under 2000

    ReplyDelete
  127. Apply for latest jobs for modelling, singing, acting, painting, blogging, video editor jobs, acting jobs stylist jobs in India. Hire freelance models do modelling, makeup artists for wedding or events makeup, stylist for fashion show and anchor for anchoring. freelance model

    ReplyDelete
  128. مرحبا نحن شركة جولدن دريم مهمتنا هي مساعدة أصحاب المنازل والفلل والمنشآت على اتمام اعمال التنظيف والتعقيم بسهولة وبأسعار مناسبة .
    نقدم خدمة تنظيف المنازل والفلل في السبع امارات اذا كنت تبحث عن شركة تنظيف في الشارقة نقدم جميع خدمات التنظيف بإمارة الشارقة بالامارات .
    كما تقدم شركة تنظيف في عجمان جميع خدمات التنظيف بإمارة عجمان بالامارات.
    وتقوم الشركة بتنظيف المجالس والكنب شركة تنظيف في دبي كما تقدم شركة جولدن دريم جميع خدمات التنظيف بإمارة أبوظبي وتعد افضل شركة تنظيف في ابوظبي كما تقدم شركة تنظيف في راس الخيمة جميع خدمات التنظيف والتعقيم للمنازل والفلل برأس الخيمة بالإمارات كما تقدم شركة تنظيف في الفجيرة جميع خدمات التنظيف في الفجيرة بدولة الإمارات العربية المتحدة كما تقدم شركة تنظيف في أم القيوين جميع خدمات التنظيف للمنازل بإمارة الفجيرة بالإمارات كما تقدم شركة تنظيف في العين جميع خدمات التنظيف والتعقيم للمنازل والفلل بإمارة العين بأبو ظبي بالإمارات العربية المتحدة .

    ReplyDelete
  129. This article is great, thank you for your creativity.
    I was also looking for pornographic content and came across these great sites.
    صور سكس
    تحميل نيك
    تحميل سكسي نار

    ReplyDelete

  130. عملية شفط وشد البطن
    شفط الدهون- عمليات شفط الدهون وشد البطن يتم اجراءها جراح يزيلها بعمل شق في الجلد بأنبوب شفط وتفكيك للخلية الدهنية، لشد طبقات الجلد المترهلة.
    عمليات السمنة في تركيا
    تعتبر عمليات حقن جدار المعدة بمادة البوتكس من اشهر العمليات التجميلية في تركيا وتمثل حلا لمشاكل السمنة ممكن استخدامه لإزالة تجاعيد الوجه.
    زراعة الاسنان
    زراعة الاسنان عملية يحقن المريض بمخدر بواسطة ابرة تخدير في مناطق دواعمة الاسنان. يجب على العظم ان يكون مستعد لتلقي عملية الزرع ويثبت بمسامير.
    زراعة الشعر في تركيا
    زراعة الشعر للرجال في تركيا افضل التقنيات عندما يقوم الجراح بنقل بصيلات الشعر من جوانب ومؤخرة فروة الرأس والتى يطلق عليها المنطقة المانحة شعر.
    عملية تجميل الانف
    عملية تجميل الانف بخطوات جراحية وتعمل على تغيير من شكل الانف والمساعدة على التنفس ويستخدم مخدر موضعي ومخدر الكامل لتخدير مناطق الوجه بالكامل.
    شفط الدهون- عمليات شفط الدهون وشد البطن يتم اجراءها جراح يزيلها بعمل شق في الجلد بأنبوب شفط وتفكيك للخلية الدهنية، لشد طبقات الجلد المترهلة. تعتبر عمليات حقن جدار المعدة بمادة البوتكس من اشهر العمليات التجميلية في تركيا وتمثل حلا لمشاكل السمنة ممكن استخدامه لإزالة تجاعيد الوجه. زراعة الاسنان عملية يحقن المريض بمخدر بواسطة ابرة تخدير في مناطق دواعمة الاسنان. يجب على العظم ان يكون مستعد لتلقي عملية الزرع ويثبت بمسامير. زراعة الشعر للرجال في تركيا افضل التقنيات عندما يقوم الجراح بنقل بصيلات الشعر من جوانب ومؤخرة فروة الرأس والتى يطلق عليها المنطقة المانحة شعر. عملية تجميل الانف بخطوات جراحية وتعمل على تغيير من شكل الانف والمساعدة على التنفس ويستخدم مخدر موضعي ومخدر الكامل لتخدير مناطق الوجه بالكامل.

    ReplyDelete
  131. Can't afford to hire an expert for your assignment writing help online? Numerous websites and portals are the best assignment writing service available on the internet, but are they too costly to afford? Allowing money to become a barrier between you and high grades is not a smart idea. Many professionals are now offering big discounts and incentives for assignment writing help! So why are you wasting your time thinking? Simply take advantage of the offers and get customized assignment Help adelaide that will improve your academic performance and allow you to expand your abilities.
    introduction to Public Economics
    A Synopsis on Financial Accounting
    Discussion on Object-Oriented Programming Languages

    ReplyDelete
  132. If you have no time Use Assignment Help in Australia Services for assistance. Writing assignments is difficult, and mostly people find it exhausting. Connect with our Online Assignment Help

    ReplyDelete
  133. Peace be upon you. Thank you for the valuable information you provide us. It is really useful. We are honored to visit our website
    Al-Ajmi Foundation A group of the best cleaning companies and moving furniture inside and outside Riyadh. Experience in the field for more than ten years. We have specialized and trained workers to the fullest to carry out tasks without Damage anything in the fastest time and at the lowest cost. Our first and last goal is customer satisfaction, and one of the most important services we provide
    Moving furniture in Al-Kharj and Riyadh, cleaning councils, detecting water leaks, pest control, cleaning tanks and isolating tanks, wiring acid sewers, cleaning houses We are honored to visit our site

    شركه تعقيم منازل بالرياض
    شركة كشف تسربات المياه بالخرج
    شركة تنظيف منازل بالخرج
    شركة تنظيف مجالس بالرياض
    شركة تسليك مجاري بالاسيد
    شركة عزل خزانات بالرياض
    شركة كشف تسربات المياه بالرياض
    شركة نقل اثاث بالخرج
    شركة مكافحة حشرات بالرياض
    شركة تنظيف منازل بالرياض مؤسسه العجمي
    شركة تنظيف خزانات بالرياض

    ReplyDelete
  134. Best-quality Online Assignment Writing Help is a common keyword in the search engine to find help in assignment writing. There are various platforms that assist students by writing their assignments for them. Global Assignment Help services offer content on a huge range of subjects in different formats. Therefore, Global Assignment Expert play a major role in student's life.

    ReplyDelete
  135. Amazing writeup. I enjoyed reading it. Keep sharing .assignment helper online

    ReplyDelete
  136. Global Assignment Help is an online platform that offers complete solutions to students. They provide various facilities such as Well structured content, Well qualified authors, High-quality writing skills, Plagiarism free content,24X7 help, Friendly customer care support, Submission of assignments on time, Trustworthy websites, Affordable prices, and many more. Moreover, its student centric website is nothing less than a miracle in the life of students.

    ReplyDelete
  137. pranic healing
    Explore the holistic approach of Healing Buddha, where emotional, mental, and spiritual well-being are equally prioritized in the quest for overall health and balance.

    ReplyDelete