HDTenEightyP/NetNews huggingface dataset:
From: ssircar@canon.com (Subrata Sircar)
Subject: Re: how do outlets work?
Originator: news@ernie.Princeton.EDU
Reply-To: ssircar@canon.com (Subrata Sircar)
Organization: SPAMIT
Distribution: usa
Date: Wed, 29 Jul 1992 22:45:08 GMT

>Eric Fronberg writes
>> This may be a naive question.  I'm confused about the workings of
>> outlets in interface builder. I understand what outlets are supposed
>> to do -- provide access to instances of other objects, but I'm 
>> confused how Interface Builder accomplishes this.

Interface Builder actually does something like the following:

	if ([yourObject respondsTo:@selector(setTheOutlet:)])
		[yourObject setTheOutlet:outletID];

Those methods used to be automatically generated by IB, but are not anymore.
If you include them, you can do a lot of neat things in those methods.  They
are particularly useful with FormCells, where you can set the input format
and so forth.

sanguish@digifix.com writes:
>	Is this still supported?  I can't find it anywhere in the current  
>documentation.

It is still supported.  As far as the future goes, your guess is as good as
mine.



-- 
Subrata Sircar | ssircar@canon.com | Prophet & SPAMIT Charter Member
Canon Information Systems and I do not speak for each other on all things.
"I wish people wouldn't instantly assume that I am an idiot." (Valentine)
"A restaurant is a whorehouse that does food instead of sex." (Roger Lustig)
From: rowley@leghorn.cs.umn.edu. (Tim Rowley)
Newsgroups: comp.sys.next.programmer
Subject: Keyboard input
Keywords: keyboard, events
Date: 21 Jul 92 19:17:59 GMT
Distribution: usa
Organization: University of Minnesota

This has to be a FAQ, but here goes:

I want keyboard events from the main window of my application.  Sounds simple  
enough, but I'm having problems.

I have a view with the following things overridden: keyDown and mouseDown.

First I tried the following:

#import <stdlib.h>
#import <appkit/Application.h>
#import "MyView.h"

void main(int argc, char *argv[]) {
    id mv;

    NXApp = [Application new];
    [NXApp loadNibSection:"t.nib" owner:NXApp];
    mv = [[MyView alloc] init];
    [[NXApp mainWindow] setContentView:mv];
    [NXApp run];
    [NXApp free];
    exit(0);
}

This doesn't get me the keyboard or mouse events.

Next I tried making my own window and then doing stuff with it:

#import <stdlib.h>
#import <appkit/Application.h>
#import <appkit/appkit.h>
#import "MyView.h"

void main(int argc, char *argv[]) {
    id mv;
    id theWindow;
    NXRect aRect;

    NXApp = [Application new];
    [NXApp loadNibSection:"t.nib" owner:NXApp];

    NXSetRect(&aRect, 100.0, 350.0, 300.0, 300.0);
    theWindow = [Window newContent:&aRect         /* create Window */
                    style:NX_TITLEDSTYLE          /* object */
                    backing:NX_BUFFERED
                    buttonMask:NX_ALLBUTTONS
                    defer:NO];
    [theWindow setBackgroundGray:NX_WHITE];

    mv = [[MyView alloc] init];

    [theWindow setContentView: mv];

    [theWindow display];
    [theWindow orderFront:nil];
    [theWindow makeKeyWindow];

    [NXApp run];
    [NXApp free];
    exit(0);
}

This was slightly more successful in that I now get the mouseDown events, but
pressing a key just gives a miserable "boink."

Could anyone give me a clue to what's happening?

- Tim Rowley
  rowley@leghorn.cs.umn.edu
Newsgroups: comp.sys.next.programmer
From: greg@afs.com (Gregory H. Anderson)
Subject: Re: Formcell behaviour
Reply-To: greg@afs.com
Date: Tue, 28 Jul 1992 23:20:09 GMT

In article <1992Jul27.132231.19873@monu6.cc.monash.edu.au>  
ede978e@monu6.cc.monash.edu.au (Robert D. Nicholson) writes:
> 
> I have a form and one of the formCells connected to a validateField  
method. I have a number of buttons which are enabled only if the fields  
are valid.  When I type in the formcell (not pressing return) or click  
into another cell or even _OUTSIDE_ the form the action is not sent.  
WHY!!!!!.
> 

Because this object is braindead.  8^)

Seriously, only an actual <CR> forces the action method. This is a Bad  
Thing, because I have watched many users not bother to hit any field  
movement key after t hey finish typing in a field. If the next thing they  
hit is the Save button, the last field never gets a chance to validate.  
IMHO, any inter-field movement should trigger the action method.

For what you want, the Matrix which contains the FormCells must have a  
text delegate, and you must use the text delegate methods (textWillEnd:,  
textDidGetKeys:, etc.) to validate as they type. Even with this procedure,  
the delegate methods seem to jump off at different points depending on  
whether the keyboard or the mouse was used to instigate the field  
movement. Bottom line, the action method is not reliable.

--
Gregory H. Anderson          | "We're very tolerant around here,
Benevolent Dictator-for-Life |  being only amateurs ourselves."
Anderson Financial Systems   | - Tortoise (Godel, Escher, Bach)
greg@afs.com  (Nextmail OK)  | 
Newsgroups: comp.sys.next.programmer
From: timo@swabsib.stgt.sub.org (Timo Hennerich)
Subject: NXSplitView with VERTICAL bar
Organization: Swabian Siberian Software Solutions
Date: Wed, 22 Jul 1992 17:20:01 GMT

Hi,

I want to rotate a NXSplitView like in the NewsGrazer, so that I can devide two  
subviews with a VERTICAL bar. The subviews are both scrollViews including (by  
default) clipViews and these clipViews don't like to be rotated. So I had  
(after rotating) no luck with the display of the subviews but a lot of strange  
drawing on the screen. It didn't work.

I made several tries and think now that the only way is to subclass the  
NXSplitView and write a lot of code a new. Is this possible (hmmm - it's  
NeXTStep and there should be an easier solution).

Anybody out there who tried before and has some hints? Perhaps an example (yoo,  
with source code would be great) somewhere on the net telling me how I have to  
do it?

ThanX in advance

Timo =8-)
-- 
Timo Hennerich, +49 7182 7956, timo@swabsib.stgt.sub.org       HH
                                                          \\__/ '>
      Diese Signatureflaeche ist noch zu vermieten         \_  _/
       Angebote unter obenstehender Telefonnummer         ___][___
Newsgroups: comp.sys.next.programmer
From: jmd@cube.handheld.com (Jim De Arras)
Subject: Re: gcc-2.2.1 and <sys/wait.h>
Organization: Hand Held Products, Inc.
Date: Thu, 30 Jul 1992 12:14:30 GMT

In article <19736@optima.cs.arizona.edu> kline@cs.arizona.edu (Nick Kline)  
writes:
> 
> >I am in the process of upgrading to gcc version 2.2.1, 
> 
> >In the file protoize.c, it includes at line 71:
> >
> >#include <sys/wait.h>
> >
> 
> >attention when 2.2.1 was released). If so, could someone forward me the
> >patch(s) needed to correct this?
> 
> 
> Yes, the patch is to get 2.2.2, the latest release.  I built it and
> this problem was not there.  
> 
> Always get the latest release.
> 
Be careful when you say that!  GCC rel 2.x.x is still in BETA, and guarenteed  
to have bugs!

> -nick
> kline@cs.arizona.edu
> 
Jim De Arras
From: mmeyer@next.com (Morris Meyer)
Newsgroups: comp.sys.next.programmer
Subject: Re: sun to NeXT missing ()s
Date: 24 Jul 92 18:16:49 GMT
Reply-To: mmeyer@next.com (Morris Meyer)

Charles Wilcox writes
> i've created my own putenv and strdup, but on_exit i skipped.


Try atexit() for on_exit().

		--morris

_____________________________________________________________
Morris Meyer - ISDN Project - NeXT Software - mmeyer@next.com
Newsgroups: comp.sys.next.programmer
From: carstelh@NeXTwork.Rose-Hulman.Edu (Lans H Carstensen)
Subject: Linking libraries in NS3.0
Keywords: library, project, builder, 3.0
Organization: Rose-Hulman Institute of Technology
Date: Tue, 21 Jul 1992 16:40:54 GMT


Here's a question for 3.0 Beta NeXTDevs:

Has anyone else tried to recompile their apps that use local libraries  
under NS3.0?  I've been trying, and so far it looks like the linker is  
refusing to look at /usr/local/bin.  Also, everything is coming up gray  
under libraries in ProjectBuilder.  Is there something I'm missing, or is  
this just an incredible oversight by NeXT (most likely the former)?

Lans Carstensen
RHIT IFYCSEM NeXT Developer
RHIT Class of '95
From: lydgate@reed.edu (Chris Lydgate)
Newsgroups: comp.sys.next.programmer
Subject: Renderman surface mapping problem
Date: 30 Jul 92 08:43:34 GMT
Article-I.D.: reed.1992Jul30.084334.9893
Organization: Reed College, Portland, OR


Help!

I've been soundly defeated in my effort to do surface mapping in the
3DKit.  The Renderman Companion (TRC) says this is done by using a
surface shader. But the shaders in /NextLibrary/Shaders which look
like candidates, ie "texmap.slo", I can't get them to work.

In general, I can successfully tell an N3DShader to read a .slo file,  
set its instance variables, and then associate that shader with an  
N3DShape.  For many shaders, this works perfectly.

The "texmap.slo" shader has a "texturemap" i-var, which (I guess) is  
supposed to be set to a texture file.  However, setting this i-var  
never seems to 
/NextLibrary/Textures..

TRC (p 253) lists a fragment for doing what I want (mapping an 
image file onto a surface) but it makes use of an imaginary shader 
called "mytexture".  It says that such shaders 
are easy to write, but  does not say how.  

Basically, I'm wondering:

1) How do I map a texture file onto a surface using the 3DKit?

2) If there's no standard shader for doing this, how could I write
one?

3) How can I create a texture file from, say, a TIFF file?  (I know
about RiMakeTexture(), but the documentation is vague about file 
formats.)

Thanks in advance,

Chris Lydgate
chris@insight.com
Newsgroups: comp.sys.next.programmer
From: ben@fizz.fdn.gna.org (Benoit Grange)
Subject: Re: 3.0 beta Mail.app
Organization: Personal.
Date: Thu, 23 Jul 1992 23:34:08 GMT

In article <1992Jun26.001325.5880@stone.com> andrew@stone.com (Andrew  
Stone) writes:
> Here's the new, perhaps undocumented, API for Mail:
  [ REMOVED TEXT ]
> Include Mail.msg in your app, and it will create the MailListener and  
> MailSpeaker h and m files.
> 

What does he means by << Including Mail.msg in your app >> ?
How that should be done ?
What program will generate the Speaker and Listener code ?

I tried to do it and it failed (Don't know how to do Mail.o...)
-- 
Benoit Grange - PARIS - FRANCE

Mail to : ben@fizz.fdn.org     (Small NeXTMails accepted, less than 10k)
          grangeb@apo.esiee.fr (NO NeXTMail)
Newsgroups: comp.sys.next.programmer,comp.sys.next.misc
From: ramesh@veda (Ramesh Dodamani)
Subject: Electrical Symbols  Palette for Diagram
Reply-To: ramesh@veda.cwru.edu
Organization: Case Western Reserve University, Cleveland, Ohio, (USA)
Date: Wed, 22 Jul 92 19:24:24 GMT


Hi Pals

Some time back somebody had announced an Electrical symbols palette for  
Diagram!.  Could somebody  tell me where I can get this palette?

Thanks for taking the time.

Ramesh

Newsgroups: comp.sys.next.programmer
From: jon@afs.com (Jonathan Hendry)
Subject: Alpha layers
Distribution: USA
Date: Thu, 30 Jul 1992 15:45:15 GMT


Does anyone know how to change the "layer" which a view resides in?
I have a number of small views holding icons with alpha which are flying  
around. I would like to rotate the views in the alpha layers, also.

CompositeLab does this. How is it done?

Thanks in advance...
--
Jonathan Hendry  Anderson Financial Systems
jon@afs.com  (Nextmail Welcome!) or hendryjw@duvm.ocs.drexel.edu

The elder gods went to Suggoth and all I got was this lousy T-shirt.
Newsgroups: comp.sys.next.programmer
From: mcconnap@NeXTwork.Rose-Hulman.Edu (Andy McConnell)
Subject: Detecting Color or Mono System
Keywords: Color, Monochrome, Screen Detection
Organization: Rose-Hulman Institute of Technology
Date: Wed, 22 Jul 1992 16:08:14 GMT


I am trying to detect whether an app is running on a color or monchrome  
station.  I culd use a simple boolean function, if one is available, but I  
can't seem to find one.

I've seen the - (NXScreen *)colorScreen  method, but it returns the same  
thing as the mainScreen on a monochrome system.

Thanks!				- Andy McConnell
From: ddevorchik@acorn.co.uk (David De Vorchik)
Newsgroups: comp.sys.next.programmer
Subject: NeXT TIFF question
Date: 23 Jul 92 09:54:06 GMT
Organization: Acorn Computers Ltd, Cambridge, England

Hi,

We are currently trying to decode some TIFF files that originated on a NeXT
box.  These icons have a strange samples per pixel value (0x20002), we
assume this is something to do with masking of the image (as some of them
are icons).

Can someone please mail me the exact format used? 

Any help would be grately appreciated.

Thanks,

 -- david

Acorn Computers Limited, England.
ddv@acorn.co.uk
Newsgroups: comp.sys.next.programmer
From: Feng Qiu
Subject: Re: Windows across the net
Reply-To: qiu@tree.egr.uh.edu
Organization: University of Houston
Date: Fri, 24 Jul 1992 00:24:32 GMT

In article <1992Jul16.021354.25616@nmsu.edu> rscott@spock.NMSU.Edu (Joseph  
Good) writes:
> 
> Is it possible to log-onto one machine (FRED), then rlogin to (JUDY)  
from  
> there, execute a program that calls up windows and have them pop up onto  
JUDY's  
> screen?  All done from FRED?
> 
> Joseph Good
> 
> rscott@nmsu.edu (NeXT mail welcome!!)
> 
> atlantis@acca.nmsu.edu  (Just plain ol' Unix)

Yes, you can dot it, if
1. some user has logged into (JUDY),
2. this user's window server has been set up as public window server
   (to do so that user needs to go into 'preference' to do it)
3. when running the application on (JUDY) type in following in shell
   to lunch the application:
  shell>theApplication -NXHost (JUDY)

Also you can rlogin to (JUDY) and show the window in your local
machine(FRED) if you setup your self as public window server and type in
following to lunch thApplication
 shell>theApplication -NXHost (FRED)

Feng
tree.egr.uh.edu
Newsgroups: comp.sys.next.programmer
From: colin@agincourt.bsd.uchicago.edu (& Garrett)
Subject: DBKit: updating key fields
Organization: University of Chicago Computing Organizations
Date: Tue, 28 Jul 1992 00:21:03 GMT

It would appear that one can't update key fields.  When I change non-key  
fields and then save changes, the sybase table is updated correctly.  When  
I try to save changes that include changes for properties marked as key, I  
get "Error occured during transaction."
It would appear, quite simply, that DBKit builds the where clause of the  
update statement from the current (changed) values of the key fields  
rather than from their original values.
   - The key for this particular table is a five field key.  If I change  
my Model to make one of the key properties non-key, I can then update that  
field (as long as I don't change any of the remaining key fields, so it  
can still find the original row).
   - I can even edit _all_ the key fields so that the row has the same key  
as another row in the table, so that when I try to save I get "al_appt  
record has been modified in the database since the last fetch." instead.   
I think that's proof positive.

This is a complete disaster.  Any ideas?  Any knowledge of plans to fix  
this?

Colin Garrett
colin@delphi.bsd.uchicago.edu (NeXTMail)
From: aoml@enh.nist.gov
Newsgroups: comp.sys.next.programmer
Subject: Using a sound in an application...
Date: 30 Jul 92 21:05:17 GMT
Organization: NIST

I have a sound that exists in my nib section.  How can I execute that sound
easily?  I know that a button can have a sound associated with it, but I really
would prefer being able to execute the sound when the program deems it
necessary, not when the user does an action.

Thanks for your help,

Kevin
From: tom@cse.fau.edu (Tom Horton)
Newsgroups: comp.sys.next.programmer
Subject: problem with mstats() under 2.1
Keywords: mstats, malloc, memory usage
Date: 27 Jul 92 17:46:18 GMT
Organization: Florida Atlantic University, Boca Raton

Hi.  I'm writing some C code that will run on a couple of machines, and I'd  
like to use the mstats() function to get a report on how much mamory has been  
malloc'd.   But it doesn't work like the man page says it should; in fact, it  
doesn't seem to do anything.  It prints nothing and always seems to return 1.

The man page says:
     Mstats prints a summary of memory usage by malloc on stderr.
     The efficiency value is calculated based on the rounded-off
     block sizes, and is the ratio of the space available in the
     blocks to the total amount of memory allocated by malloc.
     The value returned is the total amount of memory allocated,
     in bytes.
But this program prints the output that follows:
     #include <stdlib.h>
     #include <stdio.h>
     
     int main (int argc, char *argv[])
     {
       char *buf;
       size_t m_result;
       
       if ( (buf = malloc(30)) == NULL ) {
	 fprintf(stderr, "error: malloc failed\n");
	 exit(1);
       }
       m_result = mstats();
       printf("mstats returns: %ld\n", (long) m_result);
     
       if ( (buf = malloc(1000)) == NULL ) {
	 fprintf(stderr, "error: malloc failed\n");
	 exit(1);
       }
       m_result = mstats();
       printf("mstats returns: %ld\n", (long) m_result);
     }

OUTPUT:
mstats returns: 1
mstats returns: 1

Any suggestions?   I know about MallocDebug, but I'm not really writing a  
NeXTstep application or using IB.
--

-------------------------------------------------------------------------
Dr. Thomas B. Horton, Assistant Professor
Dept. of Computer Science and Engineering, Florida Atlantic University
Boca Raton, FL 33431  USA        Phone:  407/367-2674   FAX: 407/367-2800
Internet:  tom@cse.fau.edu       Bitnet: HortonT@fauvax
Xref: sparky comp.sys.next.programmer:5331 comp.sys.next.hardware:1186
From: karthy@iesd.auc.dk (Karsten Thygesen)
Newsgroups: comp.sys.next.programmer,comp.sys.next.hardware
Subject: serial communications on NeXT computer
Date: 23 Jul 92 10:53:50 GMT
Distribution: comp
Organization: Mathematics and Computer Science, Aalborg University


Hi.

I am forwarding this question for a friend, but please send any
help/comments to me.

Problem: We are currently developing a program to control a
professional video recorder. The video recorder has a serial RS 232
interface which communicates at 38400 bit/s, 8 data bits and odd
parity (i.e. 9 bits per character plus start/stop bits). These
communication parameters cannot be changed in the video recorder. We
have suceeded in producing a C program which reads and a writes to one
of the Next's serial ports at the required speed, but we can't get the
program to send 8 bit data followed by the parity bit. We guess this
is due to limitations in the standard serial drivers (/dev/tty) which
can only generate a parity bit when 7 data bits are used (i.e. max. 8
bits per character plus start/stop bits). To solve the problem, we
would like to know:

1) Are we correct in assuming the above limitation regarding the
standard driver? If not, how do you set it to the required parameters.

2) If the standard driver cannot be set to the required parameters,
how do you access the hardware (SCC chip)? 

In both cases, pieces of sample code would be very helpful. (We have a
technical description of the SCC chip itself).

Thanks in advance,

Karsten.

--
--------------------------------------------------------------------
Karsten Thygesen              I Aalborg University                 I
Korsgade 48 2. th             I Institute for electronic systems   I
9000 Aalborg                  I                                    I
InterNet: karthy@iesd.auc.dk  I Fredrik Bajers vej 7, 9220 Aalborg I
Phone (HOME): +45-98124259    I DK-Denmark.                        I
--------------------------------------------------------------------
From: statman@stat.ufl.edu (Chuck Kincaid)
Newsgroups: comp.sys.next.programmer
Subject: Re: AFS volunteers to keep FAQ, provide free email support
Date: 30 Jul 92 14:36:44 GMT
Organization: University of Fl, Department of Statistics

In article <1992Jul28.044229.205@afs.com> greg@afs.com (Gregory H. Anderson) writes:

>  1) We are volunteering to maintain the FAQ for c.s.n.programmer.

>  2) We will provide FREE application development advice by email (only) to  
>  all interested NeXT developers, to the extent of our abilities (see below  
>  for details), RTFMs notwithstanding. 8^)

I think that this is a very magnanimous gesture.  Even just the FAQ is
worthy of great applause.  My hand is up.

:-) Although one can't help but wonder at their _real_ motives.  I
suppose that maybe they teased their neighbor's cats or some other evil
act and they are trying to atone. :-)  If the FBI knocks on my door 
asking about cats, I promise not to say anything. :-)

charles d. kincaid

'Damn fine coffee...and hot, too!'
TP:FWWM -> Aug. 28 - be there
--
charles d. kincaid		STATS:  (904) 392-1941
statman@stat.ufl.edu		CIRCA:  (904) 392-2007
'Damn fine coffee...and hot, too!'
From: bill@epnxt.jsc.nasa.gov
Newsgroups: comp.sys.next.programmer
Subject: What if two objects in same nib file ... need help
Date: 29 Jul 1992 20:55:59 GMT
Reply-To: bill@epnxt.jsc.nasa.gov
Organization: nasa-jsc

If one has two objects in the same nib file (one nib file for the  
program), how does one know which will execute on execution of the  
program?


Thanks in advance.

			Bill
Newsgroups: comp.sys.next.programmer
From: eps@futon.SFSU.EDU (Eric P. Scott)
Subject: Re: Obscure DPS messages
Reply-To: eps@cs.sfsu.edu
Organization: San Francisco State University
Date: Wed, 22 Jul 1992 07:56:38 GMT

In article <1992Jul21.231505.7669@u.washington.edu>
	zeno@hardy.u.washington.edu (Sean T. Lamont) writes:
>Does anyone know what this means?
>
>DPS client library error: PostScript program error, DPSContext 90128
>%%[ Error: undefinedresult; OffendingCommand: bin obj seq, type=128, elements=2, size=20 ]%%

undefinedresult usually means something like division by zero.

>The odd thing is, It popped up when I wasn't doing any weird postscript
>things.

What were you doing?  Can you reproduce the error at will?

					-=EPS=-
From: kline@cs.arizona.edu (Nick Kline)
Newsgroups: comp.sys.next.programmer
Subject: Re: gcc-2.2.1 and <sys/wait.h>
Date: 28 Jul 92 20:16:35 GMT
Organization: U of Arizona CS Dept, Tucson


>I am in the process of upgrading to gcc version 2.2.1, 

>In the file protoize.c, it includes at line 71:
>
>#include <sys/wait.h>
>

>attention when 2.2.1 was released). If so, could someone forward me the
>patch(s) needed to correct this?


Yes, the patch is to get 2.2.2, the latest release.  I built it and
this problem was not there.  

Always get the latest release.

-nick
kline@cs.arizona.edu


Newsgroups: comp.sys.next.programmer
From: marcel@opal.cs.tu-berlin.de (Marcel Weiher)
Subject: Re: Getting ids of Outlets of an object
Keywords: outlets, object
Organization: Techn. University of Berlin, Germany
Distribution: fb20
Date: Tue, 28 Jul 1992 17:41:49 GMT

vikram@viman.com  (Vikram Duvvoori) writes:


>Hi, 
>	We are interested in developing some general tools that can  
>dynamically access the various outlets of instances of other objects at  
>run-time.
[...]
>Appkit, to determine the tags for the outlets of the instance variables. Are  
>there any methods that give you information on the instance variables and list  
>of methods for an object?

One of the neat things about Objective-C is that it is so dynamic, and yes
it even retains structure information at runtime.

Look in the include file <objc/objc-class.h>, with a little
code to illustrate:

------------------------snip----------------------------
mport <objc/Object.h>
#import <objc/objc-class.h>

@interface Hi : Object
{
	int hi1;
	int hi2;
}

@end

@implementation Hi

-printIVars
{
	Hi*   s1=self;
	struct objc_ivar_list  *iv=s1->isa->ivars;
	struct objc_ivar *p1;
	int i;

	p1=&iv->ivar_list;
	for (i=0; i< iv->ivar_count ; i++ )
	{
		printf( "name= %s, type=%s, offset=%d\n",p1->ivar_name,p1->ivar_type,p1->ivar_offset);
		p1++;
	}
}


main()
{
	id hi=[Hi new];
	[hi printIVars];
}


@end

--------------------------snip----------------------

This produces the following output on my system:

marcel@spock[benchmarks]ivar
name= hi1, type=i, offset=4
name= hi2, type=i, offset=8
marcel@spock[benchmarks]


Marcel

Newsgroups: comp.sys.next.programmer