Since Matt Lewis opened up the XRC functionality available in wxWidgets, now I can use wxFormBuilder to build my GUI, then create my program. It's extremely simple and fast to develop wxEuphoria GUI programs. Anyway, I'm very excited about this workflow and will probably adopt wxEuphoria for all my GUI programs. I suggest that if you're creating GUI programs, this new workflow will have you far more productive in a shorter amount of time than any other Euphoria GUI program work process. Check out this screenshot from a current project I'm developing:
The new mascot is a mongoose, the kind that eats snakes. You can see him in the image below.
You can grab some artwork for your desktop or other purposes at the Euphoria ArtWork page.
You can support the development of Euphoria by donating with the following link. Thank you!
UPDATE: The files in this ZIP archive are intended to modify the version of Win32Lib available via SVN from the SourceForge Win32LibEx Project Page.
SourceForge Project Page: http://sourceforge.net/projects/win32libex/develop
The one on the left is running in Windows XP. The one on the right is running in Windows 7. Notice the significant difference in font sizes and the size/placement of the buttons.
Geekology.co.za has posted an article about using regular expressions. Check it out if you are new to them. Euphoria's 4.0 uses PCRE.
The grid of four letters that creates the most 3- and 4-letter words is aert, which creates 14 words: rate, tare, tear, are, ear, era, rae, ate, eat, eta, tea, art, rat, tar.
Now, can you find the grid of 9 letters (3x3) which creates the most 3+ length words? Show me!
This next contest is just for fun: using a standard dictionary (words.txt (Google it), or a Euphoria database dictionary of words) and given a square grid with sides of length x (from 2 to X), with a letter in each grid square, determine all possible words in the grid using adjacent letters, each letter used only once, and with word length at least 3 characters.
Yes, this is a Boggle solver. But, there's a twist! For each grid size, determine what combination of letters will give the highest possible score.
For instance, for a grid of size 2, you would want to find the four letters that form the most four letter words, plus the most three letter words. Maybe there is a set of four letters that form more three letter words than two letter words. Regardless, the most possible 4-letter words formed with a grid of size 2 should be 24 if my math is correct (4x3x2x1). The most possible 3-letter words formed with a grid of size 2 should be the same. Does that mean there could be as high as 48 points? I don't know. Regardless, now do the same for a grid of size 3, size 4, and size 5.
Scoring: Each three- and four-letter word is one point. Each five letter word is two points. Each six letter word is three points. Each seven letter word is 5 points. Each 8+ word is 11 points.
The grid above would score (at least), stop, opts, tops, spot, post, and pots, for at least 6 points.
We can handle this on EuForum.DO NOT POST CODE to EuForum (unless you want to contribute it to others). If you think you have a clever, winning algorithm, then keep it to yourself! All results will be published and all entries will be entered into the public domain after the contest is over. If you do NOT want the code released, just let me know.
Your program will need to read the test games from a file called test_games.txt. Download it to get the format. Each game grid will be separated by one blank line. As output, use the same format but puts the found words list in a comma-delimited format right below the grid. Then skip a line as normal. Each line that contains a comma will be considered as part of the list, just so we don't have problems with "line too long." Comments can be included by using a '#' character as the first character of the line. Comments will be ignored, so you can put them anywhere. Even in a grid.
For example, you could write out the above example as so:
The program that finds the most words in the least amount of time will be declared the winner.
For the grid creator part of the contest, write out a file in the same format. test_games.txt will grow as the contest goes on. I'm just providing a test file for now.
Feel free to brag about your results in the appropriate thread at EuForum. The contest judges will confirm all results.
I've decided to hold a contest to get the best solution! All code submitted will be open source/public domain code for the benefit of the Euphoria community. The winner will receive fame and glory. And maybe some cash. We'll see.
If you need a start on triangle grids, see
I'll choose an end date based on how many programmers want to participate. Check back for updates in a day or two or three.
I would like to offer a cash prize for the top three entries. If you are willing to donate some dough to the cause, please contact me. Thank you!
Euphoria 4.x News
configure.bat --build build
configure --build build
Euphoria 4.0 Alpha
Euphoria 4.0 (alpha) is currently running two sites: My Personal Site and the BBCMF Site.
Now a little reminder for myself: I have recently installed Euphoria source on my web host so I can do the following:
svn co http://rapideuphoria.svn.sourceforge.net/svnroot/rapideuphoria/trunk eu40
cp exu ecu ecu.a eubackend ../bin
I need to follow the above steps when I want to update the version of Euphoria serving my web pages.
Update: Conversion is on hold until further notice. (I just ran out of time for now.)
The Perfect Euphoria Setup
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
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
New Version of Euphoria
Euphoria Getting an Upgrade
wxEuphoria Getting an Upgrade
Beginner's Guide to Euphoria Complete!
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
Euphoria for CGI
Documenting Your Code
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.
Matt Lewis' OOEU allows not only simple structures, but also very advanced objects (that can have their own internal functions).
Mark Akita's Blog
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
Euphoria Goes Open Source!
Euphoria Goes Open Source?
We Have a Wiki
Sudoku + Euphoria = Cool Web Site
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
SDL Graphics from Mark Akita
Where Are the Euphoria Programmers?
Conversion of Binary Clock from Win32Lib to wxEuphoria
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.
New Backend System
Euphoria Serves the Web
Pop Games Get Popular
Euphoric Mysteries Book II
New EuSQLite Article by Chris Burch
Show Some Skin and Win
Best of Euphoria List
Euphoric Mysteries Book
wxEuphoria 0.6.0 is Out
Giving Euphoria the XML
"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)
Euphoria Custom Interpreters
Euphoria Classes at Game Programming University
Exploring Numerical Integration
Control those Widgets
Euphoria Desktop Help Update
Euphoria Editor of Choice
Euphoria Desktop Help
GUIphoria (Programming GUI Apps with Euphoria)
Insight Concepts Article
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
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
Object Oriented Euphoria v1.0
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
Euphoria Coding Contest #2 Postponed
News Server Now Automated
New Windows GUI for Euphoria on Horizon
Front Page Redesign
Euphoria Contest #2 Starts
Euphoria Coding Contest #1 Results
Euphoria 2.5 Alpha Ready for Testing
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.