Re: Continuing - Re: How do I actually add these descriptions then...
In the original email I posted, I'm asking two questions. 1. I'm getting two warnings about nonexistent rules. Is this fixable? And 2. why is lint reporting a random set of 13 missing descriptions when I have actually put those descriptions into local.cf? As to the descriptions themselves, it's only a wild guess as to what some of them mean anyway, in the absence of any Spamassassin description. So putting something, anything, at least suppresses warnings. Or it should, but I find Spamassassin -D --lint is then misreporting some of them anyway. I'm not one of the maintainers of Spamassassin, just a user trying to tweet local.cf Sent from my iPad > On 7 Mar 2016, at 18:20, RW wrote: > > On Mon, 7 Mar 2016 19:11:12 +0100 > Reindl Harald wrote: > >> Am 07.03.2016 um 19:05 schrieb RW: > >>> If someone gets around to creating descriptions for these rules you >>> wont see them >> >> maybe *you* won't see them, others do >> >> they are part of the report-headers instead something like > > I know that; my point was that if he puts those lines into local config > they will override new descriptions from sa-update. > >
Re: Missed spam, suggestions?
On Mon, 7 Mar 2016, Charles Sprickman wrote: I’ve been running with some daily training for a little over a week and I’m seeing less spam in my inbox. I’ve seen a few things slip through because bayes tipped them below the default score, these were two phishing emails. Here’s some rule stats for anyone interested: TOP SPAM RULES FIRED RANKRULE NAME COUNT %OFRULES %OFMAIL %OFSPAM %OFHAM 1 TXREP 13171 8.47 40.38 91.00 72.91 2 HTML_MESSAGE12714 8.18 38.98 87.85 90.80 3 DCC_CHECK 10593 6.81 32.48 73.19 33.78 4 RDNS_NONE 10269 6.60 31.48 70.955.63 5 SPF_HELO_PASS 10070 6.48 30.87 69.58 23.41 6 URIBL_BLACK 9711 6.25 29.77 67.101.58 7 BODY_NEWDOMAIN_FMBLA 9550 6.14 29.28 65.981.64 8 FROM_NEWDOMAIN_FMBLA 9483 6.10 29.07 65.521.36 9 BAYES_99 8486 5.46 26.02 58.631.18 10 BAYES_9998141 5.24 24.96 56.251.06 TOP HAM RULES FIRED RANKRULE NAME COUNT %OFRULES %OFMAIL %OFSPAM %OFHAM 1 HTML_MESSAGE16473 9.13 50.51 87.85 90.80 2 DKIM_SIGNED 13776 7.64 42.24 13.81 75.93 3 TXREP 13228 7.33 40.56 91.00 72.91 4 DKIM_VALID 12962 7.19 39.74 11.93 71.44 5 RCVD_IN_DNSWL_NONE 9941 5.51 30.488.08 54.79 6 DKIM_VALID_AU8711 4.83 26.717.99 48.01 7 BAYES_00 8390 4.65 25.721.84 46.24 8 RCVD_IN_JMF_W7369 4.09 22.592.54 40.62 9 RCVD_IN_MSPIKE_WL6713 3.72 20.584.39 37.00 10 BAYES_50 6201 3.44 19.01 25.56 34.18 Based upon your stats it looks like you need more Bayes training. Your Bayes 00/99 hits should rank higher in the rules-fired stats and BAYES_50 shouldn't be in the top-10 at all. (of course if you've only been training for a week that would explain it). For example, here's my top-10 hits (for a one month interval). TOP SPAM RULES FIRED -- RANKRULE NAME COUNT %OFMAIL %OFSPAM %OFHAM S/O -- 1T__BOTNET_NOTRUST 114907 60.32 86.81 42.66 0.5755 2BAYES_99109138 32.98 82.450.01 0.9998 3BAYES_999 104903 31.70 79.250.01 0. 4HTML_MESSAGE9085079.41 68.63 86.59 0.3456 5URIBL_BLACK 9084527.61 68.630.27 0.9942 6T_QUARANTINE_1 9064027.40 68.470.02 0.9996 7URIBL_DBL_SPAM 7915224.02 59.790.17 0.9956 8KAM_VERY_BLACK_DBL 7430122.45 56.130.00 1. 9L_FROM_SPAMMER1k7366722.26 55.650.00 1. 10T__RECEIVED_1 7241342.60 54.70 34.54 0.5135 OP HAM RULES FIRED -- RANKRULE NAME COUNT %OFMAIL %OFSPAM %OFHAM S/O -- 1BAYES_00182674 56.032.11 91.97 0.0150 2HTML_MESSAGE171992 79.41 68.63 86.59 0.3456 3SPF_PASS136623 63.08 54.52 68.78 0.3457 4T_RP_MATCHES_RCVD 130879 53.75 35.54 65.89 0.2644 5T__RECEIVED_2 125492 53.76 39.62 63.18 0.2947 6DKIM_SIGNED 114808 38.579.72 57.80 0.1008 7DKIM_VALID 105385 34.707.16 53.06 0.0825 8RCVD_IN_DNSWL_NONE 9295129.904.56 46.80 0.0609 9T__BOTNET_NOTRUST 8474160.32 86.81 42.66 0.5755 10KHOP_RCVD_TRUST 8462326.442.19 42.60 0.0331 Note how highly BAYES 00/99 ranked. What you don't see is that BAYES_50 is way down in the mud (below 50 rank). BTW, this is with a Bayes that is mostly fed via auto-learning. I occasionally hand feed corner cases that get mis-classified (usually things like phishes, or conference announcments that can look shakey). -- Dave Funk University of Iowa College of Engineering 319/335-5751 FAX: 319/384-0549 1256 Seamans Center Sys_admin/Postmaster/ce
Re: Missed spam, suggestions?
> On Feb 29, 2016, at 3:18 PM, Reindl Harald wrote: > > Am 29.02.2016 um 21:05 schrieb Charles Sprickman: >>> On Feb 29, 2016, at 4:23 AM, Reindl Harald wrote: >>> >>> Am 29.02.2016 um 06:24 schrieb Charles Sprickman: I’ve not had much luck with Bayes - when I had it enabled recently on a per-user basis it was just hitting the master DB server too hard with udpates >>> >>> just make a sitewide bayes >>> (https://wiki.apache.org/spamassassin/SiteWideBayesSetup) without autolearn >>> / autoexpire and the default database in a folder read-only for the daemon >>> >> >> I think I still have to stick with a db-backed option since I need to keep >> two SA servers in sync. > > and i know that it don't matter > > nothing easier then rsync the bayes-folder to several machines at the end of > the learning script, we even share the side-wide bayes over webservices to > external entities and so it coves around 5000 users at the moment in summary I’m not seeing much of a change in load after enabling this with a global user and no autolearn. I think the db was really only constrained on the inserts/updates. > >> I’ll try that today and see how the load looks. My concern with disabling >> autolearn is that then I’m the only one training. My spam probably looks >> like everyone else’s, but my ham is very different, lots list traffic and >> such. > > you should be the only one who trains in most cases for several reasons > > * few to zero users train anough ham and spam for a proper bayes > * wrong classified autolearn takes a wrong direction sooner or later > > given that we now for more than a year maintain a side-wide bayes for inbound > MX re-used on submission servers to minimize the impact of hacked accounts > and it works so much better than all the "user bayes" solutions the last > decade it's the way to go if you *really* want proper operations I’ve been running with some daily training for a little over a week and I’m seeing less spam in my inbox. I’ve seen a few things slip through because bayes tipped them below the default score, these were two phishing emails. Here’s some rule stats for anyone interested: TOP SPAM RULES FIRED RANKRULE NAME COUNT %OFRULES %OFMAIL %OFSPAM %OFHAM 1TXREP 13171 8.47 40.38 91.00 72.91 2HTML_MESSAGE12714 8.18 38.98 87.85 90.80 3DCC_CHECK 10593 6.81 32.48 73.19 33.78 4RDNS_NONE 10269 6.60 31.48 70.955.63 5SPF_HELO_PASS 10070 6.48 30.87 69.58 23.41 6URIBL_BLACK 9711 6.25 29.77 67.101.58 7BODY_NEWDOMAIN_FMBLA 9550 6.14 29.28 65.981.64 8FROM_NEWDOMAIN_FMBLA 9483 6.10 29.07 65.521.36 9BAYES_99 8486 5.46 26.02 58.631.18 10BAYES_9998141 5.24 24.96 56.251.06 TOP HAM RULES FIRED RANKRULE NAME COUNT %OFRULES %OFMAIL %OFSPAM %OFHAM 1HTML_MESSAGE16473 9.13 50.51 87.85 90.80 2DKIM_SIGNED 13776 7.64 42.24 13.81 75.93 3TXREP 13228 7.33 40.56 91.00 72.91 4DKIM_VALID 12962 7.19 39.74 11.93 71.44 5RCVD_IN_DNSWL_NONE 9941 5.51 30.488.08 54.79 6DKIM_VALID_AU8711 4.83 26.717.99 48.01 7BAYES_00 8390 4.65 25.721.84 46.24 8RCVD_IN_JMF_W7369 4.09 22.592.54 40.62 9RCVD_IN_MSPIKE_WL6713 3.72 20.584.39 37.00 10BAYES_50 6201 3.44 19.01 25.56 34.18 Charles signature.asc Description: Message signed with OpenPGP using GPGMail
Re: Continuing - Re: How do I actually add these descriptions then...
On Mon, 7 Mar 2016 19:11:12 +0100 Reindl Harald wrote: > Am 07.03.2016 um 19:05 schrieb RW: > > If someone gets around to creating descriptions for these rules you > > wont see them > > maybe *you* won't see them, others do > > they are part of the report-headers instead something like I know that; my point was that if he puts those lines into local config they will override new descriptions from sa-update.
Re: Continuing - Re: How do I actually add these descriptions then...
On 3/7/2016 1:05 PM, RW wrote: On Mon, 7 Mar 2016 15:12:25 + Robert Chalmers wrote: I?ve added descriptions, grabbing the actual RULE name with awk, and creating the list that way. { a=$12; print "describe " a " Spam check applied."; } The result is like this. describe LONG_TERM_PRICE Spam check applied. describe MULTIPART_ALT_NON_TEXT Spam check applied. describe TVD_IP_OCT Spam check applied. describe HK_NAME_DR Spam check applied. What's the benefit of this? If someone gets around to creating descriptions for these rules you wont see them. Agreed. The right way to silence those warnings would be to learn what each rule does, write an accurate description, then commit it or submit a patch on the bug tracker.
Re: Can I drop *** SPAM ***** not send it on?
Am 07.03.2016 um 19:10 schrieb Ryan Coleman: Thanks to this header my server automatically filtered your email into my scanned spam folder. Seems appropriate enough. :) fix your rule to have a "starts with" instead a "contains" :-) On Mar 7, 2016, at 12:05 PM, Reindl Harald wrote: Am 07.03.2016 um 19:01 schrieb Chalmers: I see. Hmmm. I have the system really screwed down tight, and understand how I can use the mail reading client to run a rule to divert such a message to a specific mailbox. I thought it may be possible to divert messages that do get marked as spam to be dumped. I can't see how some get through but they do, and as they are always spam, I'm happy to dump them. I have the system set to just reject nearly everything suspicious at the gate, but 1 or 2 still sneak through, so I'm just trying to not even see them in the mailboxes at all. I could put my configs up, but it's just clutter at this stage. as i already posted spamass-milter has a reject-score different from the tag-score to be sure what got rejected if you don't care just write a sieve rule on the mailserver or use a proper mailcient like Tunderbird which supports useable filters On 7 Mar 2016, at 5:44 pm, RW wrote: On Sun, 6 Mar 2016 07:35:37 + rob...@chalmers.com.au wrote: I'm trying to drop such messages, not have them still appear in my mailbox, but can't find a way? Any ideas? Are you sure you really want to do this? IMO it's a really bad idea. Rejecting or discarding very high-scoring spam is one-thing, but it's sensible to file the lower-scoring spam into a folder somewhere. How to do any of this has nothing to do with SpamAssassin, so you need say what you are currently doing with you mail signature.asc Description: OpenPGP digital signature
Re: Can I drop ****** SPAM ******** not send it on?
Thanks to this header my server automatically filtered your email into my scanned spam folder. Seems appropriate enough. :) > On Mar 7, 2016, at 12:05 PM, Reindl Harald wrote: > > > > Am 07.03.2016 um 19:01 schrieb Chalmers: >> I see. Hmmm. >> I have the system really screwed down tight, and understand how I can use >> the mail reading client to run a rule to divert such a message to a specific >> mailbox. I thought it may be possible to divert messages that do get marked >> as spam to be dumped. >> I can't see how some get through but they do, and as they are always spam, >> I'm happy to dump them. I have the system set to just reject nearly >> everything suspicious at the gate, but 1 or 2 still sneak through, so I'm >> just trying to not even see them in the mailboxes at all. >> I could put my configs up, but it's just clutter at this stage. > > as i already posted spamass-milter has a reject-score different from the > tag-score to be sure what got rejected > > if you don't care just write a sieve rule on the mailserver or use a proper > mailcient like Tunderbird which supports useable filters > >>> On 7 Mar 2016, at 5:44 pm, RW wrote: >>> >>> On Sun, 6 Mar 2016 07:35:37 + >>> rob...@chalmers.com.au wrote: >>> I'm trying to drop such messages, not have them still appear in my mailbox, but can't find a way? Any ideas? >>> >>> Are you sure you really want to do this? IMO it's a really bad idea. >>> >>> Rejecting or discarding very high-scoring spam is one-thing, but it's >>> sensible to file the lower-scoring spam into a folder somewhere. >>> >>> How to do any of this has nothing to do with SpamAssassin, so you need >>> say what you are currently doing with you mail >
Re: Continuing - Re: How do I actually add these descriptions then...
Am 07.03.2016 um 19:05 schrieb RW: On Mon, 7 Mar 2016 15:12:25 + Robert Chalmers wrote: The result is like this. describe LONG_TERM_PRICE Spam check applied. describe MULTIPART_ALT_NON_TEXT Spam check applied. describe TVD_IP_OCT Spam check applied. describe HK_NAME_DR Spam check applied. What's the benefit of this? If someone gets around to creating descriptions for these rules you wont see them maybe *you* won't see them, others do they are part of the report-headers instead something like "HTML_TITLE_SUBJ_DIFF No description available" X-Spam-Report: Flag: No, * -0.1 SPF_PASS SPF: sender matches SPF record * -0.5 BAYES_40 BODY: Bayes spam probability is 20 to 40% * [score: 0.3820] * 0.0 HTML_MESSAGE BODY: HTML included in message * 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid * 0.5 DC_PNG_UNO_LARGO Message contains a single large png image but the above descriptions are useless because "Spam check applied" don't tell you anything about the rule signature.asc Description: OpenPGP digital signature
Re: Can I drop ****** SPAM ******** not send it on?
I see. Hmmm. I have the system really screwed down tight, and understand how I can use the mail reading client to run a rule to divert such a message to a specific mailbox. I thought it may be possible to divert messages that do get marked as spam to be dumped. I can't see how some get through but they do, and as they are always spam, I'm happy to dump them. I have the system set to just reject nearly everything suspicious at the gate, but 1 or 2 still sneak through, so I'm just trying to not even see them in the mailboxes at all. I could put my configs up, but it's just clutter at this stage. thanks Robert - From my iPhone. > On 7 Mar 2016, at 5:44 pm, RW wrote: > > On Sun, 6 Mar 2016 07:35:37 + > rob...@chalmers.com.au wrote: > >> I'm trying to drop such messages, not have them still appear in my >> mailbox, but can't find a way? Any ideas? > > Are you sure you really want to do this? IMO it's a really bad idea. > > Rejecting or discarding very high-scoring spam is one-thing, but it's > sensible to file the lower-scoring spam into a folder somewhere. > > How to do any of this has nothing to do with SpamAssassin, so you need > say what you are currently doing with you mail.
Re: Continuing - Re: How do I actually add these descriptions then...
On Mon, 7 Mar 2016 15:12:25 + Robert Chalmers wrote: > I?ve added descriptions, grabbing the actual RULE name with awk, and > creating the list that way. > > { > a=$12; > print "describe " a " Spam check applied."; > } > > > The result is like this. > describe LONG_TERM_PRICE Spam check applied. > describe MULTIPART_ALT_NON_TEXT Spam check applied. > describe TVD_IP_OCT Spam check applied. > describe HK_NAME_DR Spam check applied. What's the benefit of this? If someone gets around to creating descriptions for these rules you wont see them.
Re: Can I drop ****** SPAM ******** not send it on?
Am 07.03.2016 um 19:01 schrieb Chalmers: I see. Hmmm. I have the system really screwed down tight, and understand how I can use the mail reading client to run a rule to divert such a message to a specific mailbox. I thought it may be possible to divert messages that do get marked as spam to be dumped. I can't see how some get through but they do, and as they are always spam, I'm happy to dump them. I have the system set to just reject nearly everything suspicious at the gate, but 1 or 2 still sneak through, so I'm just trying to not even see them in the mailboxes at all. I could put my configs up, but it's just clutter at this stage. as i already posted spamass-milter has a reject-score different from the tag-score to be sure what got rejected if you don't care just write a sieve rule on the mailserver or use a proper mailcient like Tunderbird which supports useable filters On 7 Mar 2016, at 5:44 pm, RW wrote: On Sun, 6 Mar 2016 07:35:37 + rob...@chalmers.com.au wrote: I'm trying to drop such messages, not have them still appear in my mailbox, but can't find a way? Any ideas? Are you sure you really want to do this? IMO it's a really bad idea. Rejecting or discarding very high-scoring spam is one-thing, but it's sensible to file the lower-scoring spam into a folder somewhere. How to do any of this has nothing to do with SpamAssassin, so you need say what you are currently doing with you mail signature.asc Description: OpenPGP digital signature
Re: Can I drop ****** SPAM ******** not send it on?
On Sun, 6 Mar 2016 07:35:37 + rob...@chalmers.com.au wrote: > I'm trying to drop such messages, not have them still appear in my > mailbox, but can't find a way? Any ideas? Are you sure you really want to do this? IMO it's a really bad idea. Rejecting or discarding very high-scoring spam is one-thing, but it's sensible to file the lower-scoring spam into a folder somewhere. How to do any of this has nothing to do with SpamAssassin, so you need say what you are currently doing with you mail.
Continuing - Re: How do I actually add these descriptions then...
I’ve added descriptions, grabbing the actual RULE name with awk, and creating the list that way. { a=$12; print "describe " a " Spam check applied."; } The result is like this. describe LONG_TERM_PRICE Spam check applied. describe MULTIPART_ALT_NON_TEXT Spam check applied. describe TVD_IP_OCT Spam check applied. describe HK_NAME_DR Spam check applied. etc etc So fine. Now spamassassin -D —lint returns this - and I know the names are in the local.cf file. , and apparently I now have two nonexistent rules. This is the total list - BUT - each time I run the same command, it returns a slightly different set of about 13 names??? Mar 7 15:04:18.096 [67806] dbg: config: warning: score set for non-existent rule AXB_X_AOL_SEZ_S Mar 7 15:04:18.096 [67806] dbg: config: warning: score set for non-existent rule MALFORMED_FREEMAIL Mar 7 15:04:18.104 [67806] dbg: config: warning: no description set for STOX_REPLY_TYPE_WITHOUT_QUOTES Mar 7 15:04:18.106 [67806] dbg: config: warning: no description set for FSL_HELO_DEVICE Mar 7 15:04:18.107 [67806] dbg: config: warning: no description set for DKIM_POLICY_SIGNSOME Mar 7 15:04:18.107 [67806] dbg: config: warning: no description set for DKIM_POLICY_TESTING Mar 7 15:04:18.108 [67806] dbg: config: warning: no description set for KB_FAKED_THE_BAT Mar 7 15:04:18.109 [67806] dbg: config: warning: no description set for CURR_PRICE Mar 7 15:04:18.110 [67806] dbg: config: warning: no description set for LONG_TERM_PRICE Mar 7 15:04:18.110 [67806] dbg: config: warning: no description set for RCVD_IN_BRBL_LASTEXT Mar 7 15:04:18.114 [67806] dbg: config: warning: no description set for SHORT_TERM_PRICE Mar 7 15:04:18.116 [67806] dbg: config: warning: no description set for KB_DATE_CONTAINS_TAB Mar 7 15:04:18.116 [67806] dbg: config: warning: no description set for SB_GIF_AND_NO_URIS Mar 7 15:04:18.118 [67806] dbg: config: warning: no description set for BASE64_LENGTH_78_79 Mar 7 15:04:18.118 [67806] dbg: config: warning: no description set for TVD_PH_BODY_META thanks Robert > On 12 Feb 2016, at 09:11, Robert Chalmers wrote: > > Yes well, back again. > > sa-update is running, and supposedly updating rules. > spam assassin -D —lint still shows a long list… however, no longer shows that > first one from a while back… > > > Feb 12 09:09:30.977 [73122] dbg: config: warning: no description set for > HK_SCAM_N2 > Feb 12 09:09:30.977 [73122] dbg: config: warning: no description set for > HK_SCAM_N3 > Feb 12 09:09:30.978 [73122] dbg: config: warning: no description set for > BASE64_LENGTH_78_79 > Feb 12 09:09:30.979 [73122] dbg: config: warning: no description set for > TVD_IP_OCT > Feb 12 09:09:30.979 [73122] dbg: config: warning: no description set for > RCVD_IN_MSPIKE_ZBI > Feb 12 09:09:30.980 [73122] dbg: config: warning: no description set for > JM_TORA_XM > Feb 12 09:09:30.980 [73122] dbg: config: warning: no description set for > STOX_REPLY_TYPE > Feb 12 09:09:30.981 [73122] dbg: config: warning: no description set for > FSL_HELO_NON_FQDN_1 > Feb 12 09:09:30.981 [73122] dbg: config: warning: no description set for > JM_RCVD_QMAILV1 > Feb 12 09:09:30.981 [73122] dbg: config: warning: no description set for > LOTTERY_1 > Feb 12 09:09:30.981 [73122] dbg: config: warning: no description set for > TVD_FINGER_02 > Feb 12 09:09:30.982 [73122] dbg: config: warning: no description set for > STOX_AND_PRICE > Feb 12 09:09:30.982 [73122] dbg: config: warning: no description set for > RCVD_IN_BRBL_LASTEXT > Feb 12 09:09:30.982 [73122] dbg: config: warning: no description set for > FSL_HELO_BARE_IP_2 > Feb 12 09:09:30.982 [73122] dbg: config: warning: no description set for > HK_NAME_FM_MR_MRS > Feb 12 09:09:30.982 [73122] dbg: config: warning: no description set for > FSL_HELO_SETUP > Feb 12 09:09:30.983 [73122] dbg: config: warning: no description set for > DKIM_POLICY_SIGNALL > Feb 12 09:09:30.983 [73122] dbg: config: warning: no description set for > HELO_FRIEND > Feb 12 09:09:30.983 [73122] dbg: config: warning: no description set for > TVD_RCVD_SPACE_BRACKET > Feb 12 09:09:30.984 [73122] dbg: config: warning: no description set for > TVD_SPACE_RATIO > Feb 12 09:09:30.984 [73122] dbg: config: warning: no description set for > CURR_PRICE > Feb 12 09:09:30.984 [73122] dbg: config: warning: no description set for > FSL_FAKE_HOTMAIL_RVCD > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > FROM_MISSP_SPF_FAIL > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > HK_LOTTO > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > FAKE_REPLY_C > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > TVD_IP_HEX > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > LIVEFILESTORE > Feb 12 09:09:30.985 [73122] dbg: config: warning: no description set for > X_MAILER_CME_6543_MSN > Feb 12 09:09:30.986 [73122] dbg:
Re: Can I drop ****** SPAM ******** not send it on?
On 3/6/2016 1:35 AM, rob...@chalmers.com.au wrote: I'm trying to drop such messages, not have them still appear in my mailbox, but can't find a way? Any ideas? Setup a procmail recipe to move the messages to /dev/null. https://wiki.apache.org/spamassassin/UsedViaProcmail -- IBM i on Power Systems: For when you can't afford to be out of business! I'm riding a full century (100 miles) in the American Diabetes Association's Tour de Cure to raise money for diabetes research, education, advocacy, and awareness. You can make a tax deductible donation to my ride by visiting http://gmanesig.diabetessucks.net. My goal is $6000 but any amount is appreciated. See where I get my donations from ... visit http://gmanesig.diabetessucks.net/map for an interactive map (it's a geeky thing).