Time |
S |
Nick |
Message |
06:09 |
|
|
mmatloka joined #virtualJUG |
06:21 |
|
|
millrossjez joined #virtualJUG |
06:29 |
|
|
_ollie joined #virtualJUG |
07:29 |
|
|
krjura joined #virtualJUG |
08:12 |
|
|
krjura joined #virtualJUG |
08:21 |
|
|
_ollie joined #virtualJUG |
09:17 |
|
|
Bevin joined #virtualJUG |
11:54 |
|
|
edburns joined #virtualJUG |
12:04 |
|
|
shelajev joined #virtualJUG |
12:07 |
|
shelajev |
hola! |
12:07 |
|
shelajev |
so ready for the session today! |
12:08 |
|
shelajev |
can Rafael read bytecode listings without any help or external materials? |
12:27 |
|
Maldivia |
he better :D |
12:48 |
|
|
shelajev joined #virtualJUG |
13:43 |
|
|
shelajev joined #virtualJUG |
13:46 |
|
|
shelajev_ joined #virtualJUG |
14:43 |
|
shelajev_ |
Hello Simon! Everything is ready |
14:43 |
|
shelajev_ |
hopefully |
14:43 |
|
sjmaple |
hello hello :) |
14:52 |
|
Maldivia |
:) |
15:08 |
|
|
raphw joined #virtualJUG |
15:28 |
|
|
LizMaple joined #virtualJUG |
15:30 |
|
LizMaple |
hello ? |
15:32 |
|
|
danim8rix joined #virtualJUG |
15:32 |
|
|
Traivor joined #virtualJUG |
15:36 |
|
pdurbin |
LizMaple: hi |
15:39 |
|
|
buergich joined #virtualJUG |
15:43 |
|
|
Elban joined #virtualJUG |
15:44 |
|
Elban |
Hi here :) |
15:49 |
|
sjmaple |
hello :) |
15:49 |
|
shelajev_ |
hello everyone! |
15:50 |
|
shelajev_ |
is LizMaple the actual Liz Maple or is it an imposter to soften Simon? |
15:51 |
|
|
sandor_nemeth joined #virtualJUG |
15:54 |
|
millrossjez |
hi |
15:55 |
|
|
geoL joined #virtualJUG |
15:55 |
|
D-Spair |
Hidee ho neighbors! |
15:55 |
|
sandor_nemeth |
hi everyone |
15:57 |
|
LizMaple |
I'm real Oleg :) |
15:57 |
|
|
Kirk joined #virtualJUG |
15:57 |
|
|
carljokl joined #virtualJUG |
15:57 |
|
|
mambrujo joined #virtualJUG |
15:58 |
|
mambrujo |
Hi |
15:58 |
|
carljokl |
Bytecode time... |
15:58 |
|
Maldivia |
that's every day though :D |
15:58 |
|
|
LizMaple joined #virtualJUG |
15:59 |
|
shelajev_ |
hi Liz! |
15:59 |
|
shelajev_ |
good to know :) |
15:59 |
|
shelajev_ |
Simon had to get properly dressed now that you're watching |
15:59 |
|
|
cafencup joined #virtualJUG |
15:59 |
|
sandor_nemeth |
@shelajev :D |
16:00 |
|
sandor_nemeth |
we'll see that in a few minutes |
16:00 |
|
|
Pascal joined #virtualJUG |
16:00 |
|
|
frack joined #virtualJUG |
16:01 |
|
|
brunobat joined #virtualJUG |
16:01 |
|
|
lohit joined #virtualJUG |
16:01 |
|
|
sury joined #virtualJUG |
16:01 |
|
|
Guest15995 left #virtualJUG |
16:02 |
|
|
lambdai joined #virtualJUG |
16:02 |
|
D-Spair |
Heh! Simon's getting dressed up and here I sit in my ratty old DNS.com T-shirt... :stuck_out_tongue: |
16:02 |
|
|
danim8rix-tab joined #virtualJUG |
16:02 |
|
|
alobodzki joined #virtualJUG |
16:02 |
|
|
gravy joined #virtualJUG |
16:02 |
|
|
Darren joined #virtualJUG |
16:02 |
|
|
thexceptioncat joined #virtualJUG |
16:02 |
|
|
andreaiacono joined #virtualJUG |
16:03 |
|
|
gafnerpa_ch joined #virtualJUG |
16:03 |
|
|
charles-e joined #virtualJUG |
16:03 |
|
|
znurgl joined #virtualJUG |
16:03 |
|
|
PacoZar joined #virtualJUG |
16:03 |
|
thexceptioncat |
is the stream showing? |
16:03 |
|
|
markdavison joined #virtualJUG |
16:03 |
|
D-Spair |
thexceptioncat: Not yet |
16:03 |
|
sandor_nemeth |
not yet |
16:03 |
|
alobodzki |
I don't see anything yet |
16:03 |
|
|
jchochli_ joined #virtualJUG |
16:04 |
|
|
Integer-J joined #virtualJUG |
16:04 |
|
|
kervin joined #virtualJUG |
16:04 |
|
|
melonstorm joined #virtualJUG |
16:04 |
|
|
asasasafsaf joined #virtualJUG |
16:04 |
|
|
matteogales joined #virtualJUG |
16:04 |
|
|
jeffpoole joined #virtualJUG |
16:05 |
|
|
cafrjbr joined #virtualJUG |
16:05 |
|
alobodzki |
You don't look silly at all |
16:05 |
|
|
Matthew joined #virtualJUG |
16:05 |
|
|
IanG joined #virtualJUG |
16:05 |
|
thexceptioncat |
glad to know its not just me |
16:06 |
|
|
monksy joined #virtualJUG |
16:06 |
|
|
znurgl left #virtualJUG |
16:06 |
|
monksy |
the share buttons on the live stream just fill in the url to virtualjug and not the stream you're watching |
16:06 |
|
|
Elban joined #virtualJUG |
16:06 |
|
|
thexceptioncat left #virtualJUG |
16:06 |
|
|
znurgl joined #virtualJUG |
16:07 |
|
monksy |
if you were having issues with the stream just hit refresh |
16:07 |
|
monksy |
its going on now |
16:07 |
|
LizMaple |
Hey Si :o) |
16:08 |
|
|
twasyl joined #virtualJUG |
16:08 |
|
|
Henri joined #virtualJUG |
16:08 |
|
|
k3rv1n joined #virtualJUG |
16:08 |
|
|
carljokl joined #virtualJUG |
16:08 |
|
shelajev_ |
is the video on virtualjug.com/#live working? |
16:09 |
|
twasyl |
yes |
16:09 |
|
|
SNR joined #virtualJUG |
16:09 |
|
carljokl |
I had to refresh to get it working again |
16:09 |
|
sandor_nemeth |
yes |
16:09 |
|
LizMaple |
it's fine here |
16:09 |
|
sandor_nemeth |
both on virtualjug.com/#live and on youtube |
16:10 |
|
|
Kriss joined #virtualJUG |
16:10 |
|
sjmaple |
as mentioned, questions in here pls :) |
16:11 |
|
jchochli_ |
can't believe he left out clojure |
16:11 |
|
jchochli_ |
:) |
16:11 |
|
millrossjez |
and kotlin :) |
16:12 |
|
* D-Spair |
jumps on the bandwagon |
16:12 |
|
D-Spair |
And Jython and Ceylon and JavaScript |
16:12 |
|
millrossjez |
:) |
16:12 |
|
PacoZar |
and php |
16:12 |
|
|
PM771 joined #virtualJUG |
16:12 |
|
D-Spair |
PacoZar: YEP! |
16:13 |
|
|
rgra joined #virtualJUG |
16:13 |
|
D-Spair |
And all of the above are supported inside of Vert.x! |
16:13 |
|
Maldivia |
and that language poeple had to implement a compiler for in their compiler theory course at Universities :D |
16:13 |
|
millrossjez |
;) D-Spair not all on vert.x 3 yet I thought |
16:13 |
|
Henri |
golo? :-) |
16:13 |
|
D-Spair |
Which reminds me, sjmaple : When are we getting Tim Fox on for a session?!?! |
16:13 |
|
|
asasasafsaf left #virtualJUG |
16:13 |
|
D-Spair |
millrossjez: Not on v3 yet, but JRuby and Jython should be ready soon. |
16:14 |
|
PacoZar |
D-Spair: a vjug on vertx would be awesome. I am following the v3 with a lot of excitement |
16:14 |
|
D-Spair |
PacoZar: I did a session at Code PaLOUsa a few weeks ago using Vert.x 3 |
16:15 |
|
D-Spair |
PacoZar: https://github.com/JUGGL/codepalousa-vertx-chat |
16:15 |
|
PacoZar |
D-Spair: I saw your github code... Really neat! |
16:15 |
|
sjmaple |
D-Spair: I've been talking to Tim and he's still focus on Vert.x development... |
16:15 |
|
|
mselender joined #virtualJUG |
16:15 |
|
sjmaple |
... but he is on the list and will give a session when it's fully done |
16:15 |
|
D-Spair |
sjmaple: SWEET! |
16:15 |
|
D-Spair |
sjmaple: Yeah, Tim and Julien are VERY hard at work on getting 3.0.0 out the door. |
16:16 |
|
sjmaple |
yeh, once it's out he'll do it |
16:16 |
|
sjmaple |
:) |
16:16 |
|
sjmaple |
it's dragging it's feet :) |
16:16 |
|
PacoZar |
sjmaple:yeah! the release date would be this summer |
16:16 |
|
sjmaple |
its* |
16:16 |
|
shelajev_ |
if anyone wants some written materials on bytecode |
16:16 |
|
sjmaple |
it was supposed to be Dec! :) |
16:16 |
|
sjmaple |
last year |
16:16 |
|
shelajev_ |
we have a RebelLabs report on mastering it: http://zeroturnaround.com/rebellabs/rebel-labs-report-mastering-java-bytecode-at-the-core-of-the-jvm/ |
16:17 |
|
|
brunobat joined #virtualJUG |
16:17 |
|
PacoZar |
shelajev_:Thanks for the link! |
16:18 |
|
millrossjez |
thanks Oleg, I for one will be reading that |
16:18 |
|
shelajev_ |
you're welcome! it's also available in a neat PDF form |
16:18 |
|
|
TVP joined #virtualJUG |
16:18 |
|
shelajev_ |
http://pages.zeroturnaround.com/RebelLabs-AllReportLanders_MasteringJavaBytecodeattheCoreoftheJVM.html |
16:18 |
|
shelajev_ |
that's gated |
16:18 |
|
shelajev_ |
and if you leave your email there I'll write you an email once in a while |
16:18 |
|
TVP |
Guys joining from India, good session but not sure why my video quality is poor, any reasons? |
16:19 |
|
sjmaple |
click on the cog at the bottom and change your streaming quality |
16:19 |
|
twasyl |
What if the instruction is return 2* 3 + 1 ? |
16:19 |
|
D-Spair |
TVP, try manually selecting 720p in the hangout settings. |
16:20 |
|
PacoZar |
so bytecode is very close to assembler? |
16:20 |
|
shelajev_ |
hi twasyl! |
16:21 |
|
|
Traivor joined #virtualJUG |
16:21 |
|
twasyl |
hi Oleg :) |
16:21 |
|
TVP |
Was seeing in this page, noticed YouTube link thanks all |
16:21 |
|
|
sol908 joined #virtualJUG |
16:21 |
|
shelajev_ |
yeah, it has pretty basic math operations |
16:21 |
|
|
Elban joined #virtualJUG |
16:21 |
|
twasyl |
Yeah |
16:21 |
|
|
KotaiVictor joined #virtualJUG |
16:21 |
|
shelajev_ |
and stack operation operations |
16:21 |
|
twasyl |
Hi SImon |
16:22 |
|
|
dove joined #virtualJUG |
16:22 |
|
monksy |
a question for the end of the talk: Are there any interesting corner cases that you've found in the JVM? |
16:23 |
|
PacoZar |
Great, thanks! |
16:23 |
|
sjmaple |
the JVM has more corners than middle bits :) |
16:23 |
|
Maldivia |
monksy: hehe -- there are _many_ corner cases, depending on version and vendor :D |
16:24 |
|
sjmaple |
I bet there are some interesting answers though |
16:24 |
|
monksy |
I'm just interested in the interesting ones that he has found... but thats a question for him after the presentation |
16:24 |
|
sjmaple |
I'll ask at the end, I'm sure Rafa has some amusing stories |
16:24 |
|
melonstorm |
Well, this is interesting. Reminds me of Python. |
16:24 |
|
monksy |
thanks! |
16:25 |
|
PacoZar |
melonstorm:why reminds you of Python? |
16:25 |
|
melonstorm |
PacoZar, Python's OOP model requires your class's instance methods to take this as the first argument. |
16:26 |
|
PacoZar |
melonstorm:oh! thanks! |
16:26 |
|
PacoZar |
didn't know that about Python |
16:28 |
|
twasyl |
ILOAD_1 is only for an int primitive type or also for Objects? And when lambdas are passed in parameters? |
16:28 |
|
|
sudhcha joined #virtualJUG |
16:28 |
|
Maldivia |
twasyl: ILOAD_1 would be for int primitives, ALOAD is for object types |
16:28 |
|
twasyl |
Thanks |
16:29 |
|
Maldivia |
twasyl: similar LLOAD for long, DLOAD for double, FLOAD for float |
16:29 |
|
twasyl |
got it, tahnks |
16:29 |
|
twasyl |
thanks* |
16:32 |
|
twasyl |
How the byte code manages the unboxing/outboxing? Does it automatically add operations like I2S? |
16:33 |
|
twasyl |
inboxing* |
16:33 |
|
Maldivia |
boxing/unboxing is done by the compiler, by calling Integer.valueOf |
16:33 |
|
carljokl |
I would imagine autoboxing is syntactic sugar |
16:33 |
|
Maldivia |
(and similar methods for other types) |
16:33 |
|
carljokl |
Yes the compiler will expand out the code |
16:35 |
|
|
mambrujo joined #virtualJUG |
16:35 |
|
|
dmitrygusev joined #virtualJUG |
16:37 |
|
Maldivia |
String values :) |
16:39 |
|
rgra |
Try Map<String,Integer> map....; map.put("test, null); int i = map.get("test"); |
16:39 |
|
rgra |
Gives you an NPE because compiler translates it to int i = map.get("test").intValue() |
16:39 |
|
|
Errorneous joined #virtualJUG |
16:39 |
|
|
mohan joined #virtualJUG |
16:40 |
|
sjmaple |
hey Rabea :) |
16:40 |
|
sjmaple |
that's a really interesting bug! |
16:40 |
|
Maldivia |
it's not a bug... you're trying to dereference null |
16:41 |
|
sjmaple |
no you're not |
16:41 |
|
sandor_nemeth |
@sjmaple .. I'd say that's a feature, not a bug |
16:41 |
|
sjmaple |
Java is trying to do that :) |
16:41 |
|
sjmaple |
the problem is null can't be assigned to int ;) |
16:41 |
|
rgra |
I have it in my tests when hiring people... most of them don't find this hidden NPE in this case |
16:41 |
|
rgra |
Seems like you two are having a good time in Boston :) |
16:42 |
|
Guest88326 |
What is the newer 'stackmap' used for ? |
16:42 |
|
|
mselender joined #virtualJUG |
16:42 |
|
Maldivia |
Guest88326: faster/"better" verification of classes |
16:43 |
|
Guest88326 |
Meaning ? |
16:44 |
|
Maldivia |
Guest88326: before the VM loads a class, it verifies that the bytecode is sane -- stackmaps is used there to help that verification, by explicitly stating what types locals/stacks contain at various points in your code |
16:44 |
|
|
paltun joined #virtualJUG |
16:45 |
|
twasyl |
Is INVOKEDYNAMIC an improvement of INVOKEVIRTUAL? |
16:45 |
|
Maldivia |
totally different := |
16:46 |
|
|
mustafap joined #virtualJUG |
16:46 |
|
|
TVP joined #virtualJUG |
16:46 |
|
Guest88326 |
Thanks |
16:46 |
|
sjmaple |
yw |
16:47 |
|
sjmaple |
twasyl afaik, invoke virtual is primarily used for constructor methods |
16:47 |
|
TVP |
If everything is represented as bytes , how does jVM know which byte is from constant pool etc.? |
16:47 |
|
twasyl |
thx |
16:47 |
|
Maldivia |
sjmaple: no no.... invoke virtual is normal method calls, invokespecial is constructor/super/private |
16:47 |
|
sjmaple |
oh, yeh, that's right, got them mixed up! |
16:48 |
|
shelajev_ |
here's a neat resourse on the JVM instructions: http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings |
16:48 |
|
twasyl |
@sjmaple: too much invoke |
16:48 |
|
twasyl |
;) |
16:48 |
|
sjmaple |
haha |
16:48 |
|
twasyl |
thx Oleg |
16:48 |
|
Maldivia |
twasyl: invokevirtual, invokeinterface, invokespecial, invokeinterface, invokedynamic... only 5 :) |
16:48 |
|
sjmaple |
TVP, will ask in a bit... |
16:49 |
|
Maldivia |
oh, I had invokeinterface twice, replace one with invokestatic :D |
16:50 |
|
alobodzki |
also final methods |
16:51 |
|
Maldivia |
final methods are invokevirtual as well (unless they are private or static) |
16:51 |
|
twasyl |
any invokerebellabs? (joking) |
16:52 |
|
|
SNR joined #virtualJUG |
16:53 |
|
|
Damn joined #virtualJUG |
16:53 |
|
Maldivia |
twasyl: not yet, but go champion a JEP to get one :) |
16:53 |
|
sjmaple |
don't joke, create a JEP |
16:53 |
|
twasyl |
:) |
16:53 |
|
sjmaple |
haha |
16:54 |
|
twasyl |
maybe stupid question: Nashorn uses INVOKEDYNAMIC for calling JS script that uses Java classes? |
16:55 |
|
Maldivia |
twasyl: lambdas in java8 is INVOKEDYNAMIC |
16:55 |
|
PM771 |
How is method overloading handled? |
16:57 |
|
rgra |
Here something on Nashorn and invokedynamic: http://java.dzone.com/articles/how-java-8-handles-javascript |
16:57 |
|
Maldivia |
PM771: they have different signatures in the JVM so it sees them as completely different method, and as shown earlier, the compiler writes directly to bytecode which one to use |
16:58 |
|
twasyl |
@rgra: great thanks |
16:59 |
|
carljokl |
Are there downsides or risks from using Invoke Dynamic? |
17:00 |
|
rgra |
the way lambdas are implemented also makes it possible to easily compile Java 8 to Java 7 bytecode: https://github.com/orfjackal/retrolambda |
17:00 |
|
rgra |
Really interesting! |
17:05 |
|
alobodzki |
Shouldn't Liskov substitution be less or equally restrictive? |
17:09 |
|
twasyl |
That's useful for mocking |
17:09 |
|
rgra |
But for mocking there's already libraries which hide all these details for you in a mocking oriented API |
17:09 |
|
twasyl |
yep |
17:09 |
|
twasyl |
mockito and friends |
17:10 |
|
shelajev_ |
but sometimes you want to generate things on the fly during runtime |
17:10 |
|
twasyl |
like JRebel right? |
17:10 |
|
|
jchochli_ left #virtualJUG |
17:10 |
|
shelajev_ |
:) like XRebel, Chronon, any profiler etc |
17:11 |
|
shelajev_ |
even when you just want to generate a proxy |
17:11 |
|
shelajev_ |
for a model class to make it Hibernate aware :) |
17:11 |
|
rgra |
BTW Oleg I have to correct myself. Favorite open source projekt: Lombok :) |
17:11 |
|
rgra |
Which does also use runtime code generation to patch Eclipse for example |
17:11 |
|
shelajev_ |
thanks, Rabea :) I'll update the recap post! :D |
17:12 |
|
Maldivia |
lombok isn't runtime code generation, it does it at compile time with annotation parser |
17:13 |
|
rgra |
Yes, but I does patch eclipse to allow refactoring etc. on several locations |
17:14 |
|
Maldivia |
ah, ok |
17:14 |
|
rgra |
https://github.com/rzwitserloot/lombok/blob/master/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java |
17:15 |
|
Maldivia |
rgra: missed the fact you were talking about the eclipse plugin, thought you were talking about lombok itself :) |
17:17 |
|
rgra |
What is the most amazing example you have seen implemented with ByteBuddy, Rafael? |
17:17 |
|
carljokl |
Now Dalvik is superseded by ART |
17:21 |
|
D-Spair |
Looks like implementing AOP-style programming in Bytebuddy would be pretty awesome! |
17:21 |
|
PacoZar |
http://bytebuddy.net/#/ |
17:23 |
|
|
markdavison joined #virtualJUG |
17:23 |
|
k3rv1n |
Question : Is there an "Interactive dissembler" like "IDA Pro" for Java? |
17:24 |
|
D-Spair |
Thanks Rafael! |
17:24 |
|
twasyl |
Thanks Rafael !!! |
17:25 |
|
znurgl |
it was really awesome, thanks! |
17:25 |
|
|
PeTeC joined #virtualJUG |
17:25 |
|
melonstorm |
Thanks, Rafael~ |
17:27 |
|
shelajev_ |
k3rv1n, I think you're looking for JITWatch |
17:27 |
|
shelajev_ |
not sure if it's like IDA Pro |
17:28 |
|
PacoZar |
Question: How would you recommend to handle interop with C dlls? |
17:28 |
|
k3rv1n |
thanks, not really. |
17:29 |
|
|
markdavison joined #virtualJUG |
17:29 |
|
k3rv1n |
it would convert *.class to bytecode. Then it would allow modifying that bytecode in memory. It also lets you step through execution |
17:30 |
|
|
buergich left #virtualJUG |
17:31 |
|
k3rv1n |
You can then save your modified bytecode as *.class files. So basically, view, debug/step, modify, save. All in bytecode and *.class files. |
17:32 |
|
k3rv1n |
IDA Pro : https://www.hex-rays.com/products/ida/ |
17:32 |
|
|
dmitrygusev joined #virtualJUG |
17:33 |
|
Maldivia |
k3rv1n: problem is, that java debugging is based on lines, not stepping individual instructions, so debugging directly in bytecode isn't supported by the JVM |
17:34 |
|
|
Donnerbart joined #virtualJUG |
17:34 |
|
k3rv1n |
I see thanks. |
17:35 |
|
melonstorm |
Does anyone have a link to the book? |
17:35 |
|
twasyl |
bye bye guys |
17:36 |
|
twasyl |
was great !!! |
17:36 |
|
raphw |
ill be here after the interview |
17:36 |
|
raphw |
thank you for attending! |
17:36 |
|
Maldivia |
enginnering solution... duct tape and wd40 can solve everything |
17:36 |
|
Donnerbart |
thx a lot for the great session! |
17:36 |
|
|
rgra left #virtualJUG |
17:38 |
|
|
Traivor left #virtualJUG |
17:41 |
|
|
markdavison joined #virtualJUG |
17:42 |
|
D-Spair |
We should totally do what Rafael suggested and start an open-source security framework project using Byte Buddy and annotations... |
17:44 |
|
D-Spair |
It would be fantastic... Perhaps it could wrap around some existing security/AAA tools like Shiro or other to do the external bits, but then implement some annotations and exception classes to allow for wrapping methods which have cross-cutting concerns... |
17:50 |
|
sjmaple |
Maldivia: just a hammer short of the full set... btw, do I know you? ;) I feel like I do! :D |
17:50 |
|
Maldivia |
:D |
17:50 |
|
Maldivia |
btw Rafael -- are you attending GeekOut this year? |
17:51 |
|
sjmaple |
no, I don't think he is (sad-face) |
17:51 |
|
sjmaple |
maybe as a speaker next year :) |
17:57 |
|
PacoZar |
Hey guys is the bytecode modified in memory by the jvm/jit? |
17:59 |
|
Maldivia |
the jit doesn't modify bytecode, it compiles it into machine code |
17:59 |
|
Maldivia |
if you redefine the class at runtime, then yes, the jvm modifies the bytecode |
18:00 |
|
Maldivia |
and you cannot be 100% sure that the bytecode you get from the JVM via the Instrumentation API is the same as you would get form loading from .class file on disk/jar |
18:01 |
|
sjmaple |
replay link is here http://virtualjug.com/java-byte-code-in-practice/ |
18:01 |
|
sjmaple |
with slides |
18:02 |
|
Maldivia |
(especially attributes are sometimes list when getting the bytes from the JVM) |
18:02 |
|
Maldivia |
lost* |
18:03 |
|
PacoZar |
Maldivia:cool thanks! |
18:03 |
|
Maldivia |
and hint: do not try to redefine a class that uses invokedynamic, if you're running java7 :D |
18:05 |
|
|
jeffpoole joined #virtualJUG |
18:11 |
|
|
markdavison joined #virtualJUG |
18:16 |
|
raphw |
thanks again for attending, i am still here a bit, thanks for answering questions of each other in the mean time |
18:16 |
|
raphw |
is there anything that was not clear from the session? anything you want to know? |
18:16 |
|
|
markdavison joined #virtualJUG |
18:16 |
|
raphw |
i am happy to help |
18:20 |
|
raphw |
even better, then i get to go home! see you guys arround, thanks for coming to this talk! |
18:23 |
|
|
dmitrygusev joined #virtualJUG |
18:32 |
|
|
millrossjez joined #virtualJUG |
18:36 |
|
|
millrossjez joined #virtualJUG |
18:40 |
|
|
millrossjez joined #virtualJUG |
18:45 |
|
|
millrossjez joined #virtualJUG |
18:52 |
|
|
millrossjez joined #virtualJUG |
19:00 |
|
|
markdavison joined #virtualJUG |
19:03 |
|
|
millrossjez joined #virtualJUG |
19:11 |
|
|
millrossjez joined #virtualJUG |
19:15 |
|
|
millrossjez joined #virtualJUG |
19:30 |
|
PacoZar |
Thanks raphw! |
19:49 |
|
|
LizMaple joined #virtualJUG |
20:25 |
|
|
millrossjez joined #virtualJUG |
20:46 |
|
|
millrossjez joined #virtualJUG |
20:51 |
|
|
PacoZar joined #virtualJUG |
21:14 |
|
|
spodge joined #virtualJUG |
21:15 |
|
spodge |
HAI! |
21:18 |
|
|
millrossjez joined #virtualJUG |
21:46 |
|
|
shelajev joined #virtualJUG |
22:56 |
|
|
PM771 joined #virtualJUG |