Sunday, December 13, 2009

New project (Hummer HMMWV H1 project)



So I discovered a little company that makes H1 kits called the Urban Gorilla. A kit-car of sorts, for trucks, transforming them into HMMWV (Hummer) look-a-likes. How kewl is that?

Check them out: http://www.4x4bodies.com/

I've just acquired the donor vehicle. A 1986 Chevy Silverado. Good times ahead! It's already lifted a bit and in great condition. See pic.



I am planning on starting this project early spring 2010. Hoping around late March or Early April. My goal is a close-to-military spec in appearance.

I've created a blog, specifically for this project. Check it out.

Tuesday, December 01, 2009

Some quick Solaris 10 Fault Manager Daemon notes

fmd - fault manager daemon commands:

# Display current faults:
fmdump faulty

# View fault files:
fmdump

# View error log files:
fmdump -e

# View previous log file:
fmdump /var/fmd/fmd/errlog.1

# Rotate log files - you may have to stop and start fmd if the process is
# too busy to rotate the files. This could be a catch 22, the fmd process
# must be running to rotate the files.

# Rotate error log files:
fmadm rotate errlog

# Rotate fault log files:
fmadm rotate fltlog

# Log files:
/var/fm/fmd
root@yourbox# ll
root sys 3 dir rwx------ 512 16:32:06 06/25/2009 ckpt
root root 1 file rw-r--r-- 44,427,432 12:55:28 11/18/2009 errlog
root root 1 file rw-r--r-- 1,774,698 12:05:24 11/18/2009 fltlog
root sys 2 dir rwx------ 512 12:05:24 11/18/2009 rsrc
root sys 2 dir rwx------ 512 09:24:38 06/24/2008 xprt
There are 5 items and 46.20MB (46,203,666 bytes) in /var/fm/fmd

# View fmd processes:
root@yourbox# ps -ef | grep fmd
root 9042 1 0 12:03:30 ? 2:25 /usr/lib/fm/fmd/fmd
root 25435 25261 0 12:54:51 pts/1 0:00 grep fmd

# Stop and start fmd:
svcadm disable svc:/system/fmd:default
svcadm enable svc:/system/fmd:default

Monday, November 30, 2009

Just a quick note about mounting ZFS resource in a non-global zone...

This is in response to a question that was posted in the SUN Solaris Experts group on LinkedIn:

I keep running into people who think that you have to reboot a non-global zone to add a ZFS mountpoint. Not true.

After you add the zfs resource to your zone.xml (use zonecfg, if you follow recomendation, heh) you perform the following on the Global Zone (not within the non-global zone). Be sure to define the type as "legacy":

root@global-zone# mount -F zfs your_zpool/your_filesystem_name /zones/non_global_zonename/root/your_mountpoint

Log into your zone and you should now see the new filesystem (DF or whatever).

Wednesday, November 18, 2009

Gzip with ZFS pools and Datasets..Mmmm. Tasty!

In case you weren't aware, Gzip compression is now available (has been, for a bit now) with ZFS Datasets in Solaris 10. Yay!

To set:

Identify the existing pool/dataset you want to enable the compression on:
root@Yourbox-> zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT
adminpool 980G 81K 980G 0% ONLINE -
rpool 29.8G 20.7G 9.09G 69% ONLINE -

root@Yourbox-> zpool status adminpool
pool: adminpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
adminpool ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
c1t4d0 ONLINE 0 0 0

errors: No known data errors

root@Yourbox-> zfs get compression adminpool
NAME PROPERTY VALUE SOURCE
adminpool compression on local

Turn on or change compression algorithm:
root@Yourbox-> zfs set compression=gzip-9 adminpool

Check if set:
root@Yourbox-> zfs get compression adminpool
NAME PROPERTY VALUE SOURCE
adminpool compression gzip-9 local

You can also set at dataset creation time (See example, further below).



You can also choose the level of Gzip compression (1-9). Default is level 6, basically, where 1 is fastest and 9 is most compressed.

You don't have to set the whole pool and rely on inheritance (datasets under the pool) for subsequent datasets, adn the pool's level can differ from the child dataset: You can specify for each dataset, under the pool, specifically. This is useful where you may have several datasets maintained under the same pool, and one may need more compression, whereas another may need better performance.


root@Yourbox-> zfs create -o compression=gzip adminpool/yourdata

root@Yourbox-> zfs get compression adminpool/yourdata
NAME PROPERTY VALUE SOURCE
adminpool/yourdata compression gzip local

root@Yourbox-> zfs get compression adminpool
NAME PROPERTY VALUE SOURCE
adminpool compression gzip-9 local


Compression in ZFS improves I/O.

There are a ton of articles and comparisons out there now, so just google for it.

One thing to note is that the default lzjb may be better suited for run-time apps, whereas Gzip may be better suited for archival. There's some debate on this, out there. Try it out and you can make the determination, for yourself, after some testing.

Have fun!

Tuesday, November 17, 2009

Puppy dog tales...

So last Friday, the GF brought home a stray she found. She (The dog) was wondering around a busy parking lot, at Hobby Lobby.

I am a HUGE animal lover, especially when it comes to dogs, but we already have a large-breed (Rhodesian Ridgeback) spoiled-rotten-and-much-loved furry son and taking on another dog, another large-breed (she's def has Lab in her), at that, doesn't make for a happy Wrex.

So, I am trying to give her away to a good home. It's hard. I totally understand why she rescued the dog and I am actually happy that the dog is safe. I just don't want to get sucked-in, into wanting to keep her. She's so damn cute and adorable!

I've got to get rid of her soon, else I won't be able to part with her, lol.

Alright, don't take my man-card away. Just look at her and see what I mean.

Monday, November 02, 2009

ZFS Deduplication Is In!

If you've been waiting (as I have) for Dedup capability in ZFS, then the wait is close to over. See Jeff Bonwick's blog: http://blogs.sun.com/bonwick/en_US/entry/zfs_dedup

I can't wait to test it, as soon as I can find out how to get my hands on it, lol. It's not in Sol10 update 8, nor is it in the most recent snapshot of OpenSolaris, but I suspect it will be out soon.

Edit:

Seems my rss feed is slow. It's currently in OpenSolaris, as of last night!
http://mail.opensolaris.org/pipermail/onnv-notify/2009-November/010683.html

Sunday, August 16, 2009

Wednesday, July 29, 2009

Solaris 10: Enable SMCwebserver For Easy ZFS Management.

You know, sometimes a GUI is nice to have around. I'm not "really" a "GUI Fanboy" when it comes to system management and administration, but there are those times when it's just easier to see things, presented in way that's easy to access and not have to run a handful of commands and scroll through a ton of output, etc.

A lot of you are probably already aware of the SMCwebserver http interface and are still trying to remove the bad taste from your mouths, from the Oct 08 release of Sol 10 that totally fraked the whole thing up. I am happy to report that, thus far, it seems it's working again, in the May 09 release (5/09 s10s_u7wos_08 release). Now lets see if a subsequent cluster patch breaks it again, rofl.

I digress...

So, for those who are un-aware of how to enable the service to accept connections, remotely, here's a quick and dirty:

/usr/sbin/svccfg -s svc:/system/webconsole setprop options/tcp_listen = true

/usr/sbin/svcadm refresh svc:/system/webconsole

/usr/sbin/smcwebserver stop

/usr/sbin/smcwebserver start

/usr/sbin/svcadm enable svc:/system/webconsole


That should do it. Now make sure your port (6789) is listening to "All" (*):
/usr/bin/netstat -an|grep 6789

*.6789 *.* 0 0 49152 0 LISTEN

Now open your web browser on your desktop machine (laptop, whatever) and go to the server:6789

(http://your.server.address:6789)

Go through all of the security exception notifications and log in with the account with proper credentials (like root, for example, though I suggest you set up another account, instead).

Have fun with it and here's the smcwebserver manpage: http://docs.sun.com/app/docs/doc/816-5166/smcwebserver-1m?a=view

-W

Friday, June 26, 2009

Apple's new Remote Wipe feature on MobileMe

Crapped out my 3G iPhone. All I get is an apple logo. Two days with support and no fix. How sad for me.

Sunday, June 07, 2009

Solaris ZFS and Containers (Zones)

Been working with ZFS and Solaris Containers a lot, as of late. We're moving our entire environment from Storage Foundation 4.0 to it, as a matter of fact. We never "really" utilized the majority of the clustering capabilities, anyway, as the app admins "have" to manually manage their applications, during a fail-over (bad app design, in my opinion, but whatever).


Keep an eye out on for the next few weeks for notes on ZFS, Zones (Containers) and working with Oracle 10g with ASM and portability across the SAN for zone detaching and zpool exporting. Fun stuff! I'll "brain dump" everything that I've been keeping notes on, here.

-Wrex

Sunday, April 12, 2009

Some weird junk I wrote

Moving an old blog and didn't want to lose these, so moving them here. Weird time in my life, so don't ask, lolz...


Picture Perfect
02:23, 2008-May-7
So I didn't fit into your frame,
of your little picture-perfect display.
A little too obsolescent,
As you had thought.
Maybe 'cause I refused to lie down,
And tolerate your perception.
Maybe a bit too prophetic,
And read into your lies.
Denial doesn't wait,
To claim me anymore.
I would never have fit,
Into your picture-perfect, little obscene world.

Disconnect
02:30, 2008-Apr-18
Desire to feel,
Disconnected and uninspired.
Embracing no more illusions,
of Unity.

Moving aside,
Away from the rhythm of connection,
Away from belonging.
Drawn outside the lines of conformity,
Donning a veil of mediocrity,
Finding solace within a singularity.

Coming curiously closer,
To the edge of conceit,
Coming to find peace,
Within my pitiful hole.

The source is ripe,
With no contention of fear.
Without satellites of character and emotion,
Safe within my hideaway.

Imperceptible remnants of illusion,
Alone in one mind.
Inconceivable doubts of delusion.
Will pass in time.

The way that I see it.
05:35, 2008-Apr-17
Here we are.

All of us, are basically alone.

Separate creatures, just circling each-other, all searching for that slightest hint of a real connection.

Some look in the wrong places. Some just give up hope, because in their mind, they are thinking "Oh, there's nobody out there, for me.", but most of us, we keep trying. Trying over and over. Why? Because every once in a while, two people meet and there's that spark.

Yes, she may be beautiful and he may be handsome and maybe, that's what they see, at first, but when it becomes love, then that's when two people become "one".


Impression
01:05, 2008-Apr-9
Awake.

Raise to shed wisps of dreams’ remnants from clouded head.
Find myself alone,
In day’s infancy.

Can’t shake the radiant image left behind,
Follows me through the morning.

Skipping along methodically,
By my side in the warm afternoon sun.
A mad, fervent, drunken jester,
Amusing itself in my miserable company.

Well into the evening.

Reminding me, mocking me.
Bereft of conventional thought,
I am consumed by it’s antics.

I want the grease-painted devil to die.
Crucify the cruel joker.
Spear it in it’s side.

I want to bleed my thoughts.

Exculpate from the arteries,
That feed memories leaching into my dreams.
My mind, a nightly epistle for which the clown stumbles into,
Whispering reminders of what is lost, what can’t be had.
My torture,
It’s routine entertainment.

Untitled (Work in progress)
02:51, 2008-Apr-7
Desert babies laughing hysterically.
Mad children dancing in the rain.
Watch the wet souls in rapt amazement.
Washing away sadness from burning skin.

Glowing hearts and gleaming eyes,
Do they see me standing here?
Am I their ghost?
Barely impercievable,
In their periphery.

Do I care?
Should I care?
I think I should.

Born to suffer,
We’re made to wander the wilderness
Looking for a quick release.

A seductive mistress.
Her intentions insoluble.

Dreams, circling each-other languidly, liquidly, sardonically.
Gently they stir, but restrained by mere distance,
There is no connection.

Lost amongst the woodbine.

I have an ancient crucifix around my neck,
Weighing me down, leaving me sardonic.
I am a god of my own creation.

You can not open walls of mystery, from scripture.
A death-well and a cancer of prophecy.
Is there any Hell more horrible,
Than the here and now?
I should start my own religion.

No longer,
I chase the silver streams of the clouds.
I have no concentration.
I am on the other side of morning.

Wondering...
Lurking...
Stalking the mad children of the Sun.
Watching them dance in the rain.

I lament my mindless thoughts.

You do know that Death smiles at us all?
She is an obese queen.
Her hunger ravenous and she’s never satisfied.

I touched death today and held her blood-crusted hand.
She offered-up her resident mockery.
Taunting and teasing but unwilling to share.
Inclined to partake in her derelict pleasure,
And honor her decree.
She holds cruel bindings.

Perched for death,
Headlong onto the edge boredom.
I am amongst friends,
In the stone garden.
I dance to the psalm of their memories,
A welcome participant, amongst the procession.
The music wraps it’s arms around us,
Like soft cotton remnants of early spring morning.

All hail and witness the lone god of his own creation, dancing with his queen.

Awareness
02:51, 2008-Apr-7
Can we reconcile the past,
Escape the relentless jaws of time,
Grinding and gnashing on our aged souls?
Holes in our humility,
Vast and large as ancient river-carved caves.

Hesitation and doubt,
Like dead red fire ants,
Scattered across the desert highway.
No matter where we steer,
There is no avoidance of it’s crushing uncertainty.

Have we forgotten the wisdom of our ancient fathers?
Ignored the learned lessons of time?
A divine mockery of forgotten words.
Lost keys to the kingdom,
Can we sneak our way back in,
Through the back door?

Where is the starling flight that guides our way?
Where are winds for our silken sails?
How pale and wanton,
We are left.
How we indulge in our feast of our famine.
Gently passing by,
Babylon is fading...

Wednesday, April 01, 2009

My rant on Sun Management Center and Sun Web Console...

You know, I was happy to see that SunMC included Zone (Containers) support and decided to give it a look, for our environment.

The problem is, that it's only supported in the Sun Web Console, which, as most of us know by now, is buggy as hell.

So, I picked a server to be the Management server, installed the latest Solaris 10 OS ( s10s_u6wos_07b SPARC ) and hit the ground, running.

First of all, then setup process for the MC is tedious and very time consuming, not to mention, installing all of the agents on each host, that you want to manage. Thenm you have to setup the agents and what-not, on each host. Ugh.

So, got it all set up and was ready to try out the SunMC module in the Web Console. This is where I discovered that it was missing. Damnit. So, while I was on the system, I decided to look at the ZFS layout, before I dug into troubleshooting.

Guess what? Update 6 breaks the ZFS module. WTF??? (Do a Google search. It's all over the place that it's broken).

I love it when Sun releases broken software, don't you?

After numerous Google searches, I discover that the ZFS break is a known issue and Sun's working on a fix, heh. Well, during my troubleshooting with Sun on the MC, I get a supposed fix for ZFS module, but that's another rant (it didn't work. Naturally).

So... I call Sun, open a case and start work on "fixing" the Web Module for SunMC.

I won't go into all of the gory details, but suffice it to say that after 4 weeks of daily patches, scripts, various start/stops and other various actions, it's still broken. Not only that, it's worse off. Now the Sun Web COnsole is totally useless.

I don't know who Sun has hired for their development staff, but they should be taken out back and shot in the head. This is a glorious piece of shit.

Some quick notes on some things to do, when troubleshooting. Feel free to look up these, to see their functions:

Project file entry for SunMC:
system:0::::
user.root:1::::
noproject:2::::
default:3::::project.max-shm-memory=(priv,5368708912,deny)
group.staff:10::::
-----------------------------------------
Checking:
# wcadmin list
# wcadmin list --detail -a

Starting web console (sunmcweb):
# svccfg -s svc:/system/webconsole setprop options/tcp_listen = true
# smcwebserver restart

- Setup:
# /opt/SUNWsymon/lib/sbin/sunmc-webconsole-setup.sh -setup
# smcwebserver restart

# svcadm clear system/webconsole:console
# svcadm enable system/webconsole:console
----------------------------------------
# /usr/share/webconsole/private/bin/wcremove -i console
# wcadmin deploy -a zfs -x zfs /usr/share/webconsole/webapps/zfs
# svcadm clear system/webconsole:console
# smcwebserver start
-----------------------------------------
# netstat -an|grep 6789

*.6789 *.* 0 0 49152 0 LISTEN

make sure it's not: localhost.6789 *.* 0 0 49152 0 LISTEN

If it is, then you need to do:
# smcwebserver stop
# svccfg -s svc:/system/webconsole setprop options/tcp_listen = true
# svcadm refresh svc:/system/webconsole
# /usr/share/webconsole/private/bin/wcremove -i console
# svcadm clear system/webconsole:console
# smcwebserver start

It should now read:
*.6789 *.* 0 0 49152 0 LISTEN
-----------------------------------------
Patches tried to address the issues:
141104-01 <-- Specific for ZFS.
125952-18
127683-04
138553-04
-----------------------------------------
You can download the Java console to re-install from:
https://supportuploads.sun.com/download?directory=downloads&file=JavaWebConsole%5f3%2e1%2e0%5fsparc%2etar%2egz

Then run:

./setup -u

This will uninstall the JWC altogether. After that, run:

./setup

If you wanted to test at this point, you would:
# svcadm clear webconsole
# svcadm restart webconsole
and you should be able to access the basic Java Web Console (this is the last thing tried, per Sun support siggestion, that made the Web Console totally useless, BTW).

also fix zfs, continue:

2.) Install the patch 141104-01 [OR 141105-01 for x86] (specific to zfs) (also attached)

3.) then wcadmin deploy zfs:

wcadmin deploy -a zfs -x zfs /usr/share/webconsole/webapps/zfs

4.) svcadm clear webconsole ; svcadm restart webconsole

Then Clear cache and cookies in your browser, and test the JWC and the ZFS.


/rant

I'll update, if this EVER gets fixed.

Tuesday, December 23, 2008

Bizzy Bizzy Bizzy

Long time, no post. Been busy. New house, new Girlfriend, new life.

Been working lot in Solaris Containers and ZFS, as of late. I'm a Veritas VM/VXFS/Cluster hater, now, lol. Get over it.

OSX and Cisco VPN Client

"Error 51: Unable to communicate with the VPN subsystem".

Meh.

Here's a fix:

Close the stoopid VPN client, then open up a terminal and type the following:

sudo /System/Library/StartupItems/CiscoVPN/CiscoVPN restart

Then relaunch the stoopid VPN client.

Friday, May 09, 2008

Mac OSX Leopard & Xnest" OMG-WTF-LOL!

Why, oh why, has my Xnest gone away when upgraded to OSX 10.5? Not that I enjoy running X remotely, from my servers, but on occasion, it's required (thanks, stoopid Oracle and your sh*tty install routine).

If you want/need Xnest on your OSX Leopard desktop, you can accomplish it, this way:

First: Get Xcode: http://developer.apple.com/tools/download/

Second: install MacPorts: http://svn.macports.org/repository/macports/downloads/MacPorts-1.5.0/

Third: Install git, and development tools:

(from teminal window)
sudo port install pkgconfig automake autoconf libtool git-core
Install X.org libraries: (45 minutes)

(from terminal window)
sudo port install xorg-proto xorg-libX11 xorg-libxkbfile xorg-libXfont xorg-libfontenc

Forth: Get X server source from git and build it: see instructions on X.org wiki.

Fifth: Run configure as follows, NOT as how stated on X.org wikki:
./configure --prefix=/usr/X11 --enable-xnest=yes --with-mesa-source=`pwd`/../Mesa-6.5.2

Sixth: Continue with the rest of the source instructions as directed in the wiki page.

Seventh: Copy the new Xquartz binary over, then copy the Xnest binary as well:
sudo cp hw/xnest/Xnest /usr/X11/bin/

Eighth: Copy the manpage:
sudo cp hw/xnest/Xnest.1 /usr/share/man/man1/

That's it. Good luck. I suggest backing up, before doing the above.

Sunday, May 04, 2008

A friends photo work

Check out my Friend's work. Phil Peterson. He's gifted, I think:
http://www.flickr.com/photos/philpeterson

Wednesday, April 23, 2008

Veritas VEA 4.x on OSX

Update: 07.28.08
Note: This is only for version 4.x of VEA. 5.x is not currently working, with this method.
------
w00t!

I finally got around to working on this again. Sorry for those who've been asking for it.

turns out, it's quite simple, lol!

Here's how you can get the VEA GUI working in OSX:

Generally, I hate Java, but this does rock.

- Copy /opt/VRTSob from a UNIX host, put it in /opt on your Mac and replace /opt/VRTSob/jre/bin/java with a symbolic link to /usr/bin/java on your Mac.

- Run: /opt/VRTSob/bin/vea.

That's all there is to it.

Wednesday, March 05, 2008

Using Sprint EVDO card (S620) in Linux

Some quick/dirty notes in getting your Sprint S620 EVDO card working in Linux (I am currently using Fedora FC8):

Note Sprint S620 card vendor ID is 1410 and product is 1110. You can ascertain this by the following (as root):
[root@localhost ~]# cat /proc/bus/usb/devices
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1410 ProdID=1110 Rev= 0.00
S: Manufacturer=Novatel Wireless Inc.
S: Product=Novatel Wireless Merlin CDMA
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbserial_generic
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms



As root:

Check to see if module loaded:
[root@localhost ~]# modprobe uhci-hcd
[root@localhost ~]# modprobe ohci-hcd
[root@localhost ~]# modprobe usbserial vendor=0x1410 product=0x1110

Unload Module (Some reason, it wouldn't work, until I removed it, first):
[root@localhost ~]# modprobe -r usbserial
[root@localhost ~]# modprobe -r ehci-hcd
[root@localhost ~]# modprobe -r ohci-hcd

Re-load OHCI and probe for card again:
[root@localhost ~]# modprobe ohci-hcd
[root@localhost ~]# modprobe usbserial vendor=0x1410 product=0x1110

mknod the device you are going to dial through:
[root@localhost ~]# mknod /dev/ttyUSB0 c 188 0

Now set up your favorite PPP dialer (I use kppp, myself) and have phun.

Tuesday, February 19, 2008

Jumping out of perfectly good planes...

So...

I've decided...

I am going to pursue becoming a Skydiving Instructor.

It will take quite a bit of time and $ (500 jumps, at least and extensive training), but well worth it (to me). I've always liked skydiving, and loved teaching when I taught for Sun Microsystems, so why not make a career of it? The money is good, during busy seasons. I now live where you can practically jump year-round. I enjoy it. so, I am going to do it. :-)

Unfortunately, though, I'm not starting immediately. I have some things to take care of, first. Updates, as they happen.

Thursday, February 14, 2008

Been pretty busy

I promised to come back and tell more on my move. Sorry, been very busy with the new job and surroundings.

Unfortunately, this will be pretty short, as well, but I wanted to touch-base.

The move to Scottsdale, was one out of need, more than desire. I don't want to get into the specifics of "the need", but suffice it for me to say that "it had to be done" and for more than one reason. The one obvious reason, was to get away from my recent history with someone, whom is no longer, a part of my life. The other reasons... well, they aren't for public consumption, just yet.

My new job is working out, very well. I am working for a Major financial institution, as a Senior Engineer (in Unix applications). I like the team, the environment, the work. I am still trying to get used to coming into the office, every-single weekday, from 8am to 5pm. Heh. I really had it good, at my last job, with my hours!

The weather here has been mild, thus far. I am told, unseasonably mild. Still waiting for the terrible heat that everyone feels a need to warn me about, here. Heh. Bring it. Cold is teh suck. Heat, I can handle.

I've met a wonderful woman. We'll see where it goes. More on that, later.

That's all for now. I said it was going to be brief :-)