HDTenEightyP/NetNews huggingface dataset:
From: ajetha@gpu.utcs.utoronto.ca (A. Jetha)
Subject: address
Organization: UTCS Public Access
Date: Wed, 26 Aug 1992 16:01:11 GMT

I have been trying to email: TDS.COM!bryan@tds.com

The postmaster consistently gives a error message of "unknown host" and
"no data address"

I guess your name is Bryan, if so could you please send your correct email
address

Thanks
AJ
From: jjfeiler@relief.com (John Jay Feiler)
Newsgroups: comp.sys.next.programmer
Subject: Re: [NXApp run]
Date: 28 Aug 92 06:18:20 GMT
Reply-To: jjfeiler@relief.com
Organization: relief consulting

In article <1992Aug25.092051@fdr.jsc.nasa.gov> shirley@fdr.jsc.nasa.gov (Bill  
Shirley [CSC]) writes:
> 
> Does the -run method of Application NEED to be invoked.
> 
> I need a little bit more control over the event loop.
> 
> (NO, I didn't design it poorly, I didn't design it. I am trying
>  to integrate an old program into a NeXTSTEP environment.)
> 
> The program I'm trying to write a front end for (it was command line)
> calls a function that is equivalent to getc, and this function needs
> to return a character, probably dispatching other events while waiting
> for the character to come in.

What about doing a DPSAddFD on the file descriptor of whatever you are  
"getc"ing from.  The  you can still use -run, and your getc stuff will be  
checked once every "run" event loop.


> -- 
> Bill Shirley		|  ``Computer Science is not about computers any 
> shirley@fdr.jsc.nasa.gov|	more than astronomy is about telescopes.''
Newsgroups: comp.sys.next.programmer
From: modman@liveware.com
Subject: NeXT Concepts:  Software version
Keywords: CONCEPTS TREES ENVIRONMENT LIFE THE UNIVERSE AND EVERYTHING
Reply-To: modman@liveware.com
Organization: Liveware Corporation   Fort Collins, CO.  USA.
Date: Wed, 2 Sep 1992 18:44:27 GMT

In article <92246.110349MKK2@psuvm.psu.edu> <MKK2@psuvm.psu.edu> writes:
> Even if you have 3.0, the 2.0 manuals will be of GREAT help while you wait
> for the 3.0 manuals.  3.0 adds many nice capabilities, but 90% of what you
> need, especially as a NeXT beginner, is the same as 2.0.
> 
>    In fact, do whatever it takes to get a copy of NeXTstep CONCEPTS.  Mine
> is for version 1.0, but I still think it is the most useful manual I know
> of for getting started.
> 
>    I had to beg for mine from a guy I know at NeXT.  So far as I know,
> it isn't an Addison-Wesley pub.
> 
> good luck

As far as I know concepts is included in 3.0 and it is
also available on the archive sites.  Save a tree, by
getting the digital Concepts 1.0.  As far as I know
Concepts 2.x and 3.0 are the same as 1.0...

I just checked the archives sites and it seems there is
indeed the Concepts.README but no Concepts.  Maybe
NeXT retracted that one also...

Todd
Newsgroups: comp.sys.next.programmer
From: brown@ccit02.duq.edu (Jason Brown)
Subject: Re: Replacing NeXT cc with gcc-2.2.2
Organization: Columbia University Center for Telecommunications Research
Date: Mon, 31 Aug 1992 17:45:01 GMT
X-Posted-From: ccit02.duq.edu
X-Posted-Through: sol.ctr.columbia.edu

In article <1992Aug31.164909.7198@fcom.cc.utah.edu>  
swillden@news.ccutah.edu (Shawn Willden) writes:
> Note to readers of comp.lang.c++:  I am cross-posting this because  
questions
> 2, 3, and 4 are applicable and I want opinions/facts from all you C++  
gurus.
> 
> Hi, I have a few questions about replacing cc with gcc (I have NeXTStep  
2.0, BTW)
> 
> 1)	I understand that the newest version of gcc incorporates NeXT's 
> Objective-C extensions.  Is gcc lacking anything?  Is NeXT making any  
new
> additions to their compiler for 3.0 that may not be present in the  
current 
> version of gcc?
> 

The only thing that I am aware of in the 3.0 NeXT verison of the Compiler  
is support for pre-compiled headers.  Makes compiling go quick like a  
bunny.   Now you can just #import <appkit/appkit.h> and quit worrying  
about which headers have which prototypes.

--Jason Brown
brown@ccit01.duq.edu
   ____                __
    /                 /  )
   /  _, ,  __       /-,' ,_  __
\_/__</_/>_(_/_/\/  /__)__/__(_/__(_/_)_/\/

"Remember, be humble, always answer the phone...
 No matter who's in the car."  Jack Lemmon
Newsgroups: comp.sys.next.programmer
Subject: Re: Replacing NeXT cc with gcc-2.2.2
From: Alex Raftis
Date: Tue, 01 Sep 1992 16:31:52 GMT
Reply-To: alex@cosmos.acs.calpoly.edu
Organization: Cal Poly State University, San Luis Obispo

Shawn Willden writes
> 1)	I understand that the newest version of gcc incorporates NeXT's 
> Objective-C extensions.  Is gcc lacking anything?  Is NeXT making any new
> additions to their compiler for 3.0 that may not be present in the current 
> version of gcc?
> 

From a previous (long) discussion on this topic, yes, gcc can and will work
on a NeXT. You have to, however, make some slight modifications to the code
to get it too work. GNU uses a slightly different naming methods on method
calls, so you need to patch the code to use NeXT's method. Also, the don't,
by default, support #import, so you have to turn this feature on. With these
two items enabled, people reported that the Objective-C compiler worked quite
well on a NeXT.

You should be able to get a copy of the discussion from archive sites. I 
remember one post included patches to make it work.

I can't comment on the c++ aspects. Having learn OOP under Objective-C, I'm
generally loath to program under c++, except for when I have to. I prefer
simplicity over some of c++ more obscure features.

> 
> --
> Shawn Willden
> swillden@icarus.weber.edu

Alex
--
______________________________________________________
    Internet: alex@data.acs.calpoly.edu (NeXT mail)
              alex@cosmos.acs.calpoly.edu
Newsgroups: comp.sys.next.programmer
From: aistmain@vntic.msk.su (Dispatcher of AIST-EuroAIST-RELCOM Boris I. Tarakanov)
Subject: NEW CIPHER-SYSTEM
Summary: NEW CIPHER-SYSTEM
Keywords: NEW CIPHER-SYSTEM
Reply-To: aistmain@vntic.msk.su
Organization: AIST-VNTIC INFORMATION NETWORK
Date: Mon, 31 Aug 92 01:18:00 +0300

              New cipher-system

 1. When the original information is euciphered every bit is
    treaded and redundancy of this information is absent
 2. The amount of variants of eucipher may be so much great,
    for example n=10**91
 3. The quantity of encipher operations for 1 bit are <=22,
    but decipher operations are <= 9 for case n=10**91
 4. Ecodered file is deciphered in turn bit from the end  of
    the text.

    This new cipher-system may be  used  for  protection  of
    information  from   unauthorized  access  and  for  data
    communications by communication chanels.

    Relation by electronic mail.
From: brueck@inm.uni-sb.de (Stefan Brueck)
Newsgroups: comp.sys.next.programmer
Subject: Question: X Windows Developement on NeXT ?
Date: 1 Sep 92 10:18:15 GMT
Distribution: comp
Organization: Institute for New Materials (INM), Saarbr"ucken, Germany.

Hi

Perhaps a rather strange question of mine: Is it possible to use the NeXT
computer with its UNIX as cross development system for programming X Windows?
Did anyone something similar before?

Thanks (e-mail answers preferred)
stefan
From: ssircar@canon.com (Subrata Sircar)
Newsgroups: comp.sys.next.programmer
Subject: The submissions file AddressBook_Aug_92.tar.Z is damaged
Date: 28 Aug 92 22:52:40 GMT


It contains a listing of files in one of your directories, rather than the  
MiniExample we all wanted :<(  Anyway, could we ask for a resubmission?

---
Subrata Sircar|ssircar@canon.com (NextMail ok)|Prophet & SPAMIT Charter Member
Canon Information Systems and I do not share the same views on everything.
"All I have to do is write a thesis, but how hard could that be?" - Jordan
"I seem to suffer from irrelevant flashbacks." - Paul, PAUL THE SAMURAI #1
From: dudney@broadway (William "Bill" A. Dudney)
Newsgroups: comp.sys.next.programmer
Subject: Re: Next Concepts Docs
Date: 3 Sep 92 16:57:28 GMT
Reply-To: alt.rush-limbaugh
Organization: Pencom Software

The 3.0 concepts are brand new and improved. I have seen beta 3.0 and they  
are a complete rework, very nice.

Bill Dudney
my opinions are my own and no one elses.
Newsgroups: comp.sys.next.programmer
From: louie@sayshell.umd.edu (Louis A. Mamakos)
Subject: Re: Q: Using select() to detect another process appending to a file
Organization: University of Maryland College Park
Date: Mon, 31 Aug 1992 14:57:42 GMT

In article <BtuA1H.7p0@sounds.wa.com> BrianW@SoundS.WA.com writes:
>Can anyone tell me what is wrong? (perhaps select() only works on pipes which  
>are emptied when read and doesn't work on real files if I only want to know  
>about data appended beyond the current file position?)

You are correct here; select() only works on pipes, tty-like devices
and sockets.  It doesn't do anything useful on plain files.

louie
From: tim@sinix.UUCP (Tim Bissell)
Newsgroups: comp.sys.next.programmer
Subject: Initialisation of custom objects
Date: 27 Aug 92 17:50:04 GMT
Organization: SNI AG Muenchen, STO XS

<< My system:  slab/2.1 >>

Hi,

I have run into an old problem.  I want to create a custom object that
loads part of itself from a nib, and does some fiddling with the nib
objects at initialisation.  If I just do a loadNibSection:owner: in
my init method, the nib object pointers are still nil (according to gdb)
e.g.


@interface X:Object
{
	id window;
	id splitView;
	...
}

...

@end


@implementation X

- init
{
	[super init];
	[NXApp loadNibSection:"X.nib" owner:self];

	// at this point window and splitView are still 0x0/nil

	[window setBackgroundGray:NX_BLACK];
	...

	return self;
}

...

@end

In NextAnswers (#817 I think) it addresses this problem, and says it
can be cured by adding a new method (say awake) and doing the initialisation
in there:

- init
{
	[super init];
        [NXApp loadNibSection:"X.nib" owner:self];

	[self awake];

	return self;
}


- awake
{
        [window setBackgroundGray:NX_BLACK];
	....

        return self;
}


Unfortunately, window and splitView are *still* set to nil.  Any ideas?

Thanks in advance,

Tim
-- 
Tim Bissell		|      best...	tim@athen.uucp
Work:+49 89 636 49542	| 	hmm...	tim%sinix@germany.eu.net
Home:+49 89 692 5263	|   UK only...	uk.co.uel!sinix!athen!tim
Newsgroups: comp.sys.next.programmer
From: quarrie@cds001.cebaf.gov (David Quarrie)
Subject: has anyone tried the -traditional switch under NeXTSTEP 3.0 ?
Reply-To: quarrie@cds001.cebaf.gov (David Quarrie)
Organization: CEBAF (Continuous Electron Beam Accelerator Facility)
Date: Thu, 3 Sep 1992 13:38:09 GMT

--

Has anyone tried using the -traditional switch to the Ccompiler under NS 3.0?

I have the following little test program:

	david> cat problem.c

	#define CALL(a,b,c) ((a=b),c)
	#define CALL_R CALL
	void problem (bc)
	int *bc;
	{
       		int *t1, *t2;
        	CALL_R(t1, (int *)(CALL_R(t2, bc, t2)), t1);
	}

	david> cc problem.c             
	/bin/ld: Undefined symbols:
	_main
	_CALL

The program doesn't make any sense, it is a heavily abstracted snippet of code
generated automatically by a language compiler. However, I used it to
illustrate
a problem under NS3 PR 2 that cpp didn't fully resolve the macros (which
it used
to do under NS 2.1).

I've since heard that the solution is to use the -traditional switch to the
compiler:

	david> cc -traditional problem.c
	/bin/ld: Undefined symbols:
	_main

All well and good, until I add an #include statement:

	#include <stdio.h>
	#define CALL(a,b,c) ((a=b),c)
	[...]

	david> cc -traditional problem.c
	/NextDeveloper/Headers/ansi/machine/stddef.h:11: #include expects
"fname" or <fname>
	/NextDeveloper/Headers/ansi/machine/stdarg.h:11: #include expects
"fname" or <fname>

I've tried this in combination with other switches (e.g. -gnu-cpp) to no avail.

Other relevant information is that I still have NS3 PR2 but I've heard that
the problem persists under NS3.0. 

Aynone have any suggestions? (or even better, a solution!).

-------------------------------------------------------------------------------
	David Quarrie					CEBAF MS 12H
							12000 Jefferson Ave
Internet: quarrie@cebaf.gov				Newport News VA 23606
DECnet  : cebaf::quarrie				Tel: (804) 249-7562
BITNET  : quarrie@cebaf					Fax: (804) 249-7363
Xref: sparky comp.sys.next.programmer:5797 comp.dsp:2021
From: izumi@pinoko.berkeley.edu (Izumi Ohzawa)
Newsgroups: comp.sys.next.programmer,comp.dsp
Subject: Re: Finding how much DSP56001 RAM is installed via program??
Date: 26 Aug 1992 07:17:21 GMT
Organization: University of California, Berkeley
Distribution: world
Reply-To: izumi@pinoko.berkeley.edu
NNTP-Posting-Host: moica.berkeley.edu
Keywords: DSP, 56001, NeXT

In article <1992Aug26.060638.10407@ee.ubc.ca>
  williamb@ee.ubc.ca (william burchill) writes:
>A floating bus is not going to confuse a memory testing program, that's
>what it's looking for.  What do you mean "didn't work well"?

Well, at the risk of making myself look totally stupid, the following is a
simplified version of what I am trying to do.  I do use other test patterns
in addition to $5a5a5a.  Failure on any one pattern should break the loop.
The program just doesn't exit the loop.  I have never written a memory
test program, so please forgive some ignorance :-)  Thanks.

---------------------------------------------------------------------

ERAM_Base	equ	8192		; Start address of external DSP RAM on NeXT
	
	<some init stuff>

	move	#>ERAM_Base,R0
TestLoop
	move	#>$5a5a5a,b		;load test pattern
	move	b,x:(R0)		;write to a memory loc
	move	x:(R0)+,a		;read back into A1, post-incr address.
	cmp	a,b
	jne	memory_fail

	<same things with different test patterns>

	jmp	TestLoop

memory_fail
	<report R0 value to host>


--
Izumi Ohzawa
USMail: University of California, 360 Minor Hall, Berkeley, CA 94720
Telephone: (510) 642-6440     Fax:  (510) 642-3323
Internet: izumi@pinoko.berkeley.edu (NeXT Mail OK)
From: eps@futon.SFSU.EDU (Eric P. Scott)
Newsgroups: comp.sys.next.programmer
Subject: Re: Can I pass variables to system()?
Date: 4 Sep 92 08:21:18 GMT
Reply-To: eps@cs.sfsu.edu
Organization: San Francisco State University

In article <21376@optima.cs.arizona.edu> kline@cs.arizona.edu
	(Nick Kline) writes:
>   sprintf(string,"cal %d %d > /tmp/calOutputFile",theMonth,theYear);
>   system(string);

The general rule on any UNIX system (this is not NeXT-specific)
is that you want to prefix a simple external command with an
"exec" verb to avoid having an extraneous shell process lying
around, i.e.:

   sprintf(string,"exec cal %d %d > /tmp/calOutputFile",theMonth,theYear);

					-=EPS=-
-- 
Try  system("ps -t"); system("exec ps -t");  to see the difference.
Newsgroups: comp.sys.next.programmer,comp.lang.c++
From: swillden@news.ccutah.edu (Shawn Willden)
Subject: Replacing NeXT cc with gcc-2.2.2
Organization: University of Utah Computer Center
X-Newsreader: Tin 1.1 PL3
Date: Mon, 31 Aug 92 16:49:09 GMT

Note to readers of comp.lang.c++:  I am cross-posting this because questions
2, 3, and 4 are applicable and I want opinions/facts from all you C++ gurus.

Hi, I have a few questions about replacing cc with gcc (I have NeXTStep 2.0, BTW)

1)	I understand that the newest version of gcc incorporates NeXT's 
Objective-C extensions.  Is gcc lacking anything?  Is NeXT making any new
additions to their compiler for 3.0 that may not be present in the current 
version of gcc?

2)	How complete is gcc's implementation of C++?  Does it support templates
as described in _The C++ Programming Language 2nd Ed._ (by Bjarne Stroustrup)?  I
know it doesn't support exceptions (yet).

3)	How stable is 2.2.2? 

4)	How standard are the libg++ libraries?  (i.e. how closely do they track
the work of the ANSI C++ committee? [In implementation, not content, ANSI
hasn't/isn't going to specify standard libraries, right?])

5)	Is 2.2.2 compatible with the NeXT gdb or would I have to get gdb-4.6 as
well?

I would greatly appreciate answers and/or experiences from anyone who has had
experience with gcc-2.2.2.

Reply by post or e-mail as you deem appropriate.  Note, however, that if you
reply by e-mail, my address in the message header may be incorrect.  Be sure
that you use the one below.

Thanks.

--
Shawn Willden
swillden@icarus.weber.edu
From: kari@pencom.com (Kari Karhi)
Newsgroups: comp.sys.next.programmer
Subject: Re: Multiple init: functions defined
Keywords: Objective-C,variable declaration
Date: 3 Sep 92 13:49:09 GMT
Reply-To: kari@pencom.com
Organization: Pencom Software

In article <Btz6sL.8qC@oceania.com> jim (Jim Mackraz) writes:
> Jack Gidding writes
> > 
> > Hmmmm..... this is really strange and very undesired behavior from  
> Objective-C.
> > 
> > When I include the header files from two different classes into a third  
> class,  
> > and each of the included classes have a single init: method defined, I get  
> > messages similar to the following:
> > 
> > 
> > main2.m:18: warning: multiple declarations for method `init:'
> > /Clib/RP.h:32: using `-init:(int )pSize'
> > /Clib/RS.h:31: also found `-init:(OBJPTR )s'
> > 
> > 
> > Why is this happening??? Sometimes it tells me that it resolved which init  
to  
> > use, sometimes not, and sometimes it resolves it to the wrong init:.
> > 
> > 
> > The code that has the init method is sililar in form to:
> > 
> > 	#import <RP.h>	// Both RP and RS have and init: method
> > 	#import <RS.h>
> > 
> > 	id x;
> > 
> > 	x = [[RP alloc] init:(int) 5];
> > 
> > id is totally dynamic, and thus it really does not know which init to  
use....
> > 
> > So, why is it telling me that it is using one method or another...shouldn't  
> > this be left up until run-time? 
> > 
> > 
> > Am I doing something wrong to cause this?
> 
> Yeah, you're "type overloading" the method "init:".  Don't do that.
> Make one of the "-initInt: (int) intVal" and the other one
>  "-initObj: (OBJPTR) obj"
> 
> .... or something like that.
> 
> 
> > Thanks,
> > 
> > 
> > Jack Gidding
> > jack@richsun.cpg.trs.reuter.com
> -- 
> Jim Mackraz
> jim@oceania.com

Another way is to declare the variable x as
            RP *x;
This gives enough clues to the compiler to avoid the warning messages and you  
are, after all, initializing an instance of class RP.  If x can also be  
something else, then you can not use this way. You can also try making the two  
init methods have identical declarations, ie. same argument names and types and  
same return types. Then the compiler will not see any differences and will be  
happy.  In your case that may not be possible either.  In that case renaming  
the method name may be the only solution (outside of just living with the  
warning messages).

Cheers,
Kari Karhi
Pencom Software
(512)343-1111
kari@pencom.com
Xref: sparky comp.sys.next.programmer:5936 comp.lang.objective-c:513
From: jack@richsun.cpg.trs.reuter.com (Jack Gidding)
Newsgroups: comp.sys.next.programmer,comp.lang.objective-c
Subject: Multiple init: functions defined
Date: 2 Sep 92 20:37:28 GMT
Followup-To: comp.sys.next.programmer


Hmmmm..... this is really strange and very undesired behavior from Objective-C.

When I include the header files from two different classes into a third class,  
and each of the included classes have a single init: method defined, I get  
messages similar to the following:


main2.m:18: warning: multiple declarations for method `init:'
/Clib/RP.h:32: using `-init:(int )pSize'
/Clib/RS.h:31: also found `-init:(OBJPTR )s'


Why is this happening??? Sometimes it tells me that it resolved which init to  
use, sometimes not, and sometimes it resolves it to the wrong init:.


The code that has the init method is sililar in form to:

	#import <RP.h>	// Both RP and RS have and init: method
	#import <RS.h>

	id x;

	x = [[RP alloc] init:(int) 5];

id is totally dynamic, and thus it really does not know which init to use....

So, why is it telling me that it is using one method or another...shouldn't  
this be left up until run-time? 


Am I doing something wrong to cause this?


Thanks,


Jack Gidding
jack@richsun.cpg.trs.reuter.com
From: drm@stimpy.com (Don McGregor)
Newsgroups: comp.sys.next.programmer
Subject: Re: Calling Apps
Date: 31 Aug 92 06:09:22 GMT
Reply-To: drm@stimpy.com
Organization: ESL, a TRW Subsidiary

In article 16435@pellns.alleg.edu, frisinv@alleg.edu () writes:
>
>   For an app I'm working on I need to have ImageViewer called. How do I  
>do this? How do I call any app?
 
Drat.  I just did this a few weeks ago but I don't have the code handy.

Anyway, look in the documentation for the Speaker class, which
has a brief example on sending messages to another app.  Basically,
you send a message to the Workspace with the file name.  The 
Workspace then opens the appropriate application and loads the
file.  You want to message the workspace and NOT ImageViewer;
if the user has specified another default application to look at .tiff files, 
that one should be launched instead.  The Workspace manager will look 
up the appropriate app to be used for that file extension.

It goes something like

int fileOpened, returnCode;
id mySpeaker = [[Speaker alloc] init];
port_t thePort = NXPortFromName(NX_WORKSPACEREQUEST, NULL);

if(thePort != PORT_NULL)
  {
    [mySpeaker setSendPort:thePort];
    returnCode = [mySpeaker openFile:"/users/bogon/foo.tiff" ok:&fileOpened];
   
   ...
  }

(All code uncompiled and probably guaranteed to crash horribly).

All this Mach messaging stuff is so cool, and it's gonna get even cooler.

---
Don McGregor | "That which does not overflow my swap file 
drm@esl.com  | makes me stronger." 

Newsgroups: comp.sys.next.programmer
From: ph@theora (J. Patrick Hester)
Subject: Objective DB Toolkit?
Reply-To: ph@pencom.com
Organization: Pencom Systems Incorporated
Date: Thu, 03 Sep 1992 16:03:10 GMT

We are developing a Sybase application and don't want to reinvent too many  
wheels. Currently we have NS 3.0 PR2 so we have been using DBKit. So far  
we aren't too thrilled. It seems like DBKit provides minimal functionality  
and we have to drop into Objective-C for just about everything. Sybase  
dates don't format well, we can't do multi level joins, etc.

Currently we are evaluating a copy of Objective DB Toolkit from PSI. So  
far it looks like it has lots more functionality from within IB. Lots of  
potential power. But one of our people in another office has been using  
this package and feels it has some serious flaws and does not recommend  
it.

He claims that the ODBT button subclasses do not respond directly to  
messages which alter their state. Instead the change must be routed thru  
the database and back in a query(?). There are problems with defining hot  
keys and it is difficult to coordinate Toolkit and Objective-C. He also  
says it tends to crash the app.

So who all out there has experience with this package? Are these  
complaints real or imagined? Are there any other options? We are on a very  
tight schedule and have to make a decision in a hurry.

Please reply via email as our news feed is usually a few weeks out of  
date. Thanks!
Newsgroups: comp.sys.next.programmer,comp.dsp
From: williamb@ee.ubc.ca (william burchill)
Subject: Re: Finding how much DSP56001 RAM is installed via program??
Keywords: DSP, 56001, NeXT
Organization: University of BC, Electrical Engineering
Date: Wed, 26 Aug 1992 18:10:06 GMT


I see a problem.  You are reading back immediately after writing out.  This 
can allow bus capacitance to appear as a valid memory location.
I suggest you write out a pair of different test patterns.  Since memory
is organized into even lengths, when it comes time to read back for compares,
your first read (at the start of memory) will be different from your last 
write (at the end of memory).
Do all writes first.
Do all reads last.
Use an even # of test patterns.
#addr0	patt1
#addr1	patt2
#addr2	patt1
#addr3	patt2
#addr4	patt1
etc.

Newsgroups: comp.sys.next.programmer