Author Archives: marksch

What is LiveCode?

LiveCode is Software

LiveCode is software for people who want to make their own software. In other words: LiveCode is a software development environment.

LiveCode is Visual

The visual nature of LiveCode makes it easy to use. A LiveCode document consists of multiple screens, which are called cards. By dragging fields, buttons and other controls from a tools palette and dropping them onto a card, the user creates an interface. Pictures, movies and sounds can be imported too. A very simple program is sufficient to navigate between the cards.

A moment suffices to create a simple interface in LiveCode, including pictures and navigation (the picture shows a demo application).

 Each control and the window itself contain a small program, called a script. Scripts usually start as lists of simple instructions that allow the user to interact with the program. Scripts respond to mouse clicks, key presses, touch screen events, or other user input. The ability to create a real interface, similar to other software that pupils may be familiar with already, gives LiveCode an advantage in comparison with languages like Scratch, which lack interface components completely.

LiveCode is a Programming Language

LiveCode’s programming language is almost-natural English and contains simple instructions, which are easily understood. For example, a script that responds to a mouse click can look as the following.

on mouseUp

  put “some text” into field “Important note”

  if the seconds > 60 then

    beep

    put “Your time is up” into field “Timer”

  end if

end mouseUp

There is no need to compile code. The user can just switch from the pointer to the browse tool and immediately use the program. This allows the student to see the result of his work immediately. For example, a student would need less than a minute to come up with a random number generator:

1) create a field

2) create a button

3) add the following script to the button:

on mouseUp

   put random(9) into field “Random Number”

end mouseUp

LiveCode is a (better) Learning Tool

By using simple statements, the student can concentrate on learning programming concepts, such as randomisation, conditionals (if, then, else) and repeat loops, without having to put a lot of effort into learning the actual language. This is a huge advantage that LiveCode has over Python, which is often used in schools. Once familiar with these programming concepts, the student can use LiveCode to continue working on advanced projects or move on to other languages.

Besides about programming concepts, students may also want to learn about interface design. Interface design isn’t a subject that can be learned using the programming tools commonly available in primary and secondary schools. Python programmers use a text editor and often enter a command in the DOS prompt or Unix terminal to execute their program. Interface is simply no issue for them. Scratch may show the result visually in a window while also the program itself is displayed visually in a diagram, but the user input has to be part of the program. Scratch can’t he used to teach user interface design. LiveCode, on the other hand, provides all the tools to design an interface. LiveCode separates the programmer from the user, which is one of the most important concepts to be taught in computer science.

An advantage for schools is that LiveCode is available as both a commercial product and a freely available open-source project. Schools don’t need to buy expensive licenses to acquire LiveCode and students can install LiveCode on their own computers at no cost. Non-profit organisations, e.g. those enhancing computer-literacy, amongst youngsters could benefit too.

LiveCode is a fourth-generation language. 4GL’s are usually easy to read and are either compiled into a 3G language or talk to an engine written in a 3GL. Although simple in nature, LiveCode is rich in features giving access to most of the functions an operating system can provide. While 3GL’s like C++ usually provide access to all functions of an operating system, LiveCode may pose a slight limitation on the available features. This is compensated by the much better comprehensibility of LiveCode compared to lower-level third-generation languages.

LiveCode is a cross-platform tool, which means that one may use it on Windows, Linux or Mac OS X. The software created with LiveCode can be used on aforementioned operating systems as well as Android and iOS. Students can install their own apps on their own Android devices without additional cost.

On-line Resources

Nowadays, there are many on-line resources available for LiveCode. The resources are slightly disorganised. RunRev provides some tutorials for free while other tutorials are charged for. There are a few on-line courses available, some for free and some after paying a fee. Quite a few people have started a website with code snippets, which disappeared after a while. The following table shows a number of resources that have been available for a long time and are expected to stay around in the future. Only freely available resources are included.

Link Description
http://revolution.byu.edu/indexgeneric.php LiveCode course from Brigham Young University
http://lessons.runrev.com/ RunRev’s own LiveCode lessons, partly provided by the user community
http://www.sonsothunder.com/devres/livecode/livecode.htm A number of interesting tricks
https://sites.google.com/a/pgcps.org/livecode/home A course intended for highschool students but useful for anyone who wants to learn LiveCode
http://livecodegamedeveloper.com/ Articles about game development with LiveCode

Social Media

The LiveCode community is very active on social networks like Facebook and LinkedIn. There are also several forums and a mailing list dedicated to LiveCode.

Link Description
https://www.facebook.com/groups/runrev/ The largest LiveCode group on Facebook.
http://www.linkedin.com/groups/LiveCode-Developers-50811 LiveCode on LinkedIn
https://twitter.com/RunRev RunRev on Twitter
http://forums.runrev.com RunRev’s forums in English
http://nl.runrev.info/ Dutch Livecode forum
http://de.runrev.info/ German LiveCode forum
http://fr.groups.yahoo.com/group/livecodefr/ French LiveCode group on Yahoo
http://groups.yahoo.co.jp/group/Runtime_Revolution_Users_Japan/ Japanese Yahoo group
http://lists.runrev.com/mailman/listinfo/use-livecode LiveCode mailing list
http://livecodela.com/ Spanish on-line user group
http://twitter.com/xtalkprogrammer author’s twitter account

Books

Currently, there are two important books about LiveCode.

Programming LiveCode for the Real Beginner by Mark Schonewille

http://www3.economy-x-talk.com/file.php?node=programming-livecode-for-the-real-beginner

LiveCode Mobile Development Beginner’s Guide by Colin Holgate

http://www.amazon.com/LiveCode-Mobile-Development-Beginners-Guide/dp/1849692483

 

Economy-x-Talk Releases Installer Maker 1.8.2

A new version of Installer Maker has been released. This update, 1.8.2, is made available as a Plugin for LiveCode as well as a standalone application for users of Xojo, HyperStudion, Prezy, SuperCard and other cross-platform RAD tools.

Installer Maker 1.8.2 allows for saving all settings in a profile. This profile can later be read from disk and re-used for your project again. This way, you don’t need to re-enter all settings and options every time you make your installer. You do need to import your new files. Note that this is a new feature, which we expect to improve in the near future. We appreciate your feedback.

Installer Maker 1.8.2 screen shot

Screen shot of the first screen of Installer Maker 1.8.2.

Additionally, it is no longer possible to accidentally associate the .exe file extension with your executable. We have received 2 reports of users trying to associate the .exe file extension. Although it should be obvious that the .exe file extension whould not be associated with any software, we have decided to disallow the .exe file extension from now on.

The plug-in can only be used with LiveCode 4.5 – 5.x and the commercial version of LiveCode 6 and later. The standalone version of Installer Maker can be used with (almost) any development software package.

Once in a while, we receive a feature request, bug report or other comments. If you decide to send an e-mail about Installer Maker, please include extensive descriptions of the features you request or the bugs you encounter with pictures and other relevant files.

The standalone version of Installer Maker can be downloaded here.

The plug-in version of Installer Maker for LiveCode can be downloaded here.

What if there’s no way to upload a file to a server?

More than once, the question has been asked how to upload files to a server from a mobile device. An important problem is that sockets aren’t supported by default and a bug on Android preventing pictures from being saved to an album or attached to an e-mail. You might use Dropbox or a similar service, but requiring your customers to use an additional service doesn’t give a very professional impression.

I have created a very simple LiveCode+PHP library, which uploads small files to a server. It might also work with bigger files, but I haven’t tested this yet. This library works on any Android/iOS device and also works on desktop machines with any operating system.

There is no documentation yet and the current version is quite crude. No security has been implemented yet. If you’re curious, you might want to have a look. If you need an off-the-shelve solution, then maybe not yet.

The library can be downloaded at http://qery.us/43p after making a donation (or if you made a donation less than 1 year ago). Currently, our server doesn’t send e-mails automatically and you may have to wait up to 24 hours to get access to the private downloads.

Waarom hebben we 8 bits nodig om een symbool op te slaan?

Op dit moment ben ik bezig met het schrijven van een boek. In dit boek schreef ik een heel kort stukje over het geheugen van computers en toen ik dat geschreven had, vroeg ik mijzelf af of ik het zelf eigenlijk wel goed begreep. Daarom besloot ik iets meer over computergeheugens te weten te komen. Ik wilde o.a. kunnen uitleggen waarom we 8 geheugenplaatsen gebruiken om 1 symbool in het geheugen van een computer op te slaan. Het resultaat staat hieronder.

Het boek dat ik aan het schrijven ben is mijn tweede boek. Het is bedoeld voor studenten van scholen en universeiten en geeft een eenvoudige inleiding in het programmeren. Het boek is nog niet uitgegeven. Als je op zoek bent naar een boek over programmeren met LiveCode, kun je eens kijken naar Programming LiveCode for the Real Beginner.

IBM, in 1924 voortgekomen uit de Computing Tabulating Recording Company, dat apparaten maakte om berekeningen te vereenvoudigen, produceerde in 1944 de MARK I, de eerste automatische rekenmachine. MARK I was zo groot als een flinke huiskamer en gebruikte geen micro-elektronica maar radiobuizen en andere elektrische onderdelen. Van geheugen zoals die in hedendaagse computers gebruikt worden, was nog geen sprake.

MARK IIn 1968 introduceerde Hewlett-Packard een apparaat dat je de eerste personal computer zou kunnen noemen, de HP 9100A. Dit apparaat kon ongeveer hetzelfde als de gemiddelde zakcalculator in het begin van de jaren 1990 kon. De HP 9100A had in totaal 8 kilobyte werkgeheugen. In 1976 kwamen Steve Jobs en Steve Wozniak met de Apple I. Om de productiekosten laag te houden, kozen ze er voor om eveneens slechts 8 kilobyte werkgeheugen in te bouwen. In 1977 begon Commodore met de verkoop van de PET 2001, die standaard 4 kilobyte geheugen tot zijn beschikking had. Omdat de PET de eerste complete computer met toetsenbord en beeldscherm was, zou je dit de eerste echte home computer kunnen noemen. Pas eind jaren 1970 en vooral in de jaren 1980, nam de hoeveelheid geheugen die in computers werd ingebouwd, toe. Bekende modellen zijn de C64, de Macintosh 128K en de ATARI ST. De ATARI had minimaal 512 kilobyte geheugen.

De kleine hoeveelheid geheugen brengt natuurlijk beperkingen met zich mee. Dit hangt samen met het aantal verschillende symbolen (letters, cijfers en leestekens) dat je wilt kunnen gebruiken. Als je bijvoorbeeld slechts 2 symbolen wilt gebruiken, een 0 en een 1, dan heb je slechts 1 bit (een plaats in het geheugen) nodig. Dat lijkt merkwaardig, maar omdat een bit aan of uit kan zijn, kun je alleen al door hem aan of uit te zetten een waarde aan hem toekennen, dus bijvoorbeeld 0 of 1.  Als de bit uit is, geef je hem de waarde 0 en als hij aan is de waarde 1. Voor 4 verschillende waarden heb je slechts 2 bits nodig.

00 alle bits uit (bijvoorbeeld 0)
01 een bit aan (1)
10 de andere bit aan (2)
11 twee bits aan (3)

Het probleem is dat je meer bits nodig hebt naarmate je meer symbolen tot je beschikking hebt. Als je meer dan 4 (en maximaal 8) verschillende waarden wilt kunnen weergeven, heb je 3 bits nodig:

000 (0)
001 (1)
010 (2)
011 (3)
100 (4)
101 (5)
110 (6)
111 (7)

Als je alle 26 (hoofd)letters van het alfabet wilt gebruiken, heb je voor elk symbool 5 bits nodig:

00000 (A)
00001 (B)
00010 (C)
etc.

en als je ook nog 26 kleine letters en 10 cijfers wilt kunnen gebruiken, dus in totaal 62 verschillende symbolen, dan heb je voor ieder symbool 6 bits nodig. Voor het gebruik van extra symbolen heb je dus voor ieder symbool meer bits nodig. Daardoor neemt het benodigde geheugen voor het weergeven van de symbolen exponentieel toe. Vanaf eind jaren 1960 werkten de meeste computers met 128 verschillende symbolen en vanaf eind jaren 1970 met 256 verschillende symbolen. Daarvoor zijn 7 respectievelijk 8 bits per symbool nodig. Het aantal bits dat nodig is om een symbool in het geheugen op te slaan noemen we een byte.

Voordat iemand de termen bit en byte bedacht, gebruikten we voor een rijtje eenen en nullen de term “woord”. Als je een rijtje binaire code, bijvoorbeeld 00000 00100 10010 00000 achterelkaar ziet, is dat wel begrijpelijk. De in binaire code weergegeven symbolen worden van elkaar gescheiden door spaties en zo krijgen we iets wat op woorden lijkt. Ook nu noemen we dergelijke door spaties van elkaar gescheiden codes woorden, ook als ze op een andere manier worden weergegeven, bijvoorbeeld  EF EE   00 36 00 A0 00 A8 etc.

Het aantal geheugenplaatsen dat je nodig hebt om een bepaald aantal symbolen weer te geven, kun je nu berekenen. Om 128 symbolen weer te kunnen geven, heb je 128*8=1024 bits nodig. Aangezien 8 bits gelijk is aan 1 byte, is 1024 bits gelijk aan 128 bytes. Als we de volledige ASCII tabel 4 keer in het geheugen zetten, hebben we 1024 bytes nodig. Omdat dit ongeveer gelijk is aan 1000, noemen we dit een kilobyte. Het is bij het rekenen met bits en bytes handiger om van eenheden van 1024 dan van 1000 uit te gaan.

Aangezien elk symbool 1 byte in het geheugen nodig heeft, kunnen computers met 8 kilobyte geheugen  dus maximaal

8 kilobyte geheugen * 1024 bytes = 8192 symbolen

onthouden. Als je dat geheugen moet gebruiken voor zowel een programma als de variabelen die door dat programma gecreëerd worden, dan zijn de mogelijkheden nogal beperkt, vooral vergeleken met hedendaagse computers. Deze tekst, bijvoorbeeld, zou al ruim de helft van het beschikbare geheugen in beslag nemen.

Everything Everybody Needs To Know About My Book

During the past year, I have written several messages on the LiveCode mailing list, the forum, the Facebook group, Economy-x-Talk’s web site and other places. Now that we’re getting closer to the end of he year, it is time to wrap it up. This blog posts gives an overview of all you need to know about the book.

First things first

There are only 30 copies left. These will be sold out by 12 December 2013 (there might be one or two left). We will ship the last batch of the year on that day. You can still purchase the book after 12 December, but your order will be put on a waiting list. Before we can ship more books, we have to print them. We expect to resume shipping by the end of January.

Want to know the current situation? Skip to Edit 4.

Edit 1: The current date is 1st June 2014. A new batch is being printed and purchased books will be shipped within 2 weeks. We now have another 30 copies available again, which we expect to sell within the next month. Another batch of books will be printed in 2 months. If you don’t want to be on a waiting list, order now.

Edit 2: We’re now one year after the previous edit: june 2015. We have had a time that we couldn’t ship all orders, but we caught up on the back log and we printed some extra. If you order now, we have a book in stock for you and we will send it within two weeks.

Edit 3: We have reached the end of 2015 (december 20th). We’ve printed a large pile of books and now we have enough in stock for the next few months. If you’re asking: “is the book still available?” The answer is: “Yes! And it will stay like that.” Tomorrow we ship the last orders of the year and on 2nd of January we’ll prepare the next batch. So, you can order now and expect the book to arrive at your home within a few weeks.

Edit 4: In November 2016, the fourth print run is still going strong. We sell and ship books every week, except during holidays. Any books purchases before Monday 28th November, will be shipped on Wednesday 30st November. If you buy the book later, but before 14th December, we will make sure to send it before Christmas.

No e-book

As it looks now, chances are very small for an e-book to appear, because people just don’t understand why they would have to pay for it. As long as people feel that an e-book is not something to pay for, we can’t afford to publish one. Additionally, our experience shows that e-books are easily hacked and obviously we don’t like that.

Shipping costs: none

A question that keeps coming back is how much it costs to send a copy of the book to the USA. Our website clearly states that shipping costs are included in the price. The book costs 32 euro and this covers everything, including taxes, packaging and shipping. The website also contains more information that you might want to read if you’re interested in the book.

Discounts available!

Discounts are available to schools, user groups and book shops, if at least 2 books are purchased. Anyone else buying at least 10 copies gets a discount too. The only condition is that all books are sent to one and the same address. Usually, a discount is 5 euro per book, but this is for Economy-x-Talk to decide on individual basis. Just contact us to find out what we can do for you.

The procedure

Go to our website to purchase the book. Read everything. At the bottom of the page, you’ll see a menu with payment options. If you are in a Euro country, make sure to choose (International) bank transfer. This is the cheapest and quickest way to pay if you are in the EU. If you would like to pay in a way that is not listed, e.g. Western Union, contact us to make an arrangement.
A few days after you purchase the book, we send you an e-mail, asking you to confirm your address. Most people reply immediately, but if you don’t reply within 4 weeks, we send you a letter by postal mail. If you still don’t reply, we keep your order in the queue for one year and return your money if we never hear from you (see the website for more info). Once your address is confirmed, your book is packaged and scheduled for delivery.

Normally, we ship the books every 2 weeks. Most books are delivered within 2 weeks after we ship them. This means that delivery time is anything between a few days and 4 weeks. If your local delivery service can’t find you immediately, they might need a little longer to deliver the book to you. If you don’t confirm your address immediately, there will be some delay as well.

We would appreciate a brief note from you, when you receive the book. This helps us to monitor the shipping procedure and allows us to solve problems if there are any.

Free Books!

Yes, really, we are giving away free books. As soon as the book’s Facebook page reaches 1000 “likes”, we’ll give away 10 books (that’s over USD 400 worth of books).  Currently, we have over 100 fans. Because it will take a while to reach 1000, we’ll be giving away an extra book as soon as we have 200 fans. Like this Facebook page, share it with your friends, and maybe you’ll win a complimentary copy of Programming LiveCode for the Real Beginner.

Feedback

Your feedback is of utmost importance. There are a few ways to provide feedback. First of all, you can send questions about your order to Economy-x-Talk support. If there happens to be a problem with your copy of the book, you can also report this to support.

The most important way to provide feedback is our survey. We have set up a survey, which helps us to take important business decisions about future prints and new releases. Please, make sure to fill out the questionnaire when you receive the book. We will send the results to you, if you leave your e-mail address after filling out the questionnaire.

Anyone reading the book is welcome to ask questions on the Q&A website. You might want to ask help understanding the examples. Perhaps the scripts in the book inspire you to try something yourself, which you can also discuss on the website. If your question is about the book, it is always useful to mention the pages that your question is related to.

Summary of important links

No doubt, the most important website is the order page for Programming LiveCode for the Real Beginner. Head over to the page and buy your own copy while you still can! Also very important are the survey and the Q&A website. Obviously, you might want to contact us directly if you have questions.

Additonally, there is the Facebook page for the book and the author’s Twitter account. You might also want to follow Economy-x-Talk’s Twitter account, where you’ll find IT-related news. You might want to check out Economy-x-Talk’s website, where you’ll find products such as Color Converter and Installer Maker. Installer Maker wraps your standalone in an installer and is well-suited for LiveCode.

We have created a portal, which gives access to the most important websites related to Programming LiveCode for the Real Beginner. You can find it here.

If you have any questions about this blog post, you can leave a comment.

The Book “Programming LiveCode…” on the World Map

Where do we sell the book Programming LiveCode for the Real Beginner? You can see it in this map. Bright red means highest sales, bright blue means lowest sales and white means that no data are available.

wereldkaart ingevuldThis map might also indicate where LiveCode is the most popular. Don’t be fooled by the red colour all over North America: The US and Canada are good for approximately half of all sales together, while Europe accounts for almost all of the remaining 50% and all other countries for approximately 5%.

We believe this doesn’t only give some insight into the requirements of our own marketing strategy, but probably also RunRev’s lack thereof. Especially in South America, there is a big market yet to be developed.

New Sales Channels for Programming Livecode Book

In a few days, we will be shipping copies of my book Programming LiveCode for the Real Beginner again. If you don’t want to wait long, this is the time to order your copy. If you order it now, We’ll be shipping it in a few days and you’ll get it within 10 days (depending on your location). Go to http://livecodebeginner.economy-x-talk.com/ for more info.

We have added TrialPay as a payment option. This means that you can pay with credit card again, without having to use PayPal. If available, you can order an alternate product and receive the book for free or you choose the “rather pay” option and pay for the book. (Currently, TP is unavailable in some countries; we try to fix this). If you’re in the Euro zone, you might want to do a bank transfer.

Another new sales channel is Lezerspunt.nl. Although this is a Dutch website, they ship all over the world. Currently, this is the best option if you are in the Netherlands and want to use iDeal. (If you are in a different country, you can use PayPal). If you click on this link http://qery.us/3z3 you will go directly to the display page for my book in the Lezerspunt store. A picture of the website follows below.

 

Impression of Lezerspunt.nl

Impression of Lezerspunt.nl

After ordering your book, make sure to keep an eye on your mail box (and possibly spam box). We will send you an e-mail, asking you to confirm your postal address. If you don’t confirm your address, we can’t send you your book. Please, make sure that PayPal, TrialPay and your credit card company have your correct e-mail address, phone number and postal address. They will forward this information to Economy-x-Talk and if any information is incorreect, your book may not arrive.

I know that many people are currently studying the book. If you have any questions, you can ask at http://livecodebeginner.economy-x-talk.com/qa/ where you can also discuss subjects with fellow “students” and if you’re lucky I’ll answer your questions myself.

Programming LiveCode…

Now that the second print run of my book is being shipped, I’d like to write a few words. Last week, we sent almost 20 books all over the world.

I would like to ask everyone, again, to make sure that you provide us with a correct e-mail address when you order the book. Three people ordered the book with false contact information and it took a tremendous effort to find out who those people are and where they live. Please, make sure PayPal, your credit card company and your bank have your correct e-mail (if applicable), name and address and make sure to check this before, and not after, placing your order.

When you receive the book, please fill out the questionnaire at http://livecodebeginner.economy-x-talk.com/survey/ . Your feedback is very important, because we use it to improve the book and our services. The questionnaire contains questions that we really need you to answer, even if you decide not to buy it. Another place for feedback is our Q&A website at http://livecodebeginner.economy-x-talk.com/qa/ . Here you can post your questions and comments and discuss the book with other readers.

One issue that has become apparent from the survey is the price perception. There is little we can do about the price, because it just happens to be the total cost of printing and packaging the book, plus all taxes and postage and a minimal margin. However, we have made it easier to get a discount. From now on, we will apply a discount to any order of 10 books or more. The discount is at least 5 euro per book. User groups, book shops and schools always get a discount, if they order more than 1 book (note that all books must be sent to one single address). Contact us for a quote.

I will say more about the survey in another e-mail. I suppose there are people on this mailing list who would like to read some answers. For now, additional general info about the book can be found at http://livecodebeginner.economy-x-talk.com/ .

N.B. You may get a free copy by liking Programming Livecode… on Facebook.  The URL is https://www.facebook.com/LiveCode.Beginner and as soon as we have 1000 ´likes’ we’ll raffle off 10 copies.

Strõm Flow Chart Software Project Updated!

flow screenshotThe Strõm Flow Chart Software Project got updated! Version 1.2.2 of the flow chart software program should fix an annoying bug, which would show an error dialog every now and then. Additionally, we are preparing the Strõm Flow Chart Software Project for a big update. To make this possible we need to make some small changes in advance. We have started implementing these changes in 1.2.2 and will gradually complete the adjustments. When 2.0 arrives, you will be able to convert documents saved with 1.2.2 or later only. Therefore, we recommend everyone updating to the latest version of Strõm  now! Strõm 1.2.2 is a free update for current license holders!

More info at: http://flowproject.economy-x-talk.com/

Book ‘Programming LiveCode for the Real Beginner’ Is Available Again!

The first print of the book “Programming LiveCode…” sold out in just over a month. Everybody who took an interest in the book was asked to do the survey at http://livecodebeginner.economy-x-talk.com/survey/ (which you can still fill out if you want) and that made it clear that we are doing things pretty much the right way. So, we’ve decided to print more books, after making a few small corrections.

Programming LiveCode for the Real Beginner, by Mark Schonewille

Programming LiveCode for the Real Beginner, by Mark Schonewille. Front and back sides of the book. ISBN not confirmed yet.

I haven’t changed much because I want teachers and students to be able to use the two prints next to each other. Nonetheless, I went through my book once more and corrected a few dozens of small typos. Where possible, I improved any confusing phrases. You can find the most important changes at http://qery.us/3xy . I’ll be extending the list of errata during the next few weeks.

Besides corrections, the new print has a slightly heavier soft cover and a better index. If you still have any comments or questions while reading the book, you can post them on our Q&A site at http://livecodebeginner.economy-x-talk.com/qa/ .

An important change, partly due to the survey results, is the minimum order size that qualifies as a bulk order. From now on, if you order at least 10 books, you may qualify for a big discount (this used to be 25 books). Contact me off-list for more information.

If you bought the book recently, we’ll be shipping it within a few days. Books purchased after today will be shipped within 2 weeks. DHL needs at most 3 weeks to deliver the package, while you should normally get it within 1 week after we ship it.

More info about the book can be found at http://qery.us/3xz.