Wednesday, October 29, 2014

A taste of Rust (yum) for C/C++ programmers

If, like me, you've been frustrated with the status quo in systems languages, this article will give you a taste of why Rust is so exciting. In a tiny amount of code, it shows a lot of ways that Rust really kicks ass compared to C and C++. It's not just safe and fast, it's a lot more convenient.

Web browsers do string interning to condense the strings that make up the Web, such as tag and attribute names, into small values that can be compared quickly. I recently added event logging support to Servo's string interner. This will allow us to record traces from real websites, which we can use to guide further optimizations.

Here are the events we can log:

#[deriving(Show)]
pub enum Event {
    Intern(u64),
    Insert(u64, String),
    Remove(u64),
}

Interned strings have a 64-bit ID, which is recorded in every event. The String we store for "insert" events is like C++'s std::string; it points to a buffer in the heap, and it owns that buffer.

This enum is a bit fancier than a C enum, but its representation in memory is no more complex than a C struct. There's a tag for the three alternatives, a 64-bit ID, and a few fields that make up the String. When we pass or return an Event by value, it's at worst a memcpy of a few dozen bytes. There's no implicit heap allocation, garbage collection, or anything like that. We didn't define a way to copy an event; this means the String buffer always has a unique owner who is responsible for freeing it.

The deriving(Show) attribute tells the compiler to auto-generate a text representation, so we can print an Event just as easily as a built-in type.

Next we declare a global vector of events, protected by a mutex:

lazy_static! {
    pub static ref LOG: Mutex<Vec<Event>>
        = Mutex::new(Vec::with_capacity(50_000));
}

lazy_static! will initialize both of them when LOG is first used. Like String, the Vec is a growable buffer. We won't turn on event logging in release builds, so it's fine to pre-allocate space for 50,000 events. (You can put underscores anywhere in a integer literal to improve readability.)

lazy_static!, Mutex, and Vec are all implemented in Rust using gnarly low-level code. But the amazing thing is that all three expose a safe interface. It's simply not possible to use the variable before it's initialized, or to read the value the Mutex protects without locking it, or to modify the vector while iterating over it.

The worst you can do is deadlock. And Rust considers that pretty bad, still, which is why it discourages global state. But it's clearly what we need here. Rust takes a pragmatic approach to safety. You can always write the unsafe keyword and then use the same pointer tricks you'd use in C. But you don't need to be quite so guarded when writing the other 95% of your code. I want a language that assumes I'm brilliant but distracted :)

Rust catches these mistakes at compile time, and produces the same code you'd see with equivalent constructs in C++. For a more in-depth comparison, see Ruud van Asseldonk's excellent series of articles about porting a spectral path tracer from C++ to Rust. The Rust code performs basically the same as Clang / GCC / MSVC on the same platform. Not surprising, because Rust uses LLVM and benefits from the same backend optimizations as Clang.

lazy_static! is not a built-in language feature; it's a macro provided by a third-party library. Since the library uses Cargo, I can include it in my project by adding

[dependencies.lazy_static]
git = "https://github.com/Kimundi/lazy-static.rs"

to Cargo.toml and then adding

#[phase(plugin)]
extern crate lazy_static;

to src/lib.rs. Cargo will automatically fetch and build all dependencies. Code reuse becomes no harder than in your favorite scripting language.

Finally, we define a function that pushes a new event onto the vector:

pub fn log(e: Event) {
    LOG.lock().push(e);
}

LOG.lock() produces an RAII handle that will automatically unlock the mutex when it falls out of scope. In C++ I always hesitate to use temporaries like this because if they're destroyed too soon, my program will segfault or worse. Rust has compile-time lifetime checking, so I can do things that would be reckless in C++.

If you scroll up you'll see a lot of prose and not a lot of code. That's because I got a huge amount of functionality for free. Here's the logging module again:

#[deriving(Show)]
pub enum Event {
    Intern(u64),
    Insert(u64, String),
    Remove(u64),
}

lazy_static! {
    pub static ref LOG: Mutex<Vec<Event>>
        = Mutex::new(Vec::with_capacity(50_000));
}

pub fn log(e: Event) {
    LOG.lock().push(e);
}

This goes in src/event.rs and we include it from src/lib.rs.

#[cfg(feature = "log-events")]
pub mod event;

The cfg attribute is how Rust does conditional compilation. Another project can specify

[dependencies.string_cache]
git = "https://github.com/servo/string-cache"
features = ["log-events"]

and add code to dump the log:

for e in string_cache::event::LOG.lock().iter() {
    println!("{}", e);
}

Any project which doesn't opt in to log-events will see zero impact from any of this.

If you'd like to learn Rust, the Guide is a good place to start. We're getting close to 1.0 and the important concepts have been stable for a while, but the details of syntax and libraries are still in flux. It's not too early to learn, but it might be too early to maintain a large library.

By the way, here are the events generated by interning the three strings foobarbaz foo blockquote:

Insert(0x7f1daa023090, foobarbaz)
Intern(0x7f1daa023090)
Intern(0x6f6f6631)
Intern(0xb00000002)

There are three different kinds of IDs, indicated by the least significant bits. The first is a pointer into a standard interning table, which is protected by a mutex. The other two are created without synchronization, which improves parallelism between parser threads.

In UTF-8, the string foo is smaller than a 64-bit pointer, so we store the characters directly. blockquote is too big for that, but it corresponds to a well-known HTML tag. 0xb is the index of blockquote in a static list of strings that are common on the Web. Static atoms can also be used in pattern matching, and LLVM's optimizations for C's switch statements will apply.

185 comments:

  1. Found your blog. Its really have good information on C++ programming. Really liked and appreciate it. Thank you for all the information.

    ReplyDelete
    Replies
    1. I'm so exited to share my testimonies about the Good Work of Dr.Ehiaguna who get me cured from herpes simplex virus (HSV1&2) with his herbs, I never thought that I will live on earth before the year runs out. I have been suffering from herpes, I had spent a lot of money going from one Hospital to another looking for way to get rid of this disease, the hospital have been my home everyday residence. Constant checks up have been my hobby not until this faithful day, I was searchingthrough the internet, I saw a testimony on how Dr. Ehiaguna helped someone in curing his herpes disease using his healingHerbs, quickly I copied his email just to give him a try I spoke to him, he told me that he is going to provide the herbal cure to me, which hedid, after i receive his herbs and i take it as instructed i was cure permanently from herpes my herpes disease was gone. so I decided to share my testimony, that nothing is impossible with God, God use a man to healed me. No matter what you are passing through, no matter how deadly the sickness is and no matter what the situation is God that did mine is still going to do yours, people suffering from herpes, brain tumor, kidney disease, pcos, AIDS, ALS,copd, asthma, athritis,herpes, Cancer,Hpv, any kind of disease, you can reach him now via ? Gmail address: drehiaguna@gmail.com or whatsapp +2348073908953 and you will be the next to testify of his great work.

      Delete
    2. Hello! I'm very excited to inform everyone that I'm completely cured from my HSV 1&2 recently. I have used Oregano oil, Coconut oil, Acyclovir, Valacyclovir, Famciclovir, and some other products and it's really help during my outbreaks but I totally got cured! from my HSV with a strong and active herbal medicine ordered from a powerful herbalist and it completely fought the virus from my nervous system and I was tested negative after 12 days of using the herbal medicine. I'm here to let y'all know that herpes virus has a complete cure, I got rid of mine with the help of Dr ehiaguna and his herbal exploit. Contact him via email:drehiaguna@gmail.com and as well write him on WhatsApp +2348073908953 you will be the next to testify of his great work.

      Delete
    3. Never give up in life they all say no cure to HSV 2 which is a big lie I have pass through many process also i never believe there is really cure to HERPES until I meet Dr.Ehiaguna the doctor that have been helping many people for many years, I come across this doctor online when I was searching for cure online I found out about this man, and to my greatest surprise this man have the herbal medicine which I have been looking for years I explain my problem to him through the email I found on someone who testify about him also, Dr.Ehiaguna write me a reply and explain how the process work so after ordering for the medicine I got it within 4 days and I took it according to the way Dr.Ehiaguna instructed, I was so happy after two week I took the medicine there was very big change in my health when I was done with the process I go for test, I found out I am negative that was the day I have the tears of joy you can also get in contact with my doctor through his email now drehiaguna@gmail.com or you can also WhatsApp him +2348073908953. And He also have herbs medicine to cured the following diseases; eczema,urethra wart,chronic problems.Herpes, Cancer, Als,Hepatitis, Diabetes, HPV,Infections,ulcer  ETC

      Delete
    4. It's no longer doubt when it comes to hacking
      "Mills Dachin" has proven more than expectations.
      We are hackers for Hire, try us we delivered 100%✓guarranted

      * iOS/windows/Android Phone Hacking
      * All kind of loans
      *University Grades
      *Iclouds breaching
      *Criminal Records
      *Blank ATM Cards
      *Binary Recoveries
      *BTC Mining
      * Cyber Scam recovery
      etc...!!!

      All you need do just Email:- pointekhack@gmail.com
      /hyperhackerone@gmail.com/cyberhackertap@gmail.com
      /phdatabasesolution@gmail.com

      Delete
    5. Natural herbs have cured so many illness that drugs and injection can't
      cure. I've seen the great importance of natural herbs and the wonderful
      work natural herbs have done in people's lives. i read a lot of people's
      testimonies online on how they were cured of Herpes, HIV, Diabetics,
      Lymphoma, Fibroid, Cancer etc by Dr. VOODOO herbal medicine, so i decided
      to contact the doctor because i know nature has the power to heal anything.
      I was diagnosed with HIV for the past 7 years but Dr. VOODOO cured me with
      his herbs and i referred my aunt and her husband to him immediately because
      they were both suffering from herpes but to God be the glory, they were
      cured too .I know is hard to believe but am a living testimony. There is no
      harm trying herbs. He is also a spell caster, he cast spell to restore
      broken marriages and he cast good luck spells to prosper and excel in life.
      Contact Dr. VOODOO on: /WhatsApp no:or call him +2348140120719 OR email him
      at: voodoospelltemple66@gmail.com

      Delete
    6. AN AMAZING REMEDY FOR HSV1&2. It's so unbelievable how wonderful herbs can be. when I first saw a post that said that a man have a perfect cure for HSV1&2, I was like could this be real or some kind of joke but due to my frustration and needed to be cured I took the risk of contacting the herbal doctor on email and he gave me reasons to believe he is a real herbalist so I followed all his instructions and he sent me the herbs through UPS and gave me prescription which i rightfully followed. Now all my test results shows am HSV1&2 Negative after taking the herbs and i have done test on two several occasion in different hospitals which i needed to be sure before posting this and the results are all Negative and the symptoms of HSV is completely out of my body and my doctor confirm this with me as well. Dr Osato herbs is the solution to HSV1&2 and other viruses. You can contact him on email: osatoherbalcure@gmail.com or WhatsApp +2347051705853 to get the herbs from him. I will continue sharing this on every platform for people to see and also get cured from HSV1&2, HPV and HIV with Dr Osato herbs. Dr Osato website is osatoherbalcure.wordpress.com

      Delete
  2. This comment has been removed by the author.

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

    ReplyDelete
    Replies
    1. It's no longer doubt when it comes to hacking
      "Mills Dachin" has proven more than expectations.
      We are hackers for Hire, try us we delivered 100%✓guarranted

      * iOS/windows/Android Phone Hacking
      * All kind of loans
      *University Grades
      *Iclouds breaching
      *Criminal Records
      *Blank ATM Cards
      *Binary Recoveries
      *BTC Mining
      * Cyber Scam recovery
      etc...!!!

      All you need do just Email:- pointekhack@gmail.com
      /hyperhackerone@gmail.com/cyberhackertap@gmail.com
      /phdatabasesolution@gmail.com

      Delete
  4. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. It's no longer doubt when it comes to hacking
      "Mills Dachin" has proven more than expectations.
      We are hackers for Hire, try us we delivered 100%✓guarranted

      * iOS/windows/Android Phone Hacking
      * All kind of loans
      *University Grades
      *Iclouds breaching
      *Criminal Records
      *Blank ATM Cards
      *Binary Recoveries
      *BTC Mining
      * Cyber Scam recovery
      etc...!!!

      All you need do just Email:- pointekhack@gmail.com
      /hyperhackerone@gmail.com/cyberhackertap@gmail.com
      /phdatabasesolution@gmail.com

      Delete
  5. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. It's no longer doubt when it comes to hacking
      "Mills Dachin" has proven more than expectations.
      We are hackers for Hire, try us we delivered 100%✓guarranted

      * iOS/windows/Android Phone Hacking
      * All kind of loans
      *University Grades
      *Iclouds breaching
      *Criminal Records
      *Blank ATM Cards
      *Binary Recoveries
      *BTC Mining
      * Cyber Scam recovery
      etc...!!!

      All you need do just Email:- pointekhack@gmail.com
      /hyperhackerone@gmail.com/cyberhackertap@gmail.com
      /phdatabasesolution@gmail.com

      Delete
  6. This comment has been removed by the author.

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

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

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

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

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

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

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

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

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

    ReplyDelete

  16. Very interesting. If you have paid the IRS Penalties, we can get them back for you. Head over to http://refundproject.com or call us at: 888-659-0588.

    ReplyDelete
  17. Packers and Movers Indore - Call 09303355424, Local Household Shifting in Indore, Domestic Home Relocation from Indore. International Home Relocation from Indore, Office Shifting within Indore, Car and Bike Transportation from Indore, Safe Packing and Moving Services,
    Best Packers and Movers Indore
    Best Packers and Movers Gurgaon
    Best Packers and Movers Kolkata
    Best Packers and Movers Mumbai
    Best Packers and Movers Bhopal
    Best Packers and Movers Delhi
    Best Packers and Movers Jaipur
    Best Packers and Movers Raipur
    Best Packers and Movers Pune
    Best Packers and Movers Ahmedabad

    ReplyDelete
  18. I do not even know how I ended up here, but I thought this post was great.I do not know who you are but certainly you’re going to a famous blogger if you are not already 😉 Cheers!
    VTU Notes

    ReplyDelete
  19. kajal-raghwani-biography

    very nice post..
    I like your blog..
    I read regularly

    ReplyDelete
  20. buy social media likes, views, followers through hgfollowers.
    buy youtube subscribers


    buy youtube views



    buy social media likes, views, followers through hgfollowers
    buy youtube views
    buy youtube views

    ReplyDelete
  21. i am a programmer and i am not good in other programs as i specialized on creating apps

    ReplyDelete
  22. Highly descriptive blog, I like it a lot! Thanks for sharing. www.gumawawebsite.blogspot.com

    ReplyDelete
  23. Optimize your twitter profile,buy twitter followers at an affordable price.

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

    ReplyDelete
  25. Increase your twitter retweet, buy twitter retweet at an affordable price with 100% real and safe.

    ReplyDelete
  26. Get the world class design and a specialist in graphic design services and customized package as per your business need in Glasglow,U.K. with leading web design company in Glasglow. CTR Global offers full web design and web development services. Make your website more attractive.




    ReplyDelete
  27. Get the ideas and concepts of one of the best vastu consultant in kolkata, with leading vastu consultant Shri Astrologer.

    ReplyDelete
  28. Very interesting, thankyou for sharing this blog
    If you want some vastu consultancy, get the best online vastu consultancy,vastu consultant in noida

    ReplyDelete
  29. clicks bazaar is the best social media marketing platform to grow up your product & services Social Media Marketing Ahmedabad

    ReplyDelete
  30. If you have any questions regarding canon wireless printer setup
    problem or if you are still experiencing some annoying printer problems then just call us +1 800-684-5649

    ReplyDelete
  31. How can I explain this to the world that there is a man who can cure HERPES, I was diagnosed for the past 5 mouth I have being into HERPES since 5 mouth, so I decide to look for help in the internet then I found a post write about this great man called DR. Agbonhale , people say good thing about him that this man have cured, a lot of people in the internet, him has power's to cure HSV1 AND HSV2 I don’t believe that there is a cure for Herpes Simplex Virus because though there is no cure for herpes that what I have in mind HERPES had no cure well , my HERPES is negative through the using of herbal cured of dr agbonhale , I contacted this man for help because of what i see in the internet. if you need his cured just email him now on dragbonhaleherbalhome@gmail.com , thank you DR. i will never stop shearing you testimony DR. Agbonhale . him Can as well CURE THE FOLLOWING DISEASE:-1, HIV/AIDS, 2, Diseases of the hear 3, Malignant tumors 4. Cardiovascular diseases 5. Diabetes mellifluous 6.Influenza and pneumonia 7.Alzheimer's disease 8. hsv1 - hsv2. If you need LOVE SPELL. E.T.C contact him dragbonhaleherbalhome@gmail.com or you whatsapp him on +2349073130326..

    ReplyDelete
  32. Ae clicks is an award-winning social media marketing dubai. Social media is all about connecting and engaging with an audience. You can use it to target a specific audience – no matter how big or small.

    ReplyDelete
  33. اشكال بلاط الحوش تراكوتا من الانواع المميزة
    شركة نقل اثاث بابها
    شركة تنظيف بحفر الباطن

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

    المواصفات التي يمتلكها البلاط و السيراميك الذي يتواجد لدينا

    ReplyDelete
  34. Herpes is a serious and recurring disease which can't be cured through drugs or injections by the American doctors but the best way to deal with Herpes is by taking natural herbs medicine for it,  I have read about DR odoma the great herbalist doctor who cure me from herpes  with his powerful herbal medicine.  i contacted him to know how he can help me and he told me never to worry that he will help me with the natural herbs from God!after 2 days of contacting him, he told me that the cure has been ready and he sent it to me via UPS SPEED POST and it got to me after 3 days!i used the medicine as he instructed me (MORNING and EVENING) and i was cured!its really like a dream but i am so happy!   for the people suffering from the following diseases, Cancer, hypothyroidism, Herpes, COPD, HIV, Arthritis, Hpv, Infections,Liver Disease, Autoimmune Diseases, Parkinson's disease,Lupus Canker sore and more should contact him for his herbal medicine because i am a living testimony and i was cured of herpes and his medicine is legit.  i sent him what he requested and he sent me his medicine which i took for 3 good weeks and today am out here with negative result. when i went for test i was so happy after going through his medication. you can reach him through his email drodomasolutionhome20@gmail.com or call whatsapp number:+2348100649947 he will help you out.  

    ReplyDelete
  35. I rarely share my story with people, not only because it put me at the lowest point ever but because it made me a person of ridicule among family and friends. I put all I had into Binary Options ($690,000) after hearing great testimonies about this new investment

     strategy. I was made to believe my investment would triple, it started good and I got returns (not up to what I had invested). Gathered more and involved a couple family members, but I didn't know I was setting myself up for the kill, in less than no time all we had put ($820,000) was gone. It almost seem I had set them up, they came at me strong and hard. After searching and looking for how to make those scums pay back, I got introduced to maryshea03@gmail.com to WhatsApp her +15623847738.who helped recover about 80% of my lost funds within a month.

    ReplyDelete
  36. I rarely share my story with people, not only because it put me at the lowest point ever but because it made me a person of ridicule among family and friends. I put all I had into Binary Options ($690,000) after hearing great testimonies about this new investment

     strategy. I was made to believe my investment would triple, it started good and I got returns (not up to what I had invested). Gathered more and involved a couple family members, but I didn't know I was setting myself up for the kill, in less than no time all we had put ($820,000) was gone. It almost seem I had set them up, they came at me strong and hard. After searching and looking for how to make those scums pay back, I got introduced to maryshea03@gmail.com to WhatsApp her +15623847738.who helped recover about 80% of my lost funds within a month.

    ReplyDelete
  37. I have been suffering from (HERPES) disease for the last four years and had constant pain, especially in my knees. During the first year, I had faith in God that I would be healed someday.This disease started to circulate all over my body and I have been taking treatment from my doctor, a few weeks ago I came on search on the internet if I could get any information concerning the prevention of this disease, on my search I saw a testimony of someone who has been healed from (Hepatitis B and Cancer) by this Man Dr. Silver and she also gave the email address of this man and advise we should contact him for any sickness that he would be of help, so I wrote to Dr. Silver telling him about my (HERPES Virus) he told me not to worry that I was going to be cured!! hmm i never believed it,, well after all the procedures and remedy given to me by this man few weeks later I started experiencing changes all over me as the Dr. assured me that I have cured, after some time i went to my doctor to confirmed if I have been finally healed behold it was TRUE, So friends my advice is if you have such sickness or any other at all you can email Dr. Silver (drsilverhealingtemple@gmail.com) sir I am indeed grateful for the help I will forever recommend you to my friends!!! with your lovely Email Address ( drsilverhealingtemple@gmail.com or whatsapp him on +2348123877102

    ReplyDelete
  38. Your article is so good very Impressive and clickable post.
    if you want to get online astrology consultation Services. so click the link and get it.

    ReplyDelete
  39. I rarely share my story with people, not only because it put me at the lowest point ever but because it made me a person of ridicule among family and friends. I put all I had into Binary Options ($690,000) after hearing great testimonies about this new investment

     strategy. I was made to believe my investment would triple, it started good and I got returns (not up to what I had invested). Gathered more and involved a couple family members, but I didn't know I was setting myself up for the kill, in less than no time all we had put ($820,000) was gone. It almost seem I had set them up, they came at me strong and hard. After searching and looking for how to make those scums pay back, I got introduced to maryshea03@gmail.com to WhatsApp her +15623847738.who helped recover about 80% of my lost funds within a month.

    ReplyDelete
  40. Ctr Global is a perfect Digital Marketing Company in London. Have Lots of Professionals in Different Fields. and Strategies For Your Business. We spend time understanding your products and services The Famous and Experienced

    ReplyDelete
  41. I'm so exited to share my testimonies about the Good Work of Dr.Ehiaguna who get me cured from herpes simplex virus (HSV1&2) with his herbs, I never thought that I will live on earth before the year runs out. I have been suffering from herpes, I had spent a lot of money going from one Hospital to another looking for way to get rid of this disease, the hospital have been my home everyday residence. Constant checks up have been my hobby not until this faithful day, I was searchingthrough the internet, I saw a testimony on how Dr. Ehiaguna helped someone in curing his herpes disease using his healingHerbs, quickly I copied his email just to give him a try I spoke to him, he told me that he is going to provide the herbal cure to me, which hedid, after i receive his herbs and i take it as instructed i was cure permanently from herpes my herpes disease was gone. so I decided to share my testimony, that nothing is impossible with God, God use a man to healed me. No matter what you are passing through, no matter how deadly the sickness is and no matter what the situation is God that did mine is still going to do yours, people suffering from herpes, brain tumor, kidney disease, pcos, AIDS, ALS,copd, asthma, athritis,herpes, Cancer,Hpv, any kind of disease, you can reach him now via ? Gmail address: drehiaguna@gmail.com or whatsapp +2348073908953 and you will be the next to testify of his great work.

    ReplyDelete
  42. Hello! I'm very excited to inform everyone that I'm completely cured from my HSV 1&2 recently. I have used Oregano oil, Coconut oil, Acyclovir, Valacyclovir, Famciclovir, and some other products and it's really help during my outbreaks but I totally got cured! from my HSV with a strong and active herbal medicine ordered from a powerful herbalist and it completely fought the virus from my nervous system and I was tested negative after 12 days of using the herbal medicine. I'm here to let y'all know that herpes virus has a complete cure, I got rid of mine with the help of Dr ehiaguna and his herbal exploit. Contact him via email:drehiaguna@gmail.com and as well write him on WhatsApp +2348073908953 you will be the next to testify of his great work.

    ReplyDelete
  43. Permainan tembak ikan adalah permainan yang paling rame orang mainkan, apalagi jika pelayanannya yang sangat memuaskan bagi anda tentunya kalian pasti akan merasa sangat puas juga kan ?, bagi kalian yang sangat menyukai permainan tembak ikan bisa datang ke situs kami :)

    layanan livechat joker123

    livechat joker123


    joker123 deposit 25rb

    joker123 deposit pulsa

    deposit slot joker123 ovo

    livechat joker123


    login joker388 slot apk

    daftar akun joker388

    download aplikasi joker388 apk

    aplikasi joker388 apk


    login joker388


    joker123 deposit via pulsa

    deposit joker123 pulsa


    deposit joker388 pulsa

    deposit slot pulsa

    deposit slot aplikasi ovo


    ReplyDelete
  44. مهمترین مرحله از طراحی اپ اندروید و iOS، چگونگی انتشار آنها در پلتفرم های معتبری مانند App Store و play Store می باشد. ما در شرکت الو اپلیکیشن با داشتن تمامی گواهی ها و اکانت های رسمی اپل و گوگل این امکان را داریم تا بدون اتلاف وقت و هزینه، اپلیکیشن iOS و اندروید نهایی را در پایدارترین حالت ممکن در بازار تجارت الکترونیک عرضه نماییم.
    اصول User-friendly در طراحی اپلیکیشن موبایل
    اپلیکیشن پرداخت آنلاین

    ReplyDelete
  45. Never give up in life they all say no cure to HSV 2 which is a big lie I have pass through many process also i never believe there is really cure to HERPES until I meet Dr.Ehiaguna the doctor that have been helping many people for many years, I come across this doctor online when I was searching for cure online I found out about this man, and to my greatest surprise this man have the herbal medicine which I have been looking for years I explain my problem to him through the email I found on someone who testify about him also, Dr.Ehiaguna write me a reply and explain how the process work so after ordering for the medicine I got it within 4 days and I took it according to the way Dr.Ehiaguna instructed, I was so happy after two week I took the medicine there was very big change in my health when I was done with the process I go for test, I found out I am negative that was the day I have the tears of joy you can also get in contact with my doctor through his email now drehiaguna@gmail.com or you can also WhatsApp him +2348073908953. And He also have herbs medicine to cured the following diseases; eczema,urethra wart,chronic problems.Herpes, Cancer, Als,Hepatitis, Diabetes, HPV,Infections,ulcer  ETC

    ReplyDelete
  46. I want to give a testimony about my diabetes virus that was cured by a great spell caster. Since last 4 years I have being a diabetes patient. I never think I live long again and am so greatful about him DR. Idahosa who help me cured my diabetes last 3 weeks. I was in a great pain so I told one of my best friends; he told me that there is a great spell caster that can cure my VIRUS. I asked her if she had his email, she gave me his email, I emailed him he talked to me and he perform the necessary rituals and he told me that after two weeks I should go for a test. Which I did, when the doctor told me that am now cured from diabetes I couldn’t believe myself I went to see another doctor the result was still the same, I was human on planet earth, so I emailed him and thanked him. Please if you are having a similar problem please visit him/contact him at dr.idahosasolutionhome44@gmail.com or call and WhatsApp him.. +2349052063502 ALL THANKS TO DR. Idahosa.................GOOGLUCK

    ReplyDelete
  47. I want to give a testimony about my diabetes virus that was cured by a great spell caster. Since last 4 years I have being a diabetes patient. I never think I live long again and am so greatful about him DR. Idahosa who help me cured my diabetes last 3 weeks. I was in a great pain so I told one of my best friends; he told me that there is a great spell caster that can cure my VIRUS. I asked her if she had his email, she gave me his email, I emailed him he talked to me and he perform the necessary rituals and he told me that after two weeks I should go for a test. Which I did, when the doctor told me that am now cured from diabetes I couldn’t believe myself I went to see another doctor the result was still the same, I was human on planet earth, so I emailed him and thanked him. Please if you are having a similar problem please visit him/contact him at dr.idahosasolutionhome44@gmail.com or call and WhatsApp him.. +2349052063502 ALL THANKS TO DR. Idahosa.................GOOGLUCK

    ReplyDelete
  48. i was reading this content. its very helpfull for me.
    buy instagram followers usa

    ReplyDelete
  49. On the off chance that you have any printer issue and you can't fix your printer issue and you need any extrnal assistace then dont get confuesed about it Call at +1-844-753-9392 Hprinter Official Is Available 24×7 To Help you in the entirety of your printer issue. visit --- Connect Canon Pixma MP495 Printer

    ReplyDelete
  50. At the point when your sexual coexistence is deficient with regards to, you have an inclination that YOU are inadequate. In any case, with the Primal Grow Pro Pills, you can get the indispensable supplements you have to support exhibitions to improve things.

    https://fast10reviews.com/

    ReplyDelete
  51. The information you provided is very interesting. Thank you for the hardships
    medium.com
    wixsite.com
    site123.me
    bloglovin
    hatenablog

    ReplyDelete
  52. The information you provided is very interesting. Thank you for the hardships.. หวย ออนไลน์ คืออะไร ?

    ReplyDelete
  53. Your article is great. Come in, read my stuff, click. >> บาคาร่า

    ReplyDelete
  54. In a press conference in San Francisco on coronavirus legislation, Pelosi claimed she was misled by the neighborhood salon. Security footage showed her at one point wearing a mask around her neck instead of over her face.
    https://www.betting33.com

    ReplyDelete
  55. "I take responsibility for trusting the word of the neighborhood salon that I've been to, over the years, many times, and that when they said what we're able to accommodate people one person at a time, and that we can set up that time, I trusted that. As it turns out, that was the setup." Pelosi told reporters. "So, I take responsibility for falling for a setup. And that's all I'm going to say on that."
    https://www.syy577.com

    ReplyDelete
  56. "There's more to this that I'm not going into as to the motivation of a salon to say to me, 'Yes come in' ... it was clearly a set up. I take responsibility for falling for a setup," she said. "I take responsibility for trusting the word of the neighborhood salon that I’ve been to for years."
    https://www.dok222.com

    ReplyDelete
  57. Earlier, Pelosi's office, citing guidance provided to her from the salon, denied she broke their rules, but the president called Pelosi out for having a mask under her chin in the now widely-circulated video footage.
    https://www.ccclub700.com

    ReplyDelete
  58. "Crazy Nancy Pelosi is being decimated for having a beauty parlor opened, when all others are closed, and for not wearing a Mask - despite constantly lecturing everyone else," Trump said in a tweet Wednesday morning.
    https://www.cacash9.com

    ReplyDelete
  59. Online psikolog desteği için web sitemizi ziyaret edebilir ve onlarca uzman psikolog doktorlarımızdan birinden randevu alarak tüm psikolojik sorunlarınıza kesin çözümler bulabilirsiniz.

    ReplyDelete
  60. Become familiar with the fast strides to fix the HP printer driver Windows 10 mistake that isn't permitting you to introduce HP Printer Driver on your gadgets.

    ReplyDelete
  61. Nice information. Thanks for sharing content and such nice information for me. I hope you will share some more content about. Please keep sharing!

    ReplyDelete
  62. The information you provided is very interesting. Thank you for the article blogger Visit https://hubwelt.com/!

    ReplyDelete
  63. WBCHSE which Conducts the Examination of Higher Secondary level or Pre-University level Examination in Month of March. Supplementary Examination Conducts in month of Jun. WBCHSE HS Model Paper 2021 WBCHSE Annually and Private and Regular Students Participate in HS Examination every year more than laks of students. WB HS Exam are conducted by West Bengal Council of Higher Secondary Education Only.

    ReplyDelete
  64. The article composing business is going extraordinary for me at this moment, and the vast majority of my prosperity is because of the substance that you post here. I utilize your substance to compose my articles, and the substance makes my great article incredible.메이저사이트

    ReplyDelete
  65. MTNL from the Delhi zone, then here is the detailed process to download the duplicate bill for your MTNL Delhi FTTH or DSL broadband or landline connection. Before or After payment of MTNL Delhi bill, MTNL duplicate bill now you can download the bill statement related to DSL, or Fibernet connection, so just login as per the mentioned steps and print the required at any time in online. Customers can anytime make a call to the customer service number to get their credentials to be used for MTNL Online Portal, and the registered mobile numbers are needed to change passwords online or verify your identity.

    ReplyDelete
  66. Epson is an all around the world recognized mainstream brand fabricating different printers from Inkjet to LaserJet and the as of late well known wireless printers of different shapes, size, setup, and so on Epson so far has accomplished the altruism of associating with all frameworks supporting assorted OS and design for an incredible printing experience. Epson printer is an error message In any case, now and again, users think of breaks in their printing heaven. The blunder codes are basically answerable for making bothers in users of the printers. The issue can emerge in any printer be it Injet or wireless. On the off chance that you go over a comparative issue, you can without much of a stretch choose the technical support of Epson or can anticipate figuring out how to fix Epson printer error message.

    ReplyDelete
  67. AN AMAZING REMEDY FOR HSV1&2. It's so unbelievable how wonderful herbs can be. when I first saw a post that said that a man have a perfect cure for HSV1&2, I was like could this be real or some kind of joke but due to my frustration and needed to be cured I took the risk of contacting the herbal doctor on email and he gave me reasons to believe he is a real herbalist so I followed all his instructions and he sent me the herbs through UPS and gave me prescription which i rightfully followed. Now all my test results shows am HSV1&2 Negative after taking the herbs and i have done test on two several occasion in different hospitals which i needed to be sure before posting this and the results are all Negative and the symptoms of HSV is completely out of my body and my doctor confirm this with me as well. Dr Osato herbs is the solution to HSV1&2 and other viruses. You can contact him on email: osatoherbalcure@gmail.com or WhatsApp +2347051705853 to get the herbs from him. I will continue sharing this on every platform for people to see and also get cured from HSV1&2, HPV and HIV with Dr Osato herbs. Dr Osato website is osatoherbalcure.wordpress.com

    ReplyDelete
  68. I guess I really got sucked into your blog because when I saw the time I was surprise to see that I've spent over 5 or so hours on your article.
    I am really blown away at how slow your page loaded on my phone.|This write up definitely has all of the info and facts anyone could want.|This website sure did jump started my interest.
    I was checking out a bean bag chair earlier but I still This information you are providing is magnificent. I really like this style of writing and how well the ideas are conveyed. You really have an amazing way of thinking about things. 오피사이트


    ReplyDelete
  69. event management. dashboard allows attendees to take advantage of networking opportunities and Attendees can search for people based on respective interests and which they can check off while registering and or through the networking button. Users are then shown suggested contacts based on mutual interests and allows attendees to connect through direct also session and event-level. successful event thank you letter and thank you email template

    ReplyDelete
  70. Keep up the wonderful piece of work, I read few posts on this internet site and I think that your blog is really interesting and holds bands of fantastic information. help with essay writing service -
    english assignment writing help -
    make my assignment australia -

    ReplyDelete
  71. Thanks for your marvelous posting! I actually enjoyed reading it, you could be
    a great author.I will remember to bookmark your blog and will
    eventually come back from now on. I want to encourage you to continue your great
    writing, have a nice weekend!

    Website:카지노

    ReplyDelete
  72. Hi! months ago i found out i was diagnosed with Herpes. I was heartbroken, However that same month I was recommended to a Dr. who helped me to cure the virus with natural herbal treatment now i fully believed in natural treatment thanks to Dr. Okuofoh . contact information: drokuofohherbalhomehealing@gmail.com
    Whats-app +2349050141449.

    ReplyDelete
  73. The cellulose fiber market is expected to grow at a good CAGR in coming years on account of various disadvantages of the usage of synthetic fibers in various end-use industries.

    Also read: acetic anhydride market | Medical Devices Market

    ReplyDelete

  74. Thanks for your marvelous posting! I actually enjoyed reading it, you could be
    a great author.I will remember to bookmark your blog and will
    eventually come back from now on. I want to encourage you to continue your great
    writing, have a nice weekend!

    Website:온라인바카라

    ReplyDelete
  75. I think you can make video about it and publish it on your instagram profile. To make your profile popular you can buy instagram followers for it.

    ReplyDelete
  76. I finally found what I was looking for! I'm so happy. 사설토토사이트 Your article is what I've been looking for for a long time. I'm happy to find you like this. Could you visit my website if you have time? I'm sure you'll find a post of interest that you'll find interesting.


    ReplyDelete
  77. After exploring a few of the blog posts on your web site, I
    really like your way of blogging. I saved as a favorite it to my bookmark
    website list and will be checking back soon. Take
    a look at my web site as well and tell me how you feel. 온라인카지노

    ReplyDelete
  78. That's a really impressive new idea! 메이저토토사이트추천 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you.


    ReplyDelete
  79. Thank you for posting when you have the opportunity, Guess I’ll just bookmark this page. Check out my homepage url shortener

    ReplyDelete
  80. I have been absent for a while, but now I remember why I used to love this web site. Thank you, I will try and check back more frequently. How frequently you update your web site? 토토사이트

    ReplyDelete
  81. POSTINGAN ANDA CUKUP MENARIK, JANGAN LUPA JUGA UNTUK KUNJUNGI SITUS TERPERCAYA KAMI !!!!
    Daftar Judi Slot Onine Terbaik

    ReplyDelete
  82. Helpful information. Lucky me I discovered your website by accident, and I am surprised why this
    coincidence didn’t came about in advance! I bookmarked it. 카지노사이트


    ReplyDelete
  83. POSTINGAN ANDA CUKUP MENARIK, JANGAN LUPA JUGA UNTUK KUNJUNGI SITUS TERPERCAYA KAMI !!!!
    Situs Judi Slot Online Resmi 2021

    ReplyDelete
  84. 사설토토사이트 in some of them hope you will give more information on this topics in your next articles

    ReplyDelete
  85. 안전공원추천 very informative and your blog is really good and impressive you made it mice article.

    ReplyDelete
  86. I enjoyed reading your post. very nice share. I want to twit this to my followers. Thanks 토토검증업체

    ReplyDelete
  87. I’m truly enjoying the design and layout of your site. It’s a very easy on the eyes which makes it much more enjoyable for me to come here and visit more often. Did you hire out a designer to create your theme? Exceptional work! Feel free to visit my website;
    야설

    ReplyDelete
  88. Thank you so much for this excellent blog article. Your writing style and the way you have presented your content is awesome. Now I am pretty clear on this topic, keep it up! Feel free to visit my website;
    일본야동

    ReplyDelete
  89. Nice one! Thank you for sharing this post. Your blog posts are more interesting and impressive. Feel free to visit my website;
    국산야동

    ReplyDelete
  90. I do not even know how I ended up here, but I thought this post was good. I don’t know who you are but certainly you’re going to a famous blogger if you aren’t already �� Cheers! 일본야동

    ReplyDelete
  91. This is a very impressive subject. Thank you for always. I have been reading your article interestingly. If possible, please visit my website to read my posts and leave comments. Have a nice day! 메이저놀이터 What you wrote was very helpful to me. Thank you. Actually, I run a site similar to you. If you have time, could you visit my site? Please leave your comments after reading what I wrote. If you do so, I will actively reflect your opinion. I think it will be a great help to run my site. Have a good day.


    ReplyDelete
  92. สล็อตwalletIf you can’t make a mistake you can’t make anything.

    ReplyDelete
  93. I’d really love to be a part of online community where I can get responses from other knowledgeable individuals that share the same interest. If you have any recommendations, please let me know. Appreciate it! Feel free to visit my website;
    야설

    ReplyDelete
  94. Many thanks for the article, I have a lot of spray lining knowledge but always learn something new. Keep up the good work and thank you again. 온라인슬롯


    ReplyDelete
  95. Awesome article! I want people to know just how good this information is in your article. It’s interesting, compelling content. Your views are much like my own concerning this subject 먹튀검증 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you.


    ReplyDelete
  96. I am Aakash Gupta, a content writer of successdunia. I write tech blogs for educational purposes. I also write blogs like google algorithm update.grade card is done by IGNOU every year or given before the exam to fill a form in which student details are filled.Every student chooses their exam center and goes to their chosen exam center to give the exam.

    ReplyDelete
  97. Canon ij Setup
    Go through the easiest way to set up an IJ Canon printer. The Canon Setup process takes a few minutes in device installation and software installation.

    ReplyDelete
  98. Hello, I used to check the posts here all the time. Every morning, I watch it because I like it. 토토사이트

    ReplyDelete
  99. I m surprised to hear such an amazing article. I ll visit often. Thank you always. 먹튀검증

    ReplyDelete
  100. I am not sure where your getting your information, but good topic. I needs to spend some time learning much more or understanding more. 토토검증

    ReplyDelete
  101. This is very interesting! Great information and it is also very well written. I will bookmark and comeback soon 토토사이트

    ReplyDelete
  102. While you are trying to the general and complex concept of this subject one by one, you do not let yourself be free from taking over academic task completion. During your task challenging time, you can go through Business Law Assignment Help for completing the invincible answer. View our website to know more information.

    ReplyDelete
  103. You have beaten yourself this time, and I appreciate you and hopping for some more informative posts in future. Thank you for sharing great information to us.สล็อต แตกง่าย

    ReplyDelete
  104. https://gameeffect.xyz Lots of people have cherished the overall game of baseball for several years. You will find enthusiasts around the world, from committed tiny-leaguers to perish-hard spectators. This article has suggestions to prove how enjoyable baseball happens to be.

    ReplyDelete
  105. https://gamezoom.xyz Obtaining a workout companion can drastically enhance your muscles-constructing outcomes. Your lover can be quite a useful source of motivation for sticking with your regular workout period, and forcing one to optimize your endeavours as you work out. Using a reliable spouse to sort out with can also help keep you risk-free because you will invariably have got a spotter.

    ReplyDelete
  106. 토토검증업체 cards counting strategy. Easy system to count cards, for the gambler's advantage.

    ReplyDelete
  107. I really loved reading your blog. It was very well authored and easy to understand. Unlike other blogs I have read which are really not that good. Thanks a lot! Feel free to visit my website; 바카라사이트닷컴

    ReplyDelete
  108. Israeli Sports and Culture Minister Chili Tropper on Thursday said the Jewish state would welcome 100 Ukrainian athletes fleeing the conflict.

    ReplyDelete
  109. The 31-year-old was one of around 40 Ukrainians who took part in the race in Jerusalem's Old City, braving unseasonably cold and wet weather.

    ReplyDelete
  110. Since Russia invaded Ukraine on Feb. 24, more than 16,800 Ukrainians have arrived in Israel, according to the interior ministry.

    ReplyDelete
  111. In an address to Israeli lawmakers on Sunday, Ukrainian President Volodymyr Zelensky appealed to the Jewish state to abandon its neutrality and "make its choice."

    ReplyDelete
  112. Ukrainian athlete Valentyna Veretska, who fled Russia's invasion of her country and took refuge in Israel, on Friday won the Jerusalem marathon, race organizers said.

    ReplyDelete
  113. It has also refrained from joining Western sanctions against Russia, with which it maintains strong ties including security cooperation.

    ReplyDelete
  114. Her husband, however, stayed in their homeland where he is serving in the army, the organizers said.

    ReplyDelete
  115. 메이저사이트April 11, 2022 at 1:24 AM

    Your skill is great. I am so grateful that I am able to do a lot of work thanks to your technology.메이저사이트 I hope you keep improving this technology.


    ReplyDelete


  116. That's a really impressive new idea!
    블랙잭사이트


    I finally found what I was looking for! I'm so happy.
    블랙잭사이트

    ReplyDelete
  117. Very good article. I learned a lot from simple and clear arguments. 사설토토

    ReplyDelete
  118. I completely agree with the text. I learned very accurate current information. 토토사이트

    ReplyDelete
  119. It has already been said that our concern is active 24x7 and this is because the students often face problems in solving their assignments. More clearly, as a student, if you face any kind of educational problems, you should feel free to consult us any time via email with live chat. Again, there is a benefit, if you forget to share some issue with live chat, you can call it via email or vice versa. We provide full guarantee, you will get prompt c++ homework answers to your queries which will surely match your satisfaction.

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

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

    ReplyDelete
  122. Pg Slot รวม ตลาดเกมออนไลน์ในขณะนี้นั้นเติบโตขึ้นอย่างเร็วจนกระทั่งไม่ได้นึกฝัน pg slot มีผู้เล่นมากมายก่ายกองสนใจกับเกมสล็อตออนไลน์ด้วยเหตุว่าสามารถสร้างผลกำไรอย่างมากมาย

    ReplyDelete
  123. สล็อต pg เว็บ ตรง สมัคร PGSLOT เว็บไซต์ตรง โบนัสฟรี 100% แจกเครดิตฟรีสล็อตทุกเกมรองรับการใช้แรงงานภาษาไทย PG สล็อต ธีมเกมสดใหม่ เล่นบันเทิงใจภาพงามโบนัสมากฝาก-ถอน รวดเร็ว

    ReplyDelete
  124. I invite you to visit my site and learn new knowledge for the benefit of our country so what are you waiting for and learn more

    ReplyDelete
  125. I came to this site with the introduction of a friend around me and I was very impressed when I found your writing. I’ll come back often after bookmarking! siifx
    freegame!
    free!
    merit!
    spaceman!
    rose!
    coupon!

    ReplyDelete
  126. I wanted to thank you for this excellent read.

    ReplyDelete
  127. I definitely loved every little bit of it.

    ReplyDelete

  128. ’ll be coming back to your website for more soon.

    ReplyDelete
  129. Economics assignment help is a valuable resource for students who are struggling with their economics coursework. Economics is a complex and challenging subject, and even the brightest students can benefit from professional assistance.

    ReplyDelete

  130. Thank you for sharing this useful information, I will regularly follow your blog.

    ReplyDelete
  131. Thanks for posting this valuable information, really like the way you used to describe.

    ReplyDelete
  132. I hope you prosper a lot and please post good comments often. I come often.

    ReplyDelete
  133. It was so bravely and depth information. I feel so good read to your blog.

    ReplyDelete
  134. You have brought up a very fantastic points, thankyou for the post.

    ReplyDelete

  135. Great article I enjoy reading your thoughts. More power to your website. Please visit mine too

    ReplyDelete
  136. It is extremely nice to see the greatest details presented in an easy and understanding manner.

    ReplyDelete
  137. Please keep sharing valuable information with us. Keep up the fantastic work, and thanks once more for your efforts.

    ReplyDelete
  138. Exploring the flavor of Rust (yum) for C/C++ programmers! 🛠️🦀 At Proven Roi, we're not just about coding languages; we offer a different kind of coding—the one that powers your business growth. 🚀💻 Dive into the world of CRM and marketing strategy with Proven Roi. Discover how we can amplify your business success at Proven Roi.

    ReplyDelete
  139. pg slot รับฟรีเครดิต ผู้ให้บริการเกมสล็อตออนไลน์ ที่มาแรงที่สุด pg slot รับรองความคุ้มราคาจากถ้าเกิดคูณเริ่มจะมีความรู้สึกว่าของฟรีไม่มีในโลก บอกเลยว่าคุณคิดผิดแล้ว ด้วยเหตุว่าเว็บไซต์ของเราแจกจริงไม่ต้องแชร์

    ReplyDelete
  140. This post really resonated with me. I appreciate your honesty and vulnerability in sharing your personal experience with [topic]. I think it's important to have open conversations about these issues to break down stigma and promote understanding.

    Visit here also:

    IPLWin
    IPLWin Casino
    IPLWin app download
    IPLWin casino

    ReplyDelete
  141. Embark on an unforgettable journey with the best binoculars in India, allowing you to marvel at the captivating natural wonders and immerse yourself in the diverse wildlife of this beautiful country. As you set out to choose your perfect optical companion, India offers a plethora of options that cater to all your needs.

    Delve into the world of binoculars and discover the wide range of choices available. From compact and lightweight models for those seeking portability during their outdoor adventures, to powerful and high-performance varieties that bring the distant landscapes up close, India has it all. Now, you can view the majestic Himalayan peaks, observe elusive bird species, or witness the awe-inspiring flora and fauna of India's national parks in exquisite detail.

    ReplyDelete
  142. Thanks really practical. Will certainly share website with my friends.

    ReplyDelete
  143. Woah! I'm really enjoying the template/theme of this website.

    ReplyDelete
  144. I am sure this article has touched all the internet viewers

    ReplyDelete
  145. Thank you for this great blog. this is here, the few months

    ReplyDelete
  146. its really really nice post on building up new website.

    ReplyDelete