Time |
S |
Nick |
Message |
00:18 |
|
Quest |
now edit 3 |
00:34 |
|
|
cleva joined ##javaee |
00:56 |
|
pdurbin |
this is a great listen, posted about a month ago. even has a full transcript: JSFCentral: JSFCentral Episode 31: Ed Burns, JSF Spec Lead, discusses JSF 2.2 and Java EE 7 - http://content.jsfcentral.com/c/journal/view_article_content?cmd=view&groupId=35702&articleId=97595&version=1.9#.UoVxJcMYycM |
00:58 |
|
pdurbin |
it was interesting that this feature came from another proposal: The Java EE 7 Tutorial:Resource Library Contracts | Java EE Documentation - http://docs.oracle.com/javaee/7/tutorial/doc/jsf-facelets008.htm |
00:58 |
|
pdurbin |
"But that other name was multi-templating. We took a subset of that idea and called it Resource Library Contracts because we didn't want to take that name if we were only going to do a subset of the full idea." |
01:00 |
|
pdurbin |
I guess this was the original idea: [#JAVASERVERFACES_SPEC_PUBLIC-971] Multi-templating System - Java.net JIRA - https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-971 |
01:00 |
|
sfisque |
nifty |
01:00 |
|
sfisque |
finally adding "skinning" into the API |
01:00 |
|
|
mexitech joined ##javaee |
01:05 |
|
pdurbin |
"EL 3.0 was really exciting, bringing a lot of the power of lambda expressions to Java EE 7 before it even made it into SE 8.0, so that's really exciting." |
01:06 |
|
sfisque |
how would lambdas work in EL? |
01:07 |
|
sfisque |
i'm guessing it's in EE7 because closures were originally slated for SE7 |
01:07 |
|
pdurbin |
"Lambda expression (section 1.20 of EL 3.0 spec)" -- https://weblogs.java.net/blog/swchan2/archive/2013/07/01/standard-deviation-illustration-expression-language-30-servlet-environment |
01:08 |
|
sfisque |
OH, i was thinking EL in the context of a facelet, they're talking EL evaluated directly in java code. bleh |
01:09 |
|
sfisque |
there went type safety out the window |
01:45 |
|
|
kobain joined ##javaee |
02:11 |
|
|
tommmied joined ##javaee |
03:25 |
|
|
sfisque joined ##javaee |
03:25 |
|
|
sfisque1 joined ##javaee |
03:52 |
|
|
nb-ben_h joined ##javaee |
03:54 |
|
|
balo joined ##javaee |
05:33 |
|
|
dangertools joined ##javaee |
05:33 |
|
|
dangertools joined ##javaee |
07:10 |
|
|
tommmied joined ##javaee |
08:03 |
|
|
weyer joined ##javaee |
09:56 |
|
|
neuro_sys joined ##javaee |
10:26 |
|
|
sajjadg joined ##javaee |
11:40 |
|
|
SoniEx2 joined ##javaee |
11:40 |
|
|
SoniEx2 joined ##javaee |
11:56 |
|
|
MegaMatt joined ##javaee |
12:17 |
|
|
sajjadg joined ##javaee |
14:08 |
|
sess |
jsf really screws me up at points |
14:09 |
|
sess |
now it renders the wrong data after an ajax post |
14:09 |
|
sess |
makes NO sense at all |
14:14 |
|
SoniEx2 |
ok I give up someone help me: https://github.com/SoniEx2/TheModernClassicGame/tree/master/src/com/github/soniex2/tmcg/ym2612 |
14:29 |
|
|
Naros joined ##javaee |
14:30 |
|
Fubar^ |
SoniEx2: What do you need help with? |
14:30 |
|
SoniEx2 |
everything D: |
14:40 |
|
|
Naros joined ##javaee |
14:46 |
|
|
Quest joined ##javaee |
14:51 |
|
|
weyer joined ##javaee |
14:56 |
|
SoniEx2 |
is this good code: https://github.com/SoniEx2/TheModernClassicGame/blob/master/src/com/github/soniex2/tmcg/ym2612/YM2612.java |
14:56 |
|
SoniEx2 |
well |
14:56 |
|
SoniEx2 |
it's more like pseudocode or something... |
14:56 |
|
SoniEx2 |
but still |
14:57 |
|
SoniEx2 |
(I'm trying to avoid boilerplate code btw) |
14:58 |
|
semiosis |
SoniEx2: i use project lombok to avoid writing common boilerplate code |
14:58 |
|
semiosis |
javaeebot: lucky project lombok |
14:58 |
|
javaeebot |
semiosis: http://projectlombok.org/ |
15:01 |
|
SoniEx2 |
well I'm just trying to avoid repeating the same code 6 times and also trying to reuse objects |
15:03 |
|
|
gt_ joined ##javaee |
15:09 |
|
sess |
ok I got some weird shit here: |
15:09 |
|
sess |
#{s.name}<h:inputText value="#{s.name}"/> |
15:09 |
|
sess |
after a post, these displays different values |
15:09 |
|
sess |
how is this possible |
15:33 |
|
SoniEx2 |
semiosis: can lombok do "int filtering"? (aka "i &= (1 << bits) - 1") |
15:34 |
|
semiosis |
doubt it but feel free to read the docs |
15:34 |
|
semiosis |
they're pretty easy to read |
15:34 |
|
SoniEx2 |
yeah then it's not gonna help much... |
15:34 |
|
semiosis |
heh, well that's hardly "boilerplate" code |
15:35 |
|
semiosis |
usually when people say boilerplate they mean getters & setters etc |
15:35 |
|
SoniEx2 |
it is when you're writing a YM2612 emulator |
15:35 |
|
semiosis |
yeah ok sure make up your own defintiions :) |
15:35 |
|
semiosis |
http://en.wikipedia.org/wiki/Boilerplate_code |
15:36 |
|
semiosis |
want to use that term for something else, fine, but no one will know what you're talking about |
15:36 |
|
SoniEx2 |
boilerplate code is code that's repeated a lot with no modification |
15:36 |
|
semiosis |
yes but not all code that is repeated a lot with no modification is boilerplate code |
15:37 |
|
semiosis |
in any case, you probably want a function, right? |
15:39 |
|
semiosis |
maybe a for loop & a function |
15:40 |
|
|
kobain joined ##javaee |
15:40 |
|
|
weyer joined ##javaee |
15:57 |
|
|
weyer joined ##javaee |
16:16 |
|
|
weyer joined ##javaee |
17:14 |
|
|
weyer joined ##javaee |
17:30 |
|
Naros |
So I'm trying to refactor a bit of code but I'm a bit stumped on a good approach, perhaps you guys can help. |
17:30 |
|
Naros |
We have this class called AbstractAttachment that we use to extend various document-specific attachment entity classes. |
17:31 |
|
Naros |
The subclass basically just holds a reference to the parent document that owns the attachment. |
17:31 |
|
Naros |
Since the parent entity's PK varies, some are single PK references and others are a composite PK, we can't store these things in a common entity class. |
17:32 |
|
whartung |
so it's an AbstractAttachment<Type> kind of class? |
17:33 |
|
Naros |
WorkOrderAttachment extends AbstractAttachment |
17:33 |
|
Naros |
abstract AbstractAttachment implements Serializable |
17:33 |
|
Naros |
all WorkOrderAttachment has is a property called WorkOrder with it's mapping to the parent WorkOrder entity |
17:34 |
|
whartung |
if you did AbstractAttachment<T> you could have public abstract T getKey() |
17:34 |
|
whartung |
or somethin glike that |
17:35 |
|
Naros |
Hm |
17:36 |
|
Naros |
this is where I think using the DAO pattern is kinda making a mess of this |
17:40 |
|
|
jieryn joined ##javaee |
17:40 |
|
|
jieryn joined ##javaee |
17:51 |
|
sfisque |
why would getKey return this.getClass(), wouldnt it depend on the type of PK, not the enclosing type? |
17:52 |
|
Quest |
does any one have chrome here? |
17:52 |
|
whartung |
on my truck, there's some shiny bits |
17:53 |
|
Quest |
got a pretty unusual problem. works in firefox though. not in chrome. http://stackoverflow.com/questions/20004009/using-www-subdomain-causes-404-error |
17:55 |
|
Naros |
I'm just trying to avoid having so much code bloat with these classes |
17:55 |
|
Naros |
cause it leads to bloat at the DAO and Service tiers. |
17:55 |
|
Naros |
when the only difference here is the owner key |
17:56 |
|
Naros |
findActiveByOwnerKey(Type ownerKey), findDisabled(), findById(Long id) are the only exposed APIs |
17:56 |
|
sfisque |
entities are not bloat. keep them simple and plain. the less "magic" your entities perform, the happier you will be. |
17:56 |
|
whartung |
You can store the key as an object in the abstract class, and then implement the T getKey() and setKey(T key) methods in the conccrete ones |
17:57 |
|
Naros |
whartung: aye |
17:57 |
|
whartung |
but I agree with sfisque |
17:57 |
|
whartung |
keep them stupid |
17:57 |
|
whartung |
hidden stuff is lost |
17:58 |
|
Naros |
yah i just dislike someone going, we want all attachments to have this and I have 20 different modules to change |
17:58 |
|
sfisque |
if you remove all the annotations, an entity should be a brute force simple pojo |
17:58 |
|
Naros |
where each module has the views to change, the actions to change, the services to change, and the DAOs :/ |
17:58 |
|
sfisque |
you can always build a proxy or factory to make the attachments "magical" |
17:59 |
|
sfisque |
or a decorator pattern |
18:00 |
|
Quest |
whats better List myList = new ArrayList() or List<SomeObject> mylist = new ArrayList<SomeObject>() or not using List at all and just using ArrayLIst ... mylist = new ArrayLIst() ? |
18:00 |
|
Naros |
Aye, but I'm not sure any of those would reduce the repeated code bloat I'd see at the various tiers honestly. |
18:00 |
|
whartung |
the second is better Quest |
18:00 |
|
Naros |
^ |
18:00 |
|
jieryn |
List<SomeObject> myList = new ArrayList<>(); |
18:00 |
|
Quest |
hm |
18:01 |
|
whartung |
is that 7 or 8 jieryn ? |
18:01 |
|
jieryn |
7 |
18:01 |
|
Quest |
using <generic> with Interface LIst.. why? |
18:01 |
|
whartung |
sweet |
18:01 |
|
sfisque |
Quest, add an initial size if u expect it to get big, otherwise you're going to garbage collect that collection many times |
18:01 |
|
whartung |
Use the highest level of abstraction as you can |
18:01 |
|
Quest |
sfisque, hm |
18:02 |
|
sfisque |
unless you have no clue on size range, you should always prime the collection with a "sane size" |
18:02 |
|
Quest |
whartung, why use abrstraction? so that it can be molded in future? |
18:02 |
|
sfisque |
swap implementations |
18:02 |
|
Quest |
hm. |
18:02 |
|
jieryn |
priming it with a sane size, i think someone once warned us about Premature Optimization |
18:02 |
|
Quest |
see |
18:02 |
|
whartung |
Because computer programming is ALL ABOUT abstraction. That's ALL WE DO. |
18:02 |
|
jieryn |
smells exactly like that |
18:02 |
|
Quest |
got it. and List gives us more methods that ArrayList gives |
18:02 |
|
jieryn |
unless you know there will only ever be one element, ... |
18:02 |
|
sfisque |
one day you use ArrayList, day two, you use LinkedHashSet |
18:03 |
|
sfisque |
of course it does Q, it's an impl |
18:03 |
|
whartung |
the lower the abstraction, the higher the coupleing |
18:03 |
|
jieryn |
then just use List<SomeObject> myList = Collections.singletonList(mySomeObject); |
18:03 |
|
sfisque |
sometimes you need to buy the farm (reference the concrete class), sometimes you can rent (use the interface) |
18:03 |
|
Quest |
whartung, sfisque ok. now why use <generics>, thats not abstraction if I explicitly tell it that tis a <String> list . I cant change it in future. |
18:04 |
|
jieryn |
troll |
18:04 |
|
sfisque |
compiler syntax sugar to aid in writing better type safe code |
18:04 |
|
Quest |
sfisque, me? |
18:04 |
|
whartung |
because writing code like this suck: for (String s : (List<String>)yourStringList) { … } |
18:05 |
|
whartung |
String s = (String)yourStringList.get(0); |
18:05 |
|
whartung |
more suck |
18:05 |
|
sfisque |
if you compile two objects, one with and one without the (yes Q) <Type> stuff, they are bytewise identical. they do not produce any bytecode. it's purely to write better type safe code |
18:05 |
|
zoot |
compile time errors <3 |
18:05 |
|
whartung |
we'e had java 5 for almost 10 years |
18:06 |
|
whartung |
about time to pick it up, methinks |
18:06 |
|
zoot |
you are 10 years |
18:06 |
|
zoot |
:P |
18:06 |
|
whartung |
I wish |
18:07 |
|
pdurbin |
stupid tomcat logging |
18:10 |
|
Quest |
if <> is not mentioned. it will be more abstract. right whartung ? |
18:10 |
|
acuzio |
nope |
18:11 |
|
Quest |
why use<> . why not just List mylist = new ArrayList |
18:11 |
|
acuzio |
Quest: sfisque explained it well enough above |
18:11 |
|
whartung |
The same reason we don't just use Object everywhere. |
18:12 |
|
Quest |
acuzio, whartung did. with the subject of "sucky code" |
18:12 |
|
Quest |
whartung, casting problem? |
18:12 |
|
acuzio |
No sfisque also did |
18:12 |
|
whartung |
do what you want, you will anyway. |
18:12 |
|
* Quest |
scrolls up |
18:13 |
|
Quest |
acuzio, he explained why use interfaces. not for why use <>s |
18:14 |
|
sess |
Quest: you use generics for 1. not having to cast every time you want to use the objects, and 2. it specifies intent much clearer and forces you to not mix classes in the same list |
18:14 |
|
acuzio |
Quest: i think you are missing the larger point - did you understand what you need to do and why ? |
18:14 |
|
sess |
simply put, it allows you to make better code with basicly no cost |
18:16 |
|
|
sajjadg joined ##javaee |
18:16 |
|
Quest |
sess, hm |
18:16 |
|
sess |
Quest: imagine having to use only Objects when coding |
18:16 |
|
sess |
Object o = "some string" |
18:16 |
|
sfisque |
javascript!!!! |
18:17 |
|
sess |
thats what untyped lists feels like to me |
18:17 |
|
Quest |
so at this point we should not be abstract. this will result in 1. casting the list item every time. and 2. will not show clear intents of coder |
18:17 |
|
sess |
sfisque: the horror |
18:17 |
|
sess |
Quest: generics is not about abstraction |
18:17 |
|
sess |
it's about good restrictions |
18:17 |
|
Quest |
hm |
18:18 |
|
Quest |
why impose restrictions? |
18:18 |
|
sess |
you achieve abstraction by using "higher" classes, i.e List instead of ArrayList |
18:18 |
|
sess |
because restrictions reduces risk of bugs |
18:18 |
|
Quest |
so the argument supplier might not just give some thing that might not be expected? |
18:18 |
|
sess |
and makes your intent clearer |
18:18 |
|
Quest |
hm |
18:18 |
|
Quest |
got it |
18:18 |
|
sess |
take a method signature: Object doStuff(Object o) |
18:18 |
|
sess |
very unrestricted |
18:18 |
|
sess |
but you have no clue what it does |
18:19 |
|
sess |
restricting the parameter to String for example, helps usage by introducing restrictions |
18:19 |
|
sess |
and reducing the potential functionality with a proper name |
18:19 |
|
sess |
same concept |
18:19 |
|
sess |
god that was a horrible example :/ |
18:20 |
|
whartung |
this really isn't the forum for a discussion about formal type systems |
18:20 |
|
pdurbin |
whartung: why not? ;) |
18:20 |
|
Quest |
so List list = .... should NEVER be used? rather List<someOjbj> list = .. |
18:20 |
|
Quest |
hm |
18:20 |
|
sfisque |
hold on. Quest ask the question but pose it from the standpoint of attributes of a SFSB :P |
18:20 |
|
* Quest |
wonders if sess had a javascript background too |
18:20 |
|
Quest |
so List list = .... should NEVER be used? rather List<someOjbj> list = .. |
18:21 |
|
Quest |
sfisque, whartung semiosis my confustion is now cleared up. thanks |
18:21 |
|
Quest |
despite i sometimes get confused on very basic stuf |
18:21 |
|
semiosis |
\o/ |
18:21 |
|
sfisque |
not Never Q, judiciously. sometimes you don't care. most times y ou do |
18:21 |
|
sfisque |
sometimes i want to hold an aggregate in a List, most times, i want that list to be uniform |
18:21 |
|
whartung |
…where it immediately left the rails, jumped the track and plunged in to the ravine to burn a fiery death |
18:21 |
|
Quest |
sfisque, k |
18:21 |
|
sess |
Quest: i hate javascript :v |
18:21 |
|
* sfisque |
nods at sess |
18:21 |
|
sfisque |
javascript makes the baby java cry |
18:22 |
|
sess |
my college has a book "javascript - the good parts". It's very thin, like 100 pages |
18:22 |
|
sess |
i snicker every time i see it |
18:22 |
|
sess |
and wonder where part 2 is |
18:22 |
|
sfisque |
that many pages? |
18:22 |
|
sfisque |
javascript - the good parts, by sfisque …. 3 pages |
18:23 |
|
sfisque |
2 blank pages, with a title page |
18:23 |
|
sfisque |
:P |
18:23 |
|
sess |
dont forget the page that says THE END |
18:23 |
|
sfisque |
ROFL |
18:23 |
|
Quest |
ok. offtopic: programmers of cobol and fortron are rare but very hugely paid if one is found to a needing company (fewer needing companies though). My question is that are there any such languages that are not soo old like fortron and cobol , (modern languages) but of which , coders are less in market and there is a fine demand too? and the coders are paid high too? |
18:24 |
|
whartung |
whartungs books of Java Debugging, Page 1 "It's a CLASSPATH problem" Page 2: Advanced Topic: See Page 1" |
18:24 |
|
sfisque |
ROFL |
18:24 |
|
whartung |
FortrAn |
18:24 |
|
sfisque |
ADA |
18:25 |
|
sfisque |
C |
18:25 |
|
sfisque |
intel hires tons of C devs for device drivers |
18:25 |
|
sess |
Quest: the market is self regulating, boring and/or hard languages will pay more since less people want anything to do with them |
18:25 |
|
whartung |
Fortran 2003 is younger than Java |
18:25 |
|
sess |
picking one due to higher pay since like a shortcut to an awful life |
18:26 |
|
whartung |
so is Fortran 95 |
18:26 |
|
sess |
sounds* |
18:26 |
|
Quest |
sfisque, ROFL ? |
18:26 |
|
whartung |
if you want the monies, go to wall street and get in to the financial sector. |
18:26 |
|
Quest |
whartung, sfisque fortran and ada are ancient and hard to debug |
18:26 |
|
whartung |
you've tried it? |
18:27 |
|
Quest |
sfisque, there are alot of guys who are expert in C in market |
18:27 |
|
whartung |
How much Ada have you written? |
18:27 |
|
sfisque |
aye but both languages have strong niches. ada = DOD, fortran = aerospace |
18:27 |
|
whartung |
Ada is amazing, just too formal for me |
18:27 |
|
sess |
work in an oil platform |
18:27 |
|
Quest |
whartung, oh ok. fortran 2003 |
18:27 |
|
sess |
make millions |
18:27 |
|
sfisque |
ada codes like it's target audience, rigid and militaristic :P |
18:28 |
|
whartung |
COBOL 2002 |
18:28 |
|
sfisque |
java8, not even born yet |
18:28 |
|
whartung |
Ada 95 |
18:28 |
|
Quest |
what was the first language known |
18:28 |
|
whartung |
Gaelic |
18:29 |
|
Quest |
ADA or assembla |
18:29 |
|
whartung |
The oldest language in any reasonably common use today is Lisp |
18:29 |
|
Quest |
sess, oil platform ? what kind of work? |
18:30 |
|
Quest |
whartung, hm |
18:30 |
|
sfisque |
java10, only a glimmer in some PMs eye |
18:30 |
|
sfisque |
java17, no code, just talk into the microphone and it builds what you want |
18:30 |
|
sfisque |
java18, looks alot like java1.0, runs on broken computers left over from the machine revolution fueled by java17 |
18:31 |
|
whartung |
actually, it might be fortran |
18:31 |
|
whartung |
Fortran is 57, Lisp is 58 |
18:31 |
|
sess |
Quest: they probably need coders aswell |
18:32 |
|
whartung |
Better to be an EMT - lots of down time, and then bouts of anxiety |
18:32 |
|
Quest |
hm |
18:38 |
|
sfisque |
i would say either fortran or C |
18:38 |
|
sfisque |
C dates to the late 60's |
18:38 |
|
sfisque |
1957, fortran |
18:40 |
|
Quest |
what was the first language made |
18:41 |
|
sfisque |
machine code, punch cards containing holes that mapped to hex codes |
18:41 |
|
sfisque |
or switches in a panel |
18:41 |
|
whartung |
no, punch cards for looms in the 1800's |
18:41 |
|
sfisque |
depending on the "input device" |
18:41 |
|
whartung |
and Charles Babbage |
18:41 |
|
sfisque |
ah, there ye go |
18:42 |
|
sfisque |
i hadnt concidered the babbage machine |
18:42 |
|
sess |
i bet someone invented a programming language in the 1500s or so |
18:42 |
|
sess |
but it had nothing to run on |
18:42 |
|
sess |
:D |
18:42 |
|
whartung |
those wacky monks |
18:42 |
|
whartung |
bored bored bored bored lol |
18:42 |
|
Quest |
hm |
18:43 |
|
whartung |
the googles knows all |
18:43 |
|
whartung |
http://en.wikipedia.org/wiki/History_of_programming_languages |
18:44 |
|
sess |
what would even define a "programming language" |
18:44 |
|
whartung |
a programmer! |
18:44 |
|
sess |
no :( |
18:44 |
|
whartung |
why not? who else would know? |
18:44 |
|
sess |
i said "what", not "who" |
18:44 |
|
whartung |
a programmer is a "what" :) |
18:45 |
|
whartung |
"They speak english in What?" |
18:45 |
|
sfisque |
no, a programmer is a force of nature, beyond mere pronouns |
18:45 |
|
sess |
if you say what one more damn time |
18:45 |
|
sfisque |
what what what what what what what what what what what ? |
18:46 |
|
whartung |
*BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* |
18:47 |
|
sfisque |
for( int i = 0; i < Integer.MAX_VALUE; i ++ ) { System.out.print( "what " ); } |
18:47 |
|
whartung |
pkill sfisque |
18:47 |
|
sfisque |
System.out.println( "what!" ); |
18:47 |
|
sess |
for( int i = 0; i < Integer.MAX_VALUE; i ++ ) { System.out.print( "*BLAM* " ); } |
18:48 |
|
whartung |
lol |
18:48 |
|
sess |
whartung: i frown upon your ineffective repetition |
18:48 |
|
whartung |
what? |
18:48 |
|
* sfisque |
feverishly starts to refactor using BigDecimal |
18:48 |
|
sess |
[19:47] < whartung>| *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* *BLAM* |
18:48 |
|
whartung |
it was a prototype |
18:49 |
|
sess |
.// TODO: fix |
18:49 |
|
whartung |
public abstract class KaBoom { public void shoot(); } |
18:51 |
|
sfisque |
you going to use a factory or build a proxy? |
18:51 |
|
whartung |
I was going to look it yup via JNDI, being as this is the JEE channel |
18:52 |
|
zoot |
package java.lang; public class Object { public Object() { System.exit(1); } } |
18:53 |
|
sfisque |
just inject it |
18:57 |
|
pdurbin |
let's say I want tomcat 6 to print out all the log.debug lines in this file. should be easy to configure, right? http://svn.shibboleth.net/view/java-xmltooling/tags/1.3.2/src/main/java/org/opensaml/xml/signature/SignatureValidator.java?view=markup |
18:58 |
|
sess |
should be yes |
18:59 |
|
pdurbin |
I've tried many variations on conf/logging.properties |
19:01 |
|
sess |
how about setting logger org.opensaml.xml.signature to DEBUG |
19:01 |
|
whartung |
save that shib probably doesn't use JUL |
19:01 |
|
whartung |
no, in JUL its FINE and FINEST |
19:03 |
|
pdurbin |
I added this to the bottom. no love: org.opensaml.xml.signature = FINEST |
19:03 |
|
sess |
the finest of loggers |
19:03 |
|
sess |
a real work of art |
19:04 |
|
sess |
are you sure FINEST is a valid log level? |
19:05 |
|
whartung |
pretty sure its FINEST |
19:06 |
|
whartung |
but, again, if shib DOES NOT USE JUL, then you can change it all you want…and not get anywhere |
19:07 |
|
pdurbin |
whartung: that opensaml file has "import org.slf4j.Logger" |
19:07 |
|
whartung |
then you need to get that configured. You can route slf4j to JUL, and then go from there |
19:08 |
|
sess |
i thought tomcat used log4j |
19:09 |
|
whartung |
no |
19:09 |
|
whartung |
not 6+ |
19:13 |
|
pdurbin |
I'm looking at http://stackoverflow.com/questions/9543952/sl4jf-in-tomcat-not-showing-up-in-log-files but I'm still confused |
19:15 |
|
pdurbin |
sess: so it's not easy ;) |
19:22 |
|
pdurbin |
in WEB-INF/lib I see org.slf4j-slf4j-api.jar and org.slf4j-slf4j-log4j12.jar |
19:24 |
|
whartung |
remove the log4j jar and replace it with the slf JUL jar |
19:27 |
|
pdurbin |
whartung: remove org.slf4j-slf4j-log4j12.jar ? |
19:28 |
|
whartung |
yes |
19:28 |
|
pdurbin |
whartung: and replace it with which? |
19:28 |
|
whartung |
slf4j has a JUL adapter |
19:28 |
|
sess |
JUL one |
19:29 |
|
pdurbin |
I'm looking |
19:36 |
|
|
nb-ben_h joined ##javaee |
19:41 |
|
|
bitwize joined ##javaee |
19:42 |
|
pdurbin |
I don't know Solr talks about using SLF4J at http://wiki.apache.org/solr/SolrLogging but I don't know how to get those debug.log messages to print. I tried copying slf4j-jdk14-1.6.6.jar and log4j-over-slf4j-1.6.6.jar into lib. I don't get it. |
19:47 |
|
whartung |
get rid of log4j |
19:51 |
|
Naros |
So if you fetch an entity into the PC with say Version=8 and during the transaction you set the version to 7 and save it, it won't throw an OptimisticLockException? |
19:52 |
|
Naros |
It seems entity has to be detached for the exception to be detected |
19:52 |
|
sess |
dunno |
19:52 |
|
sess |
why would you even do that |
19:53 |
|
Naros |
UserA opens record in session1 while UserB opens the same record in session2. |
19:53 |
|
Naros |
One of them updates the record before the other, naturally the second should cause a collision |
19:54 |
|
sess |
youre not supposed to set the version manually |
19:54 |
|
sess |
normally it should throw an exception yes |
19:54 |
|
Naros |
The version is in the form post :P |
19:54 |
|
sess |
if you expose the version to the user, it compromises the whole locking system |
19:54 |
|
Naros |
meaning when the view was rendered, it was version 7. But someone else has since modified the record so when the user posts the data back to the server, it gets sent version 7 to cause the collsion to happen. |
19:55 |
|
Naros |
Then how are you suppose to prevent two users in a web application from stepping on each other and overwriting the other's changes? |
19:55 |
|
sess |
by not exposing the verison number to them |
19:55 |
|
sess |
it works out of the box by itseldf |
19:56 |
|
Naros |
I disagree with you. |
19:56 |
|
sess |
the is no chance of overwriting data when implementing optimisting locking correctly |
19:57 |
|
Naros |
So one user opens a record and walks away from his PC. in the meantime another user modifies the same record. |
19:57 |
|
Naros |
When the guy returns, he makes his changes and submits. |
19:57 |
|
sess |
and gets an exception |
19:57 |
|
Naros |
The server side is going to requery the record from the DB which has the NEW version # |
19:57 |
|
Naros |
It will NEVER throw an exception in this case. |
19:57 |
|
Naros |
Unless the submission includes the old version number to cause it to fail at commit |
19:58 |
|
sess |
client A retrieves version 1 of an entity, client B retrieves version 1 of an entity |
19:58 |
|
sess |
client B saves it, increasing version to 2 |
19:58 |
|
sess |
client A saves it, recieves optimistic locking exception |
19:58 |
|
sess |
is this not your scenario? |
19:58 |
|
Naros |
Yes, but are you assuming taht client A stores that entity in the session? |
19:58 |
|
sess |
no |
19:59 |
|
Naros |
So how during a http post does client A get that entity? |
19:59 |
|
Naros |
He requires the DB :P |
19:59 |
|
sess |
well this assumes client A doesn |
19:59 |
|
sess |
t throw away the entity |
19:59 |
|
sess |
you need to keep the version number |
19:59 |
|
Naros |
Only way to do that would be to store the entity in the HttpSession then which to me feels bad. |
20:00 |
|
sess |
depends on what frameworks you use |
20:00 |
|
sess |
you can always put the version in a hidden input i guess |
20:00 |
|
Naros |
Right |
20:00 |
|
Naros |
Which is what all the old code had been doing |
20:00 |
|
sess |
ive only used @Version with ViewScope |
20:01 |
|
sess |
eliminating the issue |
20:01 |
|
Naros |
The difference tho is that API got the entity, it was detached from the session, then modified it, then sent it back to the PC to be merged. |
20:01 |
|
sess |
API? |
20:01 |
|
Naros |
The old API I have. |
20:01 |
|
Naros |
The new API passes in all the parameters from the form, queries the object, sets the values, then merges. |
20:01 |
|
Naros |
The entity is never detached in the new API code |
20:02 |
|
sess |
session open in view? |
20:02 |
|
Naros |
Nope, we don't use that |
20:02 |
|
Naros |
Session happens at service method invocation. |
20:03 |
|
Naros |
struts2 action -> service -> dao -> entitymanager |
20:03 |
|
sess |
i dont see how a framework switch would cause no detachment to happen |
20:03 |
|
sess |
if we're talking web |
20:03 |
|
Naros |
Entity e = service.getEntity(entityId); |
20:03 |
|
Naros |
e.setValues(...0; |
20:03 |
|
sess |
aaanyhow, if the entity is not detached and not discarded, the version info should still be there? |
20:03 |
|
Naros |
service.saveEntitty(e); |
20:03 |
|
sess |
and throw optimistic locking exception |
20:04 |
|
Naros |
in those 3 lines, the entity becomes detached when the getEntity() returns since the session gets closed |
20:04 |
|
sess |
yeah |
20:04 |
|
Naros |
so during saveEntity() the entity optimistic-lock-exception gets throw since the merge is taking a detached entity and placing it back into the session. |
20:05 |
|
Naros |
but instead |
20:05 |
|
Naros |
service.saveEntity(entityId, fieldA, fieldB, ...) is beng used |
20:05 |
|
sess |
fieldVersion needs to be included then |
20:05 |
|
Naros |
aye, and I'm doing just that. |
20:05 |
|
Naros |
But seems JPA doesn't care |
20:06 |
|
Naros |
if I evict the entity from the session after I query it, set the values, then merge it throws the exception |
20:06 |
|
sess |
there is literary no difference from your earlier scenario |
20:06 |
|
sess |
in both cases you have unattached data |
20:06 |
|
sess |
that gets attached, and merged |
20:06 |
|
Naros |
How so? I dont have 2 EM sessions in the second scenario, its just 1 where the entity is never detached :P |
20:07 |
|
Naros |
the get & save are combined into 1 method |
20:07 |
|
sess |
the number of sessions isn't interesting |
20:07 |
|
sess |
in both cases you have detached data |
20:08 |
|
sess |
the difference is just that the data is not combined in an object in your second scenario |
20:08 |
|
sess |
as long as you set the ID and the version correctly, and the version is lower than in the DB, an exception should be thrown |
20:08 |
|
Naros |
@Transactional(readOnly = false, propagation = Propagation.REQUIRED) |
20:08 |
|
Naros |
public saveEntity(Long entityId, Long version, other stuffs) { |
20:08 |
|
Naros |
Entity e = em.find(entityId); |
20:08 |
|
Naros |
e.setVersion(versoin); |
20:08 |
|
Naros |
e.setOtherStuffs(); |
20:08 |
|
Naros |
em.merge(e); |
20:08 |
|
Naros |
} |
20:09 |
|
Naros |
In that, the entity is never detached from the EM |
20:09 |
|
Naros |
if it is, I'd like to understand how |
20:09 |
|
sess |
why do you find the entity? |
20:10 |
|
sess |
lacking some fields? |
20:10 |
|
sess |
not sure if it can affect the version functionality, hmm |
20:10 |
|
Naros |
The form doesn't give me ALL the data durnig edits, only pertinent data |
20:10 |
|
Naros |
So the only option is to get the object from the DB, change the appropriate business function values and merge it back |
20:11 |
|
sess |
my bad, this should be the correct action |
20:11 |
|
|
semiosis joined ##javaee |
20:11 |
|
sess |
anyways the optimistic locking should work still, unless it's implemented by an idiot |
20:11 |
|
Naros |
maybe it shold have read updateEntity() :P |
20:12 |
|
sess |
you are 100% sure the version you set is lower than the one in the db? |
20:12 |
|
Naros |
Yep |
20:13 |
|
sess |
id try it out myself, but i only have a decent setup at work |
20:13 |
|
Naros |
decent setup? |
20:13 |
|
sess |
never tried your exact scenario, but it should be a common one |
20:13 |
|
sess |
IDE , projects etc |
20:15 |
|
Naros |
Yah only way to get hibernate to throw the stale object exception is to detach it :/ |
20:16 |
|
sess |
i guess its not a big price to pay |
20:16 |
|
sess |
1 line of code |
20:16 |
|
sess |
perhaps jpa is stupid enough to update the version in the database from your object when it is attached |
20:17 |
|
Naros |
thats what i am thinking it is doing |
20:18 |
|
Naros |
what are the technical differences between getReference() vs find() ? |
20:18 |
|
sess |
try entity.setVersion followed by em.flush followed by em.find again |
20:18 |
|
sess |
and see if the version is saved |
20:18 |
|
sess |
getReference only gets the ID i think? |
20:18 |
|
sess |
or something |
20:19 |
|
sess |
no |
20:19 |
|
sess |
Naros: getReference gets you a proxy |
20:20 |
|
sess |
http://stackoverflow.com/questions/1607532/when-to-use-entitymanager-find-vs-entitymanager-getreference |
20:37 |
|
* pdurbin |
asks the OIOSAML guys: How can I tell Tomcat to print OpenSAML log.debug messages to catalina.out? http://digitaliser.dk/forum/2542391 |
20:39 |
|
pdurbin |
I was able to get [DEBUG] org.apache.xml messages printing in catalina.out at least. by changing "log4j.logger.org=warn, CONSOLE" from warn to debug in webapp/WEB-INF/classes/log4j.properties |
20:39 |
|
pdurbin |
oh and https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUsrManJavaBB says "In order enable logging you must either download one of the bindings that bridge SLF4J with another logging system (e.g. Log4J, java.util.logging) or provide a logging system that natively implements the SLF4J interfaces (e.g. logback). The developers of OpenSAML use the logback logging framework..." |
20:41 |
|
semiosis |
pdurbin: how familiar are you with log4j? |
20:41 |
|
pdurbin |
I've heard of it |
20:41 |
|
semiosis |
ha |
20:42 |
|
semiosis |
pdurbin: easy way would be to set your log4j.rootLogger to debug |
20:43 |
|
semiosis |
pdurbin: more complicated way would be to keep rootLogger at info or warn or whatever it is & change level for opensaml the way you did for log4j.logger.org |
20:43 |
|
semiosis |
what you did there was to set the log level for all classes in all packages under org.* to debug |
20:44 |
|
semiosis |
idk what the package name is for opensaml |
20:49 |
|
pdurbin |
semiosis: I tried adding "log4j.rootLogger=debug, CONSOLE" to https://github.com/pdurbin/oiosaml.java-demo-8501-debug/blob/master/src/webapp/WEB-INF/classes/log4j.properties but no go |
20:50 |
|
semiosis |
do you have an appender called CONSOLE? |
20:50 |
|
|
SoniEx2 joined ##javaee |
20:50 |
|
pdurbin |
well, I saw a different when I changed "log4j.logger.org=warn, CONSOLE" from warn to debug |
20:50 |
|
pdurbin |
difference* |
20:51 |
|
semiosis |
looking at the file now |
20:51 |
|
|
sfisque joined ##javaee |
20:52 |
|
pdurbin |
but that difference ([DEBUG] in catalina.out now) was for org.apache.xml which I assume doesn't use slf4j |
20:52 |
|
semiosis |
pdurbin: try replacing the rootCategory line (1) with that rootLogger line you just said was a no go |
20:52 |
|
semiosis |
rootCateogry is deprecated in favor of rootLogger |
20:53 |
|
semiosis |
pdurbin: ah right, well you could also try adding the slf4j-log4j connector to your pom |
20:53 |
|
pdurbin |
semiosis: they use ivy and gant |
20:54 |
|
semiosis |
http://search.maven.org/#artifactdetails%7Corg.slf4j%7Cslf4j-log4j12%7C1.7.5%7Cjar |
20:54 |
|
semiosis |
well add the jar to your build, however you do it |
20:55 |
|
pdurbin |
semiosis: it's already there: webapps/oiosaml.java-demo-8501-debug/WEB-INF/lib/org.slf4j-slf4j-log4j12.jar |
20:55 |
|
semiosis |
what version of log4j are you using anyway? |
20:55 |
|
semiosis |
ok then |
20:55 |
|
semiosis |
hmm |
20:56 |
|
semiosis |
well idk |
20:56 |
|
pdurbin |
it's tricky. the OIOSAML guys use Tomcat so maybe they'll have some ideas |
20:56 |
|
semiosis |
try replacing "log4j.rootCategory=info, CONSOLE" with "log4j.rootLogger=debug, CONSOLE" |
20:57 |
|
pdurbin |
semiosis: right. yes, I did try that. didn't work but thanks |
20:58 |
|
semiosis |
oh hm, wait a sec, you want this in your catalina.out file? |
20:58 |
|
pdurbin |
semiosis: anywhere really, I don't care where |
20:58 |
|
pdurbin |
I just know to look in catalina.out |
20:59 |
|
semiosis |
try adding a new appender in your log4j.properties file, writing the logs you want to see out to your own log file |
20:59 |
|
semiosis |
catalina.out is produced somewhere else, maybe easier to just leave it out of the picture |
20:59 |
|
semiosis |
idk, guessing here, /me gbtw |
20:59 |
|
pdurbin |
:) |
21:22 |
|
Naros |
sess: wonder if I stick this crap in the session how much overall memory that can consume with idiots opening multiple tabs, etc. |
21:23 |
|
Naros |
could cause memory management to be come unwiedly. |
21:31 |
|
Naros |
sess: does appear that struts2 has a conversation plugin that mimics @ViewedScoped and @SessionScoped functionality. |
21:35 |
|
sess |
Naros: id worry more about application maintenance than memory. Memory is very cheap |
21:36 |
|
sess |
mantaining a complex session is not |
21:36 |
|
Naros |
Agreed. https://code.google.com/p/struts2-conversation/ |
21:36 |
|
sess |
viewscope solutions has worked decently for me though |
21:36 |
|
Naros |
i think that link might be similar to viewscope. |
21:37 |
|
sess |
probably, unless it's like spring webflow which is just awful |
21:37 |
|
Naros |
it serializes the fields in my action between requests basically. |
21:37 |
|
Naros |
all based on some conversation id |
21:37 |
|
Naros |
which gets sent in each request |
21:37 |
|
Naros |
or set at the start of a workflow |
21:37 |
|
|
milojaden joined ##javaee |
21:38 |
|
Naros |
not sure how that translates to viewscope or sping webflow. |
21:38 |
|
Naros |
*spring |
21:38 |
|
sess |
same as spring webflow, question is how it is realized |
21:38 |
|
sess |
jsd viewscope is basicly a session that gets deleted when you request a different view |
21:38 |
|
sess |
jsf* |
21:38 |
|
Naros |
this seems simliar, except it gets deleted based on a timeout. |
21:39 |
|
Naros |
or invalidation of the session |
21:39 |
|
sess |
spring webflow invalidates when conversation is completed, timeout seems risky |
21:39 |
|
Naros |
https://code.google.com/p/struts2-conversation/wiki/UsageGuide#Memory_Management |
21:40 |
|
Naros |
Yes, you have Begin and End annotations that can trigger marking a conversation as stale. |
21:45 |
|
|
weichsel_2k joined ##javaee |
21:45 |
|
weichsel_2k |
hi all, I need some help with udp datagrams, Im using it on a servlet, but when i use the socket.receive(receivePacket) I get java.net.SocketTimeoutException: Receive timed out. Any idea for solve it? |
21:46 |
|
whartung |
I'd head over to #java, this is just a generic java question -- doesn't' really have anything to do with EE |
21:46 |
|
|
weichsel_2k left ##javaee |
22:13 |
|
|
sajjadg joined ##javaee |
22:15 |
|
|
pdurbin_m joined ##javaee |
22:15 |
|
pdurbin_m |
whartung: https://github.com/pdurbin/oiosaml.java-demo-8501-debug/blob/master/sig/adfs/catalina.out |
22:15 |
|
whartung |
you got JUL working? |
22:17 |
|
sfisque |
cross post because #netbeans seems quiescent |
22:17 |
|
sfisque |
netbeans enviro question. i have a few projects open and i had some stub files that i removed once i got the remote dependency defined in maven. i'm seeing warnings and "red" markers for some of the references, which tells me that netbeans is confused. how do i clear whatever cache nb uses for its project syntax checking? |
22:17 |
|
sfisque |
2:07 PM |
22:17 |
|
sfisque |
the project compiles fine, so i know the code is sane, but NB is flagging stuff erroneously |
22:17 |
|
whartung |
1) have you tried restarting NB |
22:18 |
|
sfisque |
several times |
22:18 |
|
whartung |
you running a mac or something telse? |
22:18 |
|
* sfisque |
gives whartung a view askanse |
22:18 |
|
pdurbin_m |
whartung: nope but other debug stuff in there |
22:18 |
|
sfisque |
winblowz |
22:18 |
|
whartung |
ok |
22:19 |
|
whartung |
anyway, "somewhere", "near" netbeans, there's a /var/cache directory that can be obiiterated |
22:19 |
|
sfisque |
i've been surfing dirs to see where nb caches it's "compilation artifacts" for syntax checking |
22:19 |
|
whartung |
I suggest searching for it, but, after catching my breath from laughter, I remember you're on windows. |
22:19 |
|
sfisque |
i see it, thx |
22:20 |
|
whartung |
shut down NB, zap that, and start it iagain |
22:21 |
|
sfisque |
bleh, still gives me incorrect highlighting. /sigh. (and yes, shutdown, cleared var/cache, restarted) |
22:21 |
|
sfisque |
time to google |
22:21 |
|
whartung |
close the project and reload it? |
22:21 |
|
whartung |
I know, NB get stupid sometimes. |
22:21 |
|
whartung |
and maybe the pom is sick in NBs eyes as well |
22:22 |
|
sfisque |
trying that. thx |
22:40 |
|
sfisque |
no good. but NB is reindexing the local maven repo, hopefully that will fix it. /waits patiently |
22:40 |
|
whartung |
yea, <3 the reindexing |
22:41 |
|
* whartung |
wishes NB would keep indexes of closed projects so it didn't have to always have all the projects open to find stuff |
22:49 |
|
|
cem_ joined ##javaee |
22:49 |
|
cem_ |
hi |
22:49 |
|
sfisque |
bah still not finding the public methods in the super/super class. i think it might be a bug. basically B extends A (in same maven dep) and C extends B (in a different maven dep). my class instantiates C and cannot find the public methods exposed in A. :-/ |
22:49 |
|
* sfisque |
waves to cem_ |
22:50 |
|
whartung |
wb cem_ |
22:50 |
|
cem_ |
:) |
22:50 |
|
sfisque |
but it compiles fine. F U NB |
22:50 |
|
sfisque |
and i don't mean fun |
22:51 |
|
whartung |
what rev of NB? |
22:51 |
|
sfisque |
nightly from a few months ago. i guess i can upgrade and see if it goes away |
22:51 |
|
whartung |
I have intermittent results with Maven and NB. Mostly it works, somethings, it's just idiotic. |
22:51 |
|
cem__ |
well i didnt learn rmi,sockets and much more :/ |
22:52 |
|
whartung |
then I starting swearing and thinking nasty Emacs thoughts…but then, it's nasty emacs thoughts. |
22:52 |
|
sfisque |
that's quite a handful. rmi alone involves a little "voodoo" |
22:52 |
|
sfisque |
ROFL whartung |
22:52 |
|
whartung |
I would skip RMI. |
22:52 |
|
sfisque |
i never got on board with emacs. went from vi -> bbedit -> jedit -> idea -> forge -> netbeans |
22:53 |
|
whartung |
if you want to do RMI, do JMX remoting. It's the same thing, and a LOT easier. |
22:53 |
|
sfisque |
well, i would at least "learn" how to do RMI, and then accept that most frameworks hide it well enough |
22:53 |
|
whartung |
I wouldn't :) |
22:53 |
|
whartung |
it's so rare in the wild |
22:53 |
|
whartung |
and it's so fiddly |
22:53 |
|
whartung |
JMX is usable RMI |
22:53 |
|
cem__ |
i'll learn like quest san :P |
22:54 |
|
sfisque |
true, BUT it is under the hood on a lot of stuff, (JMX, remoteEJB, etc.) and knowing its' failure points helps trouble shooting those other techs |
22:54 |
|
whartung |
perhaps, but I know I've never needed to really |
22:54 |
|
whartung |
fight such errors |
22:54 |
|
whartung |
it's mostly reliable |
22:54 |
|
cem__ |
sfisque: san is right , how about sockets ? |
22:55 |
|
whartung |
sockets are worth learning, thank God you're learning them in Java. |
22:55 |
|
sfisque |
lol yeah ^^^^ sockets in C are "unfriendly" |
22:55 |
|
whartung |
yea |
22:55 |
|
whartung |
I had to port a simple Apache mod that was effectively a poor mans HTTP proxy from C to Java. |
22:55 |
|
sfisque |
same with threading. pthreads is such a voodoo art imo |
22:56 |
|
whartung |
I'm copying the code over from C and it's like "don't need that, or that, or that , or .. or.. or…and..what, that's it? I'm done?" |
22:56 |
|
sfisque |
java threads are so E-Z-mode it's rediculous |
22:56 |
|
whartung |
yea |
22:56 |
|
whartung |
and yet we continue to fail at them so hard :) |
22:57 |
|
sfisque |
aye but we fail on the details rather than just failing ot bootstrap properly |
22:57 |
|
sfisque |
i'll take that anyday |
22:57 |
|
whartung |
If you want to learn sockets, go implement a simple SMTP server. It's a simple, yet challenging little protocol |
22:57 |
|
whartung |
yea, truth |
22:57 |
|
whartung |
fork(2) ftw! |
22:58 |
|
sfisque |
even easier. build a dumb http server. stateless and dumb simple. get request, deliver payload, done |
22:58 |
|
whartung |
yea, too simple, that's why I suggest SMTP |
22:58 |
|
sfisque |
that would be "day 2 tutorial" :P |
22:59 |
|
whartung |
Write the simplest command, point your mail client at it, tell it to Send, and see what command it wants to send next, then implement taht |
22:59 |
|
sfisque |
day 3, "implement a fully operational corba container" :P |
22:59 |
|
whartung |
rinse and repeat |
22:59 |
|
whartung |
eh, cobra is easy at the socket level :) |
22:59 |
|
whartung |
SMTP is challenging as it's a stageful protocol |
22:59 |
|
whartung |
stateful |
22:59 |
|
sfisque |
true |
22:59 |
|
sfisque |
or a telnet server |
23:00 |
|
sfisque |
i did that back when macos had no remote terminal services and i needed to admin some boxes remotely |
23:00 |
|
whartung |
heh |
23:00 |
|
whartung |
so funny |
23:00 |
|
whartung |
I remember back int eh day |
23:00 |
|
whartung |
My mom wanted a computer |
23:00 |
|
sfisque |
which was a tuesday |
23:00 |
|
whartung |
at least Tuesday |
23:01 |
|
whartung |
and I was seriously considering giving her my NeXTStation |
23:01 |
|
sfisque |
or 23804203948203482 years in internet time |
23:01 |
|
sfisque |
OH MAN |
23:01 |
|
whartung |
mostly because I knew I could remotely log in to it. |
23:01 |
|
whartung |
:) |
23:01 |
|
sfisque |
i'd kill for a next cube |
23:01 |
|
whartung |
It has a good enough word processor, and a solid laser printer. |
23:02 |
|
cem__ |
"If you want to learn sockets, go implement a simple SMTP server. It's a simple, yet challenging little protocol " I'll try to do this mmm :) and rmi some time :P |
23:02 |
|
sfisque |
they had one here at the local "geek" shop. was "not for sale" , then i came in one day and it was gone. dude said, yeah, we sold it on ebay. i was like WTF, i'd have bought it several years ago |
23:02 |
|
whartung |
should of asked to be put on the waiting list :) |
23:02 |
|
whartung |
my Slab is in my garage attic now |
23:02 |
|
whartung |
part of my eclectic computing history |
23:02 |
|
sfisque |
it had a sign saying not for sale. i assumed it was never leaving. my chagrin |
23:03 |
|
sfisque |
i had to turf a sparc20 that i had tricked out with 4 procs. was a sad day |
23:03 |
|
whartung |
KIM-1 -> Atari 800 -> Mac 128K -> Motorcycle -> NeXTStation -> PB520 -> 3 Random POS PC's -> Mac Pro (with a Sun Ultra 10 mixed in there as well) |
23:04 |
|
sfisque |
the 530 was a good machine. i had a 1400. THAT was a workhorse |
23:04 |
|
whartung |
yea |
23:04 |
|
whartung |
the 520C had as much connectivity as the Slab did :) |
23:05 |
|
sfisque |
***520 |
23:05 |
|
sfisque |
i bet |
23:05 |
|
whartung |
I dropped $3K on the Slab. that was Cheap /cough at the time |
23:05 |
|
sfisque |
oh yeah |
23:06 |
|
whartung |
the amount of money I've dumped on computer gear…embarrassing. I hate spending money on computer gear :) |
23:06 |
|
sfisque |
my parents dropped over 1k on an apple IIe when i was a kid. hilarious that we walk around with super computers in our pockets now for a couple hundred $ |
23:07 |
|
whartung |
as I say, if I spent that money on shop tools, I'd a) still have them, b) they'd still work and be useful, c) I'd have a larger shop than Norm Abrahm |
23:07 |
|
sfisque |
ROFL |
23:07 |
|
sfisque |
yeah, pretty much |
23:07 |
|
* whartung |
recalls dancing giddy when he bought his first 1GB SCSI drive for just under $1 per MB |
23:09 |
|
whartung |
Oh, I still have the motorcycle :) lol |
23:09 |
|
whartung |
used the money from the Mac as a down payment :) |
23:10 |
|
* cem__ |
love this channel |
23:10 |
|
sfisque |
i still lament the failure of scsi drives to scale properly. i liked scsi, but they eventually petered out around 200gb |
23:10 |
|
sfisque |
nice |
23:10 |
|
sfisque |
:-D |
23:11 |
|
whartung |
raise your hand if you supported 150 users on a 33MHz '030, in BASIC? |
23:11 |
|
* sfisque |
raises |
23:12 |
|
* whartung |
notes that we're updating our keys to BigDecimal, audit table PK has gone to -2B…. |
23:12 |
|
whartung |
what was the application? what machine? |
23:13 |
|
sfisque |
i was manager of operation repairs for computer services at rutgers. we maintained 7 computer labs and all we had was a MacSE30. at the time i had a Quadra700 at home. it was painful doing "paperwork" |
23:13 |
|
whartung |
you had 150 users on the Mac SE? (I so wanted one of those…what a cool little machine) |
23:15 |
|
sfisque |
no, we managed the data on 100's of machines on the se30. what machines needed repair, which ones needed upgrades, parts oders, etc. |
23:15 |
|
sfisque |
mixed network Xterms, PCs, macs, sparcstations |
23:15 |
|
whartung |
ah |
23:16 |
|
sfisque |
2 altime favorite repairs. temporary repair of a laser printer with a rubberband. the lab tech was astonished. anther, one of the techs broke the fiberoptic cable in a laser printer he was replacing the fuser assembly in. he conjectured "hey, it's a crystal lattice, we should be able to get a cleave and just throw away the short broken end. i said, shit, lets do it. two tries and the printer was printing out fine |
23:16 |
|
whartung |
heh |
23:17 |
|
sfisque |
50$ cable, repaired with a pair of pliers and a file |
23:17 |
|
whartung |
"Watch it there, you're spilling photons -- oh shit, the token from the token ring fell on the floor, see if you can find it!" |
23:17 |
|
sfisque |
UGH. you said the forbidden words |
23:18 |
|
sfisque |
rutgers had a lab that was all token ring. let's just say, nothing, after that statement. |
23:18 |
|
* sfisque |
quietly tries to forget |
23:18 |
|
whartung |
"I think it rolled under the server cabinet" lol |
23:19 |
|
whartung |
the good old days of measuring tap points for 10Base2 |
23:20 |
|
sfisque |
lolz |
23:25 |
|
sfisque |
upgrading NB fixed it. i guess it was a bug in that nightly release i had |
23:26 |
|
whartung |
ah great |
23:26 |
|
sfisque |
thx. i sometimes forget that i run "questionable" versions of NB :P |
23:29 |
|
sfisque |
as a "pro tip", (reminded since i had to port over my netbeans.conf mods to the new install). if you find NB stalls a bit on you, change the -J-Xss2m to -JXss2536k. the extra half meg per thread really helps the background tasks not stall so much |
23:29 |
|
whartung |
interesting |
23:30 |
|
SoniEx2 |
fuck bit manipulation :/ |
23:30 |
|
sfisque |
depends on "who's" bits it is |
23:31 |
|
SoniEx2 |
fuck numbers I mean |
23:31 |
|
SoniEx2 |
I can't get this shit to work properly: https://github.com/SoniEx2/TheModernClassicGame/blob/master/src/com/github/soniex2/tmcg/ym2612/number/YmFixedPoint.java |
23:32 |
|
SoniEx2 |
oh wait... |
23:33 |
|
pdurbin |
whartung: I didn't realize you were a netbeans guy |
23:33 |
|
whartung |
ja |
23:36 |
|
pdurbin |
I've been in Eclipse a fair amount this week for OIOSAML and Netbeans seems much better |
23:40 |
|
sfisque |
you mean i dont have to call the betty ford clinic? phew |
23:43 |
|
|
sajjadg joined ##javaee |
23:43 |
|
|
sajjadg_ joined ##javaee |
23:50 |
|
pdurbin |
oh good, Naros isn't here: http://irclog.greptilian.com/javaee/2013-11-08#i_40152 :) #eclipsehaters |
23:51 |
|
pdurbin |
maybe adding plugins will make eclipse awesome |
23:53 |
|
pdurbin |
jeez, you guys were chatty today |
23:59 |
|
pdurbin |
"Just look at all the pain that's been induced by the fact that people still insist on not using Java Util logging, and they have their very good reasons for doing so. But it's certainly, at least, arguable that everyone could just give it up and use Java Util logging and make everyone's life a little bit simpler. But it's one of those issues that people get very passionate about, and everyone has good |
23:59 |
|
pdurbin |
reasons for doing so." -- Ed Burns at http://content.jsfcentral.com/c/journal/view_article_content?cmd=view&groupId=35702&articleId=97595&version=1.9#.Uoa1QI3lWxI |