Thursday, February 2, 2012

Generating random functions

How can we pick a random Haskell function? Specifically, we want to write an IO action

randomFunction :: IO (Integer -> Bool)

with this behavior:

  • It produces a function of type Integer -> Bool.

  • It always produces a total function — a function which never throws an exception or enters an infinite loop.

  • It is equally likely to produce any such function.

This is tricky, because there are infinitely many such functions (more on that later).

In another language we might produce something which looks like a function, but actually flips a coin on each new integer input. It would use mutable state to remember previous results, so that future calls will be consistent. But the Haskell type we gave for randomFunction forbids this approach. randomFunction uses IO effects to pick a random function, but the function it picks has access to neither coin flips nor mutable state.

Alternatively, we could build a lazy infinite data structure containing all the Bool answers we need. randomFunction could generate an infinite list of random Bools, and produce a function f which indexes into that list. But this indexing will be inefficient in space and time. If the user calls (f 10000000), we'll have to run 10,000,000 steps of the pseudo-random number generator, and build 10,000,000 list elements, before we can return a single Bool result.

We can improve this considerably by using a different infinite data structure. Though our solution is pure functional code, we do end up relying on mutation — the implicit mutation by which lazy thunks become evaluated data.

The data structure

import System.Random
import Data.List ( genericIndex )

Our data structure is an infinite binary tree:

data Tree = Node Bool Tree Tree

We can interpret such a tree as a function from non-negative Integers to Bools. If the Integer argument is zero, the root node holds our Bool answer. Otherwise, we shift off the least-significant bit of the argument, and look at the left or right subtree depending on that bit.

get :: Tree -> (Integer -> Bool)
get (Node b _ _) 0 = b
get (Node _ x y) n =
case divMod n 2 of
(m, 0) -> get x m
(m, _) -> get y m

Now we need to build a suitable tree, starting from a random number generator state. The standard System.Random module is not going to win any speed contests, but it does have one extremely nice property: it supports an operation

split :: StdGen -> (StdGen, StdGen)

The two generator states returned by split will (ideally) produce two independent streams of random values. We use split at each node of the infinite tree.

build :: StdGen -> Tree
build g0 =
let (b, g1) = random g0
(g2, g3) = split g1
in Node b (build g2) (build g3)

This is a recursive function with no base case. Conceptually, it produces an infinite tree. Operationally, it produces a single Node constructor, whose fields are lazily-deferred computations. As get explores this notional infinite tree, new Nodes are created and randomness generated on demand.

get traverses one level per bit of its input integer. So looking up the integer n involves traversing and possibly creating O(log n) nodes. This suggests good space and time efficiency, though only testing will say for sure.

Now we have all the pieces to solve the original puzzle. We build two trees, one to handle positive numbers and another for negative numbers.

randomFunction :: IO (Integer -> Bool)
randomFunction = do
neg <- build `fmap` newStdGen
pos <- build `fmap` newStdGen
let f n | n < 0 = get neg (-n)
| otherwise = get pos n
return f

Testing

Here's some code which helps us visualize one of these functions in the vicinity of zero:

test :: (Integer -> Bool) -> IO ()
test f = putStrLn $ map (char . f) [-40..40] where
char False = ' '
char True = '-'

Now we can test randomFunction in GHCi:

λ> randomFunction >>= test
---- -   ---   -    - -   - --   - - -  -- --- -- --          - -- - - --  --- --
λ> randomFunction >>= test
-   ---- - - - -  - - -- -   -     ---  --- -- - --  -  --    - -  - - -  --   - 
λ> randomFunction >>= test
- ---  - - -  --  ---         -  --  -  -    -  -  - ---- - -  ---   -     -    -

Each result from randomFunction is indeed a function: it always gives the same output for a given input. This much should be clear from the fact that we haven't used any unsafe shenanigans. But we can also demonstrate it empirically:

λ> f <- randomFunction
λ> test f
-   -----  - -   -- - -   --- --  - -   - -   - -   -- - -   ---- - - - -  - --- 
λ> test f
-   -----  - -   -- - -   --- --  - -   - -   - -   -- - -   ---- - - - -  - --- 

Let's also test the speed on some very large arguments:

λ> :set +s
λ> f 10000000
True
(0.03 secs, 12648232 bytes)
λ> f (2^65536)
True
(1.10 secs, 569231584 bytes)
λ> f (2^65536)
True
(0.26 secs, 426068040 bytes)

The second call with 2^65536 is faster because the tree nodes already exist in memory. We can expect our tests to be faster yet if we compile with ghc -O rather than using GHCi's bytecode interpreter.

How many functions?

Assume we have infinite memory, so that Integers really can be unboundedly large. And let's ignore negative numbers, for simplicity. How many total functions of type Integer -> Bool are there?

Suppose we made an infinite list xs of all such functions. Now consider this definition:

diag :: [Integer -> Bool] -> (Integer -> Bool)
diag xs n = not $ genericIndex xs n n

For an argument n, diag xs looks at what the nth function of xs would return, and returns the opposite. This means the function diag xs differs from every function in our supposedly comprehensive list of functions. This contradiction shows that there are uncountably many total functions of type Integer -> Bool. It's closely related to Cantor's diagonal argument that the real numbers are uncountable.

But wait, there are only countably many Haskell programs! In fact, you can encode each one as a number. There may be uncountably many functions, but there are only a countable number of computable functions. So the proof breaks down if you restrict it to a real programming language like Haskell.

In that context, the existence of xs implies that there is some algorithm to enumerate the computable total functions. This is the assumption we ultimately contradict. The set of computable total functions is not recursively enumerable, even though it is countable. Intuitively, to produce a single element of this set, we would have to verify that the function halts on every input, which is impossible in the general case.

Now let's revisit randomFunction. Any function it produces is computable: the algorithm is a combination of the pseudo-random number procedure and our tree traversal. In this sense, randomFunction provides extremely poor randomness; it only selects values from a particular measure zero subset of its result type! But if you read the type constructor (->) as "computable function", as one should in a programming language, then randomFunction is closer to doing what it says it does.

Edit: See also Luke Palmer's recent article on this subject.

See also

The libraries data-memocombinators and MemoTrie use similar structures, not for building random functions but for memoizing existing ones.

You can download this post as a Literate Haskell file and play with the code.

150 comments:

  1. The set of total Haskell functions may not be recursively enumerable, but choose some total language (say, System F with structural recursion). The set of total functions in this language *is* recursively enumerable--generate a function and type check it. If it passes type checking, it's total.

    That is, we have

    interpret :: SystemFExpression -> Integer -> Bool
    generate :: Integer -> SystemFExpression

    However, we still haven't reached a contradiction; the diagonalization argument requires us to find an N such that (generate N) generates the function with source code:

    [code for interpret]
    [code for generate]
    f n = not (interpret (generate n) n)

    But any language that can implement its own interpreter isn't total!

    ReplyDelete
    Replies
    1. Great Article android based projects

      Java Training in Chennai Project Center in Chennai Java Training in Chennai projects for cse The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training Project Centers in Chennai

      Delete
  2. Nice article, thanks for the information. It's very complete information. I will bookmark for next reference
    jaring futsal | jaring golf | jaring pengaman proyek |
    jaring pengaman bangunan | jaring pengaman gedung
    http://www.jual-jaring.blogspot.com/
    http://www.agen-jaring.blogspot.com/
    http://www.pancasamudera-safetynet.blogspot.com/
    http://www.toko-jaring.blogspot.com/
    http://www.pusat-jaring.blogspot.com/
    http://jualjaringpengaman.blogspot.com/
    https://pancasamudera.wordpress.com/
    https://pasangjaringfutsal.wordpress.com/
    https://jualtambangmurah.wordpress.com/
    https://tokojaring.wordpress.com/
    https://jualjaringfutsal.wordpress.com/
    https://jaringfutsal.wordpress.com/


    ReplyDelete
  3. Great post! I didn’t knowral of these resources and I’m going to go check them out now!

    ReplyDelete
  4. Thank you for the valuable information.iam very much impressed with this one.
    Looking forward for the good posts.
    gbwhatsapp benefits

    ReplyDelete
  5. Packers and Movers Bangalore - Reliable and Verified Household Shifting Service Providers Give Reasonable ###Packers and Movers Charges. Cheap and Best Office Relocation Compare Quotation for Assurance for Local and Domestic House Shifting and Get estimates today to save upto 20%, ***Read Customer Reviews - @ Local Packers And Movers Bangalore

    ReplyDelete
  6. great stuff men
    looking forward more
    thanx for sharing this
    if you looking geohraphy assignment help so hire experts from myassignmenthelp and get the best result

    ReplyDelete
  7. this is really appriciate this work
    thanx for sharing this
    myassignmenthelp refund visit my site and know more about myassignmenthelp

    ReplyDelete
  8. hey this is very helpful post
    if you are looking for
    assignment help
    so hire our experts and get the best results and got high marks

    ReplyDelete
  9. Suggest good information in this message, click here.
    auteursdejeux.com
    carrymyad.com

    ReplyDelete
  10. Scholars need to connect with effective online assignment writing for do my assignment query. For that, visit website of online service providers and check their reliability before placing your order for any subject.

    ReplyDelete
  11. Now that is what I call a smooth write-up. Talk about smooth write-ups, if you want to maintain a smooth sail in your academic writing tasks as well you can get in touch with the deft Academic Dissertation Help experts of the LiveWebTutors platform and receive flawless solutions for your daunting assignments in just a few clicks.

    ReplyDelete
  12. I enjoyed reading your post. I was also struggling with my scholarly assignments just as you stated in your post but luckily, I stumbled across the online Assignment Help facility by the MyAssignmentHelpAu platform. Their skilled subject-specific experts leave no stone unturned to deliver accurate assignment solutions that can easily impress your professors and mentors. You can order any assignment format for any subject area from this portal and improve your academic grades remarkably.

    ReplyDelete
  13. Are you searching for Assignment Help online in Canada? Then you are in the right spot. Our team of professional writers is highly efficient in helping the students with their assignments. Visit our website to know more about our services.

    ReplyDelete

  14. Online Essay Help Singapore help and submitting tasks and articles before the cutoff time is a difficult one to figure out. It takes extraordinary commitment.
    Consider the possibility that, you don't have much homework help Australia. Imagine a scenario where, you have arranged things that are conflicting with your courses.
    AConsider the possibility that, you are routinely getting less evaluations your courses. On the off chance that this sounds you fit, at that point you ought to likely
    take Statistics homework help Australia from GOTOASSIGNMENTHELP specialist co-op. It can remove all the torment you are in. You can get copyright infringement free
    task and My Assignment Help Singapore and that too with high caliber. This can presumably bring A+ Essay Help Singapore and you can wander gladly with best assignment help Australia under your arm.

    ReplyDelete
  15. Scholars need to connect with effective online assignment writing for do my assignment query. For that, visit website of online service providers and check their reliability before placing your order for any subject.

    ReplyDelete


  16. Research assignment helphelp and submitting tasks and articles before the cutoff time is a difficult one to figure out. It takes extraordinary commitment.
    Consider the possibility that, you don't have much homework help Australia. Imagine a scenario where, you have arranged things that are conflicting with your courses.
    AConsider the possibility that, you are routinely getting less evaluations your courses. On the off chance that this sounds you fit, at that point you ought to likely
    take Statistics homework help Australia from GOTOASSIGNMENTHELP specialist co-op. It can remove all the torment you are in. You can get copyright infringement free
    task and Essay writing service Australia
    and that too with high caliber. This can presumably bring A+ Essay Help Singapore and you can wander gladly with best assignment help Australia under your arm.

    ReplyDelete


  17. University assignment help and submitting tasks and articles before the cutoff time is a difficult one to figure out. It takes extraordinary commitment.
    Consider the possibility that, you don't have much homework help Australia. Imagine a scenario where, you have arranged things that are conflicting with your courses.
    Consider the possibility that, you are routinely getting less evaluations your courses.
    Assignment maker Aaustralia
    On the off chance that this sounds you fit, at that point you ought to likely
    take Statistics homework help Australia from GOTOASSIGNMENTHELP specialist co-op. It can remove all the torment you are in. You can get copyright infringement free

    ReplyDelete
  18. Not sure which is the best Assignment Help canada in Canada. Get in touch with our experts now and receive top-notch quality assistance and guidance, along with solutions to your academic issues.

    ReplyDelete
  19. Accounting assignment help allows you to connect with experts and get effective assistance for your project submission. Don’t forget to check out all the features before buying the services of online assignment help for your accounting papers.

    ReplyDelete
  20. If your consistent efforts are not actually turning into the outcomes you are looking for, it’s a sign that you need an expert to guide you. Our experts at Help in homework are ready to offer you paper writing services at the best market price. Wherever you are located in Australia and whatever your academic needs are, you can trust our experts to get it done and help you score top grades. Help in homework will be your trusted solution provider from now on.

    ReplyDelete
  21. Well, Now you need not to worry about your pending assignment writing.assignment help is one of the best assignment service provider in UK. We are here to give you best nursing assignment Help. Browse our services of assignment help London, Edinburgh, Manchester and Across UK.

    ReplyDelete
  22. If your consistent efforts aren't yielding the results you want in your job seeking campaign, it's time to seek for professionals. Our online jobs portal are here to assist you with the hundreds of latest jobs you might get some great recruitments to get successful and landing for a suitable employment in programming.

    ReplyDelete
  23. Do you also want to take online Assignment help? Then don’t worry, we will help you! We offer you the best assignment writing services at a very low price. Browse our website for taking the best assignment writing help.

    ReplyDelete
  24. Do you find it hard to seek a reliable academic writer in Singapore? The easiest way to overcome the academic-related issues of Singapore universities are Assignment Help . Generally, scholars choose different countries to pursue their higher studies to get remarkable career opportunities.

    ReplyDelete
  25. Are you unable to get Assignment help UK? Don’t worry! We offer you the best quality assignment assistance. We have highly qualified writers who will provide you supreme quality help regarding your assignment.

    ReplyDelete
  26. Posting such good information and helping every person who is looking for the best Car Transport Pune. Logistics guru is the best service provider that deals with affordable car transportation services. The company tends to cover a wide range of services. Here is the website link, click on it. You can get a lot of information.

    ReplyDelete
  27. Hard exams, assignments and homework are a now things of the past with Operations Management For Mbas 5th Edition Test Bank. Order and download now!

    ReplyDelete

  28. There are few more ways by which you can utilize online academic Singapore assignment help and get the desired results that you want. Your knowledge will increase if you have academic writing assistance.

    ReplyDelete
  29. ​The quickest way to earn better grades is to avail ​Homework Help. Look no further, just visit ScholarOn and be the top student in your class.

    ReplyDelete
  30. I blog often and I truly appreciate your content.
    야설

    Also visit my web site;
    야설

    ReplyDelete
  31. This great article has truly peaked my interest.
    일본야동
    Also visit my web site 일본야동

    ReplyDelete
  32. I’m going to bookmark your site and keep checking for new details about once per week.
    국산야동
    Also visit my web site 국산야동

    ReplyDelete
  33. I subscribed to your Feed too.

    일본야동
    Also visit my web site 일본야동

    ReplyDelete
  34. Opt for our Assignment Help to finish your assignments and submit them within the deadline. No need to take the stress of insufficient knowledge and lack of skills when you have an online assignment writing expert for writing your assignment in Qatar.

    ReplyDelete
  35. Such an amazing and helpful post this is. I really really love it. It’s so good and so awesome.I am just amazed. I hope that you continue to do your work like this in the future also. 온라인카지노

    ReplyDelete
  36. I am always searching online for articles that can help me. There is obviously a lot to know about this. I think you made some good points in Features also. Keep working, great job ! 온라인카지노

    ReplyDelete
  37. Such an amazing and helpful post this is. I really really love it. It’s so good and so awesome. I am just amazed.
    Try to visit my post
    foods to avoid for kidney health

    ReplyDelete
  38. We have an advanced experienced to give incredible assignment writing administrations through our accomplished, qualified and very much prepared group of assignment writing specialists. We have an advanced encounter of serving students from various college across the globe. australian assignment help

    ReplyDelete
  39. You can find Cornerstones Of Managerial Accounting Available Titles Aplia 3rd Edition Test Bank online in pdf/word format. Avail instant assistance for issues 24/7. There is no waiting time!

    ReplyDelete
  40. Do not waste countless hours on your college assignments anymore. Get Solution Manual For International Business Competing In The Global Marketplace 10th Edition and work smart with better results.

    ReplyDelete
  41. Here is a bit by bit manual for download and introduce HP Deskjet 3700 wireless setup on Windows, Linux and Mac OS X.

    ReplyDelete
  42. I am stresses for the long time and do not idea how to tackle academic responsibility. I have gone through your site and find its inspiring post to make creative content. Meanwhile, you go through Assignment Help navigational link available on our website.

    ReplyDelete
  43. Gotoassignmenthelp is team of leading professional writers for academic assignment help Australia Writing Services to students all around the world. Contact us today for Best University assignment help Australia at very affordable price. Under GotoAssignmentHelp we provide many types of help to the students. We are the most reliable assignment helpers. We have gained our specialization after spending most of our times in making ourselves perfect. We providing 100% plagiarism free Assignment Help. At the point when you pick our Assignment assistance assistance, our faculty will consider the quality and your evaluation criteria.

    ReplyDelete
  44. Updated version of Test Bank For Macroeconomics 12th Edition available for instant download. Avail great discounts and offers now.

    ReplyDelete
  45. I cannot write my assignment and assignment help online. Don't worry we will offer you the best writing facilities in your budget. Our team of writers can provide you the best writing assistance in your budget. Take help from us and submit plagiarism-free assignments.

    ReplyDelete
  46. The secret for student success lies in the material you use for learning.Try Test Bank For Essentials Of Business Communication 9th Edition and feel the difference.

    ReplyDelete
  47. Marketing assignment includes many topics and extensive research, which makes the hectic burden on the student’s head. If you are a student and want help with marketing assignments., it is better to help an expert. Students primarily seek the best marketing assignment expert to help the students get good grades without any tension. An essential part of seeking help for the assignment is hiring the right one. The Internet provides you various kinds of information. It offers several services, and you have to verify the company's details before assigning your marketing assignment to the service.

    ReplyDelete
  48. Thanks for sharing amazing tips. Following this step will transform the standard of your MyAssignmentHelpsAu platform for sure. Wow, marvelous weblog layout! You made blogging glance easy. Please keep sharing more and more information. I will bookmark your web page regularly and maintain checking for new updates. Enjoyed reading it as it really explains everything in detail. My Assignment Help provided by expert is very interesting and effective. Thank you and good luck with the upcoming blog.

    ReplyDelete
  49. Appreciate the post that you have made. It is nice information shared and the post is quite useful. I like the structure and flow of the write-up because it kept me engaged all this time. The Math Homework Help service by the LiveWebTutors platform is well-known for offering 100% original and premium quality outcomes that can fetch the best grades for you. The PhD or Master’s qualified Do My Math Homework expert associated with the platform leaves no stone unturned to share accurately referenced, perfectly polished, and precisely written scholarly assignments with students at highly math prices.

    ReplyDelete
  50. Global Assignment Expert offers law assignment help which deals with the rules and regulations, acts and sections provides in the rule book. Our Law experts will support administrative law, tax law, Contract Law, Family Law, Property Law ,Insolvency Law, Tort Law, Equity Law, and many more. We have a panel of assignment help experts for law assignments because the content needs proper investigation with depth knowledge. We never compromise with the quality we always deliver the best in quality. We provide a complete solution with proper clarification. Our support team will always be ready to clarify your doubts.

    ReplyDelete
  51. We can assist you with your assignments instead of you having to travel all over the place. Our assignment help in australia is accessible through the Internet. We can provide better service for used services.

    ReplyDelete
  52. My name is Linnea! Our company has a team of professional online assignment helpers. Our online platform provides you with the ability to hire writers to assist with your supply and demand assignments. We have highly qualified experts who can assist you with writing your assignments. Your assignments will be of the highest quality when they are written by our experts.

    ReplyDelete
  53. College task composing administrations are trusted the most due to the select quality which is mind-blowing by any understudy. The specialists realize all around ok with regards to how the tasks must be made to focus on the quality and this is reflected to the center in the work introduced finally. myassignmenthelp

    ReplyDelete
  54. If you are puzzling who can help you with your nursing assignment at the lowest price as you are a student and is sometimes pressed for money, you are at the right place as we offer cheap custom nursing papers. Our professional nursing writing service is committed to making your life easier. We will cover your back as we can complete an original error-free nursing paper on any topic for you. Have you just realized that your essay is due tomorrow morning? That is fine! There is no need to stay up all night anymore! Get some sleep, and your nursing paper will be waiting for you when you wake up in the morning. Read more on Nursing Writing Services

    ReplyDelete
  55. Total assignment help Australia services offer you flawless grades effectiveness at the most moderate rates. What’s more, this is the fundamental motivation behind why you should exploit our Part Time Jobs Near Deakin University. More than quite a while, we have been offering our projects to a great many understudies.

    ReplyDelete
  56. This page provides magha nakshatra in hindi dates with start and end timings in the year 2021 for Mountain View, California, United States.

    ReplyDelete
  57. Get help for science assignments only at the "Best Assignment Experts" website where only the professional experts provide the Science Assignment Help.

    ReplyDelete
  58. Thank you for this blog I always recommend this to my friends and if anyone need help in Homework please recommend our website Canada Assignment Help we provide best Homework Help service to the Canadian students.

    ReplyDelete
  59. Roadseal civil We proudly provide services that keep our community moving, with expertise in constructing hardstands, carparks, roads and driveways. We primarily service Melbourne metro, Geelong, Ballarat, Bendigo, Warragul and Mornington regions.
    READ MORE :- Asphalt Driveways

    ReplyDelete
  60. My Assignment Experts is a leading Australian and UK Online assignment help service for students. Our Ph.D. assignment experts can support you with almost any subject or question.

    ReplyDelete
  61. Essay Helper – 24/7 Here for You! Our essay writing assist carrier is the first-class answer to your trouble of essay writing help our Writer – Ready to Work! Choose your private assistant at

    ReplyDelete
  62. Scholars have been using paraphrasing tools for creating a environment for colorful jotting assignments. But just like everything, the paraphrasing tool has its pros and cons. So, let's see some of them.
    Pros of rephrasing tools
    Saves time
    Paraphrasing tools saves a lot of time. The jotting part is veritably tedious. Enormous exploration chops and a proper figure strategy is needed to come up with a good paper. But with the help of good paraphrasing tools, you can develop easy results without taking any paper help or get assignment help.
    Multipurpose server
    Still, it can be salutary for colorful purposes, If you can find an excellent working rephrasing tool. You can use this tool to write thesis motifs, capsule or any jotting work for that matter. It makes effects easier without putting in important trouble.
    Advanced jotting
    Good paraphrasing tools form good rulings with advanced terms. This can be largely useful for scholars as a literacy process. Through this means, they come to know about new words and how to frame rulings. Indeed assignment writer and professionals use rephrasing tools to form meaningful rulings to unfold on the subject.
    Fluently accessible
    Numerous paraphrasing tools are available online. Being online, it's fluently accessible to scholars each over the world. So, anyone facing a problem with jotting or looking for an excellent indispensable way to form matters can fluently claim this occasion. Related service- assignment help brisbane
    Cons of rephrasing tools
    They aren't dependable.
    Not every paraphrasing tool is largely dependable. Some of them don't give proofreading reports because of which it's hard to descry if they indeed carried out any paraphrasing or not. Also, indeed after using this, numerous miscalculations are plant while proofreading, so they aren't 100 effective.
    Can be expensive
    The prices of tools increase with the features they give. Utmost of the bias having good paraphrasing ways are veritably expensive. Because of this, it isn't a good and affordable option for scholars.
    Fluently detected by the mortal eye.
    Still, also a mortal eye can fluently descry that a machine generates the content, If you aren't using a good paraphrasing tool. Likewise, indecorous English, grammatical miscalculations and lack of proper composition of rulings make it largely visible. Hence, your professor can snappily know that it isn't handwritten.
    Although rephrasing tools have their cons, our final verdict would be, if you can find a good paraphrasing tool, also it'll be of great help. It may take some time to find a good one, but you don't have to go through the pressure of writing lengthy assignments again once you find it.

    ReplyDelete
  63. Finding quality learning aids is most essential for gaining your dream grades in college. TestBanks21 offers Test Banks & Solution Manuals at the lowest prices online to satisfy this need.

    ReplyDelete
  64. Our Geography Assignment Help Service is available at all times. To provide you with Geography online assignment assistance, Our Geography Assignment Experts always available Our Geography professionals can help academic students get a higher level of training by assisting them with Geography and other topics assignments.

    ReplyDelete
  65. 먹튀검증업체January 4, 2022 at 1:19 AM

    I like the helpful info you provide in your articles. I’ll bookmark your blog and check again here frequently. I’m quite sure I’ll learn plenty of new stuff right here! Good luck for the next. 먹튀검증업체

    ReplyDelete
  66. I'm writing on this topic these days, 우리카지노, but I have stopped writing because there is no reference material. Then I accidentally found your article. I can refer to a variety of materials, so I think the work I was preparing will work! Thank you for your efforts.

    ReplyDelete
  67. Ij start canon and find out the best way to download Canon printer drivers.
    Ij.start.cannon | Ij.start.canon | canon.com/ijsetup


    ReplyDelete
  68. I'm looking for a lot of data on this topic. The article I've been looking for in the meantime is the perfect article. Please visit my site for more complete articles with him! casino trực tuyến

    ReplyDelete
  69. All-in-one Canon Inkjet printers are suitable for home, business, school, and others to improve productivity. Depending on your requirement, it offers a type printer including PIXMA, SELPHY, MAXIFY, etc. Some factors need to be in mind while choosing an inkjet printer for you. Later, you can easily set up your Canon printer through drivers from canon.com/ijsetup , wireless connection, USB, and a few components. | ij.start.cannon | The setup process for every Canon model is almost similar, however the download through https //ij.start.cannon or http //ij.start.cannon and installation process may differ.

    ReplyDelete
  70. ij scan utility
    ij canon scan utility
    Your scanned documents may be used for certain other purposes in other apps and software such as emails, PowerPoint presentations and so on.

    ReplyDelete
  71. The official website of the company was cableone net, which now redirects to sparklight com if you search for their previous URL. Although the company rebranded itself to Sparklight, Cable One units are still used by customers that brought the unit before.Cable One Mail Login is an email service that the company provides to its customers.

    ReplyDelete
  72. 메이저토토사이트January 9, 2022 at 2:04 AM

    This is the perfect post.메이저토토사이트 It helped me a lot. If you have time, I hope you come to my site and share your opinions. Have a nice day.

    ReplyDelete
  73. Canon IJ Network Tool is a toolkit software with the options to keep a check on most of your Canon printer network settings and adjust them according to your requirements. The Canon IJ Network tool will get you through the network settings uninterruptedly.Canon IJ Printer Utility is a complete software package meant to adjust and modify the configurations of your printer device as per the requirement.

    ReplyDelete
  74. Visit
    www.hp.com/go/wirelessprinting and open the door to the world of HP smart printing solutions. HP wireless printer is a versatile printing device that helps you print, scan, copy and fax your documents as per the requirement.

    Visit ij.start.canon | ij.start canon and find out the best way to download Canon printer drivers.
    Once you are done with the driver setup via
    canon.com/ijsetup , you will have to insert a pile of pages into the printer tray for printing the documents.

    ReplyDelete
  75. 안전놀이터추천January 11, 2022 at 1:43 AM

    Hello, I am one of the most impressed people in your article. 안전놀이터추천 I'm very curious about how you write such a good article. Are you an expert on this subject? I think so. Thank you again for allowing me to read these posts, and have a nice day today. Thank you.

    ReplyDelete
  76. Total Assignment Help gives best assignment answers online service here with experts specializing in a wide range of disciplines ensuring you get the assignments that score maximum grades.

    ReplyDelete
  77. Your article was very impressive to me. It was unexpected information,but after reading it like this 온카지노, I found it very interesting.

    ReplyDelete
  78. Good post <a href="https://sourceessay.com/dissertation-thesis-writing-service/dissertation-proofreading-services/ Dissertation Proofreading Services USA</a>

    ReplyDelete

  79. Custom paper boxes include the customization or personalization of using various attractive and beautiful designs. A mono colored, blank and simple paper Custom boxes is never in demand as compared to a modified, designed and personalized designs.

    ReplyDelete
  80. As a content writer, I can understand efforts because when students ask me for Finance Assignment Help, I do the same.

    ReplyDelete
  81. ij.start.canon
    is the manufacturer site to download Canon printer drivers. Install and set up Canon Printer from https: //ij.start.canon and obtain high-quality printing documents straightforwardly.

    https//ij.start.cannon is actually the official site of ij start canon that helps you install the latest printer drivers and software. Visiting http //ij.start.cannon
    provides you a complete list of all canon printers where you’ve to select your printer model and download the correct setup file

    ReplyDelete
  82. Canon IJ Network Tool is a toolkit software with the options to keep a check on most of your Canon printer network settings and adjust them according to your requirements.

    Canon IJ Printer Utility is a complete software package meant to adjust and modify the configurations of your printer device as per the requirement. It is one of the essential utility software offered by Canon to ease your printer configuration alteration using a few clicks.


    Canon.com/ijsetup/mg2500
    is the Canon support link to get you the latest printer drivers and software to set up your PIXMA MG2500 or MG2520.

    ReplyDelete
  83. ij scan utility is a free photography program that enables you to quickly scan photos and documents.

    ij scan utility download is one of the programs you’ll definitely have to get if you’re using a certain Canon printer or scanner model.

    ReplyDelete
  84. https //ij.start.cannon,
    Install latest software and drivers of canon printer and plug in the USB cable to computer and printer. It’ll automatically be connected; however, you’ve to follow on-screen guidelines.
    http //ij.start.canon,

    ReplyDelete
  85. platform for getting the canon printer driver. You can easily download the driver according to your model as ij start canon is designed with a user-friendly interface
    ij.start.canon,
    ,ij.start canon

    ReplyDelete
  86. ij.start canon is the manufacturer's site to download Canon printer drivers. You can easily download the driver according to your model as ij start canon is designed with a user-friendly interface. Canon IJ Setup process takes a few minutes in device installation and software installation ij.start.canon .

    ReplyDelete
  87. I find this post valuable for getting the idea of a striking conclusion. So, you do not find worse as you do not find the rays of hope for a better solution. Why do you move here and there to execute the better assignment help solution service? After all, we do not take high charge for making a solution.

    ReplyDelete
  88. The team behind our awesome assignment help USA service maintains strict policies against plagiarism. Collaborating with our writers by availing Assignment Help in United States will not only help you with your grades but also your essay assignment skill will be good.
    For more info- Get Assignment Help Online

    ReplyDelete
  89. That's a great article! The neatly organized content is good to see. Can I quote a blog and write it on my blog? My blog has a variety of communities including these articles. Would you like to visit me later? 메이저안전놀이터

    ReplyDelete
  90. You can acquire a MATLAB assignment expert online because it is the most cost-effective option to receive exactly what you want at a reasonable price, with the MATLAB assignment delivered well ahead of your deadline. Does this imply that you don't put in any effort? Some students choose to leave everything to the MATLAB assignment help. which is, in a sense, a smart move if they haven't done any preliminary research. However, if you've done your MATLAB homework and are knowledgeable about your subject, you might be able to help. Make a logical flow for your notes.

    ReplyDelete
  91. Here you can get the best deal. Get best fitness band under 2000 in india and measure your workout, heart rate, calories in one device. Buy the best fitness band in india under 2000 to keep accountability of your fitness routine. Get the best band now! best fitness band under 2000 in india

    ReplyDelete
  92. Get the best Accounting Assignment Help services from top rated accounitng experts We have the best accounting experts who will give you the best quality accounting assignment answers.

    ReplyDelete
  93. Hello, I read the post well. 안전놀이터추천 It's a really interesting topic and it has helped me a lot. In fact, I also run a website with similar content to your posting. Please visit once

    ReplyDelete
  94. What a nice post! I'm so happy to read this. 토토사이트추천 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
  95. Get your hands on the best convection microwave oven under 15000 for baking etc in budget. best microwave convection oven in india

    ReplyDelete
  96. This is again a great post by you. I'm a regular visitor of your website. Keep it up and keep sharing such posts.
    Sometimes students take assignment help to deliver their assignment on time.
    There are many tough subjects where students seek for online assignment help like Civil Engineering Assignment Help, MYOB Assignment Help, HR Assignment Help and etc.

    ReplyDelete
  97. Many of the Fba sellers on the amazon platform struggles to make money due to hiring a wrong agency. In rder to make a profitable FBA Business, you need help of an amazing marketing co amazon ppc agency which can help to grow your brand sales to the next level. An expert agency will have lot of case studies where they have grown the other brands to million dollar sales making them the best among the Industry.

    While most of the agencies won’t have any casestudy or else will come up with fake screenshot where they show that they have reduced ACOS and improved the ROAS. To makesure, you are working with a real agency, a real ppc agency will have case studies with video proof from the brand owners where they tell that certain agency has helped them to achieve their results successful and are happy to work with them.

    You can always ask certain queries about the agency before you hiring them. First things are the real casestudies and the proofs, second thing is their contract agreement length and terms and conditions of it. Many of the big agencies will lock-in the brands more than 6 months which is not a wise advice and it is always advised to work with on-month or three-month contract agencies which will help to get better data about them within this time period.

    Also a good amazon ppc agency will clear explain their strategy and compared your product to those of the competitors and provide tips on how they are going to increase the sales, optimize the listing, budget required and all kind of necessary information which is required to succeed. Thus you can choose wisely an amazon agency which will help your brand to grow its sales.

    ReplyDelete
  98. Really Good Work Done By You...However, stopping by with great quality writing, it's hard to see any good blog today.
    PROcrackerr
    Helium Music Manager CRACK

    ReplyDelete
  99. Make sure the surface where you are placing the printer is clean and close to Pc or laptop.Check the shipped components with your inkjet printer
    http //ij.start.canon,
    https //ij.start.cannon

    ReplyDelete
  100. Allows you to download, install, and configure setup on your PC, Mac and smartphones as well. Canon ij setup is the software to install Canon printer wirelessly.
    ij.start.canon,
    ij.start canon

    ReplyDelete
  101. Canon IJ Network Tool will get you through the network settings uninterruptedly. It is essentially required when you are attempting to get your printer connected to a different network because a new network tends to reset the printer’s existing network settings.The Canon IJ Printer Utility can be used to keep a check on your printer’s ink levels and cartridges and clean the ink tanks and paper feed rollers. Also, you can make adjustments to your Canon printer’s power settings.

    ReplyDelete
  102. The ij.start.cannon setup process for every Canon model is almost similar, however the download through https //ij.start.cannon and http //ij.start.cannon installation process may differ. you can also visit canonsetup-canon.com/ijsetup website for same. Https //ij.start.cannon.Depending on your requirement, it offers a type printer including PIXMA, SELPHY, MAXIFY, etc. canon.com/ijsetup

    ReplyDelete
  103. Once you are done with the driver setup via canon.com/ijsetup , you will have to insert a pile of pages into the printer tray for printing the documents..

    Visit ij.start.canon | ij.start canon and find out the best way to download Canon printer drivers.

    All-in-one Canon Inkjet printers are suitable for home, business, school, and others to improve productivity. You can easily set up your Canon printer through drivers from Canon.com/ijsetup , wireless connection, USB, and a few components.

    ReplyDelete
  104. Meanwhile, choosing to operate in Document Mode, you ensure the improved readability of your documents as a result of scanning the document. Similarly, in Photo Mode, you can get the best quality of your photos scanned. ij scan utility | ij canon scan utility

    ReplyDelete
  105. While looking for playing outdoors these days, it was very difficult as most of the children are addicted to smartphones. Addiction to smartphones has come like a big headache for the parents, they need to find a way to grab the childrens attention away from phones and have a healthy habits which benefits their physical and mental health. This is where kids ride on cars has become one of the popular toys among the kids to play and have fun.
    The kids electric cars will help to come out and play outdoors due to their look alike real cars making the children more enthusiastic and fascinated to play with those toys. The parents can operate the electric rideons with the help of a remote control and hence the children can enjoy the ride while they are thinking like a real riders sitting in the car and having lots of joy and happiness. However, these toys comes in a bit pricy compared to normal toys which are under a 30 dollars price, while these toys costs close to 100 to 200 pounds in general based on the model and specifications of the car. Check here for best rideons.
    While there are high end models like off-road electric cars which are for big kids and come with a battery of 24V making them more powerful and fits perfectly to ride for the age above 8 years old. Thus these kinds of cars are helping the children to move away from the phones and enjoy the outdoors which will help for physical exercise and improve their health as well.
    Also there are Licensed kids electric cars in the segments where the big brands like BMW, Ford, Audi, Lamborghini, Mercedes etc type real world cars are being made in a tiny cars which attracts children so much towards these little rideons. Especially girl child can prefer pink color lamborghini cars if they are fascinated about the sports cars and the boys can choose whatever car model they have interest in. Thus you can purchase a good rideon car for your kid and improve their Joy further.

    ReplyDelete
  106. Follow cricut.com/setup and it is the online portal that allows you to set up your Cricut machine. A most advanced Cricut machine is best in cutting shapes, text, and photos. It doesn’t only make cuts on card stock or vinyl but adhesive foil, faux leather, balsa wood, and more. So how do you start your circuit machine? You have to download Cricut setup from cricut.come/setup then connect your machine and software to get started.

    ReplyDelete
  107. Are you Looking For online assignment help in Canada? Then, don't worry we have a specialized team for assignment help support and they provide you service 24/7 to students. So hurry up and get in touch soon at Canada Assignment Help.

    ReplyDelete

  108. Min veninde fik en virkelig lækker steak, som jeg fik lov at smage. take away lyngby Der var også et lækkert vegetarisk udvalg derudover var servicen som jeg aldrig har prøvet før, med de sødeste og mest opmærksomme tjenere! Jeg vil helt klart komme på Bindia igen!
    Vinyl comes in nearly every color imaginable, and there are also wholesale v necks t shirts products that contain glitter or flocking. If you’re looking for versatility and the ability to create fun, textured designs, consider vinyl.

    ReplyDelete
  109. Og gå ikke glip af deres skønne cheesecake, take away Nørrebro der lige sætter en vidunderlig prik over i’et på en vellykket aften.
    Cheap Polo Shirts Blankstyle has a large selection of wholesale polo shirts to fit both your high quality hoodies wholesale budget and your project needs ranging from cheap to high end.

    ReplyDelete


  110. We have talked with one of the Oily skin person Rosy. "My skin was so oily since childhood and it was really irritating for me. I can't be confident even while i go to party or else to a function, everyone stares at my oil skin and i have to feel the shy. This is where I came across the best Skin Care Products from the Yuglo skin where the best Face Oil is one of the best products which makes my face very smooth, free from oil and looks so great. Since then I have become an evid fan of the natural skin care brand. Especially the Natural Ingredients makes the brand so unique because these days we are seeing so many chemicals used products. Even though, their results might be faster but in the long run, we are going to have issues while using such kind of brands. Hence I recommend Yuglo for any women who is looking for organic and natural products for their hair, face and skin".

    While when we got the opportunity to speak with one of the dry skin women Ily. Ily said "My skin was dry all the time and it is really frustrating experience for me, especially, I stay in the cold regions and when there is heavy cold, you can clear see the layers coming out from the lips and skin due to dryness, that is where i tried the Lip mask from the Yuglo. I apply it at thee night time before i sleep and while i woke up in the morning, i am going to have a great and nice experience, My skin feels better and i also tried the  skincare Facemask from this organic brand. I applied it for a month and you don't and you don't believe me the results are fantastic. I am using both their Peach Lips mask and Face mask for the skin since past 2 years and i would love to try their new products as well in the future. Thanks to the yuglo skin for bringing such awesome products and great thing is they are available at an affordable pricing. It merely costs me $25 per month to try their products and have a healthy skin routine.



    When it comes to the types of the products, there are so many people who are trying the natural face masks by seeing the youtube videos and improving their skin care. There are majorly three types of skins, one is oily, the other is dry and the third one is mixed. Especially those with Oily skin always suffer due to their face looks quiet odd due to the excess oil on their face and they feel so bad about it. The same is the case with the dry skin people too, their skin becomes so dry and can see the layers coming out from their face and especially lips during the winter time, it is going to be so heavy.
      
    This is where the Organic products of skin care has come in handy for these kind of people. While people who are having a mixed dry and oily skin, not had to suffer much but still they can improve their skin tone using the Lips mask product from amazon. This product is bought by more than 100000+ happy customers and has an average rating of 4.5 with more than 5500 reviews. This product is from natural skin care brand Yuglo.

    They have products which are related to hair, face and lips. Especially their lip sleeping mask is the best seller and next comes, the face mask which is also quiet good seller for them. They also have face oil and new vanilla flavor for the lips, they want to become one of the top skin care brands in the future by solving all the issues related to the skin care. They also have the face moisturizer which is one of the best among the face moisturizers compared to others as those comes with the natural ingredients which everyone will love than compared to unnatural and chemical ingredients.

    ReplyDelete
  111. Are you concerned about your lengthy and difficult python project? If you answered yes, you may now relax because a sample assignment is available to assist you. It is Canada's best python assignment assistance service, assisting students in improving their academic performance by completing their python projects on time. In the team of sample assignment, there are over 5500 academic writers with years of expertise in offering the help with python assignment to students in Canada.

    ReplyDelete
  112. ij.start.canon is the solution for easy Canon printer drivers download. Https //ij.start.cannon allows you to install and set up a Canon inkjet printer and ensure that you receive outstanding printing results ,To complete your Canon ij printer setup with several connectivity options like WiFi, USB, Bluetooth, and others, see and follow ij.start.cannon .

    ReplyDelete
  113. Canon inkjet printers are widely used all over the globe. It’s the combination of ink, print text, images, and graphics print output. These models are easy to use and offer outstanding creative printing solutions Canon.com/ijsetup , Canon.come/ijsetup.

    ReplyDelete
  114. Awesome info! I would like to add that scholaron provides the best Free Textbook Answers from any book, any course and college. Checkout what top students are doing.

    ReplyDelete
  115. Great post. I was checking continuously this blog and I am impressed! Very useful info specifically the last part :) I care for such info much. I was looking for this certain information for a very long time. Thank you and best of luck. Get It SMS is a India No 1 Bulk SMS Service Provider in Kolkata. Bulk SMS is considered to be the latest method to advertise and promote products and services. The far reaching impact of cell phones which have transformed the perception of communication as led to the popularity of this new marketing tool. Organisations pertaining to various sectors like Finance, retail, healthcare, automobile and many more are resorting to bulk SMS as a cheap, reliable, convenient and fast way to promote and advertise their products. Bengaluru with its open environment of welcoming change has taken the gamble and benefited by it. Various business houses based out of Bengaluru have witnessed positive results in the form of sales conversions. Moreover, Bulk SMS Service Provider in Delhi have managed to reach the right people with the right information and at the right time. Bulk SMS Service Provider in Mumbai has witnessed a success rate far higher than any other forms of marketing carried out in the city. A large part of this is attributed to the motley population residing in and around the city. These growing sections of IT professionals who migrate to this IT city every year have given it a distinct character. The lazy laid back environment that once characterised the place is being very soon replaced with a fast paced frenzy. People are becoming increasingly pressed for time. The conventional marketing techniques have long become back dated. Organisations therefore need to think of innovative methods to promote their products in order to remain in consumer memory. Bulk SMS is one such innovation that both organizers have adopted and consumers have accepted. Best OTP SMS Service Provider in India can your business to deliver the best services for your business all the time. So, if you look at the results of one time password SMS service. This has provided excellent service in security to the businesses.

    ReplyDelete
  116. India has one of the highest household savings rates in the world; the Indian stock market is still in its infancy. Here is the List of Top 10 Mobile Trading Apps in India. You must check out fundamentals about the app and invest with the best share market app.

    ReplyDelete
  117. Are you looking to pay assignment experts to do assignments in UK? Get remarkable quality online assignment writing help from 6150+ PhD writers and achieve academic goals and excellency. Broad subject knowledge of our experts can assist you with global assignment help in every subjects.

    ReplyDelete
  118. If you're still unsure whether you should hire someone to write my paper, consider the following tips to help you grasp some of the most important factors! Then you are at the right place. Our team of experts is highly proficient in providing online help for a write assignment.

    ReplyDelete
  119. Looking for Test Banks Online just browse test bank 21 and purchase the current updated version of test banks you need at great discount prices now.
    https://testbanks21.com/

    ReplyDelete
  120. 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
  121. Download Cricut Design Space from Cricut.com/setup | Cricut com setup windows | cricut.com setup windows and install it to set up your Cricut machine. With the installation, you can easily move on to designing, cutting, and crafting. An account is essential to create that allows you to select multiple projects and keeps you updated.

    ReplyDelete
  122. harsingar ka ped benefits of harsingar सनातन धर्म के ग्रंथों में कई दैवीय पौधों का ज‍िक्र क‍िया गया है।

    ReplyDelete
  123. Модет вам пригодится статья о табаке щербет https://hookahcat.com.ua/

    ReplyDelete
  124. Hire our professional writers to heal your poor grades. We are a reputed academic assignment expert writing service providing platform. If you find homework writing a hectic task then you should be hiring a helper from our platform. We provide assignment expert uk help at cost-effective prices. Anyone can have our online educational writing facilities and get their work done at the correct time.

    ReplyDelete