Remko (and anyone else who wants to try and solve this regression):

https://www.jclarity.com/product/censum-free-trial/

Go ahead and get the trial and the guys at JClarity will give us licenses.
I'd use your apache.org email to be safe.

On 3 March 2016 at 11:27, Matt Sicker <boa...@gmail.com> wrote:

> So far, Remko's proposal is language-neutral since he defined endianness
> (big endian like java, but we could use either since ByteBuffer supports
> both) and field widths..
>
> On 3 March 2016 at 03:15, Mikael Ståldal <mikael.stal...@magine.com>
> wrote:
>
>> If we are to design a new binary log event format, then I think that we
>> should make sure that it is not Java / JVM specific, and that it will be
>> reasonably easy to implement reading and writing of it on other platforms.
>>
>> On Thu, Mar 3, 2016 at 5:14 AM, Remko Popma <remko.po...@gmail.com>
>> wrote:
>>
>>> I created https://issues.apache.org/jira/browse/LOG4J2-1305 as a write
>>> up of my current thinking on the topic and a place to discuss ideas. Still
>>> need to add some things we discussed here (tools, endianness,
>>> versioning etc).
>>>
>>> It's a fascinating topic but I still have a lot of work to do on the
>>> GC-free epic before I can start working on this one.
>>>
>>>
>>> On Thursday, 3 March 2016, Remko Popma <remko.po...@gmail.com> wrote:
>>>
>>>> Not Java Serialization, I was thinking simple ByteBuffer.putLong,
>>>> putInt, putBytes. This is much more performant (
>>>> http://mechanical-sympathy.blogspot.jp/2012/07/native-cc-like-performance-for-java.html).
>>>> SBE (Simple Binary Encoding) seems overkill, but open to other opinions.
>>>>
>>>> The less conditional logic in there the better, so I'm not that
>>>> interested in configurability. All log event fields,
>>>> ok. ThreadContextMap/Stack keys and values: similarly to other repeating
>>>> strings like logger names: write to separate mapping file & only write int
>>>> values (for count as well as key/value indices) to the "main" log file.
>>>>
>>>> Two things we would need to decide is how to handle versioning, and
>>>> what Endianness to use.
>>>>
>>>> Version information (possibly with schema info) could be written to the
>>>> log file header.
>>>>
>>>> Endianness could also be written to the header, or we could simply say
>>>> we use network byte order (big endian). Intel chips use little endian, but
>>>> apparently swapping is implemented with an intrinsic and is very fast.
>>>>
>>>> On Thursday, 3 March 2016, Matt Sicker <boa...@gmail.com> wrote:
>>>>
>>>>> At that point, it would be nice if it were extensible. There are some
>>>>> neat binary formats we could use that would allow for that.
>>>>>
>>>>> On 2 March 2016 at 12:09, Gary Gregory <garydgreg...@gmail.com> wrote:
>>>>>
>>>>>> I think we'd need to provide all LogEvent fields.
>>>>>>
>>>>>> Gary
>>>>>>
>>>>>> On Wed, Mar 2, 2016 at 9:13 AM, Remko Popma <remko.po...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> That's what I meant, I didn't make myself clear. For example, we
>>>>>>> could offer a simple binary layout:
>>>>>>> time stamp (8 bytes)
>>>>>>> level int (4 bytes)
>>>>>>> thread ID (4 bytes) - Thread names in separate file
>>>>>>> Logger ID (4 bytes) - Logger names in separate file.
>>>>>>> message length (4 bytes)
>>>>>>> message type (2 bytes)
>>>>>>> message data (variable length)
>>>>>>> throwable length (4 bytes)
>>>>>>> throwable data (variable length)
>>>>>>>
>>>>>>> It's a very different approach to logging. On the plus side, this
>>>>>>> would be extremely compact and very fast to write.
>>>>>>>
>>>>>>> On the other hand it would require a separate tool to decode/display
>>>>>>> the data in human readable form. Such a tool should handle text messages
>>>>>>> out of the box, but for custom messages I image there could be some 
>>>>>>> plugin
>>>>>>> mechanism for custom decoders.
>>>>>>>
>>>>>>> All very interesting...
>>>>>>> :-)
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>>
>>>>>>> On 2016/03/03, at 0:01, Matt Sicker <boa...@gmail.com> wrote:
>>>>>>>
>>>>>>> That's what I thought at first, but he means non-human readable
>>>>>>> formats since we all use tools to parse logs as it is (Splunk and ELK 
>>>>>>> are
>>>>>>> the big two I know of).
>>>>>>>
>>>>>>> On 2 March 2016 at 02:15, Remko Popma <remko.po...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Re: binary logging, I think he's talking about providing an API to
>>>>>>>> log objects directly into byte buffers without turning them into 
>>>>>>>> Strings
>>>>>>>> first.
>>>>>>>>
>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-1274 and
>>>>>>>> https://issues.apache.org/jira/browse/LOG4J2-506
>>>>>>>>
>>>>>>>> were created with that in mind and should be a good step in that
>>>>>>>> direction.
>>>>>>>>
>>>>>>>> Sent from my iPhone
>>>>>>>>
>>>>>>>> On 2016/03/02, at 15:11, Gary Gregory <garydgreg...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Well, I've often wondered about creating a binary format but it
>>>>>>>> seems that you could use JSON+ZIP or BSON and get most of the 
>>>>>>>> advantages.
>>>>>>>>
>>>>>>>> Gary
>>>>>>>>
>>>>>>>> On Tue, Mar 1, 2016 at 9:12 PM, Matt Sicker <boa...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> One other interesting thing I learned is that improper use of
>>>>>>>>> logging is a huge source of performance problems. The GC-free 
>>>>>>>>> parameterized
>>>>>>>>> message factory will help with one aspect of that (I suggested
>>>>>>>>> parameterized messages, but he countered with the Object[] that is
>>>>>>>>> created), and encouraging users to use a Supplier<String> instead of
>>>>>>>>> passing parameters should help as well (especially when those 
>>>>>>>>> parameters
>>>>>>>>> have to be computed). He had some strong criticisms of logging APIs
>>>>>>>>> promoting bad practices which stems all the way back to log4j1 and 
>>>>>>>>> affects
>>>>>>>>> pretty much every logging API in Java (some criticisms were actually
>>>>>>>>> outdated or didn't consider newer features of the API like markers 
>>>>>>>>> and the
>>>>>>>>> huge amount of filters available).
>>>>>>>>>
>>>>>>>>> His other big idea was promoting the use of binary logging formats
>>>>>>>>> because humans rarely read the raw log files as it is, but it's not 
>>>>>>>>> like
>>>>>>>>> there's a standard way to do that.
>>>>>>>>>
>>>>>>>>> Now I kinda wonder if he'll find this thread one day and tell me
>>>>>>>>> how I misinterpreted him or something. ;)
>>>>>>>>>
>>>>>>>>> On 1 March 2016 at 22:28, Matt Sicker <boa...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Alright, I learned some interesting things. I'm going to get us
>>>>>>>>>> some tools we can use to try and profile this. Otherwise, he did 
>>>>>>>>>> suggest
>>>>>>>>>> trying out this project:
>>>>>>>>>> https://github.com/RichardWarburton/honest-profiler
>>>>>>>>>>
>>>>>>>>>> On 1 March 2016 at 19:31, Matt Sicker <boa...@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> So far he's said something about using lambdas for lazy
>>>>>>>>>>> evaluation (though I don't think that would actually help us at 
>>>>>>>>>>> all). I'll
>>>>>>>>>>> try to talk to him one-on-one afterward to delve more into this.
>>>>>>>>>>>
>>>>>>>>>>> On 1 March 2016 at 18:13, Ralph Goers <
>>>>>>>>>>> ralph.go...@dslextreme.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Actually, most of the tests have the commands in the comments
>>>>>>>>>>>> right in the class. Just cut and past.
>>>>>>>>>>>>
>>>>>>>>>>>> Ralph
>>>>>>>>>>>>
>>>>>>>>>>>> On Mar 1, 2016, at 1:43 PM, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> I can't even figure out how to execute the simple perf test
>>>>>>>>>>>> class. IntelliJ gives me some annotation processing error, and 
>>>>>>>>>>>> doing it
>>>>>>>>>>>> from the command line is turning into a classpath nightmare to 
>>>>>>>>>>>> figure out
>>>>>>>>>>>> what jars are needed to execute the test manually.
>>>>>>>>>>>>
>>>>>>>>>>>> On 1 March 2016 at 11:34, Gary Gregory <garydgreg...@gmail.com>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Before the talk: Hi, I'm Remko, I help on Apache Log4j, are
>>>>>>>>>>>>> you available after the preso to talk about some issue we are 
>>>>>>>>>>>>> seeing?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Gary
>>>>>>>>>>>>> On Mar 1, 2016 8:29 AM, "Matt Sicker" <boa...@gmail.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I'm attending a JUG meetup tonight with Kirk Pepperdine
>>>>>>>>>>>>>> presenting. It's supposed to be a Java performance workshop type 
>>>>>>>>>>>>>> of thing,
>>>>>>>>>>>>>> so if you've got a decent way to ask about it, I could see if he 
>>>>>>>>>>>>>> can help
>>>>>>>>>>>>>> figure out this regression. I can at least show off the 
>>>>>>>>>>>>>> SimplePerfTest and
>>>>>>>>>>>>>> any microbenchmarks we have.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 28 February 2016 at 11:54, Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Take a look at the git bisect command. Might help you find
>>>>>>>>>>>>>>> which changes caused the problem.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sunday, 28 February 2016, Gary Gregory <
>>>>>>>>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thank you for digging in Remko. This is will be a nice
>>>>>>>>>>>>>>>> theme to publicize when you get it figured out.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Gary
>>>>>>>>>>>>>>>> On Feb 28, 2016 4:08 AM, "Remko Popma" <
>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> After removing the potential impact of appenders and
>>>>>>>>>>>>>>>>> layouts by testing with
>>>>>>>>>>>>>>>>> log4j-core\src\test\resources\perf-CountingNoOpAppender.xml 
>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>> org.apache.logging.log4j.core.async.perftest.SimplePerfTest, 
>>>>>>>>>>>>>>>>> I've confirmed
>>>>>>>>>>>>>>>>> my initial numbers:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> 2.0: 7.5M ops/sec
>>>>>>>>>>>>>>>>> 2.1: 6M ops/sec
>>>>>>>>>>>>>>>>> 2.2: 6M ops/sec
>>>>>>>>>>>>>>>>> 2.3: 6M ops/sec
>>>>>>>>>>>>>>>>> 2.4: 4.5M ops/sec
>>>>>>>>>>>>>>>>> 2.5: 4M ops/sec
>>>>>>>>>>>>>>>>> 2.6: 2M ops/sec
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I tried reverting various changes made to AsyncLogger
>>>>>>>>>>>>>>>>> since 2.0, performance improves a little up to 4M ops/sec.
>>>>>>>>>>>>>>>>> However, when completely reverting AsyncLogger source to
>>>>>>>>>>>>>>>>> the 2.0 version, performance is back to 7.5M ops/sec.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> I'll try starting from the 2.0 source and getting back to
>>>>>>>>>>>>>>>>> 2.6 functionality without losing performance...
>>>>>>>>>>>>>>>>> (Lengthy process...)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Sat, Feb 27, 2016 at 12:18 PM, Remko Popma <
>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> This is the PerfTestDriver test class (in
>>>>>>>>>>>>>>>>>> log4j-core/test, package ...async.perf).
>>>>>>>>>>>>>>>>>> Mainly perf3PlainNoLocation.xml:
>>>>>>>>>>>>>>>>>> RollingRandomAccessFileAppender, PatternLayout, all
>>>>>>>>>>>>>>>>>> loggers are AsyncLoggers, logging a simple string without 
>>>>>>>>>>>>>>>>>> parameters.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Profiling with YourKit did not tell me anything useful.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I'm now eliminating the effect of Layouts/Appenders,
>>>>>>>>>>>>>>>>>> using CountingNoOpAppender, and seeing similar numbers. So 
>>>>>>>>>>>>>>>>>> this seems to be
>>>>>>>>>>>>>>>>>> mostly an issue in AsyncLogger.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I'll let you know when I find out more.
>>>>>>>>>>>>>>>>>> There's a lot of trial and error here, so this may take a
>>>>>>>>>>>>>>>>>> while...
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Remko
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On 2016/02/26, at 21:02, Mikael Ståldal <
>>>>>>>>>>>>>>>>>> mikael.stal...@magine.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Which components (appenders, layouts) are involved in the
>>>>>>>>>>>>>>>>>> tests? Would it be possible to do some profiling to see if 
>>>>>>>>>>>>>>>>>> there is any
>>>>>>>>>>>>>>>>>> particular component which is to blame?
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Fri, Feb 26, 2016 at 12:51 PM, Remko Popma <
>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> To give you some rough impression on concrete numbers
>>>>>>>>>>>>>>>>>>> for this trend:
>>>>>>>>>>>>>>>>>>> 2.0: ~6M ops/sec
>>>>>>>>>>>>>>>>>>> 2.1-2.2: ~5M ops/sec
>>>>>>>>>>>>>>>>>>> 2.3-2.4: ~3-4M ops/sec
>>>>>>>>>>>>>>>>>>> 2.5: ~3M ops/sec
>>>>>>>>>>>>>>>>>>> 2.6: ~2M ops/sec
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Friday, 26 February 2016, Remko Popma <
>>>>>>>>>>>>>>>>>>> remko.po...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> You're absolutely right. I still have quite a few unit
>>>>>>>>>>>>>>>>>>>> tests to add.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Initial perf testing shows a downward trend in Async
>>>>>>>>>>>>>>>>>>>> Logger performance with every release. (Logging simple
>>>>>>>>>>>>>>>>>>>> string messages without params.) This is worrisome and I'm 
>>>>>>>>>>>>>>>>>>>> focusing on
>>>>>>>>>>>>>>>>>>>> figuring that out first: this will likely involve 
>>>>>>>>>>>>>>>>>>>> additional code changes
>>>>>>>>>>>>>>>>>>>> and I'll add more tests after that.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Sent from my iPhone
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On 2016/02/26, at 10:38, Gary Gregory <
>>>>>>>>>>>>>>>>>>>> garydgreg...@gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Wow, I love the activity we are seeing toward 2.6! All
>>>>>>>>>>>>>>>>>>>> the perf work on top of an existing sizable change set. 
>>>>>>>>>>>>>>>>>>>> Very exciting
>>>>>>>>>>>>>>>>>>>> indeed.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> There sure are a lot of changes coming in. I hope that
>>>>>>>>>>>>>>>>>>>> we all can pitch in to make sure most if not all of these 
>>>>>>>>>>>>>>>>>>>> changes get code
>>>>>>>>>>>>>>>>>>>> coverage from unit tests. I've not checked closely, but it 
>>>>>>>>>>>>>>>>>>>> seems like we
>>>>>>>>>>>>>>>>>>>> may not have good coverage _yet_, or do I have the wrong 
>>>>>>>>>>>>>>>>>>>> impression?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I want to make sure we keep our stability in tip top
>>>>>>>>>>>>>>>>>>>> shape :-) and that we have no regression from previous 
>>>>>>>>>>>>>>>>>>>> releases.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Gary
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>>>>>>>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>>>>>>>>>>>>>> JUnit in Action, Second Edition
>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/tahchiev/>
>>>>>>>>>>>>>>>>>>>> Spring Batch in Action
>>>>>>>>>>>>>>>>>>>> <http://www.manning.com/templier/>
>>>>>>>>>>>>>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>>>>>>>>>>>>>> Home: http://garygregory.com/
>>>>>>>>>>>>>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> [image: MagineTV]
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> *Mikael Ståldal*
>>>>>>>>>>>>>>>>>> Senior software developer
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> *Magine TV*
>>>>>>>>>>>>>>>>>> mikael.stal...@magine.com
>>>>>>>>>>>>>>>>>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |
>>>>>>>>>>>>>>>>>> www.magine.com
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Privileged and/or Confidential Information may be
>>>>>>>>>>>>>>>>>> contained in this message. If you are not the addressee 
>>>>>>>>>>>>>>>>>> indicated in this
>>>>>>>>>>>>>>>>>> message
>>>>>>>>>>>>>>>>>> (or responsible for delivery of the message to such a
>>>>>>>>>>>>>>>>>> person), you may not copy or deliver this message to anyone. 
>>>>>>>>>>>>>>>>>> In such case,
>>>>>>>>>>>>>>>>>> you should destroy this message and kindly notify the
>>>>>>>>>>>>>>>>>> sender by reply email.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>>>> <http://www.manning.com/bauer3/>
>>>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>>>>> Blog: http://garygregory.wordpress.com
>>>>>>>> Home: http://garygregory.com/
>>>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Matt Sicker <boa...@gmail.com>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
>>>>>> Java Persistence with Hibernate, Second Edition
>>>>>> <http://www.manning.com/bauer3/>
>>>>>> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
>>>>>> Spring Batch in Action <http://www.manning.com/templier/>
>>>>>> Blog: http://garygregory.wordpress.com
>>>>>> Home: http://garygregory.com/
>>>>>> Tweet! http://twitter.com/GaryGregory
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matt Sicker <boa...@gmail.com>
>>>>>
>>>>
>>
>>
>> --
>> [image: MagineTV]
>>
>> *Mikael Ståldal*
>> Senior software developer
>>
>> *Magine TV*
>> mikael.stal...@magine.com
>> Grev Turegatan 3  | 114 46 Stockholm, Sweden  |   www.magine.com
>>
>> Privileged and/or Confidential Information may be contained in this
>> message. If you are not the addressee indicated in this message
>> (or responsible for delivery of the message to such a person), you may
>> not copy or deliver this message to anyone. In such case,
>> you should destroy this message and kindly notify the sender by reply
>> email.
>>
>
>
>
> --
> Matt Sicker <boa...@gmail.com>
>



-- 
Matt Sicker <boa...@gmail.com>

Reply via email to