Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Michael Sioutis
Hello,

I ressurected an old pc yesterday (specs on title) with OpenBSD 4.9
and without X to keep it light. It
runs ridiculously well! Everything works fine except the automatic
powerdown (shutdown -hp now), which
is not supported aparently by the mobo, anyway, don't care about that.

I currently have sshd, pf, sshguard and sendmail running, all in 4-5
MB of 18-21 available RAM (the rest is taken
by the hardware I suppose) and 1-2 MB of 42 MB swap.

I could turn it into a firewall, but I allready have one, and I am not
very excited about the idea.
What I do find exciting is teaching my nephew some computer/programming basics.
Anyone find it a good idea?

I have allready installed python and gprolog, which I like for basic
aritmhetics stuff.

What dissapoints me the most, is that there don't exist USB ports and
they might not even be supported, the pc
is from 1998.
I could use rtorrent with screen to download stuff to an external hard drive..
But I will check on that when I find the time to open the case.

What else could I use it for?

Thank you!
Mike



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Matt S
You might try playing with some of OpenBSD's virtual routing capabilities.  You 
could create a couple of VLANs and test out some of the BGP/MPLS VPN 
capabilities within the VLANs.





To: misc@openbsd.org
Sent: Sun, May 15, 2011 9:48:36 AM
Subject: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

Hello,

I ressurected an old pc yesterday (specs on title) with OpenBSD 4.9
and without X to keep it light. It
runs ridiculously well! Everything works fine except the automatic
powerdown (shutdown -hp now), which
is not supported aparently by the mobo, anyway, don't care about that.

I currently have sshd, pf, sshguard and sendmail running, all in 4-5
MB of 18-21 available RAM (the rest is taken
by the hardware I suppose) and 1-2 MB of 42 MB swap.

I could turn it into a firewall, but I allready have one, and I am not
very excited about the idea.
What I do find exciting is teaching my nephew some computer/programming basics.
Anyone find it a good idea?

I have allready installed python and gprolog, which I like for basic
aritmhetics stuff.

What dissapoints me the most, is that there don't exist USB ports and
they might not even be supported, the pc
is from 1998.
I could use rtorrent with screen to download stuff to an external hard drive..
But I will check on that when I find the time to open the case.

What else could I use it for?

Thank you!
Mike



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Nuno Magalhães
Hi,

On Sun, May 15, 2011 at 17:48, Michael Sioutis  wrote:

> What else could I use it for?

Do the opposite. Think what is that that you'd liek to play with, then
see if that hardware is enough.

Webserver? nginx+fastcgi is light
Maybe you have an old printer laying around?
Maybe an XMPP server for the LAN?
An operating sistem spanning multiple machines?
Music server? For experiments, can't pack "much" with 1.5GB.. :) I
haven't fiddled with puseaudio yet.

-- 
Mars 2 Stay!
http://xkcd.com/801/
/etc



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread STeve Andre'

On 05/15/11 12:48, Michael Sioutis wrote:

Hello,

I ressurected an old pc yesterday (specs on title) with OpenBSD 4.9
and without X to keep it light. It
runs ridiculously well! Everything works fine except the automatic
powerdown (shutdown -hp now), which
is not supported aparently by the mobo, anyway, don't care about that.

I currently have sshd, pf, sshguard and sendmail running, all in 4-5
MB of 18-21 available RAM (the rest is taken
by the hardware I suppose) and 1-2 MB of 42 MB swap.

I could turn it into a firewall, but I allready have one, and I am not
very excited about the idea.
What I do find exciting is teaching my nephew some computer/programming basics.
Anyone find it a good idea?

I have allready installed python and gprolog, which I like for basic
aritmhetics stuff.

What dissapoints me the most, is that there don't exist USB ports and
they might not even be supported, the pc
is from 1998.
I could use rtorrent with screen to download stuff to an external hard drive..
But I will check on that when I find the time to open the case.

What else could I use it for?

Thank you!
Mike


The first version of Samba I ever had was on a Dell GXMT@166MHz
with one or two 3G disks.  I let a faculty person use it for a temporary
thing and then would up supporting it for months because I couldn't
pry him off of it.  Things were slower back then (2001? 2002?) but it
was fast enough for him not to crab about it.

--STeve Andre'



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Sviatoslav Chagaev
On Sun, 15 May 2011 19:48:36 +0300
Michael Sioutis  wrote:

> Hello,
> 
> I ressurected an old pc yesterday (specs on title) with OpenBSD 4.9
> and without X to keep it light. It
> runs ridiculously well! Everything works fine except the automatic
> powerdown (shutdown -hp now), which
> is not supported aparently by the mobo, anyway, don't care about that.
> 
> I currently have sshd, pf, sshguard and sendmail running, all in 4-5
> MB of 18-21 available RAM (the rest is taken
> by the hardware I suppose) and 1-2 MB of 42 MB swap.
> 
> I could turn it into a firewall, but I allready have one, and I am not
> very excited about the idea.
> What I do find exciting is teaching my nephew some computer/programming 
> basics.
> Anyone find it a good idea?
> 
> I have allready installed python and gprolog, which I like for basic
> aritmhetics stuff.
> 
> What dissapoints me the most, is that there don't exist USB ports and
> they might not even be supported, the pc
> is from 1998.
> I could use rtorrent with screen to download stuff to an external hard drive..
> But I will check on that when I find the time to open the case.
> 
> What else could I use it for?
> 
> Thank you!
> Mike
> 

It should have an LPT port, you can use this port to interface with
other electronic devices. Anything from lighting up a few LEDs to
automatizing your home. I use the LPT port to upload firmware to
Atmel AVR microcontrollers for example (there is a C compiler for them
pkg_add -vi {avr-gcc,avr-libc,avr-binutils}).

http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html
http://www.kpsec.freeuk.com/
$ man i386_iopl
or
$ man amd64_iopl
and see the inb/outb functions/macros in /usr/include/{i386,amd64}/pio.h



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Nick Holland
On 05/15/11 12:48, Michael Sioutis wrote:
> Hello,
> 
> I ressurected an old pc yesterday (specs on title) with OpenBSD 4.9
> and without X to keep it light. It
> runs ridiculously well! Everything works fine except the automatic
> powerdown (shutdown -hp now), which
> is not supported aparently by the mobo, anyway, don't care about that.
> 
> I currently have sshd, pf, sshguard and sendmail running, all in 4-5
> MB of 18-21 available RAM (the rest is taken
> by the hardware I suppose) and 1-2 MB of 42 MB swap.
> 
> I could turn it into a firewall, but I allready have one, and I am not
> very excited about the idea.
> What I do find exciting is teaching my nephew some computer/programming 
> basics.
> Anyone find it a good idea?

yeah, please teach the young'uns some computer basics.  They sure as
heck aren't getting it in the schools.  What passes for "computer
education" in schools today is a joke. (I'm sorry, I do not consider
learning a small number of APPLICATIONS true "computer" education.)

Take the machine apart, have him build it back up (with your help, but
hold your hands behind your back, so HE has to do the work), understand
what all the pieces do, google for the part numbers of the various parts
on the main board and get some idea what they do.  Show him how when
sitting at a BIOS screen or at a DOS prompt, the CPU gets very hot,
while when running a modern OS (like OpenBSD), the CPU will be cool to
the touch when the system is idle, but will quickly heat up when the CPU
gets busy.  You can run a P166 without a heatsink for extended periods
of time, 'specially with a low-power-when-idle OS like OpenBSD.

One thing I've been meaning to do but have not got around to yet in a
permanent way is taking a fluid tube from a burned-out bubble light
(google for it, if you don't know what I mean, the wikipedia article is
pretty accurate) and bonding it to a P1 CPU.  I suspect a P1 would be
"about right" in terms of delivering heat to the tube -- a Celeron 400
was a bit much, though worked, a Celeron 566 got too hot too quickly,
bubbling ferociously for a short time, but the CPU would quickly
overheat and lock.  With a P1, probably no or few bubbles at idle, could
get a pretty good bubbling going while building a kernel. :)


> I have allready installed python and gprolog, which I like for basic
> aritmhetics stuff.
> 
> What dissapoints me the most, is that there don't exist USB ports and
> they might not even be supported, the pc
> is from 1998.
> I could use rtorrent with screen to download stuff to an external hard drive..
> But I will check on that when I find the time to open the case.

Regarding USB ports --
if you find an old USB 1.0 card laying around, I bet it would work fine.
USB2.0 cards...you might find the card expects a newer version of the
PCI bus than your machine has...but you may get lucky or I may be
completely wrong. :)

Biggest problem with putting "big" disks in old machines is memory
(RAM+Swap) required for fsck.  You can probably get some more memory for
your machine, but maybe not enough cheaply to put much more than a 40G
disk in it.

I have found a lot of P166 machine could be "overclocked" to 200MHz.  I
don't recall any 166MHz P1 procs that couldn't tolerate 200MHz,
seemingly indefinitely.  I ran one like this as my primary web and mail
server for myself and a number of friends for YEARS, then later as just
a firewall.  I believe its total production life in my use was probably
somewhere around 6 years.

> What else could I use it for?

These make great machines for hostile environments.  Rather than a CPU
fan on a heatsink, they work great with a large heatsink and some active
air movement nearby.  In fact, once OpenBSD is booted, under usual
production, the heatsink will be COOL to the touch.  For this reason,
they run great in dusty or filthy environments that would kill most
modern machines in months or weeks (the above mentioned machine was in
an auto service station the entire six years).

That machine will do everything most people need as a firewall or
mail/webserver for small traffic, low bandwidth connections (i.e., what
most people have).  The primary reason I upgraded (to a PII-450) is the
ssh connect times are faster, and the UDMA support on the newer machines
is better, so I can move files around locally a lot faster (though
remotely, no significant difference)

some other things you could do with a machine like that:
* Local DNS resolver
* terminal server (one of my terminal servers is a P90)
* test-install machines for experimentation
* mini-FTP/SFTP/SCP servers for file distribution
* Machine for doing things that might expose yourself to a security
issue, keep it contained to a non-critical system.

Nick.



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-16 Thread Henning Brauer
* Michael Sioutis  [2011-05-15 18:49]:
> What else could I use it for?

doorstop?
monitor stand?
projectile for the next IETF meeting?

seriously, a dirt cheap atom will be gazillion times faster and pay
for itself quickly on the power bill.

-- 
Henning Brauer, h...@bsws.de, henn...@openbsd.org
BS Web Services, http://bsws.de
Full-Service ISP - Secure Hosting, Mail and DNS Services
Dedicated Servers, Rootservers, Application Hosting



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-17 Thread Aaron Mason
Here's an idea - have a job that continually compiles the entire
system from HEAD - by the time it's done*, there's probably a new
patch or ten ready, so checkout the latest patches (if any) and start
over.  Once you get that in place, remove the CPU fan (so there's only
a heatsink), cut a hole in the side of a case, mount a fan in the hole
pointing outside and voila - instant space heater.  Not only that, you
could churn out your own snapshots.  Productive and toasty warm for
those cold winter nights - and it uses less energy than a standard
space heater.

(* = A similar system took 9 days to compile Java.  I replaced it with
a donated AMD Athlon 3500+ which did the same job in 2 hours.)

On Tue, May 17, 2011 at 10:38 AM, Henning Brauer  wrote:
> * Michael Sioutis  [2011-05-15 18:49]:
>> What else could I use it for?
>
> doorstop?
> monitor stand?
> projectile for the next IETF meeting?
>
> seriously, a dirt cheap atom will be gazillion times faster and pay
> for itself quickly on the power bill.
>
> --
> Henning Brauer, h...@bsws.de, henn...@openbsd.org
> BS Web Services, http://bsws.de
> Full-Service ISP - Secure Hosting, Mail and DNS Services
> Dedicated Servers, Rootservers, Application Hosting
>
>



-- 
Aaron Mason - Programmer, open source addict
I've taken my software vows - for beta or for worse



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-18 Thread David Vasek

On Sun, 15 May 2011, Nick Holland wrote:


What dissapoints me the most, is that there don't exist USB ports and
they might not even be supported, the pc
is from 1998.
I could use rtorrent with screen to download stuff to an external hard drive..
But I will check on that when I find the time to open the case.


Regarding USB ports --
if you find an old USB 1.0 card laying around, I bet it would work fine.
USB2.0 cards...you might find the card expects a newer version of the
PCI bus than your machine has...but you may get lucky or I may be
completely wrong. :)


You are right. Some PCI USB 2.0 controller cards work pretty well in my 
486 and Pentium machines. Other do not. If it works, the transfer speed 
are lower than in newer systems because of slower CPU.


Regards,
David



Re: Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-18 Thread David Vasek

On Wed, 18 May 2011, David Coppa wrote:


On Wed, May 18, 2011 at 12:16 PM, David Vasek  wrote:

On Sun, 15 May 2011, Nick Holland wrote:


What dissapoints me the most, is that there don't exist USB ports and
they might not even be supported, the pc
is from 1998.
I could use rtorrent with screen to download stuff to an external hard
drive..
But I will check on that when I find the time to open the case.


Regarding USB ports --
if you find an old USB 1.0 card laying around, I bet it would work fine.
USB2.0 cards...you might find the card expects a newer version of the
PCI bus than your machine has...but you may get lucky or I may be
completely wrong. :)


You are right. Some PCI USB 2.0 controller cards work pretty well in my 486
and Pentium machines. Other do not. If it works, the transfer speed are
lower than in newer systems because of slower CPU.


Hi,
What vendor and product IDs those cards have?
Can I have the dmesg snippet?


Some others could be interested in this too, so I am posting it on the 
list.


It is a Belkin F5U219 PCI REV:4, the chip is NEC JAPAN D720101GJ.
NEC USB host controllers usually work.

It is a 3-port card (2+1 internal), there is also a 5-port (4+1) variant 
existing. The important part about its specs is: it is PCI 2.1 compatible, 
while many others list only PCI 2.2.


In my experience, most common cheap USB 2.0 PCI cards do not work as USB 
2.0, but run well as USB 1.1. You have to disable the ehci(4) driver in 
the kernel, otherwise the USB 2.0 device attaches to ehci* and fails. See 
the VIA VT6212L as an example below.



Belkin F5U219 PCI REV:4 / NEC USB
=

OpenBSD 4.9-current (GENERIC) #75: Mon May 16 11:43:42 MDT 2011
t...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium (P54C) ("GenuineIntel" 586-class) 100 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8
real mem  = 33091584 (31MB)
avail mem = 22515712 (21MB)
mainbus0 at root
bios0 at mainbus0: AT/286+ BIOS, date 08/17/96, BIOS32 rev. 0 @ 0xf6bd1
pcibios0 at bios0: rev 2.1 @ 0xf6b30/0xa20
pcibios0: PCI BIOS has 5 Interrupt Routing table entries
pcibios0: PCI Exclusive IRQs: 9 11
pcibios0: PCI Interrupt Router at 000:07:0 ("Intel 82371SB ISA" rev 0x00)
pcibios0: PCI bus #0 is the last bus
bios0: ROM list: 0xc/0x8000
cpu0 at mainbus0: (uniprocessor)
cpu0: F00F bug workaround installed
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
pchb0 at pci0 dev 0 function 0 "Intel 82439HX" rev 0x03
vendor "Siemens", unknown product 0x0005 (class undefined unknown subclass 
0x00, rev 0x01) at pci0 dev 3 function 0 not configured
vendor "Siemens", unknown product 0x0005 (class undefined unknown subclass 
0x00, rev 0x01) at pci0 dev 3 function 1 not configured
pcib0 at pci0 dev 7 function 0 "Intel 82371SB ISA" rev 0x01
pciide0 at pci0 dev 7 function 1 "Intel 82371SB IDE" rev 0x00: DMA, channel 0 
wired to compatibility, channel 1 wired to compatibility
wd0 at pciide0 channel 0 drive 0: 
wd0: 16-sector PIO, LBA, 1549MB, 3173184 sectors
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0:  ATAPI 5/cdrom 
removable
cd0(pciide0:1:0): using PIO mode 4, DMA mode 2
vga1 at pci0 dev 8 function 0 "Cirrus Logic CL-GD5436" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
xl0 at pci0 dev 18 function 0 "3Com 3c905B 10/100Mbps-Combo" rev 0x00: irq 9, 
address 00:01:02:a2:9a:09
exphy0 at xl0 phy 24: 3Com internal media interface
ohci0 at pci0 dev 19 function 0 "NEC USB" rev 0x43: irq 9, version 1.0, legacy 
support
ohci1 at pci0 dev 19 function 1 "NEC USB" rev 0x43: irq 11, version 1.0, legacy 
support
ehci0 at pci0 dev 19 function 2 "NEC USB" rev 0x04: irq 9
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "NEC EHCI root hub" rev 2.00/1.00 addr 1
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
isapnp0 at isa0 port 0x279: read port 0x203
com3 at isapnp0 "Rockwell  56K Plug & Play Modem, GVC0330, , " port 0x3e8/8 irq 
5: ns16550a, 16 byte fifo
com3: probed fifo depth: 0 bytes
sb1 at isapnp0 "Creative ViBRA16C PnP, CTL0001, , Audio" port 
0x220/16,0x330/2,0x388/4 irq 5 drq 1,5: dsp v4.13
midi0 at sb1: 
audio0 at sb1
opl at sb1 not configured
joy0 at isapnp0 "Creative ViBRA16C PnP, CTL7001, PNPB02F, Game" port 0x200/8
usb1 at ohci0: USB revision 1.0
uhub1 at usb1 "NEC OHCI root hub" rev 

Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Kevin Chadwick
On Sun, 15 May 2011 19:48:36 +0300
Michael Sioutis wrote:

> What else could I use it for?

A dedicated system to admin your servers/network from.

p.s. I've just got a neat 366mhz 64meg laptop from '99, li-ion battery
still works!!!, halts, usb works, apm works, acpi of course doesn't and
has floppy and a cd built in, serial, vga out. The best part is that
increasing the console rows looks just fine.

Would I be right that's there's little point in sending dmesgs from
very ancient machines.



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Kevin Chadwick
On Sun, 15 May 2011 18:36:47 +
Kevin Chadwick wrote:

> p.s. I've just got a neat 366mhz 64meg laptop from '99, li-ion battery

No intel cpu management mode either :-)



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Kevin Chadwick
On Sun, 15 May 2011 18:36:47 +
Kevin Chadwick wrote:

> p.s. I've just got a neat 366mhz 64meg laptop from '99,

Oh yeah, old linux debian boot disks work on it but the new ones don't.

Fails at edd and again later on.



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-15 Thread Peter Hessler
On 2011 May 15 (Sun) at 18:36:47 + (+), Kevin Chadwick wrote:
:Would I be right that's there's little point in sending dmesgs from
:very ancient machines.

We want dmesgs from *everything*.  You may have something interesting,
even if its old.

-- 
He's the kind of guy, that, well, if you were ever in a jam he'd be
there ... with two slices of bread and some chunky peanut butter.



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-16 Thread Nuno Magalhães
Hi,

On Sun, May 15, 2011 at 19:47, Peter Hessler  wrote:
>
> We want dmesgs from *everything*. B You may have something interesting,
> even if its old.

I assume you don't include VM's dmesg in that ;-)

The low-power-when-idle is nifty but CPUs aren't always idle and mine
spikes after halt.

The biggest disadvantage i see in having fun with old hardware is the
PSUs: they're noisy and probably waste more electricity than the
components actually need (but that's true for any modern PSU too i
guess).

Cheers,
Nuno

--
Mars 2 Stay!
http://xkcd.com/801/
/etc



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-16 Thread Peter Hessler
On 2011 May 16 (Mon) at 08:49:39 +0100 (+0100), Nuno Magalhces wrote:
:On Sun, May 15, 2011 at 19:47, Peter Hessler  wrote:
:>
:> We want dmesgs from *everything*. B You may have something interesting,
:> even if its old.
:
:I assume you don't include VM's dmesg in that ;-)
:

Yes, we want them from everything: VMs, old, new, middle-aged, used, etc.
All are interesting.  Send a dmesg!

http://www.openbsd.org/faq/faq4.html#SendDmesg

-- 
To every Ph.D. there is an equal and opposite Ph.D.
-- B. Duggan



Re: [Bulk] Things to do with a Pentium 166MHz cpu - 32 MB of RAM - 1.5 GB disk

2011-05-16 Thread STeve Andre'

On 05/16/11 03:49, Nuno MagalhC#es wrote:

Hi,

On Sun, May 15, 2011 at 19:47, Peter Hessler  wrote:

We want dmesgs from *everything*. B You may have something interesting,
even if its old.

I assume you don't include VM's dmesg in that ;-)

The low-power-when-idle is nifty but CPUs aren't always idle and mine
spikes after halt.

The biggest disadvantage i see in having fun with old hardware is the
PSUs: they're noisy and probably waste more electricity than the
components actually need (but that's true for any modern PSU too i
guess).

Cheers,
Nuno

--
Mars 2 Stay!
http://xkcd.com/801/
/etc

Not all older systems are pigs.  My Dell Optiplex gx200's, and GX1p's
are excellent hardware, still working after 10 years (with new disks)
and the last 866MHz gx200 I measured wanted 54 watts.

--STeve Andre'