• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Where are all the programmers?

feeef

Well-known member
Facebook Chat is a good idea too!

You are right ClassicHasClass! I didn't think about OAuth. I don't know about implementing SSL apps under 7 but I will have a look at it.

You know, before doing any app, I will actually build a few libs to make things easier... and to give other people some tools to develop modern connected apps for System 7! :) I will do what I can, I am not an expert, but I think it's a good goal!

The JSON lib is a start and it's going forward. As soon as I have a first working version, I will add it on github for sharing (I have an account there). It will be a C++ CW pro 1 project but the files should only rely on the default C++ API and be easy to build on any platform.

 

IPalindromeI

Well-known member
I am thinking about connected applications such as a twitter client, gmail client, or a cool control panel like a dock to replace the default mac launcher. In fact, I think that plenty of small iOS/mobile applications could be made for system 7.
Facebook chat?
We need a Sys7 Jabber client with SSL support then.

I also think we need easy-to-use MODERN (no basic, basic is always ew - along the lines of Python, Java, C#, Perl, Ruby, and Haskell for the functional hipsters, some we have ancient versions of - Java/C# before foreach and generics is no fun at all) language that works and works well with classic Mac OS. Once we get that, it will lower the gap.

The Amiga folks can get anything done with their Amigas and their crazy projects, but that's just crazy Germans in denial making new stuff for their little Miggies.

 

commodorejohn

Well-known member
The Amiga folks can get anything done with their Amigas and their crazy projects, but that's just crazy Germans in denial making new stuff for their little Miggies.
Oh, laugh if you want, but our time will come, my friend. Our time will come...

 

ClassicHasClass

Well-known member
Perl 5 works just fine with System 7 and can make very credible GUI apps. The main problem is distribution of the runtime.

That said, FutureBASIC and CodeWarrior are still my preferred Classic dev environments.

Oh, laugh if you want, but our time will come, my friend. Our time will come...
6502 NOW!

 

jamie marchant

Well-known member
I wouldn't mind writing some toy programs for Classic Mac OS, last time I found all the parts of MPW, I could not figure out how to compile anything :( .

 

leitec

Active member
I don't know about implementing SSL apps under 7 but I will have a look at it.
OpenSSL still has classic MacOS code in its tree. The original author did his work with CW Pro 5, so it may take a bit of work to get it to work with CW Pro 1. I was able to make 0.9.6m build and work with CW Pro 7.1 but it took updating the project file to add and remove files that had changed since the project file was created.

I wanted to build newer versions but ran out of time. IIRC whatever the latest 0.9.5 revision is compiled fairly easily. One note, though: I had tons of problems at first that turned out to be because StuffIt was messing up the CR/LF conversions when extracting the tar file. Using SUNtar it compiled almost out of the box.

 

leitec

Active member
I've been working a bit more on the SSL issue. I'm working on a port of PolarSSL in CW Pro 1. I have a few more interfaces to adapt to native MacOS calls, including the rather important sockets code. There's also a bit of PPC assembly code that I need to adapt to Metrowerks' syntax. But what's there now compiles and runs tests successfully.

I was able to build the library pretty much as-is using CW Pro 7 with GUSI, the fantastic UNIX compatibility library. But that apparently only works with CW Pro 5, 6 and 7. I only have 7 and 1 so if I want to build anything for 68k I have to stick with 1. I should probably note, though, that the performance is already mediocre on a G4, so I can't imagine how bad it'll be on a 68k.

I'll be posting all of this on Github or something when I'm a bit further along.

 

feeef

Well-known member
That's some really good work you did there leitec! Thanks for the research!

I am searching CW Pro 5 but can't find it anywhere so I think I will keep working with CW Pro 1. I want to do a dynamic array underCw Pro 1 but always have a syntax error when using "vector arr;" if you are familiar with the software, do you know how to do it leitec?

Also, I have been working for a company that made connected apps for J2ME mobile phones. A good workaround we used to handle really small resources is to make a web proxy that does the work for you. I remember we had security issues with sending passwords over the normal HTTP connexion but don't remember exactly how we worked that out. I will investigate.

 

leitec

Active member
You're welcome!

I am not very familiar with C++, but I did try to figure that out today. The C/C++ compiler manual and MSL reference both indicate that that is possible, but testing showed otherwise. I finally found the answer in the release notes. If you look at vector.h, the part that defines a default allocator is not active (#ifdef MSIPL_DEF_TEMPARG), so you have to define it manually. One of the examples in the release notes has it as:

vector > v;

The tricky part is that the space between the two >'s is significant, which I suppose has to do with the fact that >> is an operator in C++. If you look at the inactive default allocator thing in vector.h, it's there too:

template >

I tried with

vector > arr;

and it worked.

 

feeef

Well-known member
leitec, you're a wizard! it works!! Thank you so much! I will be able to complete my JSON lib! :)

Thanks for the link Bunsen! it looks really interesting indeed!

 

leitec

Active member
PolarSSL ported to CW Pro 1 is up here: https://github.com/leitec/polarssl. It's not well-tested but I figure others might be interested.

Disclaimer: basic SSL client connections work fine as far as I can tell but I don't know if it's actually secure. PolarSSL supports platforms that don't have an OS PRNG (and that code is enabled), so I'm guessing it's OK. Still, I provide no guarantees at all. I'm especially suspicious about 68k, since PowerPC at least is using the processor tick register that PolarSSL's HAVEGE PRNG uses. 68k is using OS ticks (Microseconds()) instead.

 

MidnightCommando

Well-known member
For what it's worth re SSL, I believe OpenSSL 1.0.0 will compile on Mac OS 9 at least, possibly for older Mac OS as well - I'd have to ask the guy who pulled that off for more specifics.

While OpenSSL isn't necessarily a light library, it is arguably the best-audited of the SSL implementations and thus is probably the best choice for security-critical application.

;)

 

leitec

Active member
Yup, I got an older version (0.9.6) to compile OK with CW Pro 7.1 and GUSI (POSIX compatibility library). Although there is a port that is totally "native" (i.e. not using GUSI) it is completely unmaintained. I managed to get a newer version built later, but I had to manually sync the file list from the Makefile to the CW project file. So it was a bit of a pain, and I wanted something I could build with an older version of CW.

PolarSSL is not as widespread, but it is actively maintained and used widely enough in embedded systems that I feel comfortable using it. Plus, it being small and more manageable/readable is a huge plus. Once I rewrote the PPC asm stuff to work with CW the performance became quite good, too. Surprisingly there is also 68020 assembly code upstream, but I haven't ventured into porting it just yet.

The biggest issue for my port is that of entropy and RNG, but that is also a problem for OpenSSL. PolarSSL might actually have an advantage here because of its use on limited embedded systems without OS or hardware entropy sources. I am not at all an expert in this field, so I have to trust the result that I got from the entropy analyzer "ent," which showed good-enough results on both PPC and 68k.

On a more general note, I've also been writing an OAuth library in C that works with PolarSSL on CodeWarrior. It can successfully authenticate against Twitter over SSL on my Mac. I am cleaning it up by decoupling the HTTP/network code from the OAuth signature stuff, so when that's done I'll put it up on Github.

 

feeef

Well-known member
Hi leitec,

Well done! I see you are going forward. :)

I haven't been able to find some time to code lately. My job and my family are just taking all my time. I hope things are going to evolve soon and I will be back helping you!

Sorry about that.

 
Top