Euphoria News [Submit News]

New EuMakeDoc

2008.01.30 EuMakeDoc is a project that allows programmers to imbed documentation directly in the source code, and then extract them into a nice set of HTML files. Please download the new source and let me know if you experience any problems. If you need to know how to use it, please post to EuForum.

The Perfect Euphoria Setup

2007.10.11 First, a little announcement: EusLibs is available! The EusLibs (Euphoria Unofficial Standard Libraries) repository is now open at Sourceforge. The step-by-step instructions below will show you how to get it to your PC.

If you want the perfect setup to Euphoria, follow the steps below:

  • First, download and install Euphoria to its default location.

  • Next, create a folder in root called "eu_includes" (or similar). You will put all your non-standard include files somewhere in this folder's hierarchy and NOT in the c:\euphoria directory. Here's why: when Euphoria get updated, it usually replaces the euphoria directory. If your include files are in there, suddenly your system won't be able to find them anymore and your programs will fail. You will have to manually move them from the old folder to the new. That's a wasted step. :)
  • For Windows users, download and install TortoiseSVN. For Linux/FreeBSD users, go to the SVN home page.

  • Add Euphoria Libraries. You will do this for several libraries, but we'll use EusLibs for this example. The instructions below are for TortoiseSVN, but will be similar for other programs/platforms.
    • Create a folder for the library. We'll use the Euphoria Unofficial Standard Library Repository for this example, so call your new folder "EusLibs."
    • Right click on the folder and choose "SVN Checkout..."
    • Whenever you want to checkout source code from Sourceforge SVN, you'll need to have the path to the SVN library. It is usually in the format "https://THELIB.svn.sourceforge.net/svnroot/THELIB/trunk." The trunk directory is standard but optional, so verify the path at the library's SVN page.
    • For EusLibs, the URL to the SVN repository is: https://euslibs.svn.sourceforge.net/svnroot/euslibs/trunk. Copy and paste that into the textbox.
    • Click OK to get the library checked out to your PC.
    • Final step: modify your system EUINC variable to include the library you just checked out.
      • Right click on "My Computer" and choose properties
      • Click on the "Advanced" tab
      • Click the "Environment Variables" button
      • In the User Variables list, select the EUINC variable and click the "Edit" button. If you don't have a EUINC variable, create it.
      • Press the "End" key to position the cursor at the end of the "Variable Value" textbox. If there is no semi-colon there, type one. Now type the path to your EusLibs folder: "c:\eu_include\euslibs;" (or whatever path you chose). I don't know if the ending semi-colon is required, but I always include it just in case.
      • Click OK a few times to exit the dialog box.

Your system is set up to use the EusLibs library! In the future, when updates are made to EusLibs, you can simply right-click on the folder and click "SVN Update," and the updates will be applied. It's very easy and convenient to stay up-to-date. Read more about Subversion.

You'll want to follow the "Add Euphoria Libraries" steps above for the following libraries:

  • EusLibs - Done! All the base functionality you'll ever need. :)
  • wxEuphoria - awesome cross platform GUI
  • EuSQL - use SQL queries with the Euphoria Database System
  • matheval

You can also use SVN to keep your programs up-to-date, including wxEDB (a must-have EDS database manager that uses wxEuphoria and (optionally) EuSQL) and Euphoria MakeDoc, a documentation generator that extracts documentation from your source code. EuMakeDoc is used to make wxEDB and wxEuphoria documentation.

Building Blocks Content Management Framework

2007.06.19 Just announcing that BBCMF has its own page now. Check it out!

New Version of Euphoria

Euphoria Getting an Upgrade

2007.05.29 Euphoria is moving on up to version 3.0.3. It is available for beta testing, so download it now and give it a try. This latest version officially includes my relative include file path enhancement (see Relative Include Paths below for more info).

wxEuphoria Getting an Upgrade

2007.04.04 Euphoria's best GUI package, wxEuphoria from Matt Lewis, has been "reorganized and updated to take advantage of the latest wxWidget release (2.8.x)." It's looking better than ever! Unfortunately, all (most?) prior wxEuphoria code is incompatible (I think... I'll confirm with Matt). Alas, the price of progress. Right now it's in beta, so download the code and start testing.

Beginner's Guide to Euphoria Complete!

2007.04.04 Jules Davy has completed the conversion of David Gay's original interactive Beginner's Guide to Euphoria DOS program into a web site! If you're a nub, it's a comprehensive introduction to the basics of Euphoria. Check it out!

Unique Filename

2007.03.31 There have been a couple of unique filename generators on the list and submitted to the archive lately. I've written my own that I think will be much faster and more reliable, especially if dealing with large directories of files. For my content management system, I could be generating more than one file per second, so I need the ability to do that. Check out my Unique Filename Generator and let me know what you think.

UPDATE: Enhanced so that newFilename() creates the file with the filename it generates, then returns that filename. You can then use it to open the file. Before, it returned only a valid filename that, theoretically, could already be created and used by the time you try to use it. Thanks to Pete Lomax for the idea.

Relative Include Paths

2007.03.20 The desire to use relative include file paths in Euphoria has existed since time began. Well, at least since Euphoria began. Or shortly thereafter. Anyway, I had a real need for this recently and asked about it on EUforum. It hadn't been done, but nobody put up any stop signs, so I modified the interpreter and now include files can be relative to the file calling the include (see this thread). When you include a file, the Euphoria interpreter will now check the folder of the calling file first for the include file, then it will search the remaining options: program file folder, EUINC paths, EUDIR/include path. The interpreter was already keeping track of the calling file and its path, so it was very simple to make the enhancement. I want to thank Matt Lewis and Rob Craig for their help in getting this done. You can get the updated source from the Euphoria SourceForge project page.

Nexus Radio

2007.03.07 Christopher Bouzy and Egisca have released an upgraded version of their Nexus Radio program. You can download a demo, and it works with Windows Vista. It's a great application- looks and works great, from both a user and audiophile perspective, and it's made with Euphoria! It has a lot of features, including a TiVo-like recording option for your favorite radio stations. Read also my interview with Christopher Bouzy (from 2005 but still relevant). I'm listening to 80s music while I work on BBCMF.

Euphoria for CGI

2007.01.22 I don't know how Euphoria compares to PHP or Perl as far as speed (I'm willing to bet Euphoria is a lot faster), but I do know that it's fast enough and easy to develop with. I've used Euphoria to build a Content Management Framework called Building Blocks CMF. It's currently running my Personal Home Page as well as a time-management application on the web called StepByStepToDo.com. Interestingly, it's not running my Euphoria web site, yet. I just haven't had time to set it up. I'll get to that soon. Right now I'm developing the install procedure and the very basic package. It already has a blog module, comments module, and articles module. I'm going to start on a forum module soon, then I'll release it into the wild for testing. Should be fun! :)

Documenting Your Code

2007.01.12 I'm starting to develop a documenting-in-code habit (that I should have started long ago). That is, I put the documentation for my code inside the program itself, instead of maintaining separate files. If you look inside the wxEuphoria library, you'll see a bunch of comments like '--/topic Events' and '--/proc enable_events().' This is the embedded documentation for wxEuphoria. When you run that file through a program like makedoc, it extracts all that embedded documentation and outputs them to nicely formatted HTML files. makedoc was originally developed by Derek Parnell. I've added two enhancements to makedoc: 1) You can use /raw_start and /raw_end to include uncommented code in your documentation. 2) The output now goes to a sub-directory so it doesn't clutter up the base directory.

There are other documentation generators in the library, including Derek Newhall's EuDoc2. The cool thing about EuDoc2 is that it generates documentation that looks like Rapid Deployment Software's documentation.

Structured Sequences

2006.01.05 If you're keeping up with the discussion on EuForum, you'll note some recent activity regarding structured sequences. The idea can be compared to variable constants. With constants, we have a variable whose value is fixed; it will not be allowed to change. With a structured sequence (or structure), we have a variable whose structure (internal elements) is fixed; it will not be allowed to change. For example, if our_sequence is { atom, integer, sequence, integer }, then you can't assign the value 1 (an atom/integer) to our_sequence[3]. In Euphoria's current incarnation, you have to manually validate the data going into our_sequence[3]. With built-in structures, the interpreter would manage that and throw errors when an exception occurred.

Matt Lewis' OOEU allows not only simple structures, but also very advanced objects (that can have their own internal functions).

Mark Akita's Blog

2006.12.07 Mark Akita has done a great favor for the Euphoria community in developing his SDL libraries. Now he's got an interesting blog going on at Mark's Digital Arts. Check it out!

Also, I've recently switched web hosts (did I tell you this already?). If something's not working, please let me know! Thanks. Now get back to programming. :)

Beginner's Guide to Euphoria Now Online

2006.12.04 David Gay created a very popular beginner's guide to Euphoria that runs as a DOS program. As Jules Davy says the online version "overcomes some limitations of the original format, such as not being able to print out any text or demo programs (which are here listed in the body of the text), and of course, the tutorial can now easily be read by Linux/FreeBSD users." Excellent! Go there now, nubs: David Gay's Beginner's Guide to Euphoria.

Euphoria Goes Open Source!

2006.10.19 I know I'm a little late with this news item, but it's not like you don't get your news from the Official Euphoria Forum. Anyway, Euphoria is completely open and free now, starting with version 3.0.0. I haven't updated my library, yet, but of course I will soon. If you've upgraded, let me know what you think.

Euphoria Goes Open Source?

2006.09.19 Rob Craig announced that Euphoria would be going FREE and OPEN SOURCE. How's that for a birthday present?! (Today's my birthday.) But should we believe this? Canada- from whence hails Rob Craig- uses a different calendar and today is April 1 up there. Okay, I made that up. Maybe this is for real! Stay tuned for more details as they are available (what everybody's saying).

We Have a Wiki

2006.09.07 akusaya has set up a Euphoria Wiki! All you Euphoria programmers need to check it out and start contributing.

Sudoku + Euphoria = Cool Web Site

2006.06.02 Check out Julian Ebeli's web site which features a sudoku puzzle you can solve. The site is served up by Euphoria!

Smart Signature

2006.05.22 I love Juergen's latest signature ("Please excuse my flawed English. My native language is Euphoria."). In other news, there are 36 people signed up at Euphoria's Frappr Map. That's pathetic, people! Where are all the Euphoria users?! :)

Also, I need some feedback on Bernie's xMOTOR series of code includes. It seems to be a very versatile library! If you're using it, drop me a line and let me know how it works for you. (Bernie, feel free to send me some marketing materials, too.)

What Do People Want These Days in a Program

2006.05.01 People are always wanting ideas about what to code next. Well, here's a couple of cool lists that might help you decide what program to make next. First, a lot of freeware utilities, then the open source utilities, and, finally, a list of 101 Fabulous Freebies.

SDL Graphics from Mark Akita

2006.04.28 Is it just me, or is Mark Akita's SDL Graphics Library and Demos pretty cool?! The graphics are nice and smooth on my Intel Pentium 4, 3GHz with 1GB RAM PC. How does it work on your system? He's also got TTF fonts working with SDL. I hope he continues developing this, because when I get rich and am able to devote time to projects I want to do, I'll be using his SDL library. :) [Update (2006.05.01): Igor Kachan has updated Mark's wrappers for international use!]

Where Are the Euphoria Programmers?

2006.04.12 Go to Frappr and register so we can see where we are!

Conversion of Binary Clock from Win32Lib to wxEuphoria

2006.03.03 As a test, I converted Greg Haberek's BinaryClock program. Take a look at the code comparison.

Using Euphoria

2006.02.14 I apologize for not wishing you a happy New Year! So, Happy New Year! Now that the party's over, let's get back to programming. The 2.5t3 release of the Euphoria package (interpreter, Eu-to-C Convertor, etc.) has been released with a new multitasking API. That's exciting... so I'm told. Also, the ESL project looks like it might be getting a little life back into it. I hope so, because it looks important and useful. So, where is Euphoria, now? My assessment is, it's moving slowly but surely. Where does it need to go? I think Matt Lewis' wxEuphoria package needs a robust, versatile IDE, along the lines of Win32Lib Enhanced IDE. I still use the Win32Lib Enhanced IDE because it makes creating the apps I make so easy. I'd rather be using wxEuphoria, however, because it's cross platform, and a few of the forums I visit are populated by a majority of Linux/FreeBSD users! Yes, I work with wxEuphoria, but not as much as I would if it had a fully functional, release-quality IDE. ;)

Euphoria CGI

2005.11.04 I know it's been a long time since my last post, but, like you, I've been busy programming in Euphoria. In particular, my latest job is the MyPrayerList.org web site. It's entirely served up by Euphoria+Apache, using EDS databases in the background. Click the link and give it a try.

In other news, Euphoria is getting multitasking built-in. This somehow relates to threads. If you have any feedback or insights in this regard, let me know.

Threading Euphoria

2005.08.22 I've heard the term before, but don't completely understand what it is. There are some Euphorians who clamor for threads, and now Al Getz has come up with some clever "thread management libraries" (see also 'thread' in Euphoria archive). If you want to understand what threads are, here are some links that I found useful: MIT Intro to Threads Bryan O'Sullivan Georgia Tech's Intro to Threads Wikipedia Entry for Threads

Euphology

2005.08.22 I was adding some links to the Euphoria web ring (see bottom of nav menu to the left) and came across Michael Raley's Euphology web site, which features a white paper he wrote titled "Production in Euphoria." It is a great beginning to what could be a very important resource for Euphoria programmers. (Also, check out Michael's game Warehouser, written in 100% Euphoria!)

New Backend System

2005.08.22 I've changed things up a bit with how this web site gets served. I'm now using two libraries: Kanarie, from Tommy Carlier, and cgi.e, from Brian Jackson and Greg Haberek. I'm switching in an effort to organize my code better and make maintaining the site easier. Please let me know if I've broken something. ;)

Euphoria Serves the Web

2005.08.09 Want to see a very cool web site served up by Euphoria? Go here. Andy Serpa, the site's designer, uses the Kanarie Template System from Tommy Carlier, and a Euphoria Database backend.

Pop Games Get Popular

2005.06.27 All you Euphoria game programmers out there, get encouraged.

CGI Handling

2005.06.01 Ron Weidner (TechPort80) has written an article explaining how to deal with CGI post data using Euphoria. Check it out and let him know what you think.

Euphoric Mysteries Book II

2005.05.25 I had the privilege of talking with Bill Aitken, who's about to publish his book, "Euphoric Mysteries - A Beginner's Guide to Euphoria" (Table of Contents) If you have any questions, please ask!

New EuSQLite Article by Chris Burch

2005.05.23 If you are doing any development with databases, I suggest you take a serious look at Chris Burch's article, "Using EuSQLite - A Beginner's Guide." Well-written and informative, it is a convincing argument for why you should consider using the EuSQLite wrapper originally by Ray Smith but updated by Chris (wrapper downloads).

Show Some Skin and Win

2005.05.19 There's a new contest in town, and there's software and cash in the prize pot. See this page for complete details, then get to work!

Best of Euphoria List

2005.05.17 A question I get asked pretty often is, "Which code library is best?" So, I've started a list and survey to get input from the Euphoria user community. Check out what I've got so far and let me know your opinion.

Euphoric Mysteries Book

2005.05.13 You might've read on the Euphoria web site on the Related Books page about Bill Aitken's book "Euphoric Mysteries," due out "October 2004." Looks like Bill's running behind, but it's going to be worth it! He allowed me to review the first few chapters and it looks great. A book for beginners, it covers the basics of programming with Euphoria from installation to atoms and sequences, then gets into programming with Judith Evans' IDE and the Win32Lib. Comprehensive, yet easy to read, this will be a great introduction to Euphoria for new programmers.

wxEuphoria 0.6.0 is Out

2005.04.20 I'm using wxEuphoria for all my Euphoria GUI development. Check out my new wxEuphoria page!

Giving Euphoria the XML

2005.04.20 Besides the many excellent XML offerings in the Euphoria archive, there's now a library to work with eXpat. Here's a little blurb about eXpat I got from their website:

"eXpat is a library, written in C, for parsing XML documents. It's the underlying XML parser for the open source Mozilla project..."

Independent Game Programmers (That's You)

2005.04.01 Wired has a cool article on independent game developers. I know there are many of us who fit that category. It was nice reading about others' experiences and comforting to know there are others in the same boat.

Euphoria Custom Interpreters

2005.03.28 There are several modified interpreters available in the Euphoria archive. These modified interpreters enhance and extend Euphoria's base functionality, providing additional features like built-in object orientation, block commenting, etc.

Euphoria Classes at Game Programming University

2005.03.05 There is an "Introduction To Euphoria Programming" course getting started over at the Game Programming University. They are enrolling students now, so if you're a Euphoria programmer, get over there and check it out. The next class will be more advanced and will focus on the design of a game engine.

Exploring Numerical Integration

2005.03.03 I'm very tempted to download Don Cahela's Runge-Kutta Numerical Integration package. I'm both curious and intimidated at the same time. The description says (in part), "Stiffly accurate generalized Runge-Kutta method SGRK23 to solve sets of stiff ODEs including problems with full, sparse, tridiagonal, or pentadiagonal jacobian matrices." I have no idea what that means. I feel an education coming on.

Euphoria Hosting

2005.02.24 This web site is hosted on WebIntellects servers. I don't think I've ever experienced downtime on any of the sites I host with them. Plus, their tech support is "5-out-of-5 stars" in my book (and for less than $10 per month!). Tell them I sent you. ;)

Control those Widgets

2005.02.16 I don't like a static-sized window (one that you can't resize), because I like the flexibility. If I go to a higher res, I want to be able to take advantage of that screen space (and I assume so do my users). Recently, Patrick Barnes (MrTrick) updated his AutoSize library. It's very easy to use and now much more comprehensive, including the ability to set a minimum window size and attach controls to other controls. I just took about ten minutes to update a program my company uses to distribute our products. Now it's no longer static sized! Check it out.

Chatty Euphorians

2005.02.11 Don't forget! There is a Euphoria IRC chat channel where you can chat with other Euphoria programmers. Somebody's usually there, and they're always friendly (even to newbs!).

Euphoria OS?

2005.02.03 I sometimes get asked if Euphoria could be used to program an operating system. If you ask Ryan Johnson, he says you could get close! His FluidAE "application environment" looks very interesting and could change the way people think about Euphoria.

Article Requests

2005.01.28 Real life catches up and the printing article goes to the back burner. I know you know how I feel. Anyway! I'm starting a List of Article Requests that, if you're willing and able, you can write for this web site! You won't get any money, but you will gain notoriety.

Coming Soon...

2005.01.21 Just an update on a few things coming up. 1) I'm continuing work on the GUIphoria series of eBooks (Part 1, Part 2). I'm hoping to finish Part 2 by the end of January. I'm moving towards teaching only the two cross-platform libraries for this. I think once either one has an IDE, there's no point in going single-platform anymore. If you have an opinion about that, let me know. 2) I'm going to do an article or series on printing with Euphoria. Irv Mullin's easy-to-use printing library was mentioned on EUforum. I checked it out and liked what I saw. Then I saw a few other printing libraries that are pretty impressive, especially Pete Lomax's Print Preview and Report Generator code. Wow! Stay tuned...

Euphoria Desktop Help Update

2005.01.17 Brian Broker has created a compiled HTML file (CHM) for Euphoria version 2.5. His version for Euphoria 2.4 was a constant companion of mine; no doubt this one will be as well.

Euphoria Editor of Choice

2005.01.17 I'm dumping UltraEdit-32 and trying Crimson Editor. UltraEdit has an annoying bug with its open-from-FTP feature and I've withstood it long enough. Crimson Editor is free and has Euphoria syntax highlighting. I'm also going to give MEditor a try. I don't think it has HTML syntax highlighting, though, which I use on a daily basis.

Euphoria Desktop Help

2005.01.11 One of the most helpful archive contributions I've used is Brian Broker's Euphoria Help file, a compiled-HTML file. Unfortunately, I haven't voted for it like I should (apologies to Brian for that oversight). Brian's help file is for Euphoria version 2.4. If you're looking for a help file for version 2.5, check out Dan Everingham's F1 Jockey. I just noticed it in the archive and it looks great. You can also search the RDS archives for more "helpful" files. If you have any other Euphoria help ideas, let me know.

GUIphoria (Programming GUI Apps with Euphoria)

2005.01.07 In case you haven't noticed, I've posted my GUIphoria eBook. Currently, the only section is an exploration of a few GUI libraries for Euphoria. It is a short primer on using these libraries. I hope it's not too much information, but still enough to give you some idea of how to code a GUI application with Euphoria. I'm working on an advanced section. If you have any contributions, please send them my way.

Insight Concepts Article

2005.01.04 I had the privilege of interviewing Christopher Bouzy of Insight Concepts... (More...)

OpenGL Demos

2004.12.29 I've dabbled in OpenGL, so I like to see what other people are doing with Euphoria and OpenGL. Practicing01 has put up some OpenGL demo code, and it looks very cool.

New Article

2004.12.27 A new article posted: Speed Freaks.

Code Snippets

2004.12.23 I'm starting a new section for publishing code snippets. If you have a block of code that's very efficient at what it does, please submit it to me. Otherwise, have a look-see at these efficient algorithms.

Upcoming Articles

2004.12.21 You'll notice the Articles section is live (and there's a link in the navigation panel to the left). There are two articles in the works: one is an interview with Insight Concepts' president Christopher Bouzy. The other is an interview with the winners of Derek Parnell's Euphoria Coding Contest.

If you have an article you'd like to submit, please submit it! I'd like to make this a library of useful texts for learning Euphoria programming, for all levels from beginners to advanced.

Article Submissions and a New FAQ

2004.12.16 I'm thinking of starting a library of articles for programming Euphoria. What do you think? If you've got an idea for an article that other Euphoria programmers could use, or if you've actually written an article, please let me know.

I'm also in the process of compiling a FAQ. Please submit your questions and answers about Euphoria (or even programming in general) to here.

Object Oriented Euphoria v1.1

2004.12.14 Matthew Lewis continues to do improve his new Object Oriented Euphoria v2.5 Alpha interpreter. This version has a few bug fixes plus some added functionality. I'm hosting his OOEU project code (to help ease his bandwidth usage). Get it here.

Object Oriented Euphoria v1.0

2004.12.12 If you've been wanting built-in objects for Euphoria, now you can get it. Matthew Lewis has released an object oriented Euphoria v2.5 Alpha interpreter. The docs say in part:

As-is, this code allows you to use some object oriented techniques with Euphoria, without the added overhead or clumsy syntax that an added Object Oriented library requires.

Euphoria Coding Contest #2 Resumes

2004.12.10 Patrick says the contest is back on as scheduled. There's a lot of new stuff at his site, including new maps and a "Swarm" bot against which you can test your own bots. Go get it and get those bots entered.

Euphoria Coding Contest #2 Postponed

2004.12.09 Patrick Barnes has been swamped with holiday business, so he's extending the deadline for Contest #2 entries until the end of January. That gives everybody even more time to refine those battling pixels. You can read the rules and download the code at the official Euphoria Coding Contest #2 website.

News Server Now Automated

2004.12.09 These news articles are now being read from a database! No more formatting the HTML for the articles manually. And it's all being done with Euphoria.

wxEuphoria Updated

2004.12.08 Matthew Lewis continues to enhance his wxWidgets Euphoria interface. The latest release (0.4.0) now includes sockets functionality. He's got a sockets demo as well as a wizard demo (shows how to build a "wizard" app). Cross-platform is the way to go, now and (especially) in the future.

New Windows GUI for Euphoria on Horizon

2004.12.07 I don't want to jump the gun, but I know an alpha-alpha release is around the corner. Tommy Carlier is developing Win4Eu, an "object oriented" Windows API GUI for Euphoria. It's already sounding (and looking) good. One of the things I'm excited about is that it will be skinnable from app-level to control-level! The only problem I have with it is that it uses exclusive features of Euphoria 2.5 (alpha), and I'm not upgrading from 2.4 until probably 2.5 Release.

Front Page Redesign

2004.12.07 New site design to allow for news items on the front page. All my Euphoria code has been moved to the Programs, Projects and Code Repository.

Euphoria Contest #2 Starts

2004.12.03 After the successful completion of Contest #1, Patrick Barnes offers Euphoria Coding Contest #2, dealing with programmable fighting pixels. You can get my handy Win32 interface for it here.)

Euphoria Coding Contest #1 Results

2004.12.01 Derek Parnell hosted the Euphoria Coding Contest #1, and the results are in. It was an exciting contest and there's lots of incredible code to study (all contest entries are available in a zip file). Congratulations to the top-three entrants!

Euphoria 2.5 Alpha Ready for Testing

2004.11.15 From the official RDS website:

The much anticipated 2.5 release of Euphoria is now available. Read the release notes and download the code. In addition to bug fixes and new language features, there has been a major internal restructuring of the code... In addition, there is now a complete Public Domain source version of the Euphoria interpreter. (More...)

For complete details on all the changes in version 2.5, see the Euphoria Release Notes.