About me
Welcome to my little corner of the internet!
My name is Alex Restrepo, and I spend most of my day working writing educational software, but every once in a while I get some time off to work on my own little projects which I will be posting here, most of them were made using RealBasic which is an awesome tool.
My name is Alex Restrepo, and I spend most of my day working writing educational software, but every once in a while I get some time off to work on my own little projects which I will be posting here, most of them were made using RealBasic which is an awesome tool.
Donations
If you think my work is useful to you and would like to donate, please click on the button below.
Or you can also buy one of my iPhone applications:
Crazy Drops
Prism Lab
Or you can also buy one of my iPhone applications:
Crazy Drops
Prism Lab
License
|
All the content here (unless otherwise noted) is open, and under the Creative Commons Attribution License. That is to say, anybody can use my work for any reason - I only ask that they give credit where credit is due (About window or documentation).
Also, if you make any changes/improvements please send them to me so I can post them here and make them available to the public. Thank you. |
iPhone Classes
SoundEngine
An OpenAL based sound engine that allows you to play one background audio track, and multiple simultaneous sound effects.
Download
An OpenAL based sound engine that allows you to play one background audio track, and multiple simultaneous sound effects.
Download
Applications
Leecher
Leecher is an application that will download all the specified files within a given url, provided that the files can be hotlinked. Aditionally, you can build your own sequence of urls, by specifying a numeric sequence
Leecher serves also as an image and movie (Quicktime supported formats) browser.
More information...
Leecher is an application that will download all the specified files within a given url, provided that the files can be hotlinked. Aditionally, you can build your own sequence of urls, by specifying a numeric sequence
Leecher serves also as an image and movie (Quicktime supported formats) browser.
More information...
Prismas
This application simulates a ray of light passing through different prisms, using snell's law.
You can drag a light source around and change the incidence angles, the program will then calculate the resulting refraction or reflection.
I wrote this as a project back in college, therefore was written in spanish, if you would like to translate it, or would like to get the source code, drop me a line and tell me why would you like to have it.
Interested in the iPhone version? click here
Screenshot
Download OSX
Download Win
This application simulates a ray of light passing through different prisms, using snell's law.
You can drag a light source around and change the incidence angles, the program will then calculate the resulting refraction or reflection.
I wrote this as a project back in college, therefore was written in spanish, if you would like to translate it, or would like to get the source code, drop me a line and tell me why would you like to have it.
Interested in the iPhone version? click here
Screenshot
Download OSX
Download Win
RealBasic Plugins
AlphaPicturePlugin
This plugin allows you to load image files while keeping their alpha channel (tranpsarency).
This plugin was originally developed by Neil Carter, I simply built this version as a Mach-O plugin and added support for universal binary builds.
This plugin ads the following global function:
OpenAsAlphaPicture(FolderItem as FolderItem, InvertAlpha as Boolean = false) as Picture
Download OSX Mach-O UB
Download Source
This plugin allows you to load image files while keeping their alpha channel (tranpsarency).
This plugin was originally developed by Neil Carter, I simply built this version as a Mach-O plugin and added support for universal binary builds.
This plugin ads the following global function:
OpenAsAlphaPicture(FolderItem as FolderItem, InvertAlpha as Boolean = false) as Picture
Download OSX Mach-O UB
Download Source
GifLibPlugin / LibUnGifPlugin
These two plugins allow you to save pictures as gif files. The pictures will be quantized to the specified number of colors (bpp) and then saved.
The difference between them is that LibUnGifPlugin will save uncompressed gifs, in case the LZW patent is still valid in your country. GifLibPlugin saves compressed gifs, for those countries where the LZW patent has already expired.
GifLibPlugin is based on the open source GifLib library version 4.1.4, LibUnGifPlugin is based on the LibUnGif library version 4.1.4. Both libraries can be found here.
Download OSX Mach-O UB
Download Source
These two plugins allow you to save pictures as gif files. The pictures will be quantized to the specified number of colors (bpp) and then saved.
The difference between them is that LibUnGifPlugin will save uncompressed gifs, in case the LZW patent is still valid in your country. GifLibPlugin saves compressed gifs, for those countries where the LZW patent has already expired.
GifLibPlugin is based on the open source GifLib library version 4.1.4, LibUnGifPlugin is based on the LibUnGif library version 4.1.4. Both libraries can be found here.
Download OSX Mach-O UB
Download Source
RealBasic Classes / Experiments
Custom EditField 1.6.2
A highly customizable, 100% REALBasic Canvas-based EditField.
Features:
To purchase the source code, click on the button below. (U$100)
RBDeveloper Rating:
The download archive includes a Diff demo program by Thomas Tempelmann.
Screenshot
Download
A highly customizable, 100% REALBasic Canvas-based EditField.
Features:
- Syntax Highlighting
- Line auto-indenting
- Autocomplete
- Line numbering
- Invisible characters
- Undo
- Line Foldings
- Find/Replace
- Printing
- Bookmarks
- Placeholders
To purchase the source code, click on the button below. (U$100)
RBDeveloper Rating:
The download archive includes a Diff demo program by Thomas Tempelmann.
Screenshot
Download
RBComposer
Another custom frames project, but the code has been greatly simplified, and the look updated to match Apple's Quartz Composer.
You will need to tweak it to make it work nicely in windows.
Screenshot
Download
Another custom frames project, but the code has been greatly simplified, and the look updated to match Apple's Quartz Composer.
You will need to tweak it to make it work nicely in windows.
Screenshot
Download
Alternating ListBox
I think we all have an implementation of this one...
Just as you would expect, a listbox that alternates the colors of the rows.
Screenshot
Download
I think we all have an implementation of this one...
Just as you would expect, a listbox that alternates the colors of the rows.
Screenshot
Download
Convolutions
A little experiment with convolutions...
The application will apply a 3x3 convolution kernel to an image and display the results, very slow and unoptimized.
Screenshot
Download
A little experiment with convolutions...
The application will apply a 3x3 convolution kernel to an image and display the results, very slow and unoptimized.
Screenshot
Download
Custom Cells
A listbox with custom cells.
Allows you to have buttons, progressbars and just about anything you want inside a listbox cell.
Includes examples for a progressbar cell, a "rating" cell, and a "buttons" cell.
8/30/05: Updated for RB2005
Screenshot
Download
A listbox with custom cells.
Allows you to have buttons, progressbars and just about anything you want inside a listbox cell.
Includes examples for a progressbar cell, a "rating" cell, and a "buttons" cell.
8/30/05: Updated for RB2005
Screenshot
Download
Custom Frames
This is a little experiment, and an old one as well, where I was building little "windows" within a canvas to display different types of information.
You can minimize and maximize the frames, display strings, progressbars, pictures and a tree-like group of strings, but you just need to implement an interface to display your own objects.
You will need to tweak it to make it work nicely in windows.
Screenshot
Download
This is a little experiment, and an old one as well, where I was building little "windows" within a canvas to display different types of information.
You can minimize and maximize the frames, display strings, progressbars, pictures and a tree-like group of strings, but you just need to implement an interface to display your own objects.
You will need to tweak it to make it work nicely in windows.
Screenshot
Download
Custom TabPanel
A Canvas-based tab panel that mimics the tabpanel in the RealBasic IDE (even with animations!).
You can attach a pagepanel to it, and you will have a full featured tabpanel, this class will handle the page changing, and page appending/removing if needed.
Each tab can have its own optional icon, and its own optional close box.
Update:
11/27/07 Fixed a bug that prevented captions from being properly updated.
Thanks to Neale Baker for pointing it out
2/21/06 The tabs can now face any direction: North, South, East, West.
9/1/05: Added a way to navigate to non-visible tabs as well as a way to "fit" as many tabs as possible by squeezing them together. A way to enable/disable tabs was also included.
Screenshot
Download
A Canvas-based tab panel that mimics the tabpanel in the RealBasic IDE (even with animations!).
You can attach a pagepanel to it, and you will have a full featured tabpanel, this class will handle the page changing, and page appending/removing if needed.
Each tab can have its own optional icon, and its own optional close box.
Update:
11/27/07 Fixed a bug that prevented captions from being properly updated.
Thanks to Neale Baker for pointing it out
2/21/06 The tabs can now face any direction: North, South, East, West.
9/1/05: Added a way to navigate to non-visible tabs as well as a way to "fit" as many tabs as possible by squeezing them together. A way to enable/disable tabs was also included.
Screenshot
Download
Custom Toolbar
An OSX-style toolbar, useful when you want to have a consistent toolbar in your cross-platform applications, it has some of the features available in OSX native toolbars like button reordering, although given the buffered nature of OSX the reordering animation looks a lot better in Windows.
Screenshot
Download
An OSX-style toolbar, useful when you want to have a consistent toolbar in your cross-platform applications, it has some of the features available in OSX native toolbars like button reordering, although given the buffered nature of OSX the reordering animation looks a lot better in Windows.
Screenshot
Download
DatabaseUpdate
A simple class to build "Update" sql statements, handling the formating for you.
With this class, the following code:
dim update as DatabaseUpdate
update=new DatabaseUpdate("YourTable")
update.boolValue("aBoolean",true)
update.dateValue("OrderDate",new date)
update.numValue("NetWorth",100)
update.stringValue("ItemDescription","This is a simple description.")
update.boolValue("anotherBoolean",true)
update.numValue("Price",120.99)
update.setCondition("ID=100")
Returns this SQL statement:
Update YourTable set aBoolean= 'true' , OrderDate='19/7/ ',NetWorth=100,ItemDescription='This is a simple description.',anotherBoolean= 'true' , Price=120.99 where ID=100
Download
A simple class to build "Update" sql statements, handling the formating for you.
With this class, the following code:
dim update as DatabaseUpdate
update=new DatabaseUpdate("YourTable")
update.boolValue("aBoolean",true)
update.dateValue("OrderDate",new date)
update.numValue("NetWorth",100)
update.stringValue("ItemDescription","This is a simple description.")
update.boolValue("anotherBoolean",true)
update.numValue("Price",120.99)
update.setCondition("ID=100")
Returns this SQL statement:
Update YourTable set aBoolean= 'true' , OrderDate='19/7/ ',NetWorth=100,ItemDescription='This is a simple description.',anotherBoolean= 'true' , Price=120.99 where ID=100
Download
Dir View
A listbox subclass that will display hierarchically the contents of a directory.
Screenshot
Download
A listbox subclass that will display hierarchically the contents of a directory.
Screenshot
Download
ExcelWritter
A listbox extension that saves the contents of the listbox as an excel file, by calling listbox.saveAsExcelFile(folderItem)
Download
A listbox extension that saves the contents of the listbox as an excel file, by calling listbox.saveAsExcelFile(folderItem)
Download
GraphCanvas
A canvas that will draw an x,y line graph of one or multiple "datasets", you can modify almost every aspect of the resulting graph. Look at the included demo for an example.
Not a replacement for excel :P but quite useful for simple graphs.
Uses the XMLDictionary extension by Kevin Ballard to save and load graph data.
http://www.tildesoft.com
Screenshot
Download
A canvas that will draw an x,y line graph of one or multiple "datasets", you can modify almost every aspect of the resulting graph. Look at the included demo for an example.
Not a replacement for excel :P but quite useful for simple graphs.
Uses the XMLDictionary extension by Kevin Ballard to save and load graph data.
http://www.tildesoft.com
Screenshot
Download
Grid Canvas
A canvas with a variable-size grid, each cell gets its own CellClick and CellPaint events.
I used it for a game map editor, but you may find it useful for something else.
Screenshot
Download
A canvas with a variable-size grid, each cell gets its own CellClick and CellPaint events.
I used it for a game map editor, but you may find it useful for something else.
Screenshot
Download
Indeterminate Animation
A canvas that will display a series of pictures (stored as a single picture, one frame on top of the next) as a looping animation.
Screenshot
Download
A canvas that will display a series of pictures (stored as a single picture, one frame on top of the next) as a looping animation.
Screenshot
Download
Inspector
A floating window that mimics the RealBasic properties window, allows you to see (and edit) the contents of a dictionary, there's also an interface that you can implement to "inspect" your classes.
Note: this class was developed under rb 5.5, you may need to tweak it to make it run under newer versions if the IDE.
Screenshot
Download
A floating window that mimics the RealBasic properties window, allows you to see (and edit) the contents of a dictionary, there's also an interface that you can implement to "inspect" your classes.
Note: this class was developed under rb 5.5, you may need to tweak it to make it run under newer versions if the IDE.
Screenshot
Download
Internet Explorer
An easy to use Internet explorer Windows COM object, useful for those of us that use RB on a mac.
Download
An easy to use Internet explorer Windows COM object, useful for those of us that use RB on a mac.
Download
Library Listbox
A custom listbox that mimics the appearance of the "library" listboxes found in applications such as itunes.
This listbox supports rowPictures, rowButtons, resizing and an automatic scrollbar that is displayed only when it's needed.
Updated 2/1/2006
You can now change the text of a row using the list method... I forgot to make it available last time! sorry :)
Screenshot
Download
A custom listbox that mimics the appearance of the "library" listboxes found in applications such as itunes.
This listbox supports rowPictures, rowButtons, resizing and an automatic scrollbar that is displayed only when it's needed.
Updated 2/1/2006
You can now change the text of a row using the list method... I forgot to make it available last time! sorry :)
Screenshot
Download
Picture Viewer
A ContainerControl that displays a picture. The user can change the scaling of the picture, or fit the picture to the actual control size. Click and drag in order to scroll the picture is also available.
RB 2005 pro only, altough you can make it work in 5.5, copying all the controls in the containerControl window.
Screenshot
Download
A ContainerControl that displays a picture. The user can change the scaling of the picture, or fit the picture to the actual control size. Click and drag in order to scroll the picture is also available.
RB 2005 pro only, altough you can make it work in 5.5, copying all the controls in the containerControl window.
Screenshot
Download
PreviewCanvas (RB2005)
This is the original previewCanvas updated to work with RB2005.
I also added some new features like band-selection and multiple selection.
Update 4/4/2006
Fixed a memory leak and worked around the RB suspended thread bug.
Screenshot
Download
This is the original previewCanvas updated to work with RB2005.
I also added some new features like band-selection and multiple selection.
Update 4/4/2006
Fixed a memory leak and worked around the RB suspended thread bug.
Screenshot
Download
PreviewCanvas(iPhotostyle)
Note: the latest version of this class is the one above (PreviewCanvas (RB2005))
One of my favorites...
This canvas allows you to display previews of any object that implements the included "PreviewableObject" interface, the previews can be then scaled and selected.
The preview's resolution will only be updated when you call the update method, this allows for iphoto-style preview resizing, and only when the mouse is released from the slider the resolution will be updated in a separate thread, a little "progress" indicator on the lower-right corner will tell you when the update is complete.
Another feature is the ability of adding previews without updating them, this ensures that a preview will only be loaded when it's about to be displayed.
View the included demo for more information.
Uses "UltimateSlider" by Karen Atkocius for a mouse-up aware slider.
Screenshot
Download
Note: the latest version of this class is the one above (PreviewCanvas (RB2005))
One of my favorites...
This canvas allows you to display previews of any object that implements the included "PreviewableObject" interface, the previews can be then scaled and selected.
The preview's resolution will only be updated when you call the update method, this allows for iphoto-style preview resizing, and only when the mouse is released from the slider the resolution will be updated in a separate thread, a little "progress" indicator on the lower-right corner will tell you when the update is complete.
Another feature is the ability of adding previews without updating them, this ensures that a preview will only be loaded when it's about to be displayed.
View the included demo for more information.
Uses "UltimateSlider" by Karen Atkocius for a mouse-up aware slider.
Screenshot
Download
Reflection Canvas
This canvas displays an image and then mirrors and fades the image horizontally, resulting in an interesting effect, like the video snapshots you see in iTunes.
Screenshot
Download
This canvas displays an image and then mirrors and fades the image horizontally, resulting in an interesting effect, like the video snapshots you see in iTunes.
Screenshot
Download
Round Slider
A slider replacement, with a round knob.
You can use any of 3 different sizes: normal, small and tiny, has a transparent background and fires MouseUp events, it also has an AllowCancel property, to return the slider to its original value when the MouseUp event was fired outside the slider.
Will not work correctly under Windows.
Screenshot
Download
A slider replacement, with a round knob.
You can use any of 3 different sizes: normal, small and tiny, has a transparent background and fires MouseUp events, it also has an AllowCancel property, to return the slider to its original value when the MouseUp event was fired outside the slider.
Will not work correctly under Windows.
Screenshot
Download
Selection Canvas
When the canvas is set to accept clicks, it will create a closed selection specified by the mouse clicks, you can then move, delete or add "Control Points".
You can extract the selection to use in whatever you need, you can also use the included "Region" class to detect clicks on a given selection and so on.
Screenshot
Download
When the canvas is set to accept clicks, it will create a closed selection specified by the mouse clicks, you can then move, delete or add "Control Points".
You can extract the selection to use in whatever you need, you can also use the included "Region" class to detect clicks on a given selection and so on.
Screenshot
Download
SyntaxHighlightEditField
Requires RB2006
An expandable, multiple-language Syntax Highlighter EditField.
You can easily define Highlight Definitions for different languages, included in the download are the definitions for C, Java, Objective-C, RealBasic and XML.
I was playing with a class to highlight xmls and I ended up with this instead :) it still needs some optimizations, but unfortunately my time is limited right now so I decided to release it, however, if you improve it please send me the changes so I can release them to the public, or if you create new definitions for more languages send them to me and I will make them available here.
Screenshot
Download
Requires RB2006
An expandable, multiple-language Syntax Highlighter EditField.
You can easily define Highlight Definitions for different languages, included in the download are the definitions for C, Java, Objective-C, RealBasic and XML.
I was playing with a class to highlight xmls and I ended up with this instead :) it still needs some optimizations, but unfortunately my time is limited right now so I decided to release it, however, if you improve it please send me the changes so I can release them to the public, or if you create new definitions for more languages send them to me and I will make them available here.
| Available Highlight Definitions: | ||
| Name | Author | Date |
| C | Alex Restrepo | 3/27/2006 |
| Java | Alex Restrepo | 3/27/2006 |
| Objective-C | Alex Restrepo | 3/27/2006 |
| RealBasic | Alex Restrepo | 3/28/2006 updated! |
| XML | Alex Restrepo | 3/27/2006 |
| Xml2 (supports non-standard chars) | Alex Restrepo | 3/28/2006 |
| transactSQL | Dr. Gerard Hammond | 3/28/2006 updated! |
Screenshot
Download
Telnet Socket
Some time ago I had to implement telnet support for one of my projects, I found a simple telnet example somewhere on the internet and adapted it for RealBasic, I also added a simple way to "Queue" telnet commands, so you can issue commands as soon as a specific prompt shows up, allowing for an automated session.
Screenshot
Download
Some time ago I had to implement telnet support for one of my projects, I found a simple telnet example somewhere on the internet and adapted it for RealBasic, I also added a simple way to "Queue" telnet commands, so you can issue commands as soon as a specific prompt shows up, allowing for an automated session.
Screenshot
Download
TreeView
A TreeLike structure and a ListBox capable of displaying it, including lines between parent and child nodes.
Allows you to add paths such as "Home/Library/Preferences" with a single instruction, creating 3 nested nodes: Home->Library->Preferences, adding a path returns the newly created node, then you can store custom objects in the "Tag" member a TreeNode.
You can also test the depth of a node and get its full path.
9/1/05: Fixed a memory leak when deleting nodes from the tree. Thanks to Maximilian Tyrtania for pointing it out.
Screenshot
Download
A TreeLike structure and a ListBox capable of displaying it, including lines between parent and child nodes.
Allows you to add paths such as "Home/Library/Preferences" with a single instruction, creating 3 nested nodes: Home->Library->Preferences, adding a path returns the newly created node, then you can store custom objects in the "Tag" member a TreeNode.
You can also test the depth of a node and get its full path.
9/1/05: Fixed a memory leak when deleting nodes from the tree. Thanks to Maximilian Tyrtania for pointing it out.
Screenshot
Download
Publications
Dynamic Server Allocation in Virtual Environments, Using Quadtrees for Dynamic Space Partition
A. Restrepo, A. Montoya and H. Trefftz In proceedings of IASTED Computer Science and Technology (CST 2003), pp 364 - 368, Cancún, México, May 19-21, 2003.
Download
A. Restrepo, A. Montoya and H. Trefftz In proceedings of IASTED Computer Science and Technology (CST 2003), pp 364 - 368, Cancún, México, May 19-21, 2003.
Download

