#for xojo
Explore tagged Tumblr posts
Note
xojo would back me up if she were here but she doesn't rememeber tumblr exists unless it's with a link (she's such a grandma)
she is pretty elderly, yes. what happened to us bamboo. when did it all change
0 notes
zerodaryls · 1 year ago
Text
Tumblr media Tumblr media
Joseph Williams playing air-violin in the music video for Wilma Fingadoux (2021)
“’Wilma Fingadoux’ is the latest in a long line of musical messages, songs and poems to my mother who died at the age of 41. I was 13 years old. This song is a reflection of the painful yet wonderful place in my memory where I can speak to her. Also singing with me are my daughters Hannah Ruick and Ray Williams. Their voices, their presence, makes me so proud of my beautiful girls and their unparalleled talent. And I feel relief also because in this way they too can speak to her through music the way I always have. My mom had such a sharp sense of humor. The title of the song is the punch line of one of my favorite jokes she used to tell…she taught me how to feel funny deep inside! This lyric is my release letter. Miss you Momma! Xojoe.” (via the official Toto website)
2 notes · View notes
nscoder-mad · 29 days ago
Text
Programación Multiplataforma con Xojo: El Santo Grial
Tumblr media
Cuando decimos que somos una comunidad abierta, vamos en serio. Entre nuestros miembros hay incluso compañeros que dicen que la cerveza sin alcohol sabe igual que la normal. Así que, aunque aquí somos todos muy de nativo, nos encanta ver qué otras soluciones existen para no tener que estudiar 18 lenguajes diferentes.
Una de estas soluciones es Xojo. Xojo es un entorno de desarrollo multiplataforma (y de referencia cruzada) que permite la creación de aplicaciones nativas para macOS, iOS, Android, Web, Windows, Linux, Raspberry Pi y Consola… ahí es nada. En esta charla veremos sus cualidades y fortalezas. Yo, personalmente, muero de curiosidad por que llegue esta charla. ¿Tú no?
Donde y cuando:
Próximo miércoles 16/10/2024 a partir de las 19h en el espacio Puerta de la Innovación, c/ Toledo 110., Madrid.
Puedes registrarte en el siguiente link a MeetUp:
0 notes
oh-writing-my-writing · 4 years ago
Text
If they’d been gross before - this was taking it to a whole new level. Literally
Sam pinches his eyebrows together, nose scrunched in reaction to the ridiculosity unfolding in front of him. Too engrossed in himself - themselves - to notice Sam bitchfacing in their general direction, Dean stands with his hands on his hips, and Cas in his head. He’s staring himself down, in a very Dean kind of frustration - but his expression is clear enough to belong to a particular ex-immortal, kinda-sorta-angel of the Lord.
They’ve been talking within (heh.) themselves for ages.
“Jimmy felt healthier, Dean.” That’s undoubtedly Cas. Serious, grounded - somehow, tragic. “I must cure your -”
“- do not say cholesterol, or so help me -”
“Fine.” Cas, again - maybe Sam was imagining this, or maybe his voice really does come down half an octave. This way or that, Cas projects the word with the sort of insufferability that’s long been associated with Dean’s stubbornness. There’s a ponderous pause, like he’s not quite done yet. “But you’re bigger.”
It’s kind of amusing to see your brother choke on a simple, yet easily mislaid, ‘you’re bigger’, delivered in pointed deadpan, and your best friend’s dialect. Especially when it’s his own voice saying it. 
“I mean, there’s - Dean? - more space.” Cas stops abruptly. “Dean, what are you doing - ?”
Sam looks on curiously, as Dean thumps his chest to regain his breath.
“In what kind of a possession do you not feel me dying, Cas?” Dean throws back, obviously exaggerating because he’s stopped coughing. “What are you, detached?” He’s returned to the slightly irritated voice Sam’s matched with the man standing in front of him, for around thirty eight years now. 
“You’re not dying.” Cas informs him. (Himself?) “And I’m very attached.” As if to prove his point, Dean - Cas - brings his hand up to touch his own cheek. Grazing the skin, gentle, his fingertips trace along his jaw, all the way to his chin. 
It’s kind of weird to look at, but Dean’s own flustered face makes it more than worth it. 
“Shuddup. And dude - stop that.” Dean again. “The hell are you doing to my voice, anyway? What’s wrong with the way it is?”
“Nothing. I think it’s lovely.”
Cue the blush. Apparently, Dean still had control over the parts of his face prone to reddening when he was embarrassed. Though, paired with Cas’s naturally stoic demeanor, it made for a comical display.
“Then what’s up with the seven-cigarettes-before-breakfast voice? I’d thought that was a custom Jimmy thing.” 
Cas pauses. Or Dean does. Maybe both of them do, and Sam wonders if they’ve figured out how to talk inside their head - but because blessings are rare when you’re a Winchester, of course they haven’t.
“That - wasn’t on purpose.” Dean’s voice confesses, a little forlorn, and a lot more apologetic than Dean tends to go for. “Perhaps it’s my thing.” 
That makes sense. And honestly, makes it easier to tell them apart. Sure, they’ve spent enough time together for Sam to figure out who’s speaking, with the intonation of a single sentence if they’re arguing, but for the rest of the time? It’d be a lot more convenient. 
“Huh.”
“I’ll try to stop -”
“Dude. Forget about it.” Dean immediately cuts him off. Sam raises his eyebrows, knowingly, but neither of them are paying attention to him right now.  “Doesn’t hurt. I, uh. Just didn’t know it could go that low.”
Dean smiles, but in the absence of flashed teeth and gums, it’s closer to Cas’s reserved ones.
This was going to take some getting used to, even for Sam, and he was just the blissfully-ignored spectator. He knows Dean and Cas have their work cut out for them - and they were going to stumble into mishaps, and march straight into misunderstandings, but as they ultimately always did - they were going to come through.
Not to mention, some things were going to be hilarious. Eating, for example. Showers, Sam fleetingly thinks, wickedly. Or sleep - because Dean would need it, and Cas would remain wandering in his consciousness all night. When compared with the arguments over being watched when he sleeps? Sam knows Dean’s going to cause a ruckus.
But, end of the day? Sam figures that if they’re ever going to get a move on, he needs to step in.
“Dean - uh, Cas? Can we - ?” He clears his throat, tentatively. Tilts his head in the direction of the impala, and holds a hand out for the keys. “I could drive.”
Cas hands him the keys from Dean’s pocket, while Dean protests his indignance. “I’m driving -”
“I’m not sure where we’re at, motor-functions-wise. Hand-eye coordination isn’t all we need.” Cas returns, matter-of-factly. “Possession is easier. I’ve never shared a body before.”
“Well, guess what, smartass?” Dean throws back, and the thing which keeps happening, where Dean cuts himself off and proceeds to tell himself off, is not going to cease being amusing for a very long time. “Neither have I. Just - sit back, and enjoy the ride.”
“I can’t. I’m inside you.”
Dean starts to fluster again. Yeah, well, take the backseat in there!”
“Dean, there’s no backseat in you, unless you mean your -”
“Guys.” Sam breathes out, patiently. Dean looks up at him, with the magnitude of both their stares. “I’m all for communication, okay? But if we could all just wait until we’re in the car, so I can plug a goddamn aux in before you start discussing backseats - I mean, semantics -- which, just to be clear, I’m not judging, I’m just wanting an out - that’d be great.”
Dean seethes, pinkfaced, but he remains silent, and that’s clearly the most affirmation he’s getting from there. Cas is the one who directs a slow and understanding nod.
So Sam huffs out a short breath, and the three of them pile into their car, with just Sam in the front. He starts the engine, distractedly inserts one of Dean’s tapes in the deck, and decides to hum along to tune out the increasingly growing weird conversations in the back - for their sake, and at this point, also his own. 
Truly, if it had been obvious before? This was something else, entirely.
210 notes · View notes
paper-lilypie · 4 years ago
Text
@xojo now knows how short I am irl and she keeps bullying me about it. She will die in 7 days.
25 notes · View notes
bisexualdemondean · 4 years ago
Note
Hi!! I was wondering ..... if you would be so kind as to send Sam Winchester over to @misha-moose-dean-burger-lover 's blog, so she could have her own Sam Day?? Please?? It is literally her dream??
no
49 notes · View notes
Text
@royalnugget42  @xojo “It’s just a joke!” Says ever Destiel shipper that gets called out for their shitty meta.  It’s shitty because actual good meta, fanvideos, and yes, even jokes are based on textual evidence.  Destiel shippers/hellers have been enabled so long in the Destiel bubble that they are devoided of critical thinking, so when their shitty metas and videos get called out, they can only sputter with “it’s a joke!” for the past 10 years.
Tell me, was “it’s just a joke!” when Destiel shippers accused Jensen of h0m0phobi@ when he wouldn’t play along and pretend Dean and Cas are secretly buttfucking?  Was “it’s just a joke!” when Destel hellers not once but twice hosted online campaigns to CW to fire Jared and turn SPN into the Dean & Cas buttfucking show?  Was “it’s just aa joke!” when Destiel minions bully fans, actors, crew, and even bully a network executive off twitter just for telling the truth, that Dean is canonically straight and not bi for Cas?  I know what my answer is, what is yours?
42 notes · View notes
babygirlwolverine · 4 years ago
Note
for being so nice and cute, copy this to ten other bloggers that you think are wonderful. keep the game going and make others feel beautiful ! 💘💝💖💗💓💞💕 i love you!
Hey oodle, did you know I love you? I love you. I love you. I love you. Thank you for sending this to me. You are the cute one omg!!! This made me smile so much, especially coming from you, I swear my heart just went all gooey and melty!! Thank you omg!! YOU are the beautiful! I just ajkdkahfsfhshd this made me so happy I can’t even!!
Tumblr media
7 notes · View notes
i-know-like-four-things · 4 years ago
Note
💜 this is the Love SLAP Raid Chain!!! 💜 send this to all of your favorite blogs that you think deserve to hear these encouraging words 💜 in return we ask that those blogs send it to their favorite blogs as well 💜 it’s december, everybody deserves to hear a few words of encouragement no matter if you're a small or big account 💜 so let's all fill your dash with positivity these last few weeks of 2020 ✨ you are amazing ✨ you matter ✨ you are loved ✨ you deserve to have an amazing month 💜
Thank you so much, my love! This is so sweet and the feeling is mutual
3 notes · View notes
landsword · 4 years ago
Text
@ my mutuals that i used to talk to and interact with regularly
im sorry i havent interacted at all for basically ever i’ve just been sad and not in a reaching out mood i guess and i’ve had tons of free time and none at all if that makes sense
so yeah nothing against you guys, you’re amazing and i love u guys so much and im sorry, im okay i guess and i’ll get back into it eventually
3 notes · View notes
Text
catsifer:
Tumblr media
catstiel:
Tumblr media
766 notes · View notes
playkilop · 2 years ago
Text
Xojo msgbox
Tumblr media
IdxField( 2).IntegerValueįunction GetNextInvoiceNumber() As Integer Put the amount for the month into the arrayĪmounts(rs. Prepare( "SELECT substr(invoicedate, 6, 2), sum(invoiceamount) FROM invoices WHERE substr(invoicedate, 1, 4) = ? GROUP BY substr(invoicedate, 6, 2) ORDER BY substr(invoicedate, 6, 2)") For the specified year, group the invoices by month and then sum the amounts for the monthĭim stmt As PreparedSQLStatement = Self. IdxField( 1).StringValue)įunction GetMonthlyInvoiceTotalsByYear(year As String) As Integer() Prepare( "SELECT DISTINCT substr(invoicedate, 1, 4) FROM invoices") Determine how many unique years there are in the invoices tableĭim stmt As PreparedSQLStatement = Self. Prepare( "SELECT * FROM Invoices WHERE CustomerID=?") Update the list of invoices to show invoices from the selected customerĭim stmt As PreparedSQLStatement = Self. Prepare( "SELECT * FROM InvoiceItems INNER JOIN Products ON Products.Code = InvoiceItems.ProductCode WHERE InvoiceNo=?")įunction GetInvoicesForCustomer(CustomerID As String) As RecordSet SQLITE_INTEGER)įunction GetInvoiceItemsForInvoice(invoiceNum As String) As RecordSetĭim stmt As SQLitePreparedStatement = Self. Prepare( "SELECT * FROM Invoices WHERE InvoiceNo=?") Private Shared Function GetDBFolder() As FolderItemĭim dbFolder As FolderItem = GetFolderItem( "Databases")įunction GetInvoiceByNumber(invoiceNum As String) As RecordSetĭim stmt As SQLitePreparedStatement = Self. Prepare( "SELECT * FROM Customers WHERE lastname LIKE ? OR firstname LIKE ? ORDER BY lastname, firstname") SQLITE_TEXT)įunction FindCustomersByName(Optional searchName As String) As RecordSetĭim stmt As SQLitePreparedStatement = Self. Prepare( "SELECT * FROM Customers WHERE ID=? ORDER BY lastname, firstname") Sql = "DELETE FROM InvoiceItems WHERE InvoiceNo=" + Str(invoiceNum)įunction FindCustomersByID(ID As String) As RecordSetĭim stmt As PreparedSQLStatement = Self. This method is run at startup to clean out any session databasesįunction DeleteInvoiceItems(invoiceNum As String) As Boolean Shared Function CheckForError(db As Database, msg As String) As Boolean InsertRecord( "InvoiceItems", invoiceRecord) Column( "CustomerID") = customerIDįunction AddInvoiceItem(code As String, quantity As Integer, invoiceNum As String) As Boolean Currenc圜olumn( "InvoiceAmount") = invoiceAmount Function AddInvoice(invoiceNum As String, invoiceDate As String, invoiceAmount As Currency, customerID As String) As Boolean
Tumblr media
0 notes
wearmains · 2 years ago
Text
Xojo for loop
Tumblr media
Xojo for loop update#
Xojo for loop code#
Xojo for loop series#
Xojo for loop windows#
event is no longer triggered when Mode is Off on Windows.Ĭlass browser now also shows external subclasses.
Xojo for loop windows#
Shutting down an app being debugged on Windows now is a lot quicker than it had been.įixed a potential Timer crash when Timer events are queued up (for example due to Timers with low time periods that trigger an event loop iteration). The ConnectionType of the HTTPS server of a web app can now be set by a command line option (ssltype) with a value which matches the SSLSocket.ConnectionType property OR by setting to one of the values in the WebAppSecurityOptions.ConnectionTypes enum. WebImageView alignment constants are available again.įixed a bug which prevented modifying web text alignment at runtime if the alignment was set using the new text alignment property in the IDE. Increasing the ColumnCount of a WebListBox no longer hides the horizontal scrollbar. Weblistbox column widths are now respected on IE9 when cell and/or header contents are wider than the width of the column. WebListBox columns with a width of zero no longer render improperly. The HTMLViewer on OS X now automatically handles special edit menu items, matching other framework classes and HTMLViewer's behavior on Windows. TabPanels that have SmallTabs set to True now use the correct font.įixed leaking NSWindows in the Cocoa framework.Ī bug in picture handling in the IDE has been fixed and it no longer crashes when certain types of projects are edited. The first MenuItem added to an empty top-level MenuItem now respects its Enabled property instead of being disabled. Xojo.IO.FolderItem now has IsWriteable method (and removed IsWriteableFolder method). Imported database project items no longer return NilObjectException when used at runtime. now works in OS X console and web applications. Using statements and Soft declares no longer can have break points set on them since they are not executable statements.Ī rotated StringShape remains text when printed or drawn.
Xojo for loop code#
They are 128 x 128, 48 x 48 and 32 x 32 and named appcion_128, appicon_48 and appicon_32 respectively.įixed a failed assertion when Variant.DateValue was used in code that had a using clause for Xojo.Core.Ĭolor picker in the debugger starts out with the color value that was clicked on - not just black all the time. IDE will export several PNGS next to the built EXE for Linux. System Requirements for previous releasesĪssembling Code times have been improved.System requirements for current release.Reporting bugs and making feature requests.Paragraph, Range, StyledText, TextArea classes. Now we can write that information to the file Mb = New MemoryBlock(staticInfo + fontLen + textLen) Stuff the style run content and style info into a memory block StyleRunCountįor i = 0 To Count - 1 // get the StyleRuns 3 bytes for the booleans, 2 for size and 4 for colorĬount = TextArea1. We already know that a style run takes up a certain amount of space Now we want to loop over all the StyleRuns If we couldn't create the file, then bail out There is an example of a save as RTF in the examples section of the StyledText class.į = FolderItem. However, the preferred way to save styled text is to use the RTFData property of the StyledText class. The example illustrates manipulation of StyleRuns.
Xojo for loop series#
The following example saves styled text displayed in a TextArea as a series of StyleRuns that are appended to one another.
Xojo for loop update#
Of course, the easier way to update styled text in a TextArea is to make your changes using the StyledText methods instead of the StyleRun properties. If you want to operate on a StyleRun, you must remove the old run and replace it with the new run. If you are displaying the styled text in a TextArea, changes to a StyleRun's properties are not reflected in the TextArea. The Range class gives you access to the StyleRun's start position, length, and end position. You can get the starting and ending character positions (and, therefore, the length) of a StyleRun via the StyleRunRange method. You can get the total number of StyleRuns via the StyleRunCount method of the StyledText class and reference a StyleRun via the StyleRun method. The Text property of a StyledText object is a series of StyleRuns. PropertiesĪ StyleRun is a series of consecutive characters that have the same style attributes, as indicated by the StyleRun's properties. Used to manage a style run within StyledText.
Tumblr media
0 notes
txtpiner · 2 years ago
Text
Xojo convert new framework folderitem to classic
Tumblr media
#Xojo convert new framework folderitem to classic code#
#Xojo convert new framework folderitem to classic windows#
Listbox no longer crashes when quitting app while a cell is still in edit mode. SpecialFolder.Desktop, Documents, Music, Pictures, and Movies now correctly return the localized path. HighlightColor now returns the correct color on CentOS 7. Labels no longer automatically selects all the text when Selectable is enabled. Listbox.AddRow no longer crashes when adding additional columns that contain checkboxes in them. Raspberry Pi font attributes for controls now works consistently.Ĭontrols placed on a non-Transparent ContainerControl are properly clipped on Linux.Īpplication.ExecutableFile and GetFolderItem(*) now correctly return the resolved alias path if the app was started from a short-cut. Linux IDE: viewing string properties in the debugger no longer crashes. RuntimeException.Stack now works correctly on 64-bit programs. Text ToHex/ToOctal/ToBinary now correctly converts negative numbers. HTMLViewer no longer displays internal properties in the debugger. JSONItem no longer fails to parse JSON strings when the application's language is set to Japanese. Waiting on a Mutex, that is eventually released, now properly resumes execution instead of continuing to block the app.įixed a failed assertion in RuntimeThread.cpp that could be triggered by a specific sequence of raising exceptions and plugins yielding to other threads.ĭrawing to a Graphics object whose backing has been destroyed (for example if the Graphics object came from a Picture and that Picture was destroyed before the Graphics object was) a NilObjectException is now raised instead of crashing. : fixed miscalculation of daylight savings time on Windows/Linux. This only takes effect on Windows.įixed precision loss when dividing Currency values, also the results are now rounded properly, and will now raise overflow exceptions if the result cannot be represented.Ĭonverting floating point to unsigned integer types now works correctly under 64-bit. With ListBox.DragReorderRows enabled it is now possible to drag and drop at the end of a folder when the Listbox isn't positioned exactly on the left border of the window.Ĭontainer controls have a DoubleBuffer property that can be set at design time or runtime to reduce flicker when scrolling. The debuggers listbox viewer has column headings that match the way columns are referred to in listbox methods, like the Cell and CellTag methods, where they are 0-based not 1-based. SQLiteDatabase: When compiling a prepared statement fails, we now return the error that SQLite reports, instead of a custom 'unable to prepare' error message. Importing a SQLite Database (via drag and drop) now connects to the database properly. Please see the ThreadYieldInterval property to control how often it yield. SQLiteDatabase now yields to other threads while SQLite is busy performing a long operation. This can happen with #temp tables in a stored procedure for example. MSSQLServerDatabase no longer crashes on SQLSelect when the result contains multiple result sets. Moving style with background colors into a folder no longer causes a stack overflow exception.Ī non-privileged user trying to save a script to a location they do not have write access to no longer causes the IDE to generate an exception.
#Xojo convert new framework folderitem to classic code#
Selecting a Using clause and pressing any keys that would edit code (inserting text, deleting etc) no longer causes an exception. If autosave cannot write it no longer causes an exception and will instead warn the user that it has failed.Ĭopy paste and delete of web style with background colors no longer causes stack overflow exception.
#Xojo convert new framework folderitem to classic windows#
Running a project that contains compilable items named with one of Windows reserved file names no longer fails.Ĭrashes & Assertions : IDE Unhandled Exceptionĭragging more than one script file onto the IDE no longer causes an exception. Windows IDE no longer pre-compiles plugins unnecessarily.Ĭrashes & Assertions : Failed Assertion Windows version editor is not clipped off.įixed a failed assertion that would occur when using currency constants.įixed a compiler failed assertion that would occur when doing pointer subtraction on a 64-bit target.Ĭurrency comparison works correctly under 64-bit.įixed a failed assertion in SubprocessPOSIX.cpp that could happen if all code generation processes failed to launch.įixed a failed assertion that would occur when passing Nil when expecting a PString, WString, or WindowPtr.
System Requirements for previous releases.
System requirements for current release.
Reporting bugs and making feature requests.
Tumblr media
0 notes
justused · 2 years ago
Text
Xojo tutorials
Tumblr media
XOJO TUTORIALS HOW TO
XOJO TUTORIALS CODE
This means that we now define what should happen when the button is clicked.
XOJO TUTORIALS CODE
Then the code that was written before in the ActionEvent is executed. when the button is clicked (Action) or the mouse is over the object (MouseEnter). These events are called when something specific happens to this object, e.g. To the right of the list we see a small description of the events. A list with several selection options opens. In this submenu we click on the first entry Event Handler. Click on the small plus. This opens a submenu. You can switch between the Library and the Inspector by clicking on the corresponding button.Ībove the main area of the development environment there is a menu bar with several icons. Here we can also use coordinates to determine where the button is located in the window and how big it is. For example, we can give the button in our window the caption „Hello World”. We can view and change the properties here. If you click on the Inspector, you will see the properties for the element that we have selected in the main window where the library with the controls was before. One is the Library button and the other is the Inspector button. If you click on that symbol you can change the title of the button.Ībove the library you will find two buttons in the menu. If we move the mouse over the button, a pencil appears in the lower right edge. Now we take a look at the button that we have dropped into the window. If you do not see the window, go to the end of the library and move the grey bar a little bit upwards. If you move the mouse over the individual controls in the library, you get a short explanation of the control in this window. If you don’t know which element you are currently looking at in the library, the window at the bottom right will help you. Let’s try it and drag a Generic Button into the window (Buttons section, 1st row of 3rd from left). If you don’t want to see them, you have to click on the “Library” button in the upper menu bar first.īy default, the icons are sorted by category. It contains the controls that can be easily selected with the mouse, dragged into the window and positioned there. The middle part is our working area where we will write the code. By default, a program window named Window1 is created. On the left we see a list of all Windows, Control elements, methods and properties that are include in our project. The Xojo Integrated Development Environment, aka the Xojo IDE If we click on OK, the development environment appears. The window is divided into several sections. If you have a Company you can set its name in the Company field. In the Application Name field we set the name of our application. Start a new project in the Project Chooser Window For that we open Xojo and create a new desktop project. In this game the computer calculates a random number between 1 and 100 and we have to guess it.
XOJO TUTORIALS HOW TO
I would like to show you how to program a simple but entertaining game that will introduce you to the Xojo programming language.
Tumblr media
0 notes
trustallabout · 2 years ago
Text
Xojo cloud hosting
Tumblr media
#Xojo cloud hosting software#
Do you still have the control at some point ? can you add your own components? are they easily integrated ? are they performant or just because they are part of a bigger black box we don’t know or we don’t even care? can we optimize this apps? how much time do we reduce our development time ? and finally, is a real option or maybe is just better to keep our distance? in conclusion build or buy? We can see a explosive growing number of tools and platforms, even a Congress held in San Francisco, CA, USA about non-code dev or RAD (rapid application development), or visual app development, whatever you name it.īut I wonder if there is a trap or a only one-way road that you can’t never come back. Maybe some tools or platforms can deliver to both options. Nowadays we can see a lot of alternatives for web & mobile non-code visual development, I’m going to focus only in mobile development.
#Xojo cloud hosting software#
Adobe bought in 2011 a company called Nitobi, and rebranded it as Phonegap, so it was one of the first options to deliver cross platform apps with the eye candy, and later released an open source version of the software called Apache Cordova. With some integration with other programs like Fireworks, Flash, Contribute they used to reduce drastically the delivery and maintenance times. Well, the idea behind Dreamweaver was/is to deliver good looking dynamic web sites in a shorter time, with some sort of snippets code in ASP, PHP, JSP, and ColdFusion, pretty ambitious but really cool for that time.
Tumblr media
0 notes