Re: [The Java Posse] Distributing Java program on Ubuntu 10

2010-07-15 Thread Peter Becker
There are a number of tools out there to properly install a program: 
http://java-source.net/open-source/installer-generators


The only one I have ever used is AntInstaller, but that was a long time 
ago. I've seen quite a few uses of IzPack in recent years.


Someone else might have more to say about these options.

Your idea of using a script should work, too. You might just have a 
problem with your script assuming that it runs in the directory it is 
in. See here for some ways to solve this problem: 
http://stackoverflow.com/questions/242538/unix-shell-script-find-out-which-directory-the-script-file-resides


In some ways another good option could be to deploy Debian packages, but 
that gets definitely a bit more involved and will be rather platform 
specific. One step further would be your own apt repository, which would 
give you an automated update channel integrated with the OS updates. But 
that is a bit more involved.


  Peter



On 15/07/10 21:47, rhythmchicago wrote:

Hi,

I'm looking for tips on how people have done this in the past. I
finally got my company to sign off on shipping our system with Ubuntu
and not Windows. While I use Ubuntu a lot, my programming experience
is mainly on the Windows platform.

The Java program runs great on Ubuntu. The only problem is giving a
user a nice Shortcut in the menu and on the desktop. I wrote a shell
script and placed it in the application directory, but the shell
script won't run if a execute it from a link on the desktop. The
program requires a command line argument when run, so simply double-
clicking a runnable jar doesn't work, unless there is a way to add an
argument to that scenario.

Eclipse is distributed as an executable file with an icon. Is there
some tool or method for converting the runnable jar to such a file? I
know how to do it on Windows, but not on Linux.

As always, thank you in advance for any help and advice. I've been on
Ubuntu since January, but I'm pretty sure I'm still a Linux newbie.

Thanks!

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Is functional programming abstract nonsense?

2010-07-15 Thread Peter Becker

http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html


On 16/07/10 00:09, Nick wrote:

I was thinking about this on the drive to work a few months ago.  OO
does mimic the way we view the world in its focus on objects or
nouns.  Think about how you would describe a scene to someone, you
would focus on the objects and then describe attributes or things they
are doing.  There is a road, its full of cars, There is a
pedestrian, he is walking on the sidewalk, There is a car, it's
honking at me because I almost hit it (ok, maybe these thought
experiments should be saved for when I'm not operating a motor
vehicle).  And thus its very natural for us to fall into OO concepts
when we are designing a system since that is effectively what we are
doing, describing the system.

But its really not a natural way for us to interact with the world
(which is closer to what we are doing when we actually write
software).  There our focus becomes on actions, on verbs.  To put it
in a programming form, I'm not thinking gasPedal.pushDown(), I'm
thinking pushDown(gasPedal).  Now perhaps that particular example is
more of a linguistic thing, but think about it next time you are
interacting with something (as opposed to just describing it) in the
real world.  Are you focused on the thing itself, or what you are
doing to it?

On Jul 15, 8:35 am, Carl Joklcarl.j...@gmail.com  wrote:
   

I might argue that in the case of Object Oriented programming, a big
aspect of making it natural to learn is the way it mimics the real
world.
Objects can be created which mimic real world objects. The ability to
identify an object with objects in real life helps make the concepts
more
natural once you see how it works.

In the case of functional programming, I am not sure if there is a
real world analogy to draw upon. It is heavily inspired by mathematics
which isn't everybody's strongest suit. Granted
that plenty of maths exists in nature but still...

I learned Haskell and Prolog in University and haven't used them
since.
I have long believed in trying to use the right tool for the job. I
think a hybrid is the best way forward.
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-14 Thread Peter Becker
Talking about Hibernate can get me onto rants in a way that competes 
with Word ;-)


But seriously: your assumption is that
 (a) abstraction is good per se; and
 (b) the model Hibernate abstracts into is a good one.

Regarding (a) I say that pretty much every time I have seen work done 
using Hibernate, I have seen discussions about:

 (1) what the object model should look like;
 (2) what the relational model should look like; and
 (3) how to map the two together.

So instead of talking about one model, you suddenly have to design and 
map two. I don't see how that helps. Hibernate as an abstraction leaks 
like a bucket after being under 5 minutes of machine gun fire.


Regarding (b): it is currently still favorable to consider OO the best 
way to do things. Having done about 15 years of it I am not convinced of 
that at all. In fact: I nowadays believe much more in relational algebra 
than OO as a modeling tool. Putting things like a matrix-vector product 
on either matrix or vector just doesn't make sense to me, neither does 
putting intersection on a shape object. These are objects that have 
intrinsic features, but those methods are not intrinsic but part of a 
larger system a mathematician would call algebra.


The system I would like to see is something that gives you the true 
power of relational algebra integrated into a modern programming 
environment. SQL is significantly different from relational algebra and 
many RDBMS don't support structured column types (or objects). Hibernate 
takes the SQL view and moves it even further away from relational 
algebra. That is not an improvement from my perspective.


To get out of the abstract and into an example, here some spatially 
enabled SQL code (untested, but should work plus/minus some typos I 
probably will put in):


  SELECT field1, field2, field3, ST_Union(the_geom) FROM someTable 
GROUP BY field1, field2, field3;


This gives you all the shapes for which fields 1-3 are the same 
(assuming the_geom is a geometry field on the original table). I can do 
this using Hibernate (there are spatial extensions at least for 
PostGIS), but trust me: that's no fun. It involves quite a bit of 
looping and logic, and will be inefficient. I could possibly use 
JPQL/HQL, but that would look more or less like the query above.


The point I am trying to make is that there is a whole class of problems 
for which relational algebra (or even SQL's tuple calculus) are a much 
better solution. By forcing the solution domain to be OO you don't 
really help that much. Of course it makes for an easier start for the 
non-SQL-savvy developer, but using a saying I learned on this list: 
it's like pissing your pants: nice and warm at first, but not really a 
good idea.


I guess a lot of my cynicysm comes from people giving up on relational 
databases due to the way they are implemented. People took shortcuts in 
the 70s (nulls come to mind), in the 90s everyone decided the database 
has to be a commodity while at the same time the vendors did everything 
to avoid exactly that. The result is that RDBMS can be a pain, but that 
is no justification to claim relational algebra as a failure. I somehow 
hope the revival of the functional paradigm will move things back a bit.


Just my 2c.

   Peter

On 14/07/10 13:06, jitesh dundas wrote:
 Well,there are issues over every software,don't you think? There is a
 need for certain aspects ,especially in configuration set-up, in
 hibernate.

 Still, this is 1 step forward towards abstraction of coding , a layer
 higher than the existing one.

 In any case, coding efforts are going in the right
 direction...Hibernate too, is one of those, but it does need some
 fixes...

 Thanks for the update .

 Regards,
 jd

 On 7/14/10, Peter Becker peter.becker...@gmail.com wrote:
 On 13/07/10 22:41, jitesh dundas wrote:
 Have you heard of Hibernate/Spring for hiding DB related issues..
 It hides them so well that it usually takes at least 10 times longer to
 fix them. It does so by layering a coat of its own issues over the DB.

Peter (who tends to get cynical when hearing Hibernate or 
Spring).


 --
 You received this message because you are subscribed to the Google 
Groups

 The Java Posse group.
 To post to this group, send email to javapo...@googlegroups.com.
 To unsubscribe from this group, send email to
 javaposse+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/javaposse?hl=en.




--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-14 Thread Peter Becker

On 14/07/10 19:16, Moandji Ezana wrote:
The thing I find most useful about Hibernate is that when you have a 
lot of tables of inter-related data, it really alleviates the pain of 
having to think about what data you need to load for each possible 
workflow.
Not if you care about scalability, in which case you really need to know 
what you want to fetch and how all your caching layers work (although 
the caching as such can be a good feature to have). Particularly if you 
reach the same object from different contexts with different 
requirements, thinking about eager and lazy fetching can get rather 
complicated.


Has anyone used LINQ? Does that make working with SQL nice enough to 
do away with an ORM?


I still haven't tried LINQ -- I must admit that I treated Windows solely 
as a gaming platform for the last two years. I might learn some .NET on 
my new job.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-14 Thread Peter Becker

On 14/07/10 21:22, Moandji Ezana wrote:
On Wed, Jul 14, 2010 at 11:45 AM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


On 14/07/10 19:16, Moandji Ezana wrote:

The thing I find most useful about Hibernate is that when you
have a lot of tables of inter-related data, it really
alleviates the pain of having to think about what data you
need to load for each possible workflow.

Not if you care about scalability, in which case you really need
to know what you want to fetch and how all your caching layers
work (although the caching as such can be a good feature to have).
Particularly if you reach the same object from different contexts
with different requirements, thinking about eager and lazy
fetching can get rather complicated.


True, but if you need to scale massively, you probably aren't using 
Hibernate anyway. (Or are you? Anyone know of massive sites that use 
Hibernate?)
I'm not talking about the Googles or Amazons. To get into this type of 
problem you really need only a few gigs, if you do really stupid things 
only a couple of megs will do -- if you reload all of your DB on every 
request performance will degrade very fast.


I haven't seen whole DBs being loaded yet, but I have seen things pretty 
close to that -- particularly in cases where eager fetching is used as 
the solution to the problem of the view not being part of the Hibernate 
session. I know the answer is to expand the session lifecycle to contain 
the view, but that awareness doesn't seem widely spread. Depending on 
your framework it is also often not trivial. Spring can do it 
declaratively and knowing the right hooks most other frameworks let you 
do it, but you left the realm of nice and easy that Hibernate advocates 
tend to advertise.


My point really is that while Hibernate can produce nice and easy 
solutions, the only way to know you have a good solution is to fully 
understand what's happening. And that is not easy and sometimes not nice 
either (did someone mention object identity yet?). That makes 
Hibernate a solution that is nice and easy as long as you either don't 
care at all about the potential issues or you have someone else to take 
care. If you are the one who has to care you really need a very good 
understanding of the OO side, the RDB side and the ORM part.


   Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-14 Thread Peter Becker
What I blame Hibernate for is being misleading about the complexity. 
Most people think it makes a developer's life easier, but my experience 
is quite the opposite. It is nice and easy until you hit the errors and 
performance issues and unless you understand Hibernate really well you 
will hit those fast.


I consider object-relational mapping a stupid idea, but unfortunately 
one that's hard to avoid in current enterprise development. Thus my 
cynicism.


   Peter


On 14/07/10 22:40, jitesh dundas wrote:
Precisely what I was about to say in a few minutes..Peter, you read my 
mind..


It is not about HIbernate being slow or the software having issues of 
redundancy. The problem is how we implement Hibernate..That said, we 
need to understand how we are handlinig the xml file defnitions and 
relationship mappings..


Till now, we have seen instances when functional design leads to code 
level design. This is  the case where the opposite holds true 
also..You have to map according to the platform - a bit of reverse 
engineering - and then decide the optimum performance..


large sites using cache databases is not new..Plenty of them do that - 
especially in lotus notes application..The problem is the data that 
you are trying to update...

Are we doing that correctly..

Let us not blame Hibernate for everuything friends..There is more than 
what meets the eye..


Regardsm,
jd

On Wed, Jul 14, 2010 at 6:00 PM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


On 14/07/10 21:22, Moandji Ezana wrote:

On Wed, Jul 14, 2010 at 11:45 AM, Peter Becker peter.becker.de
http://peter.becker.de@gmail.com http://gmail.com wrote:

On 14/07/10 19:16, Moandji Ezana wrote:

The thing I find most useful about Hibernate is that when
you have a lot of tables of inter-related data, it really
alleviates the pain of having to think about what data
you need to load for each possible workflow.

Not if you care about scalability, in which case you really
need to know what you want to fetch and how all your caching
layers work (although the caching as such can be a good
feature to have). Particularly if you reach the same object
from different contexts with different requirements, thinking
about eager and lazy fetching can get rather complicated.


True, but if you need to scale massively, you probably aren't
using Hibernate anyway. (Or are you? Anyone know of massive sites
that use Hibernate?)

I'm not talking about the Googles or Amazons. To get into this
type of problem you really need only a few gigs, if you do really
stupid things only a couple of megs will do -- if you reload all
of your DB on every request performance will degrade very fast.

I haven't seen whole DBs being loaded yet, but I have seen things
pretty close to that -- particularly in cases where eager fetching
is used as the solution to the problem of the view not being part
of the Hibernate session. I know the answer is to expand the
session lifecycle to contain the view, but that awareness doesn't
seem widely spread. Depending on your framework it is also often
not trivial. Spring can do it declaratively and knowing the right
hooks most other frameworks let you do it, but you left the realm
of nice and easy that Hibernate advocates tend to advertise.

My point really is that while Hibernate can produce nice and easy
solutions, the only way to know you have a good solution is to
fully understand what's happening. And that is not easy and
sometimes not nice either (did someone mention object identity
yet?). That makes Hibernate a solution that is nice and easy as
long as you either don't care at all about the potential issues or
you have someone else to take care. If you are the one who has to
care you really need a very good understanding of the OO side, the
RDB side and the ORM part.

   Peter
-- 
You received this message because you are subscribed to the Google

Groups The Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group

Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-14 Thread Peter Becker
No, it doesn't. And it also supports JPA annotations, so you don't need 
any XML at all.


  Peter


On 14/07/10 22:44, Kevin Wright wrote:

hang on... does hibernate continue to read XML files after it's loaded?

If so, then that would *definitely be a bottleneck!

On 14 July 2010 13:25, jitesh dundas jbdun...@gmail.com 
mailto:jbdun...@gmail.com wrote:


I am not sure if Hibernate would responsible for the slow motion..
There are many possibilities including database issues,bad
coding,ui issues.
Still, are we concluding that hibernate will give slower results
compared to other components? I would caution against that
generalisation..

In any case,xml parsing is slow so maybe one of the issues here
against hibernate...

Regards,
jd

On 7/14/10, Carl Jokl carl.j...@gmail.com
mailto:carl.j...@gmail.com wrote:
 I certainly noticed the software was slower than I though it
should be
 particularly for checking stock. I don't know if hibernate was to
 blame for that. There were some types of searches which were too
slow
 and would lock up the software for ages if not enough search
criteria
 were provided. I also thought it was a bit silly calling the
software
 Eclipse given that the name is already used for something else.

 The data used for the software used a local cached database for
 performance and redundancy which would synch periodically with the
 central database. I would have thought queries for an on site
database
 should have been pretty fast. The fact that a cached database
was used
 meant that checks of stock levels at other outlets could end up
being
 stale and not guaranteed to be up to date. For this reason if an
 outlet showed only one of an item in stock it was best not to trust
 that they actually had.

 I just worked there as a Christmas job in my final year of
University.
 It was the best paid student job I did.

 --
 You received this message because you are subscribed to the
Google Groups
 The Java Posse group.
 To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
 To unsubscribe from this group, send email to
 javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/javaposse?hl=en.



--
You received this message because you are subscribed to the Google
Groups The Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.




--
Kevin Wright

mail/google talk: kev.lee.wri...@gmail.com 
mailto:kev.lee.wri...@gmail.com

wave: kev.lee.wri...@googlewave.com mailto:kev.lee.wri...@googlewave.com
skype: kev.lee.wright
twitter: @thecoda

--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Where in the world is the OLPC (One Laptop Per Child?) - and what about Android?

2010-07-13 Thread Peter Becker
There was a FLOSS Weekly podcast a while ago with some guy describing 
the work done in Nepal. That definitely sounded like OLPC had/has some 
impact there.


http://www.olpcnews.com/countries/nepal/ole_nepal_on_floss_weekly.html

It's a very interesting episode to listen to. Many of the effects and 
problems they face are quite different from what you might expect. Some 
things I remember are kids running through the curriculum too fast, 
parents borrowing the computer too much and the need for legislative 
changes to adjust how curriculae are handled.


   Peter



On 13/07/10 21:21, Fabrizio Giudici wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

In the past there has been some debate about the OLPC concept, but
I've not heard anything about it. I mean: there hasn't been any
further discussion in technical communities forums etc as in the past.
Looking at the web site (laptop.org) I see there are updates,
including an article on Time
(http://www.time.com/time/world/article/0,8599,1997940,00.html?xid=rss-mostpopular).

But is it really changing the world? A few hours ago, I realized that
in the meantime the scenario has changed in such a way that maybe the
OLPC is already old stuff. In the end (see the Time article) the end
cost raised from $99 to $181, and I wonder whether in one year one
couldn't make a tablet based on Android for a similar price. It would
be much more powerful tool (hw and sw) and stuff such as the Android
Inventor (see my previous post) might be a plus. Of course, there's
all the stuff related to robustness and operability in special
conditions that I can't evaluate - but I presume similar concepts
could be applied to a tablet. I wonder whether Google is thinking of that.

- -- 
Fabrizio Giudici - Java Architect, Project Manager

Tidalwave s.a.s. - We make Java work. Everywhere.
java.net/blog/fabriziogiudici - www.tidalwave.it/people
fabrizio.giud...@tidalwave.it
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkw8TFEACgkQeDweFqgUGxfFeACePgyyLXXDa9cSFWBzJT2ZegEO
FlkAniw4RUxaWqz9+9EnPICGq9CHtnwI
=Bgj8
-END PGP SIGNATURE-

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Rumours of Java's demise have been greatly exaggerated.

2010-07-13 Thread Peter Becker

On 13/07/10 22:41, jitesh dundas wrote:

Have you heard of Hibernate/Spring for hiding DB related issues..
It hides them so well that it usually takes at least 10 times longer to 
fix them. It does so by layering a coat of its own issues over the DB.


  Peter (who tends to get cynical when hearing Hibernate or Spring).

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Geek time

2010-07-08 Thread Peter Becker
This might be not suitable for everyone, but I find the combination of 
(public transport + netbook + tethering) extremely helpful. OTOH I am 
currently accepting a commute of 1h+ as opposed to ~30min direct drive, 
I am not sure I'll keep that up.


At the moment pretty much 90%+ of my private email and feed reading 
happens on train and bus, plus some bits of coding and database work. My 
old netbook even copes decently running PostGIS + Geoserver :-) Kudos to 
the Ubuntu team -- with Windows XP it hardly coped with Adobe Reader (we 
are talking first gen Dell Mini 9 here).


  Peter (writing on the train to work)



On 09/07/10 01:46, Rakesh wrote:

Hi guys,

this is targeted at those slightly older developers out there who have
been coding for a while now and consider themselves rather good at
what they do.

How do you make time to keep up to date? I mean, I have a full time
job which leaves me knackered in the evenings and a wife and son who
make sure I am not left alone at the weekend.

I've been meaning to sit down and learn Scala, GWT, Spring 3.0 but I
just don't get the time.

Any one else been in this position? How did you solve it?

Rakesh

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: NetBeans code completion for logging

2010-06-28 Thread Peter Becker
At some level in the code IOException and SqlException are part of the 
domain model. They should just not be allowed to bubble up.


   Peter


On 27/06/10 18:19, Kevin Wright wrote:
There's a school of thought stating that checked exceptions are okay 
for  domain-level concepts, but not low-level stuff.
So SaveFailedException would be allowed, but IOException, SqlException 
and their derivatives wouldn't.



OTOH, It probably makes more sense to just return a status flag (or 
some other way of indicating completion/failure) in methods of this 
nature, I usually find that control flow reads more naturally that way.




On 27 June 2010 00:04, Paul King pa...@asert.com.au 
mailto:pa...@asert.com.au wrote:



Checked exceptions are a useful language feature and should be
used liberally in cases where you know all possible use cases for
your code in advance and require handling of the exceptions by the
caller because it makes sense for them to always handle it. For
code which you want to reuse for generic use cases they usually
become an anti-pattern.

-- 
You received this message because you are subscribed to the Google

Groups The Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.




--
Kevin Wright

mail/google talk: kev.lee.wri...@gmail.com 
mailto:kev.lee.wri...@gmail.com

wave: kev.lee.wri...@googlewave.com mailto:kev.lee.wri...@googlewave.com
skype: kev.lee.wright
twitter: @thecoda

--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Less IPhone

2010-06-24 Thread Peter Becker
I think people have been a bit harsh at times, but I think it is ok to 
give some criticism.


I always enjoy feedback for my open source projects, even the negative 
stuff. If people file bug reports (or the equivalent thereof), then it 
means they care enough to not only spend some time with your product, 
but also put some effort in to give you feedback. For me that is a sign 
of respect if expressed properly.


In the end the Posse will have to form their own view of this, but I 
would see it mostly positive. The solution might be better marketing, 
i.e. being more clear what type of content to expect. With the name 
JavaPosse the expectation of getting at least mostly Java related 
content is quite natural, which means people are set up for 
disappointment if the Java content is low. I'd say the guys should talk 
about what they want to talk, but they should accept that there is an 
expectation coming from the current name of the podcast.


Maybe they should pick a nice non-Unicode character and call themselves 
the group formerly known as the JavaPosse ;-) Just kidding.


  Peter



On 24/06/10 06:41, Dianne Marsh wrote:

Wow.  I'm pretty surprised that anyone feels entitled to complain
about a podcast that is researched, recorded, and produced on
volunteer time.  And it's an amazing podcast even when compared to
those that are produced by those who don't have fulltime jobs,
families, and outside interests.

Dick, Carl, Joe, and Tor are generous with their time and their
knowledge.  The discussions would be pretty boring if they were devoid
of their individual personalities.  I value all of their opinions and
have benefited from contributions by each at different times.  I'm
grateful that they invite us into their living room (OK, recording
studio) to eavesdrop on their discussions.  I'm glad that they change
things up when they see benefit in doing so.  I hope that this
continues to be fun for them, because it's awfully fun and
informational for me.

Thanks guys!
Dianne


On Jun 15, 12:02 am, RichardVowlesrichard.vow...@gmail.com  wrote:
   

I'm afraid that with so much noise on the podcast (as much as Dick
tries to deflect it) it has really becoming the Lets talk about what
Joe wants to talk about posse. The latest podcast I'm afraid for me
is the last straw, I just give up - Joe is so much noise, designer-
speak and Apple fanboyism it simply isn't worth listening anymore -
the other three just can't compete with it. Even interesting tech
discussions get sidelined. I'll go find my own news from now on, I'll
miss Dick, Tor and Carl's conversations, but will relish never
listening to Joe speak ever again.

I totally understand others like it the way it is, but I have just had
enough.

On Jun 12, 11:30 pm, Mikael Grevmikael.g...@gmail.com  wrote:

 

The Java Posse has as much obligation to only talk about Java as the
Ponytail Posse would have to only talk about ponytails (and Jonathan
Schwartz).
   
 

Things would be different if the podcast was named The Posse that
talks about Java.
   
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



[The Java Posse] Re: Project build with NetBeans or RAD

2010-06-23 Thread Peter Becker

On 23/06/10 09:25, Kerry Sainsbury wrote:
On Tue, Jun 22, 2010 at 8:00 PM, Fabrizio Giudici 
fabrizio.giud...@tidalwave.it 
mailto:fabrizio.giud...@tidalwave.it wrote:


 Kerry, is this what you meant?

Yes :-)

I work on many different projects and expect compilation to be 
trivial, and not tied to a particular IDE, so that means ant or 
maven. I'm a bit old school, so I also like the command line.


One frustration I had with maven (years ago, when I last looked at it) 
was perfectly illustrated by Peter Becker with his mvn $GOAL 
example. It was never obvious to me what value needed to be inserted 
into $GOAL, or how I might know what the valid options are, or what 
they might do. Has that changed?


ie: Is there an equivalent of ant -projecthelp
No, but the number of relevant goals for a project is always low. And it 
includes a couple of standards, e.g. compile, test, package (build 
JAR/WAR/whatever), install (install into local Maven repository) or 
deploy (deploy artifact into remote Maven repository). Occasionally I 
use integration-test. These are all standard goals of core Maven 
(actually they are lifecycle phases, but you can go for long without 
knowing that).


I think I have never used more than two project specific goals. Usually 
exec:java (run JAR) and/or tomcat:deploy (deploy to Tomcat). Special 
tools might have special goals (e.g. Sonar, Cargo), but they are the 
same across projects. For example: sonar:sonar will commit the project 
state to the Sonar database configured in the POM.


Maven always felt like there was too much magic involved, and when the 
magic faltered I felt lost and alone. Does the magic still falter, and 
if it does, is the cause (fairly) easy to diagnose?
A standard Maven project is pretty stable as far as I can tell. In 
particular Maven does not automagically update its plugins anymore, 
which was a common source of issues in prior days.


If it fails it can fail badly, it is sometimes hard to figure out the 
useful bits in the rather verbose output. And that assumes it is there 
in the first place. But I had issues like that only with pretty advanced 
use, e.g. with the Sonar plugin going astray.


From what I have read of Maven 3 they are certainly doing a lot to make 
things even better. And let's be honest: Ant builds can fail 
spectacularly, too -- particularly if conditional execution and multiple 
build files come into play.


Maven Pain of the Week segment on Illegal Argument doesn't exactly 
inspire me either :-)


There are certainly issues. But I'm pretty sure I could make a longer 
list for Ant. And my impression is that the Maven community is trying to 
do the right thing, where Ant seems rather stale.


That's of course just my 2c.

  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



[The Java Posse] Re: Project build with NetBeans or RAD

2010-06-22 Thread Peter Becker
I'd also say Fabrizio gave a good overview here. One thing I think could 
be added: Maven works well if
  a) you have tools that understand the POM (the project description 
Maven uses)

and
  b) you follow a one project:one artifact scheme

It is pretty hard to produce multiple artifacts from one Maven project. 
That is often seen as a major drawback, but once you understand Maven's 
approach to modules and parent projects, you just create a lot of small 
projects. Maven handles them for you and it enforces good modularity. 
It's one of the examples which people (including me) hate at first, then 
start to love.


As an example for tool support: if you build multiple Maven projects on 
one Hudson instance, and they have SNAPSHOT dependencies (i.e. to 
pre-release versions), then Hudson uses the dependency graph to trigger 
builds downstream (i.e. you build a library and the applications build 
automatically) and it can tell you for each build (and thus artifact) 
which builds in the upstream projects match. That feature you get 
completely for free: once you have the Maven builds set up it will do 
this. And setting up a Maven build is defining the build name, the 
checkout process and the goal you want to run, no magic there.


A second example: m2eclipse (the Eclipse plugin for Maven) uses the same 
dependencies to set up the Eclipse workspace dependencies. That means if 
you check out SNAPSHOT dependencies, you can edit them in Eclipse and 
your application will get updated as you type/save.


And another Maven example (and in some ways a drawback) is that things 
are much more consistent. If I open someone's Maven project I expect to 
understand the setup in 5 minutes. That is not always true, but it is 
true in 95% of the cases. Understanding an Ant build takes way longer.


   Peter



On 22/06/10 21:21, Fabrizio Giudici wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 6/22/10 12:46 , Wildam Martin wrote:
   

On Tue, Jun 22, 2010 at 10:38, Peter Becker
peter.becker...@gmail.com  wrote:
 

Maven might feel too complex or too limiting when you come from
Ant, but once you see the tool support it is more than worth it.
   

I read some articles about maven, but I could not find the big
benefit - just additional work (where ant works by default after
NetBeans installation) and I am by tendency a K.I.S.S. guy.
Especially for my development machine I am careful - I already
experienced in the past that too many tool dependencies could make
it hard to get a new development machine up and running so that all
project rebuild without errors (COM Windows world extremely
sensitive here).

I am not yet convinced to switch to Maven, but maybe somebody
could nail down the big advantage.

 

Listen, I'm a KISS guy too and precisely for that reason I've kept off
Maven for a long time, even though a number of professional friends
were advising about its use. Then I got to a complexity level in my
projects that made me really made the jump (started exactly one year
ago and about completed - there are still a couple of projects that
need to be converted). While Maven clearly adds complexity from some
sides (and I wouldn't advice a corporate to go trough the switch
without the support of an expert), it simplifies things from the
other. Most pitfalls can be properly handled with best practices and
in the end you get something that is very easily distributed and
passes the build-in-5-minutes tests (well, minutes required for the
build can be much more depending on the project, but the point is that
you don't need to do anything else than mvn clean install).

I'm not saying that Maven is better than Ant. I still think that there
are different contexts (complexity, culture, size of the project, size
of the team, etc...) where either of the two fits better. But OTOH
it's a way to leverage your best practices across multiple projects.
When I started learning Android I was happy to know that I am able to
do it with Maven and in a matter of hours I was able to reuse my whole
software factory best practices (including Hudson, FindBugs and other
metrics), with just a few minor quirks due to the fact that Maven
support for Android is young (and of course there are specific Android
quirks that can't be blamed on Maven).

I can tell you that I've been hating Maven for about two months after
I started used it, but fortunately I had understood that I should have
forced me to keep on for a few time before giving up. I really don't
regret it.

- -- 
Fabrizio Giudici - Java Architect, Project Manager

Tidalwave s.a.s. - We make Java work. Everywhere.
java.net/blog/fabriziogiudici - www.tidalwave.it/people
fabrizio.giud...@tidalwave.it
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkwgnL4ACgkQeDweFqgUGxehBwCgraUZmCIfHU20a5kLumSHDzfr
3sEAnj3oV3utOvDol+6LyJkdH8X31f8/
=J/0n
-END PGP SIGNATURE-

   


--
You

Re: [The Java Posse] Re: Code generation becoming mainstream?

2010-06-17 Thread Peter Becker

On 17/06/10 03:30, Karsten Silz wrote:

On 4 Jun., 22:34, Casper Bangcasper.b...@gmail.com  wrote:
   

So is this a general tendency all around, code generation becoming
mainstream? I've traditionally feared the day I can't do full round-
trip engineering in plain view but depend on magic generators and
IDE's (perhaps due to experiences with JDeveloper and the ADF
framework). Is this a good thing or a symptom of inferior languages
and lack of expressibility?
 

In general, I prefer code interpretation at run-time to code
generation.  Let's take an ORM like Hibernate.  Through XML or
annotations, I define the persistence strategy a POJO.  At runtime,
these are interpreted by the ORM.  If I add a field, I add an
annotation / update the XML file.  If Hibernate becomes smarter, then
I don't change anything because the interpreter gets updated and is
active at runtime (yeah, this is simplified since moving to a new ORM
version can induce pain).

Now if I generated the persistence code for the POJO instead, then I
need to re-generate the code again for a new field.  And if the ORM
becomes smarter, I somehow need to know to regenerate the code again.
To me, and that's subjective, the interpretation mode is better.
   
We have been using a Maven plugin to generate Java code as part of the 
normal build cycle. That removes quite a few issues you mention and by 
using JAXB to read the XML input and Freemarker to render the Java code 
it is a surprisingly simple code base by itself. We also tried to make 
the generated code very much like what we would write ourselves, which 
means it is easy to understand a bug in the generated code. Tracing it 
back to the Freemarker template that generated it is usually trivial, too.


I think as so often the trick is to keep it (a) simple and (b) 
automated. The approach we took basically means you write a domain model 
in Java, whack some JAXB annotations on it and then pass the model into 
Freemarker templates to render Java code. The whole thing is executed as 
part of the normal Maven builds, which means once you have configured 
the POM entry you can forget about it, you never actually call the code 
generation itself, it always happens as part of the normal compilation 
process. It also works in Hudson and similar tools without any 
additional configuration (assuming you deployed the generator plugin 
somewhere the Hudson build can grab it).


We used this approach to create a full Java web application using 
Restlet and Freemarker as solution domain. The only two things that 
turned out to be hardish where the fact that we really needed a really 
deep understanding of the JPA mappings and that Freemarker emitting 
Freemarker templates are confusing. The former is an intrinsic JPA 
problem, it just doesn't normally get exposed as much (you get away with 
just making the cases you have work), the latter could be avoided by not 
using Freemarker in the solution space. But both problems were (a) not 
all that bad and (b) only affected a very small fraction of our overall 
work.


I would definitely do this approach again. One day I might write it up 
-- I actually started a draft for a couple of blog entries, but never 
got around to fix them up.


Regards,
   Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Not only Java

2010-06-17 Thread Peter Becker
For me the big problem with Solaris (Open or not) is the lack of decent 
package management. Not only is the tool ridiculous (why does it ask me 
if I want to remove a package when I update it?), what is worse is that 
the repositories seem to be either more outdated than the Enterprise 
Linux ones or even more broken (I had a setup where Python was updated 
to a version other packages didn't like). If Solaris admin is part of 
your job description and/or your hobby and you are generally happy to 
compile stuff from scratch, then that might be ok. Neither is true for 
me, so I was happy when I didn't have to deal with Solaris anymore.


Enterprise Linux (RHEL, SLES) is not that much better, but still a bit 
less painful. There's also more to find in Google, which is really about 
market penetration, not intrinsic qualities. Wherever I can I stick with 
Ubuntu where most stuff I need is just an sudo apt-get install XYZ 
away (with tab expansion on the package name ;-) ).


Just my 2c,
   Peter



On 17/06/10 00:16, Carl Jokl wrote:

My private Web Server used to run Solaris 10. I have used OpenSolaris
and know that Solaris is a powerful platform. However it seems like
Solaris seems to get left behind when it comes to Usability.
OpenSolaris had been making quite a lot of strides in this area but it
feels like lately the OpenSolaris space seems dead in terms of news.
It has been a year since the last version of OpenSolaris came out.
Perhaps this just seems a long time because Ubuntu is launching new
versions consistently every 6 months. I tend to use Solars for no
better reason than the Sun fanboyism an not out of any real practical
need. I wonder if Solaris is going into decline. It is not that the
technology is bad but just that there seems like not much buzz or
excitement coming out of that camp. Solaris 10 seems to have been
around for ages without much commitment to when we can expect a
Solaris 11.

We see many times how inferior technologies end up becoming the most
popular. I mean it is how the term Betamaxed came into being. I
think Linux is going to Betamax Solaris. I am not happy about it but
it seems the way things are
going. That said I may well update my Intel Atom web server soon to
use one of the newer more energy efficient models and at that time I
think I will switch from Ubuntu to OpenSolaris. Just because I can.

As for JavaME. My impression has been that one of the motivations to
modularise the Java platform is to replace Java ME in the long term.
Instead of Java ME there would be a Mobile Profile of the Java
platform. Perhaps there is not so much motivation to do lots of work
on JavaME if the goal is to replace it anyway.

There seems a bit of a loose loose scenario with JavaME. If Oracle
makes JavaME free then it will make no money from selling licences. On
the other hand there is a real danger that if they do not make it free
the platform is going to spiral down in popularity and importance
until no-one wants to pay a licence to use it. If no one wants to use
it then Oracle still doesn't make any money. We have more
fragmentation than ever in the mobile space and something like JavaME
would be helpful.

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Not only Java

2010-06-17 Thread Peter Becker

On 18/06/10 01:22, Marcelo Fukushima wrote:



On Wed, Jun 16, 2010 at 6:42 PM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


For me the big problem with Solaris (Open or not) is the lack of
decent package management. Not only is the tool ridiculous (why
does it ask me if I want to remove a package when I update it?),
what is worse is that the repositories seem to be either more
outdated than the Enterprise Linux ones or even more broken (I had
a setup where Python was updated to a version other packages
didn't like). If Solaris admin is part of your job description
and/or your hobby and you are generally happy to compile stuff
from scratch, then that might be ok. Neither is true for me, so I
was happy when I didn't have to deal with Solaris anymore.


im not a solaris admin but generally like ipkg a lot (except for the 
lack of package updates). Also, ive been using solaris zones (the 
virtualization technology) more and more to separate things like 
websphere installation and databases and emulate clusters
some of our hudson farm nodes are also setup on solaris zones (not on 
my machine tough) in order to have dedicated network adapters and whatnot


Have you used apt-get? I find it way easier to work with and in 
particular in the Ubuntu world there is hardly any OSS product you can't 
get through it. Canonical does a great job not only maintaining the core 
repositories, but they also have the launchpad system where they build 
further tools for other people on all platforms that are supported. 
Anyone can create an account and their own personal package archives 
(PPA), which other people can then pick at will. That spoiled me, both 
Solaris and CentOS are far from that.


Running (para-)virtual machines on Linux isn't hard either, I've set up 
a reasonably large Xen+LVM solution myself. Provisioning takes less than 
2 minutes from default image, systems run at a speed near the physical 
machine. This is not the experience I had with Solaris Zones, although I 
must admit that I am not sure at all if the guy who set those up knew 
what he was doing. He clearly didn't care much since he kept 
provisioning us with machines running on US Pacific time while we were 
located in Australia. Whatever cause, disk IO was horrible. Creating our 
database from scratch took about an hour and a half, compared to about 
15 minutes on our workstations or the newer Xen setup. Once up the 
machine performed quite well, hitting it with a whole bunch of JMeter 
instances didn't make it blink.


There was about two years age difference between the servers, but the 
Intel box sure wasn't all that flash (less than AUD10k including 4 2TB 
disks).


Again: there might be something with the way he did it. I don't know, 
but I know that Solaris admin is part of his job description, while 
Linux admin is not part of mine. Yet my CentOS+Xen solution ended up 
performing much better. That's anecdotal and maybe it tells something 
about him or me, but from my limited perspective there seems to be a trend.


I really don't know enough to judge the full technical merits of the 
different solutions. All I see is that I can get a lot of things up and 
running on Ubuntu in very short time (*), while I always expect a harder 
and longer time with Solaris (Enterprise Linux is somewhere in between). 
Thus lazy me really likes Ubuntu and recommends it to anyone who is or 
should be as lazy (s/lazy/agile/g if management involved). That doesn't 
mean I think someone is stupid if they want to spend more time to get to 
some solution they consider superior.


   Peter



(*) to give examples: given a new machine and an Ubuntu install DVD I'd 
expect to get something like SVN+trac or a Hudson build server running 
in about half an hour, an Oracle Express box in about an hour. Add 10-15 
minutes for a CD install. Of course I'd at least triple that for 
management reporting, but these number are what I would personally 
expect to spend.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: OS-X - the abandoned platform?

2010-06-11 Thread Peter Becker
As someone who has some flavour of Ubuntu on every 
desktop/laptop/netbook I use (including a MacBook Pro and a recent 
iMac), I have been wondering a lot about why people like MacOS better. 
Everytime I use it I get annoyed, and I truly believe only part of that 
is the fact that I'm not used to it.


Your post clarified some points. I had figured out that (a) people still 
judge Linux based on the wrong distributions and (b) the office 
applications draw people in. The latter is perfectly valid IMO, not only 
due to the availability of MS Office, but also the Apple products. I 
personally don't mind OpenOffice, but I can see why people want the 
other options. I've been fortunate enough to hardly use any office 
products and having access to a terminal server.


Your second (c) is a good point I hadn't considered. I can see (d) to 
some extent, also that could work by looking at the quality of the PCs 
they buy their devs, too.


I think (a) and (b) are misguided, most likely by looking at the wrong 
distribution. Not only do I use Java and Apache from the Ubuntu 
installation, but also Tomcat, Maven and Apache -- which means they are 
all integrated into the one update mechanism I use. Ubuntu defaults to 
OpenJDK, but it is pretty easy to install the Sun JDK.


My first experiments in using Eclipse from the Ubuntu 10.04 repositories 
seems to indicate that they have that finally under control, too. It's a 
3.5.2, plugin installation seems to work and the startup time is 
impressive. Of course most Mac users seems to be IDEA users, too -- 
another preferences I don't share (at least not for pure Java development).


But hey -- it's only my opinion and a lot of it is about personal taste. 
I just sometimes get annoyed by MacOS fanboys pretending it's all 
perfect, despite the fact that it is pretty easy to find flaws. Did I 
mention that I have a very strong dislike of that startup sound from the 
not-BIOS? :-)


And regarding the non-innovation of KDE/Gnome (I believe that was 
Micheal Neale):

- https://wiki.ubuntu.com/MeMenu (implemented in 10.04)
- http://www.markshuttleworth.com/archives/333
- http://nepomuk.semanticdesktop.org

Not that I really think all these ideas are good, but they are just some 
examples that come to mind in attempts of innovation. In other areas 
Gnome and KDE just imitate (in fact I'd say the new Ubuntu looks way too 
much like MacOS), but sometimes they imitate quite well. KDE used to be 
the better Windows for a long time, now they have their own character.


  Peter



On 11/06/10 19:08, Kevin Wright wrote:
The problem with developing on windows is that servers are typically 
running some flavour of linux, so the development environment and the 
production environment can be wildly different.


tools like cygwin help, a lot, but it's still not perfect parity...

There's also the issue that Windows machines tend to be far more 
locked down/restricted by corporate policy, and something like an 
enforced anti-virus scanner can be crippling to activities that touch 
a lot of files (such as compiling)


That normally then leaves OSX or linux as the preferred choices.  I 
tend to favour OSX here for a few reasons:


a. a lot of useful dev stuff comes pre-installed and configured out of 
the box (think java, apache httpd, etc.)


b. I find I have to spend less time managing updates and the like

c. Microsoft Office.  Sad, but true.  OpenOffice is going from 
strength to strength, but conversion to/from MS formats is still not 
perfect,


c. Apple just don't supply lower-specced hardware.  If I say I want a 
17 macbook pro then there's no real scope for the bean counters to 
parlay that into a different model with lower resolution.  I *like* my 
screen real-estate.  This is perhaps one of the few occasions when the 
ability to run on almost anything is not so desirable in linux :)


d. An employer who's willing to buy Macs has shown willingness to 
invest in decent tools for their developers, I take this as a very 
good sign when considering any new role.



On 11 June 2010 09:33, jitesh dundas jbdun...@gmail.com 
mailto:jbdun...@gmail.com wrote:


Really! strange - I never thought of doing that..


On Fri, Jun 11, 2010 at 4:22 AM, Oscar Hsieh zen...@gmail.com
mailto:zen...@gmail.com wrote:

The problem with windows xp is that everyone login as admin.


On Jun 10, 2010, at 16:34, Vince O'Sullivan
vjosulli...@gmail.com mailto:vjosulli...@gmail.com wrote:

On Jun 10, 6:53 pm, Fabrizio Giudici
fabrizio.giud...@tidalwave.it
mailto:fabrizio.giud...@tidalwave.it
wrote:

(*) While I have Windows 7 installed on my MacBook
Pro, and sometimes
run it for testing, and it's without antivirus, I
never run it when
I'm not behind my office firewall, and I don't read
email with it. So
I can't say whether 

Re: [The Java Posse] Re: OS-X - the abandoned platform?

2010-06-11 Thread Peter Becker

On 12/06/10 09:37, Christian Catchpole wrote:

On Jun 11, 9:30 pm, Peter Beckerpeter.becker...@gmail.com  wrote:
   

Did I
mention that I have a very strong dislike of that startup sound from the
not-BIOS? :-)
 

That's because it's a tritone, also known as The Devils Interval

http://en.wikipedia.org/wiki/Tritone
   
I think Apple might be trying to immanentize the eschaton. Nazi soldiers 
will rise from Lake Totenkopf soon!


Oops -- does that fall under Godwin's Law?

  Peter
**

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: JCP.ORG down ?

2010-06-03 Thread Peter Becker

On 03/06/10 14:41, Robert Casto wrote:
It doesn't matter what happened. It is not that hard to change some 
domain records to point to another machine somewhere and put up a 
simple page that tells people what is going on.
In some sense it actually is -- due to the fact that domain records are 
cached across the world. Changing the entry is easy, but then it can 
take a very long time to affect people. And it can take as long to go back.


Normally it should be pretty straightforward to route the HTTP traffic 
to a different server (a netbook can serve a small static page easily). 
If your network is disconnected from the world life gets much harder, 
though.


And of course there is always the chance that people believed in the 
nearly fixed a bit too much. After all setting up an alternative page 
takes resources from fixing the real problem.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Good gosh J7 lambdas/closures are looking worse by the day

2010-06-01 Thread Peter Becker

On 01/06/10 18:35, Moandji Ezana wrote:
On Tue, Jun 1, 2010 at 7:12 AM, Michael Neale michael.ne...@gmail.com 
mailto:michael.ne...@gmail.com wrote:


I think it shows it in its worst light, when others show examples it
is OK I guess...


I agree, I don't think they're particularly ugly. Taking a simple, but 
real, example:


ListString userNames = userList.map(#(User u) {
  u.getName();
});

I can't see anything so terrible or unreadable about that.
Serious question (still trying to get my head around the syntax, but too 
busy (i.e. lazy) to look it up):


Shouldn't this be either

  ListString userNames = userList.map(#(User u) {
return u.getName();
  });

or

  ListString userNames = userList.map(#(User u)(u.getName());

? I thought the curly brace variants requires a proper Java method body. 
Or did I get that wrong?


I don't mind that first variant, the variant with the single expression 
is a bit high on parentheses overload for my taste.


   Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] A Brain For your PC

2010-05-25 Thread Peter Becker
Oops, yes I did. Talking about ignorance... -- although I guess it's 
more general incompetence in this case :-)


   Peter



On 25/05/10 09:38, Kevin Wright wrote:

You mean segue, right?

Though a thinking segway would be pretty cool!  Especially if I could 
build one using Lego Mindstorms...



On 25 May 2010 00:29, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


Hey -- at least time you bothered with a segway. This is just lazy
and/or ignorant.

And you will have changed the thread subject for all the poor
GMail users now -- they will get confused about where to find the
old thread. ;-)

To still answer the question you pose: The real problem is not
whether machines think, but whether men do. (B.F. Skinner, via
Civ4). Having dealt with semantic web technologies quite a bit I
tell you it is mostly dreaming. If you want to deal with Java
errors, grab PMD and Findbugs.

  Peter



On 25/05/10 09:07, jitesh dundas wrote:

Dear All,

Wouldn't it be nice if my PC starts thinking like us and solve our Java 
errors?

We all know that AI is giving machines the ability to become  better.
The highest goal in this direction is to give computers the ability
to think like the human brain. With IBM moving in this direction, it
is not a distant dream anymore.

I wanted your opinion  on this aspect and how could Java and C/C++
help in making this happen?

Regards,
Jitesh Dundas

On 5/25/10, Peter Beckerpeter.becker...@gmail.com  
mailto:peter.becker...@gmail.com  wrote:
   

Yes, Kevin. This is the walled garden thread, don't post anything that
hasn't been cleared with the management. And never ever consider
changing the subject line, otherwise you get into trouble with the
Google overlords.

Peter


On 25/05/10 01:17, Rakesh wrote:
 

I think you posted to the wrong thread Kevin!

On Mon, May 24, 2010 at 4:08 PM, Kevin Wright
kev.lee.wri...@googlemail.com  mailto:kev.lee.wri...@googlemail.com   
wrote:

   

Of course, the whole idea of a GUI came out of Xerox PARC, it was never
Apple's invention.
The GUI was actually invented as a better way to interact with the (then)
new Smalltalk language, ironically one that is now restricted from
apple's
walled garden
Even more ironically, Objective-C is basically a C/Smalltalk hybrid (the
memory safety of C coupled with all the blazing speed of smalltalk -
what's
not to like!), so it makes sense that C would also be allowed.  As for
C++?
   That's anybody's guess!


On 24 May 2010 15:13, jitesh dundasjbdun...@gmail.com  
mailto:jbdun...@gmail.com   wrote:

 

Hey Rakesh,

No offense,but I just wanted to give my opinion.Anyways,please don't
reply to this question.

I still think your conversation should be technical but I guess people
are enjoying this..
'One thing though,apple is really really good in bringing out good
stuff..

Please excuse me for the inconvenience.

Regards,
jd

On 5/24/10, Rakeshrakesh.mailgro...@gmail.com  
mailto:rakesh.mailgro...@gmail.com   wrote:

   

Hi Jitesh,

its considered a bit rude to hijack someone else's thread.

Please start your own to discuss the wonders Apple has bestowed upon
us.

Cheers

R

On Fri, May 21, 2010 at 5:40 PM, jitesh dundasjbdun...@gmail.com  
mailto:jbdun...@gmail.com
wrote:

 

I agree with this reply. Why are we not talking about the innovations
that Apple is bringing out. What about the beautiful GUI that Apple
has and which Microsoft just copied..This is what changes business
the way technology evolves..

We don't discuss about such things, but just plain old business stuff
sometimes

One good question here is to see how Apple takes its inventions and
creates a Revolution..

COULD WE EXPECT THIS FROM APPLE?

Any ideas?

Regards,
Jitesh Dundas

On 5/21/10, Casper Bangcasper.b...@gmail.com  
mailto:casper.b...@gmail.com   wrote:

   

I absolutely think that people are giving Apple a harder time than
they would other companies because these people have projected
ideals
on to them.

   

I disagree. You know what would happen if Microsoft tried some of the
stuff Apple has been pulling off? You wouldn't hear the end of it!
Jobs rules like Bill Gates never did. Mind you, Apple traditionally
has been able to do their monopoly game simply by being small enough
for nobody to care. That is no longer the case however; call it the
price of success. Apple is bound to get a taste of this, especially
as
they seem to prefer fist-fights rather than shaking hands.


 

So thats my point - Apple is what Apple does

Re: [The Java Posse] Re: The brutal truth

2010-05-24 Thread Peter Becker
Yes, Kevin. This is the walled garden thread, don't post anything that 
hasn't been cleared with the management. And never ever consider 
changing the subject line, otherwise you get into trouble with the 
Google overlords.


  Peter


On 25/05/10 01:17, Rakesh wrote:

I think you posted to the wrong thread Kevin!

On Mon, May 24, 2010 at 4:08 PM, Kevin Wright
kev.lee.wri...@googlemail.com  wrote:
   

Of course, the whole idea of a GUI came out of Xerox PARC, it was never
Apple's invention.
The GUI was actually invented as a better way to interact with the (then)
new Smalltalk language, ironically one that is now restricted from apple's
walled garden
Even more ironically, Objective-C is basically a C/Smalltalk hybrid (the
memory safety of C coupled with all the blazing speed of smalltalk - what's
not to like!), so it makes sense that C would also be allowed.  As for C++?
  That's anybody's guess!


On 24 May 2010 15:13, jitesh dundasjbdun...@gmail.com  wrote:
 

Hey Rakesh,

No offense,but I just wanted to give my opinion.Anyways,please don't
reply to this question.

I still think your conversation should be technical but I guess people
are enjoying this..
'One thing though,apple is really really good in bringing out good stuff..

Please excuse me for the inconvenience.

Regards,
jd

On 5/24/10, Rakeshrakesh.mailgro...@gmail.com  wrote:
   

Hi Jitesh,

its considered a bit rude to hijack someone else's thread.

Please start your own to discuss the wonders Apple has bestowed upon us.

Cheers

R

On Fri, May 21, 2010 at 5:40 PM, jitesh dundasjbdun...@gmail.com
wrote:
 

I agree with this reply. Why are we not talking about the innovations
that Apple is bringing out. What about the beautiful GUI that Apple
has and which Microsoft just copied..This is what changes business
the way technology evolves..

We don't discuss about such things, but just plain old business stuff
sometimes

One good question here is to see how Apple takes its inventions and
creates a Revolution..

COULD WE EXPECT THIS FROM APPLE?

Any ideas?

Regards,
Jitesh Dundas

On 5/21/10, Casper Bangcasper.b...@gmail.com  wrote:
   

I absolutely think that people are giving Apple a harder time than
they would other companies because these people have projected ideals
on to them.
   

I disagree. You know what would happen if Microsoft tried some of the
stuff Apple has been pulling off? You wouldn't hear the end of it!
Jobs rules like Bill Gates never did. Mind you, Apple traditionally
has been able to do their monopoly game simply by being small enough
for nobody to care. That is no longer the case however; call it the
price of success. Apple is bound to get a taste of this, especially as
they seem to prefer fist-fights rather than shaking hands.

 

So thats my point - Apple is what Apple does and its really no
different than most companies (it wants to make money by cornering a
market and locking in users). A lot of you guys (not everyone, just
the people really, really horrified at Apple's hypocrisy) just can't
face that and need to vent rather than just stop buying the products.
   

Again I think you are attempting to stereotype and oversimplify,
meaning none of the replies since your OP really sinked in as viable
reasons. It's not about venting but about protecting consumers (even
those who do not know they need it) from a mono-culture where you're
told what to believe rather than think on your own. That really has
nothing specifically to do with capitalism or betrayal, just plain
common sense. After all, history is full of examples of what happens
when you stop asking questions and just blindly follow.

/Casper

--
You received this message because you are subscribed to the Google
Groups
The Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


 

--
You received this message because you are subscribed to the Google
Groups
The Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


   

--
You received this message because you are subscribed to the Google
Groups
The Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


 

--
You received this message because you are subscribed to the Google Groups
The Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to

Re: [The Java Posse] A Brain For your PC

2010-05-24 Thread Peter Becker
Hey -- at least time you bothered with a segway. This is just lazy 
and/or ignorant.


And you will have changed the thread subject for all the poor GMail 
users now -- they will get confused about where to find the old thread. ;-)


To still answer the question you pose: The real problem is not whether 
machines think, but whether men do. (B.F. Skinner, via Civ4). Having 
dealt with semantic web technologies quite a bit I tell you it is mostly 
dreaming. If you want to deal with Java errors, grab PMD and Findbugs.


  Peter


On 25/05/10 09:07, jitesh dundas wrote:

Dear All,

Wouldn't it be nice if my PC starts thinking like us and solve our Java errors?

We all know that AI is giving machines the ability to become  better.
The highest goal in this direction is to give computers the ability
to think like the human brain. With IBM moving in this direction, it
is not a distant dream anymore.

I wanted your opinion  on this aspect and how could Java and C/C++
help in making this happen?

Regards,
Jitesh Dundas

On 5/25/10, Peter Beckerpeter.becker...@gmail.com  wrote:
   

Yes, Kevin. This is the walled garden thread, don't post anything that
hasn't been cleared with the management. And never ever consider
changing the subject line, otherwise you get into trouble with the
Google overlords.

Peter


On 25/05/10 01:17, Rakesh wrote:
 

I think you posted to the wrong thread Kevin!

On Mon, May 24, 2010 at 4:08 PM, Kevin Wright
kev.lee.wri...@googlemail.com   wrote:

   

Of course, the whole idea of a GUI came out of Xerox PARC, it was never
Apple's invention.
The GUI was actually invented as a better way to interact with the (then)
new Smalltalk language, ironically one that is now restricted from
apple's
walled garden
Even more ironically, Objective-C is basically a C/Smalltalk hybrid (the
memory safety of C coupled with all the blazing speed of smalltalk -
what's
not to like!), so it makes sense that C would also be allowed.  As for
C++?
   That's anybody's guess!


On 24 May 2010 15:13, jitesh dundasjbdun...@gmail.com   wrote:

 

Hey Rakesh,

No offense,but I just wanted to give my opinion.Anyways,please don't
reply to this question.

I still think your conversation should be technical but I guess people
are enjoying this..
'One thing though,apple is really really good in bringing out good
stuff..

Please excuse me for the inconvenience.

Regards,
jd

On 5/24/10, Rakeshrakesh.mailgro...@gmail.com   wrote:

   

Hi Jitesh,

its considered a bit rude to hijack someone else's thread.

Please start your own to discuss the wonders Apple has bestowed upon
us.

Cheers

R

On Fri, May 21, 2010 at 5:40 PM, jitesh dundasjbdun...@gmail.com
wrote:

 

I agree with this reply. Why are we not talking about the innovations
that Apple is bringing out. What about the beautiful GUI that Apple
has and which Microsoft just copied..This is what changes business
the way technology evolves..

We don't discuss about such things, but just plain old business stuff
sometimes

One good question here is to see how Apple takes its inventions and
creates a Revolution..

COULD WE EXPECT THIS FROM APPLE?

Any ideas?

Regards,
Jitesh Dundas

On 5/21/10, Casper Bangcasper.b...@gmail.com   wrote:

   

I absolutely think that people are giving Apple a harder time than
they would other companies because these people have projected
ideals
on to them.

   

I disagree. You know what would happen if Microsoft tried some of the
stuff Apple has been pulling off? You wouldn't hear the end of it!
Jobs rules like Bill Gates never did. Mind you, Apple traditionally
has been able to do their monopoly game simply by being small enough
for nobody to care. That is no longer the case however; call it the
price of success. Apple is bound to get a taste of this, especially
as
they seem to prefer fist-fights rather than shaking hands.


 

So thats my point - Apple is what Apple does and its really no
different than most companies (it wants to make money by cornering a
market and locking in users). A lot of you guys (not everyone, just
the people really, really horrified at Apple's hypocrisy) just can't
face that and need to vent rather than just stop buying the
products.

   

Again I think you are attempting to stereotype and oversimplify,
meaning none of the replies since your OP really sinked in as viable
reasons. It's not about venting but about protecting consumers (even
those who do not know they need it) from a mono-culture where you're
told what to believe rather than think on your own. That really has
nothing specifically to do with capitalism or betrayal, just plain
common sense. After all, history is full of examples of what happens
when you stop asking questions and just blindly follow.

/Casper

--
You received this message because you are subscribed to the Google
Groups
The Java Posse group.
To post to this group, send email to 

Re: [The Java Posse] Re: The brutal truth

2010-05-24 Thread Peter Becker
I think with Apple it is all about the ability to design good user 
interfaces. Maybe more accurately: the perception thereof.


If someone would manage to create the next great app that works across 
platforms, then that will weaken their position.


  Peter


On 25/05/10 09:27, Kevin Wright wrote:

:)

I had an interesting thought earlier...

All companies will defend their core strengths as strongly as 
possible, using lawyers etc as necessary.


Google do advertising and searching for products, they're currently 
being sued for downgrading non-google price comparison sites in search 
results.


Microsoft do operating [sic] systems and office productivity, they 
publicised document specs to be able to secure government contracts, 
but otherwise made them as convoluted and hard to implement as 
possible.  Windows is fairly safe through the available application base.


So what do Apple consider to be a core competency that they are 
defending here?




On 24 May 2010 23:54, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


Yes, Kevin. This is the walled garden thread, don't post anything
that hasn't been cleared with the management. And never ever
consider changing the subject line, otherwise you get into trouble
with the Google overlords.

 Peter



On 25/05/10 01:17, Rakesh wrote:

I think you posted to the wrong thread Kevin!

On Mon, May 24, 2010 at 4:08 PM, Kevin Wright
kev.lee.wri...@googlemail.com
mailto:kev.lee.wri...@googlemail.com  wrote:

Of course, the whole idea of a GUI came out of Xerox PARC,
it was never
Apple's invention.
The GUI was actually invented as a better way to interact
with the (then)
new Smalltalk language, ironically one that is now
restricted from apple's
walled garden
Even more ironically, Objective-C is basically a
C/Smalltalk hybrid (the
memory safety of C coupled with all the blazing speed of
smalltalk - what's
not to like!), so it makes sense that C would also be
allowed.  As for C++?
 That's anybody's guess!


On 24 May 2010 15:13, jitesh dundasjbdun...@gmail.com
mailto:jbdun...@gmail.com  wrote:

Hey Rakesh,

No offense,but I just wanted to give my
opinion.Anyways,please don't
reply to this question.

I still think your conversation should be technical
but I guess people
are enjoying this..
'One thing though,apple is really really good in
bringing out good stuff..

Please excuse me for the inconvenience.

Regards,
jd

On 5/24/10, Rakeshrakesh.mailgro...@gmail.com
mailto:rakesh.mailgro...@gmail.com  wrote:

Hi Jitesh,

its considered a bit rude to hijack someone else's
thread.

Please start your own to discuss the wonders Apple
has bestowed upon us.

Cheers

R

On Fri, May 21, 2010 at 5:40 PM, jitesh
dundasjbdun...@gmail.com mailto:jbdun...@gmail.com
wrote:

I agree with this reply. Why are we not
talking about the innovations
that Apple is bringing out. What about the
beautiful GUI that Apple
has and which Microsoft just copied..This is
what changes business
the way technology evolves..

We don't discuss about such things, but just
plain old business stuff
sometimes

One good question here is to see how Apple
takes its inventions and
creates a Revolution..

COULD WE EXPECT THIS FROM APPLE?

Any ideas?

Regards,
Jitesh Dundas

On 5/21/10, Casper Bangcasper.b...@gmail.com
mailto:casper.b...@gmail.com  wrote:

I absolutely think that people are
giving Apple a harder time than
they would other companies because
these people have projected ideals
on to them.

I disagree. You know what would happen if
Microsoft tried some of the
stuff Apple has been pulling off? You

Re: [The Java Posse] Re: Android Market now with a bit of more information for developers

2010-05-21 Thread Peter Becker

On 22/05/10 05:50, Karsten Silz wrote:

On 21 Mai, 15:53, Reinier Zwitserlootreini...@gmail.com  wrote:
   

I wonder if they were inspired by netbeans which has a similar
jawdropping centralized crash reports database.
 

The iPhone has had crash reports copied from the device through iTunes
from the first SDK, I believe. It's originally a Mac OS X feature. For
about a year, these reports have been submitted to Apple where
developers can investigate them.
   
Didn't XP have this feature in its original release? And I can't see 
that being the first time someone did it.


The big question for me is how people deal with the results. I don't 
usually bother with sending in the XP crashes, it seems to go straight 
to /dev/null anyway. On the other extreme are Netbeans and KDE, where 
you can afterwards easily follow what people are doing to solve the 
problem. Netbeans adds the nice little feature of sending a list of 
issues I reported and they fixed with every release. And they have the 
advantage of living in Java space, where stack traces are easier to 
obtain, which they make good use of.


A crash report is only step one. MS either doesn't understand that, or 
they just think there is no business case in following up with their 
customers. KDE/Netbeans coders really seem to appreciate the feedback 
and try to connect. No idea where Apple sits on that scale, but somehow 
I can't see them being too open about what's happening in the dev teams.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Is HTML 5 here sooner than we think?

2010-05-20 Thread Peter Becker
I think it will highly depend on the success of Windows 7. The same 
effect that happened with IE6 might happen with IE8 in a corporate 
environment: it might be deemed good enough so there will be no business 
case for installing anything else. Consumers will probably be pushed 
ahead to IE9 by the automated updates, if that is not significantly 
worse than Chrome/Firefox/etc. then the Windows crowd might largely stay 
with IE8/9. It will be a long time before any large site will stop 
supporting IE8.


OTOH: at least Firefox has made itself a bit of a name in the less 
computer-savvy crowd, which will make it easier for the technically 
inclined to push their friends over to some other browser. It doesn't 
even have to be Firefox, the main change is that the (Internet Browser 
== IE) equation has been broken in people's heads.


  Peter



On 20/05/10 17:51, Moandji Ezana wrote:
What I'm wondering is if IE9 is a great browser, will it boost 
Microsoft's market share? Or was IE's earlier market share an 
untenable anomaly anyway, which is now sinking to a more reasonable 
level?


Moandji
--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Is HTML 5 here sooner than we think?

2010-05-20 Thread Peter Becker
They wouldn't update their Windows either unless they have to. Chances 
are something will break, and I think every organization I deal with has 
some program testing what exactly breaks, probably since Vista came out.


I suspect the IE6-8 upgrade is probably even used as an argument for 
the XP-Win7 upgrade since even management now starts to see the 
problems caused by IE6. OTOH it is an argument against since it forces 
them to get the ERP vendors to fix their web UIs. And/or do an upgrade 
of the ERP system, which is a big job by itself.


The long dominance of IE6 has created scenarios in which it is truly 
very hard for these organizations to upgrade the browser. That is 
largely a fault of bad practices at exactly those places that talk a lot 
about best practices :-)


  Peter



On 21/05/10 04:26, Reinier Zwitserloot wrote:

People who are capable of updating their own windows across major
releases and more than capable of installing their own browser :)

On May 20, 11:19 am, Peter Beckerpeter.becker...@gmail.com  wrote:
   

I think it will highly depend on the success of Windows 7. The same
effect that happened with IE6 might happen with IE8 in a corporate
environment: it might be deemed good enough so there will be no business
case for installing anything else. Consumers will probably be pushed
ahead to IE9 by the automated updates, if that is not significantly
worse than Chrome/Firefox/etc. then the Windows crowd might largely stay
with IE8/9. It will be a long time before any large site will stop
supporting IE8.

OTOH: at least Firefox has made itself a bit of a name in the less
computer-savvy crowd, which will make it easier for the technically
inclined to push their friends over to some other browser. It doesn't
even have to be Firefox, the main change is that the (Internet Browser
== IE) equation has been broken in people's heads.

Peter

On 20/05/10 17:51, Moandji Ezana wrote:

 

What I'm wondering is if IE9 is a great browser, will it boost
Microsoft's market share? Or was IE's earlier market share an
untenable anomaly anyway, which is now sinking to a more reasonable
level?
   
 

Moandji
--
You received this message because you are subscribed to the Google
Groups The Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.
   

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group 
athttp://groups.google.com/group/javaposse?hl=en.
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] For JC (and nostalgic posse fans)

2010-05-20 Thread Peter Becker
I remember the days when I spent more money on sound cards than graphic 
cards :-)


I used to have an SB AWE with the extra MT-32 board stuck on top -- all 
of that is probably now easily beaten by the on-board sound in my 
netbook. Although I've never connected it to decent speakers, so I don't 
really know.


  Peter


On 21/05/10 04:24, Reinier Zwitserloot wrote:

The evolution of PC audio as told by Secret of Monkey Island.
Presumably the inspiration of the new Scalawags posse tune. Thought
you guys would like it :)

http://www.youtube.com/watch?v=a324ykKV-7Y

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Is HTML 5 here sooner than we think?

2010-05-19 Thread Peter Becker
I think for some context this is right. We have started reducing IE6 
support in our public facing applications (i.e. we ensure you get 
everywhere, but don't bother too much with getting the looks right). We 
have even added IE6 warnings on some of the more JavaScript heavy sites 
-- if you get there with IE6 you'll get a banner telling you that your 
experience will be sub-par.


Other projects we have are explicitly for government agencies. Here in 
Queensland they tend to be IE6 only. I know of at least one place where 
the admins install Firefox if you ask nicely, but I somehow didn't get 
the impression that is an officially sanctioned procedure.


So whatever we do for those guys has IE6 support as part of the official 
feature requirements and the best thing we can do is 
complain^h^h^h^h^h^h^h^h^h make a point that it will increase 
development costs and possibly reduce functionality and performance. 
Unfortunately the people we deal with at the client usually don't have 
any influence over core IT decisions like that, which means the only 
thing they can do is pass the message on. Which all produces a very 
negative mood, but it seems the best we can do.


  Peter



On 20/05/10 03:48, CKoerner wrote:

Oh I don't think we should wait on those XP/IE6 companies as a
developer. But as a business its subjective. Cutting out 10% of your
clients isn't so bad, cutting out 60% is another matter.

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: H.264 explainers

2010-05-17 Thread Peter Becker

On 18/05/10 05:36, Casper Bang wrote:

I'm going to say one more really mean thing that will piss everyone
off: when you have a community that has repeatedly made it clear that
it is not willing to pay for stuff, and whose intellectual leadership
rails against the concept of intellectual property itself, it probably
cuts into the business prospects of trying to sell media to this
audience.
 

Once again you're painting with very broad strokes here. The Linux
culture is quite a bit more diverse than the high-priest mono-culture
you are suggesting. I count myself lucky to be living in a country
where media standards are not dictated simply by the de-factory
proprietary format, and I have no issue whatsoever paying for
software. There are more moderate views than those pushed by Richard
Stallman i.e. try to see what Novell and Miguel de Icaza are doing.
Linux dominates servers, is about to dominate the smartphone marked...
I think it's a grave mistake to disregard desktop Linux on those
merits.
   
Only a small detail, but check out the statistics box on the Humble 
Indie Bundle: http://www.wolfire.com/humble


Linux users were the ones who gave the most, more than 80% ahead of the 
Windows crows, more than 42% (sic) ahead of the MacOS folks. Admittedly 
it's small monetary amounts, but to me it seems to show that not 
everyone who using Linux is doing it to avoid paying money. And with 
more than 138k contributions it is a pretty decent population size for a 
statistic.


I personally think most people who want to save money on software 
licenses use pirated copies of Windows. I use Linux for the better 
product and better service.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse]

2010-05-17 Thread Peter Becker
I believe he was actually a very fond Mac user in his days, but I also 
think he would question Apple's current direction strongly.


  Peter


On 17/05/10 23:21, Rakesh wrote:

42 - the gift that keeps on giving.

I'm sure if Douglas was with us today he would have something pithy to
say about Apple. But then again, I bet he would be a complete
Apple-fanboy.

R



On Mon, May 17, 2010 at 1:58 PM, Christian Catchpole
christ...@catchpole.net  wrote:
   

42

On May 17, 3:28 am, Enrique Anayaenriqueanay...@gmail.com  wrote:
 

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group 
athttp://groups.google.com/group/javaposse?hl=en.
   

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Stupid Error Messages

2010-05-13 Thread Peter Becker

On 13/05/10 17:37, Vince O'Sullivan wrote:

On May 13, 7:58 am, Fabrizio Giudicifabrizio.giud...@tidalwave.it
wrote:
   

What about The phone number / credit card number must not contain
spaces which I constantly find in checkout/etc pages?
 

Which reminds me...   ...yesterday I entered my surname (O'Sullivan)
into the appropriate field and got:

 Invalid surname.  no special characters or numbers allowed

Regardless of the crap English grammar in the error message it beggars
belief that a bank (the same one as before) can ship customer oriented
software that doesn't recognise customer names that contain
apostrophes or hyphens.

(I guess it's better than having my surname crash the application -
which has happened elsewhere.)
   
I generate passwords using KeepassX -- by default that includes special 
characters. I gave up on that idea for websites. I can handle the 
rejection of a password, but I had more than one case where the password 
was originally accepted, but then couldn't be used. In the most extreme 
case they actually send me the password back via automated email 
triggered by the Forgot password link, but trying to log in with it 
just told me that username or password must be wrong.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Flash demonstration on Android. Websites work, videos play, games run nicely. And Jobs said it couldn't be done.

2010-05-12 Thread Peter Becker
IIRC there was no notion of something like CSS when the web was invented 
and most of what is written down in the HTML and JavaScript related 
standards nowadays came out of proprietary extensions by Netscape and 
MS. A lot is still not sufficiently supported consistently across the 
main desktop browsers.


Not that I consider Flash a good thing, but that view you present 
doesn't seem to match reality too well. But maybe that was intended :-)


  Peter


On 13/05/10 04:07, CKoerner wrote:

full web is the support of HTML/CSS standards as was laid out when
the web was 'invented'. Proprietary web is Adobe and Microsofts web,
where vendor lock-in is encouraged through development for proprietary
plug-ins such as Flash and Silverlight.

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Friends of Linux?

2010-05-09 Thread Peter Becker

On 09/05/10 18:52, Eddie wrote:

I have tried to use linux as a desktop and back out.  It just seemed
to me that everything that can be done w/ windows w/ a few clicks
needed extreme effort to work around in linux.
ie. All my friends uses msn messenger, then I would use pidgin, but
then I can use webcam
And then setting up webcam on linux is another story.
   
The webcam is nowadays hardly ever an issue -- on all machines we own it 
works out of the box. I know of one machine at work were it doesn't, but 
I haven't investigated that. Considering the effort it can be to get 
drivers to work on Windows I'd consider that a pretty good result. One 
out of two dozens is not a bad failure rate.


But MSN video chat is a real problem. Not sure who to blame, but the 
solution there is to swap to Skype, which works quite nicely on Linux.

Back when I was trying linux, there are tons of bittorrent clients for
windows but there was only azureus as a more viable option.  I can't
use a software that I like.
   
That's why I see Linux as option for people new to the game. If you have 
your preferred set of applications and not much willingness to change, 
then you better stay with Windows. That is fair enough, just don't blame 
Linux for it ;-) There are plenty of bittorrent clients for Linux to 
chose from.

I couldn't update my harmony remote.

I couldn't use virtualdub to compress my video at that time ( I am
sure there were something else, but I gave up)

Those coupon printing sites doesn't work with linux.
   
I don't know about the virtualdub issue, but I can definitely see the 
other two being real problems. I'd never claim you won't lose anything 
-- although you can always run Windows in VirtualBox for those last 
islands of resistance. Of course that is less trivial than just 
installing Ubuntu.

iTune is another hassle.
   
I wonder how long iTunes will last on Windows ;-) AFAIK Amazon's MP3 
store has been open for Linux for a long time.

At the end, I feel I really OS really doesn't matter to me, why spend
so much time on something I don't care, I will just use windows.
   
Again: fair enough. But you should recognize that many of your problems 
stem from you insisting to use the same software as on Windows. That is 
not the fault of Linux, which is not meant to be a drop-in replacement 
for Windows. The Linux desktop can provide a similar if not better 
experience, but it won't be exactly the same. It's not meant to.


And regarding time: it takes me about an hour and a half to get from 
bare machine to fully customized Ubuntu installation. With Windows it 
takes something closer to a full day since I have to download a lot of 
different drivers and applications and then install them individually. 
It is common to compare the effort of installing Linux to the effort of 
running a pre-installed Windows, which is rational if you want to decide 
to swap or not, but not relevant for the comparison of the merits of the 
two systems.


In a way the home desktop is the hardest environment, too. If we would 
talk about an SOE in a properly run organisation arbitrary hardware is 
not an issue. But in a corporate environment we hit the biggest 
OpenSource hole I can think of: an Exchange replacement that is less 
pain than Exchange itself. Or alternatively: a decent groupware client 
that supports Exchange seamlessly. AFAIK neither exists.


  Peter



If you want a server, it's a totally different story, you can setup
LAMP stack in no time, where as a lot of php opensource projects did
not test well w/ windows.



On May 8, 7:15 pm, Peter Beckerpeter.becker...@gmail.com  wrote:
   

On 09/05/10 05:27, Blanford wrote:  I started trying to get people to use 
systems like Ubuntu for years
 

with little success.
We Linux people must resign ourselves to the fact that most American's
simply cannot handle products that are not commercial.
   

I'm not in America, my playing fields are Germany and Australia. But my
feeling is that the largest problem is a fear of being different. To
some extent this is actually not all irrational: being different means
you can't ask the next person for help. But most of it seems to be a
less rational fear of the new.

To some extent I think Apple's success has helped Linux. By moving the
market from one having one OS choice into having two, the option of
using something entirely else seems less far fetched. Additionally the
gap in noob-friendliness between Ubuntu and Windows seems to grow every
half year. And last but not least: the priorities of the users shift
more and more onto the web, desktop applications get less important,
which leads to less lock-in regarding the OS choice.

As a result I find people accepting the Ubuntu choice as a reasonable
option. Most of those people would have considered the whole Linux idea
ridiculous not long ago. Most still decide against it (the MS Office
lock in being a common reason), but at least the idea is taking serious.
And I have 

Re: [The Java Posse] Friends of Linux?

2010-05-08 Thread Peter Becker

On 09/05/10 05:27, Blanford wrote:

I started trying to get people to use systems like Ubuntu for years
with little success.
We Linux people must resign ourselves to the fact that most American's
simply cannot handle products that are not commercial.
   
I'm not in America, my playing fields are Germany and Australia. But my 
feeling is that the largest problem is a fear of being different. To 
some extent this is actually not all irrational: being different means 
you can't ask the next person for help. But most of it seems to be a 
less rational fear of the new.


To some extent I think Apple's success has helped Linux. By moving the 
market from one having one OS choice into having two, the option of 
using something entirely else seems less far fetched. Additionally the 
gap in noob-friendliness between Ubuntu and Windows seems to grow every 
half year. And last but not least: the priorities of the users shift 
more and more onto the web, desktop applications get less important, 
which leads to less lock-in regarding the OS choice.


As a result I find people accepting the Ubuntu choice as a reasonable 
option. Most of those people would have considered the whole Linux idea 
ridiculous not long ago. Most still decide against it (the MS Office 
lock in being a common reason), but at least the idea is taking serious. 
And I have converted some, none of which ever looked back.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Seven Languages in Seven Weeks

2010-05-08 Thread Peter Becker

On 09/05/10 09:21, Wildam Martin wrote:

[...]

  I shudder at the
thought of mutability in some of this, the API effectively states that you
can change May 5th to become September 22nd;
 

Who cares? - Really: This is something, a professor at university may mutable
have a philosophic problem with - in the real world nobody had a
problem with that before the functional and immutable hype.
   
Oh yes. I have seen bugs based on using mutable (and mutating) objects 
were clients made assumptions about immutability, or even worse: not 
making the assumptions themselves but using data structures that do. The 
classic example: put a mutable object into a hash structure and change 
properties that affect the hash code.


Any object that mutates its identity is a bug waiting to happen. Lack of 
immutability is real problem in the real world. It makes reasoning about 
code much, much harder and allows for bugs that are hard to see.

And BTW: Yes, it can make sense: Let's have a deadline on May 5th that
is moving to September 22nd. Why shouldn't it be valid to change that
date? - Not every date is a birthday.
   
There is a difference between a date as a property and a date as an 
instance. You might again claim that is philosophical or academic 
(in the negative senses of those words), but I will again claim that it 
is of relevance for writing easy to understand and safe code. If you 
change the date of a milestone, you assign a new date to the milestone, 
you do not change the nature of the old date. The latter would affect 
everything else that uses the same date.


[...]

- They continue to be willing to add proven new techniques and patterns to
the platform and C# language.  Such as dynamic lang support, FP constructs
via LINQ, sensible property handlers, delegates (method handles), closures,
etc.  Java prevaricates over all of these.
 

Guess what: I didn't miss any of that stuff in the last 15 years of
development - so a) it can't be something real essential. And apart
from that I currently don't see a particular situation currently where
I would use any of that.
   

Nothing beyond Turing completeness is essential. Yet we still do it.

I have plenty of use cases for using FP in Java, up to the point where I 
sometimes do, despite the fact that it creates a lot of syntactic noise 
and some confusion in co-workers. But once you get the idea it becomes 
easy to understand a huge class of straightforward solutions to problems 
that are otherwise hard to solve. Particularly in test code I find 
having predicates and a map function for collections much to useful to 
avoid the friction FP style creates in the Java world.


If you want FP-free Java you have to take Strategy out of your pattern 
box, and also remove ActionListener and any similar interfaces. The 
people who ask for closures mostly want a nicer solution to exactly this 
class of problems.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Objective C

2010-04-28 Thread Peter Becker

Can't resist.

I've been using Linux as my main desktop OS for many years now, nowadays 
even my wife and daughter use it (and no: I did not force that, all 
their machines are dual-boot). At work I often have to use Windows and 
apart from performance issues I see lots of usability problems. Where 
are the windows that align to each other? The vertical maximize? A 
decent quick-start dialog with fast full-text search? A coherent update 
mechanism for OS and applications? A well-structured start menu (i.e. 
not sorted by vendor names)? A decent shell and terminal out-of-the-box?


And I seriously thought I could use my netbook with the XP it came with 
-- after all it's mostly for mail, web and PDF reading, how hard can 
that be? I gave up after a week, ever since I put Ubuntu on it it became 
my main computer. The reasons for that change were not about shell 
access, command line tools or anything similar. It was all about usability.


Seriously: give a recent Ubuntu/Kubuntu a run before you make claims 
about how bad it is. IMO both KDE and Gnome beat XP and Vista hands down 
in terms of being user friendly, both for noobs and power users. The 
only people with issues will be the ones that expect everything to be 
100% like Windows.


I don't have an opinion on Windows 7 yet, I had only brief encounters so 
far.


End rant. Sorry.

  Peter


On 28/04/10 09:09, opinali wrote:

On 27 abr, 09:45, Christian Edward Gruber
christianedwardgru...@gmail.com  wrote:
   
Hahahahahahahahahahahahahah.  That's awesome.  What a wonderfully  
naive assertion.
If linux was a platform with merit, it would have met some degree of  
success on the desktop...
 

If you mean Linux Desktop Platform (GNOME, KDE and all that including
its totally crappy video and sound stacks...), yes it is garbage and
even major Linux enthusiasts complain about this all the time. A good
kernel makes not a good desktop platform; and Linux is not even one of
the best kernels in many respects - let's not digress into an OS-war,
but the desktop market leaders are superior to Linux in important
aspects even in the core tech (e.g. see Linux's pathetic advanced-
filesystem story, it's not yet in the place that Windows was10 years
ago with NTFS.) On the other hand, Linux _does_ have some degree of
desktop-type success in new niches like mobile devices, where Linux
_is_ clearly superior to the competition (surely beats the pants off
WinMob and Symbian). So, thanks for validating my argument. ;-)

   
These kinds of statements are ridiculous, because they assert  
underlying causes of success that are simply not provably so.  The guy  
could be right, but the assertion of causation is without merit.
 

The simple fact is that great programming languages - at least when
combined with good implementation, tooling, libraries and other basics
- will always gain SOME respectable market share and have a long-term
story with a thriving ecosystem (even if a relatively small one, e.g.
Python). Objective-C never managed to have that kind of success, on
any platform where it did not benefit from _massive_ protectionism.
Ada is another interesting case: it was promoted and imposed for years
by the US govt, but failed to gain any traction outside the government
contracts that mandated its use or its satellite industries. Yet, Ada
was arguably a superior language if compared to Obj-C; you could use
that as evidence that quality=success does not necessarily hold...
but life is more complicated that this, when I wrote merit I didn't
mean only a good formal design or powerful/innovative features, there
are other important factors, like some good alignment with the
technology and the problems of the developer community at each time,
the fitting in a larger ecosystem (e.g. LAMP prompting the 'P'
languages), etc.

A+
Osvaldo

   

cheers,
Christian.

On Apr 27, 2010, at 8:42 AM, opinali wrote:

 

If Obj-C was a language with
merits, it would have met some degree of success in other platforms.
   

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group 
athttp://groups.google.com/group/javaposse?hl=en.
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: The 'Thoroughly Modern' Development Environment From Hell

2010-04-26 Thread Peter Becker
I consider it very common to have commit emails, often to dedicated 
mailing lists. My preferred solution is trac, which works with a number 
of VCS backends (including SVN, Mercurial and git): 
http://trac.edgewall.org/timeline


That's not exactly email, but I like the RSS/web combo. And it 
integrates the ticket and wiki updates into the same stream. And you can 
browse the source code with all the version history right in place. Even 
if you don't use the wiki or ticket system, I find installing trac a 
worthwhile thing to do.


   Peter


On 27/04/10 03:19, Artie Peshimam wrote:

For every project, we get SVN commit emails that show the diff for
each and very commit.  It's great for seeing how your application
actually is evolving and also doing bit by bit code reviews. Here's a
good example for CVS.
http://www.badgers-in-foil.co.uk/projects/cvsspam/

I haven't seen anything as pretty and readable for Git, but I am just
getting started with that.



On Apr 25, 9:59 am, jitesh dundasjbdun...@gmail.com  wrote:
   

I agree with you on this. However, I wonder if upgrading from jdk1.4
to 1.5 will hurt your client s in anyway..Jdk1.5 is really good(i have
never used starteam so no comments on this)..
You could miss out on  a lot of supported functionalities due to this..
Just curious, why will the client oppose a jdk upgrade?  are need in
need of things besides jre?

Seems like your client is very demanding! good luck with that :)...

Regards,
Jitesh Dundas

On 4/25/10, Robert Castocasto.rob...@gmail.com  wrote:





 

Now I feel really bad. We are using StarTeam and Java 1.4. Been trying for a
long time to switch but there is a lot of resistance. To be fair, it is not
from the business but the customers where the issue lies. Changing is not
free and so there is a lot of resistance to it. That means applications have
a very long life span and those old tools will probably still be in use 4 or
5 years from now. Hard to switch when your customers don't want you to.
   
 

On Sun, Apr 25, 2010 at 3:25 AM, Neil Bartlettnjbartl...@gmail.com  wrote:
   
 

None of the technology you're using sounds that bad, frankly.
 
 

CVS? Okay it's not sexy, but at least you're not on Starteam. You're
allowed to use Eclipse, and a recent version as well great! At
least you're not forced to use some obsolete commercial IDE. And Java
5, are you kidding?? I've worked for companies that still used Java
1.3 in 2008! I would have done anything to be allowed to use Java 5...
 
 

It sounds like your only real problem is the lack of testing.
 
 

Neil
 
 

On Apr 23, 1:43 pm, Vince O'Sullivanvjosulli...@gmail.com  wrote:
 

My current and ongoing role involves developing web based application
for internal corporate use.  The majority of applications are one-man
end-to-end developments though some may have two or (for the really
big stuff) three people involved.  The people that I work with are
good developers but have hideously outdated working practices (I still
get handed Java classes with 300+ line methods, for instance).  I want
to clean the place up, starting with the development tools.  Listed
below are some of the tools that we currently use for software
development:
   
 

Operating System:
Developing on Windows XP on Dell hardware (laptops and desktops).
Deploying to Web app servers on Unix boxes.
No option to change this and anyway, it's the least of my problems.
   
 

Archiving and Version Control:
CVS - Getting everyone to use it was a key achievement for me in
2008.
I think I'd be lynched if I now said Actually, I think we should
be using git/Mercurial/Subversion/etc..
CVS has the advantage of being centrally hosted by the company.
I'm not sure I want the extra
overhead of running my own alternative but maybe.
   
 

Build Tool:
Ant - Occasionally hand built but usually Eclipse generated.
   
 

Automated End-to-End Builds:
I can do them (in a couple of stages), others just export a war
file from eclipse and load it onto the server and...
   
 

IDE:
Eclipse - I use the latest development build but most here use
whatever the latest company approved standard release was when they
received their current machine.
   
 

Language:
Java: I've dabbled in Scala and Groovy.  Several other people here
are aware non-Java languages (other than basic) exist.
  Currently version 1.5.  I got 1.6 loaded onto the server box
last year but we haven't developed to it yet.
  I cannot hand off projects in other languages to the
maintenance groups.
   
 

Testing:
JUnit: I use it.  The others are suitably impressed but not
convinced it's worth coding everything twice.
JMock: I use and love it but until the others even start using
JUnit, there's no sense in pushing it.
   
 

Web Stuff:
HTML and 

Re: [The Java Posse] Joe and my free market comments

2010-04-25 Thread Peter Becker
One thing I often notice is that people (and not just Americans) equate 
a free market with an unregulated market. But an unregulated market 
tends to monopolies, which probably don't fit most people's definition 
of free market (if they have any). I think politically a lot went 
wrong when the liberal parties around the world forgot about this 
distinction and turned capitalistic instead.


  Peter


On 26/04/10 07:42, Frederic Simon wrote:

Seeing the latest discussion on patent law and the feedback on the
latest podcast, I wanted to share an experience I had with Joe at the
roundup.

As a bunch of geeks getting together in Crested Butte, it is always
too easy to criticize the markets and managers. Nobody's there to
defend them :)
Hopefully we have Joe, and he is quite right about it: The system
proved itself, if you want to hit on it or change it, you better make
a good argument!

And during one heated discussion I answered: It does not work! Look
at it frankly it used to work but it does not anymore!. And I got the
look from Joe :) For a good reason, sorry about that.

So, I'll try to explain my point of view as short as I can.
Since 1998, I co-founded 3 companies, sold 1 of them (2 times!), and
I'm still working for the 2 other ones. It did not make me rich (far
from it), but the companies employed more than 250 people during that
time, so I'm quite proud of it.

To the point:
Today's US free market is broken for one simple reason: Wall Street
matters a lot more than customers and consumers.
In the US in the 50s the salary ratio between lower-middle class and
top executive was around 50 times, today it's 430!
Plus the amount of cash injected by the FED, the American Banks into
Wall Street has multiply itself by 4 since 1980.
So (and I personally experience it everyday for last 4 years), for a
business man pleasing Wall Street is a lot more profitable than
pleasing your customers.
Here I run a nice query on wolframalpha comparing the ratio between
money supply and total market capitalization.
http://www.wolframalpha.com/input/?i=money+supply+/+market+cap+ALL
Something strange is happening :)

That's why the US has:
- An extremely low broadband penetration, with ridiculously high price
per MBps,
- An antique auto industry that should be leading the way towards
gasoline free transportation,
- Cable companies that will do everything to not give their customers
what they want (a la carte, integrated TiVo, Hulu box, ...),
- An RIAA and MPAA which are pouring money to ridicule the entire
world on keeping their out-of-date business model,
- IBM which is selling the most expensive outrageous piece of crap
software to 50% of the market,
- ...

Apple and Google are exception in this world because their leaders
stick to: I'll please my customers first, Wall Street will get what
they deserve, no more!.
Today, it's a really hard to sell value proposition for shareholders,
but it used to be the natural way of business.
Before the 80s there was more money in the hand of US middle-class
than anywhere else. Making a successful product, that please the
consumer was making you rich. It is what free market supposed to be.
Today, tricking the book, merging or cutting companies into pieces,
reducing your cost, provide immediate gratification. The amounts are
way above what you can get from your customers. It's too tempting!

Don't get me wrong, Free Market and Capitalism gave us amazing things,
but it got corrupted.

I'm writing this because from my point of view there are many American
meme that really annoys me:
- Government intervention is a bad thing. Who do you think you have
more influence on: Your Congressman or IBM CEO?
- Regulating business is a bad thing. The latest ruling against the
FCC is a very bad sign. If the American people have a problem with the
FCC it can be changed, but if you don't like Comcast you're screwed
and they don't give a F#$%$K about you (Wall Street protecting their
monopoly).
- Free Market and Business have a morality. I know for a fact that you
can be a real psychopath (and I mean a disgusting half human with
absolutely no brain ability to feel human emotion), and a very
successful business man. The business environment needs to build its
morality, it does not have any.

Sorry for the length, and since I hate people always complaining
without proposing solutions, here is my crazy one:
Give ownership of the FED to the American people! I mean not the
government, just give all the shares of the FED to every voting
American. It'll break the upper circle between the FED, Banks and Wall
Street.

So, Joe I love talking to you, and hope you will not change :)

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 

Re: [The Java Posse] Re: The 'Thoroughly Modern' Development Environment From Hell

2010-04-24 Thread Peter Becker

On 24/04/10 21:30, Eric Jablow wrote:

On Apr 23, 7:46 pm, Peter Beckerpeter.becker...@gmail.com  wrote:
   

But let's think more practical. Number one I would sell is the move from
CVS to SVN. CVS is just too scary due to it's lack of atomic commits.
The consistent revision number across the repository is another nice
feature in SVN. While I agree with other posters that there are
technically superior options, I wouldn't even propose them based on the
description of the organizational culture. SVN makes me swear sometimes,
but it is leagues better than CVS. Setting up an SVN/trac combo is
pretty straightforward, although it of course means someone has to deal
with security patches and backups.
 

I would add TortoiseSVN to the list, as long as you stay with Windows.
I'd even push it to the non-programmers.  Budget memos and requirement
documents need version control too.
   

Since they already use TortoiseCVS I assumed that to be implied :-)

  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: The 'Thoroughly Modern' Development Environment From Hell

2010-04-24 Thread Peter Becker
If we are talking about non-developers things will get harder. But I 
have successfully merged Word documents with TortoiseSVN: it has a 
feature to open Word via Windows Scripting Host with the two documents 
that need merging.


The only problem there is that Word is/makes a mess: you will get all 
these supposed changes that are just field updates. And of course hardly 
anyone who uses Word knows how to do it properly (since those who do 
avoid it ;-) ). But these problems exist in the context of sending 
emails back and forth, too -- plus a lot of other ones, such as changes 
getting entirely lost due to concurrent updates and resulting overwrites.


But if you aim at a non-dev crowd I'd seriously look for alternatives.

  Peter



On 24/04/10 23:43, Edward Gabriel Moraru wrote:
Be aware that the business people sometimes edit the same document, 
and SVN/TortoiseSVN doesn't know how to merge binary files (as are 
treated doc, xls and ppt files)

Explain them how to use the Get lock/Release lock in TortoiseSVN.
It's a hard sell, I've tried and failed it, unfortunatedly.

Best of luck,
Edward.

On Sat, Apr 24, 2010 at 2:30 PM, Eric Jablow erjab...@gmail.com 
mailto:erjab...@gmail.com wrote:


On Apr 23, 7:46 pm, Peter Becker peter.becker...@gmail.com
mailto:peter.becker...@gmail.com wrote:
 But let's think more practical. Number one I would sell is the
move from
 CVS to SVN. CVS is just too scary due to it's lack of atomic
commits.
 The consistent revision number across the repository is another nice
 feature in SVN. While I agree with other posters that there are
 technically superior options, I wouldn't even propose them based
on the
 description of the organizational culture. SVN makes me swear
sometimes,
 but it is leagues better than CVS. Setting up an SVN/trac combo is
 pretty straightforward, although it of course means someone has
to deal
 with security patches and backups.

I would add TortoiseSVN to the list, as long as you stay with Windows.
I'd even push it to the non-programmers.  Budget memos and requirement
documents need version control too.

Respectfully,
Eric Jablow

--
You received this message because you are subscribed to the Google
Groups The Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: The 'Thoroughly Modern' Development Environment From Hell

2010-04-24 Thread Peter Becker
Does that work with MS Office nowadays? Back in the days when I tried 
(must have been around SVN 1.3/1.4) the WebDAV couldn't handle the 
locking scheme MSO used, which means you had to copy the document out, 
edit it there and then copy it back in. That's when we turned WebDAV 
access off.


And of course WebDAV also means empty commit messages on everything. 
That might be as good as it gets in some contexts, but I value a good 
commit message, so I would always look for options that make it easy to 
give a commit message. Not that I expect that everyone will use that 
well or use it at all, but WebDAV means you give up a priori.


The other feature missing in SVN/WebDAV (back then) was auto-branching. 
Some commercial systems advertise the ability to mount the repository as 
network share, commits are updates, if the commit conflicts, 
auto-branching with notification to some admin can be used. I don't 
think most business folks want to know about merging and WebDAV won't 
let them do it properly anyway. I guess you could tell them to use the 
old school naming patterns if in doubt, but that means at least the 
conflict needs to be detected first.


  Peter


On 25/04/10 02:06, Kevin Wright wrote:
For business docs, SVN does have one nice benefit: If working via 
apache httpd it can be used like any other WebDAV provider, mounted 
via web folders in Windows, and just keep track of changes 
transparently (every write automatically bumps the revision number)


The catch is that mergeability is lost, but in documents this isn't 
really so critical, especially given that all past edits are still 
retained.




On 24 April 2010 14:43, Edward Gabriel Moraru edward.mor...@gmail.com 
mailto:edward.mor...@gmail.com wrote:


Be aware that the business people sometimes edit the same
document, and SVN/TortoiseSVN doesn't know how to merge binary
files (as are treated doc, xls and ppt files)
Explain them how to use the Get lock/Release lock in TortoiseSVN.
It's a hard sell, I've tried and failed it, unfortunatedly.

Best of luck,
Edward.

On Sat, Apr 24, 2010 at 2:30 PM, Eric Jablow erjab...@gmail.com
mailto:erjab...@gmail.com wrote:

On Apr 23, 7:46 pm, Peter Becker peter.becker...@gmail.com
mailto:peter.becker...@gmail.com wrote:
 But let's think more practical. Number one I would sell is
the move from
 CVS to SVN. CVS is just too scary due to it's lack of atomic
commits.
 The consistent revision number across the repository is
another nice
 feature in SVN. While I agree with other posters that there are
 technically superior options, I wouldn't even propose them
based on the
 description of the organizational culture. SVN makes me
swear sometimes,
 but it is leagues better than CVS. Setting up an SVN/trac
combo is
 pretty straightforward, although it of course means someone
has to deal
 with security patches and backups.

I would add TortoiseSVN to the list, as long as you stay with
Windows.
I'd even push it to the non-programmers.  Budget memos and
requirement
documents need version control too.

Respectfully,
Eric Jablow

--
You received this message because you are subscribed to the
Google Groups The Java Posse group.
To post to this group, send email to
javaposse@googlegroups.com mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.


-- 
You received this message because you are subscribed to the Google

Groups The Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
mailto:javaposse@googlegroups.com.
To unsubscribe from this group, send email to
javaposse+unsubscr...@googlegroups.com
mailto:javaposse%2bunsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/javaposse?hl=en.




--
Kevin Wright

mail/google talk: kev.lee.wri...@googlemail.com 
mailto:kev.lee.wri...@googlemail.com

wave: kev.lee.wri...@googlewave.com mailto:kev.lee.wri...@googlewave.com
skype: kev.lee.wright
twitter: @thecoda

--
You received this message because you are subscribed to the Google 
Groups The Java Posse group.

To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com

Re: [The Java Posse] The 'Thoroughly Modern' Development Environment From Hell

2010-04-23 Thread Peter Becker
From a personal perspective the first thing I'd fix is replacing XP 
with Ubuntu -- the lack of responsiveness and decent CLI tools tends to 
drive me crazy (no, Cygwin is not a proper UNIX environment).


But let's think more practical. Number one I would sell is the move from 
CVS to SVN. CVS is just too scary due to it's lack of atomic commits. 
The consistent revision number across the repository is another nice 
feature in SVN. While I agree with other posters that there are 
technically superior options, I wouldn't even propose them based on the 
description of the organizational culture. SVN makes me swear sometimes, 
but it is leagues better than CVS. Setting up an SVN/trac combo is 
pretty straightforward, although it of course means someone has to deal 
with security patches and backups.


Talking about trac: I really miss an issue tracker in your list. JIRA is 
one option, I personally find trac sufficient for most projects. From 
what I read it might not be for your project, but it would certainly be 
a step forward. And it kind of integrates with Eclipse if you use Mylyn 
(half the time it just opens the web browser inside Eclipse, but that's 
not too bad). Another nice thing about trac is that it adds value by 
just being there. Even if you don't use the tickets or the wiki, it 
already allows browsing the code, following the commit messages and even 
full-text search on them (that of course assumes sensible commit 
messages are there to begin with).


If you can convince people to use SVN instead of CVS I'd set up an 
SVN/trac box and then quietly start using that myself. I would not 
directly introduce all of trac's features since that might well be too 
much change at once. Sell SVN to the business by making a case how 
expensive a broken commit in CVS can be. Even assuming daily backups on 
the CVS server it can easily stop development for 2 days (restore old 
state, try to figure out what had been done since then, repeat those 
things).


The other thing you can do is to introduce a continuous integration 
server (I strongly recommend Hudson). That reinforces the unit testing 
since they will run regularly. It is also something people can ignore as 
long as you don't force them, which means you can convert some less 
conservative colleagues first, and then try to change policy once there 
is enough momentum. There is also value to be added if you can automate 
deployment (at least to the test environments). All this doesn't require 
attention by anyone else, which means it is a good submarine project.


Another thing I would personally really like to change is replacing Ant 
with Maven. But that is non-trivial, I'd certainly tackle the VCS and CI 
parts first.


A potentially easy, but not all that important change: replace FileZilla 
with WinSCP (and thus FTP with SCP/SFTP). One less server component, 
potentially better ease of use on the client (assuming keys are used).


In general: I try to tackle the things that I can change for myself 
without affecting others first (the CVS-SVN change being the exception 
here). Afterwards I try to lead by example, not pushing anyone much.


At my workplace I have set up Hudson very early on, I started new 
projects on Maven (we have enough freedom for that), later added 
Artifactory. All that means I wear the sysadmin hat quite often (despite 
this not being part of my job description), but it pays off in the 
longer term. About a year later most of the teams are using that 
infrastructure now. Of course my environment is much less conservative: 
we are developing products for scientist at a university, some 
colleagues are pretty conservative, but since we have lots of 
independent small projects things can move at varying speeds.


   Peter



On 23/04/10 22:43, Vince O'Sullivan wrote:

My current and ongoing role involves developing web based application
for internal corporate use.  The majority of applications are one-man
end-to-end developments though some may have two or (for the really
big stuff) three people involved.  The people that I work with are
good developers but have hideously outdated working practices (I still
get handed Java classes with 300+ line methods, for instance).  I want
to clean the place up, starting with the development tools.  Listed
below are some of the tools that we currently use for software
development:

Operating System:
Developing on Windows XP on Dell hardware (laptops and desktops).
Deploying to Web app servers on Unix boxes.
No option to change this and anyway, it's the least of my problems.

Archiving and Version Control:
CVS - Getting everyone to use it was a key achievement for me in
2008.
I think I'd be lynched if I now said Actually, I think we should
be using git/Mercurial/Subversion/etc..
CVS has the advantage of being centrally hosted by the company.
I'm not sure I want the extra
overhead of running my own alternative but maybe.

Build Tool:
Ant - Occasionally hand 

Re: [The Java Posse] Re: question about analog audio to digital conversion

2010-04-22 Thread Peter Becker
The problem is not just technical and affects all digital media, 
including the CD: http://en.wikipedia.org/wiki/Loudness_war


The Wikipedia article mentions it even existed for vinyl releases when 
producers tried to make their music louder in jukeboxes.


Considering that trend it does make sense to do your own encodings, 
although I suspect that older CDs might be a good starting point.


  Peter



On 22/04/10 23:49, Kevin Wright wrote:
The OP wasn't comparing vinyl to CD, he was comparing vinyl to 
whatever compressed format iTunes served up (presumably AAC or MP3)


These are both use lossy compression, a very accurate term for a 
process that most definitely loses sound quality.


If CD were to be compared to vinyl, then the discrepancy would be much 
less noticeable.  Vinyl still does have the better dynamic range and 
will sound better when played on good equipment, though double-blind 
testing shows that only a small fraction of people can reliably 
distinguish the two.


Of course, higher-quality digital formats (such as the largely ignored 
DVD-audio) win hands down in any contest vs either CDs or Vinyl.



If you want your music as a file, I'd recommend the FLAC format (Free 
Lossless Audio Codec).  You can use this to compress both CD rips and 
recordings that you make directly.  Some material is also possible to 
source online in FLAC format, this is especially popular amongst 
classical music fans, for whom copyright infringement is not an issue.


However, I'm still not certain of the legal position on using 
bittorrent to download a FLAC version of something that you've already 
payed for in another format.



After all that, if you then intend to play it back over the cheap 
white headphones that come free with your iPod, I wouldn't bother 
going through all the effort!




On 22 April 2010 14:30, Casper Bang casper.b...@gmail.com 
mailto:casper.b...@gmail.com wrote:


Wow, is that really worth the trouble? I can appreciate the desire to
up the sampling from normal CD (say 24bit/320KHz rather than 16bit/
44KHz) or avoid compression (PCM rather than Fraunhofer/LAME), but I'd
imagine you'd need some pretty hard core analog equipment to keep the
noise level down (record warps and low-freq rumble) - or is that part
of the charm? :)


On Apr 22, 1:42 pm, Christian Catchpole christ...@catchpole.net
mailto:christ...@catchpole.net
wrote:
 Yeah you'll probably need a phono pre-amp.  I put my turntable
into a
 mixer and got gain out of it but the EQ wasn't balanced, so I assume
 the phono pre-amp will know what to do.  Perhaps even just an old
 turntable amp with tape line out.

 I just used normal wave recording software.  You adjust the gain so
 its within range but not clipping.. But not too low that you get
extra
 noise.  Then you can trim and normalize the signal (it finds the max
 point and adjusts the volume so the max fits within the bits).  This
 is not compression it's just a gain adjustment so its not
quieter than
 it needs to be.

 There probably are software filters but I find they do more harm
than
 good.. but those are just the ones i tried years ago.  if your extra
 keen you get take the clicks out by hand.

 I also found that my turntable was slightly the wrong speed, so I
 compared a song length with the same from a CD and worked out the
 ratio to adjust.

 I also found I could convert old 78s this way on my turntable by
 recording it at 45 then speeding it up.

 On Apr 22, 4:45 pm, RogerV rog...@qwest.net
mailto:rog...@qwest.net wrote:





  On account there are folks on this forum that know a thing or two
  about the art of recording audio to a digital format, I
thought would
  try posing a question. But first the setup:

  My teen-aged son and I were watching recent episode of Fringe
where
  Peter repairs an old turn table for his alternate reality father,
  Walter. My son commented how he was at a friends house and
that they
  pulled out an old LP player and he listened to vinyl analog
recordings
  for the first time. This prompted me to go to the garage and
fetch my
  British-made Regga turn table and LP album collection. They had
  probably been entombed for 20 years.

  The Regga is an audiophile turn table, tone arm, and stylus
cartridge
  - it was about a $500 combination in early 1980s dollars. It's
very
  simple mechanically. The motor is off in a corner and conveys
motive
  power to the spindle via belt. The platter is 1 inch thick solid
  glass. Instead of an electronic feed-back loop to regulate the
  rotational speed, it instead relies on the fly wheel effect of a
  massive platter. The bottom line is the design and
construction keeps
  the stylus very well insulated from 

Re: [The Java Posse] Re: question about analog audio to digital conversion

2010-04-22 Thread Peter Becker
I know the problem -- the commercial stations here in AUS do similar 
things. I configured my MythTV to stop 2 seconds short, so I can check 
if I get 2 seconds of ads or missed something.


I'm not sure if the dynamic range would be all that useful. Maybe as 
part of some Bayesian filtering. Color range might be more interesting 
-- although I guess that depends on the type of show. Actually: the 
pitch range could help, too. I think you'd probably still anchor it on 
the time the logo appears, but then use some heuristic for going backwards.


  Peter



On 23/04/10 06:50, Kevin Wright wrote:

It does have one potential use though...

The same thing is done with TV adverts, which offers quite an 
interesting alternative for detecting and skipping them when using 
systems like myth.  Especially since so many programs have now stopped 
putting a channel logo between the end of the adverts and the 
resumption of the program (at least, here in the UK)




On 22 April 2010 21:44, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


The problem is not just technical and affects all digital media,
including the CD: http://en.wikipedia.org/wiki/Loudness_war

The Wikipedia article mentions it even existed for vinyl releases
when producers tried to make their music louder in jukeboxes.

Considering that trend it does make sense to do your own
encodings, although I suspect that older CDs might be a good
starting point.

  Peter




On 22/04/10 23:49, Kevin Wright wrote:

The OP wasn't comparing vinyl to CD, he was comparing vinyl to
whatever compressed format iTunes served up (presumably AAC or MP3)

These are both use lossy compression, a very accurate term for
a process that most definitely loses sound quality.

If CD were to be compared to vinyl, then the discrepancy would be
much less noticeable.  Vinyl still does have the better dynamic
range and will sound better when played on good equipment, though
double-blind testing shows that only a small fraction of people
can reliably distinguish the two.

Of course, higher-quality digital formats (such as the largely
ignored DVD-audio) win hands down in any contest vs either CDs or
Vinyl.


If you want your music as a file, I'd recommend the FLAC format
(Free Lossless Audio Codec).  You can use this to compress both
CD rips and recordings that you make directly.  Some material is
also possible to source online in FLAC format, this is especially
popular amongst classical music fans, for whom copyright
infringement is not an issue.

However, I'm still not certain of the legal position on using
bittorrent to download a FLAC version of something that you've
already payed for in another format.


After all that, if you then intend to play it back over the cheap
white headphones that come free with your iPod, I wouldn't bother
going through all the effort!



On 22 April 2010 14:30, Casper Bang casper.b...@gmail.com
mailto:casper.b...@gmail.com wrote:

Wow, is that really worth the trouble? I can appreciate the
desire to
up the sampling from normal CD (say 24bit/320KHz rather than
16bit/
44KHz) or avoid compression (PCM rather than
Fraunhofer/LAME), but I'd
imagine you'd need some pretty hard core analog equipment to
keep the
noise level down (record warps and low-freq rumble) - or is
that part
of the charm? :)


On Apr 22, 1:42 pm, Christian Catchpole
christ...@catchpole.net mailto:christ...@catchpole.net
wrote:
 Yeah you'll probably need a phono pre-amp.  I put my
turntable into a
 mixer and got gain out of it but the EQ wasn't balanced, so
I assume
 the phono pre-amp will know what to do.  Perhaps even
just an old
 turntable amp with tape line out.

 I just used normal wave recording software.  You adjust the
gain so
 its within range but not clipping.. But not too low that
you get extra
 noise.  Then you can trim and normalize the signal (it
finds the max
 point and adjusts the volume so the max fits within the
bits).  This
 is not compression it's just a gain adjustment so its not
quieter than
 it needs to be.

 There probably are software filters but I find they do more
harm than
 good.. but those are just the ones i tried years ago.  if
your extra
 keen you get take the clicks out by hand.

 I also found that my turntable was slightly the wrong
speed, so I
 compared a song length with the same from a CD and worked
out the
 ratio to adjust.

 I also found I could convert old 78s this way on my
turntable

Re: [The Java Posse] Re: Zero-based vs. one-based indexing

2010-04-17 Thread Peter Becker

Reinier,

On 18/04/10 07:37, Reinier Zwitserloot wrote:

Fine, let's exclude 0 as a counting number.

That wasn't my point though. Ignore it. *you* omitted the irrefutable
point that in set theory there is such a thing as the empty set, and
there's such a thing as a set's size, and thus 0 is unavoidable.
You're stuck with 0 as a concept whether you use 0-offset or 1-offset
indices.
   
You keep making arguments about something vaguely related and claim that 
they prove something about zero-based indexing.


Yes, we need a concept of zero. I never questioned that. But concluding 
that we should index from zero is a non-sequitur.

If 0 is less unnatural than -1, then, all further arguments flow from
there.
   

Define unnatural.

subList(i, i) isn't unnatural, it occurs all the time. I've got a
word X, I know it ends with foo and I'd like to strip that out:
String fooless = X.substring(0, X.length() - foo.length()); - that
looks nice, is only correct if range description works according to
the a= i  b principle, and introduces substring(0, 0) if the entire
string is itself foo.
   
In a one-based indexing scheme reading the second parameter of 
subList(..) as inclusive works in exactly the way you describe:


  var x = somethingFOO
  var y = FOO
  var z = x.substring(1, x.length - y.length)

Then z is x.substring(1,12-3) = something.


Your argument about losing an addressable argument seemed like bogus
to me. java has an exclusively end-of-range concept in all its APIs
and I never lost an addressable argument. What are you talking about?
   
Assume we have an addressable space of N (e.g. the largest possible 
integer value in your system). That means you can create an array 
containing N elements, but no more. Assume we have an array with N 
elements, then you can not clone this by calling subList(..) unless you 
allow the second parameter to be of a different type.


Not that I claim it practically matters, but it feels like a glitch to me.

You may judge Dijkstra on the fact that he's Dijkstra. Yes, even more
argumentation might be better, but at some point one takes a man's
accomplishments as having some intrinsic value.
   
I respect Dijkstra, but I would never assume that someone's notes are 
true or even well reasoned just because they have proven to argue well 
in other cases.

Finally, indexing and offsetting is not entirely the same. Sometimes
you're working with a pointer-esque mechanic even in java. For
example, most operations in java that work with byte arrays offer a
(byte[] array, int offset, int length) concept. As annoying as it is
that this isn't consistent with sublist and substring (those have
'end' instead of 'length'), imagine if you will that you're working
instead with a filter that removes parts. You're now talking in
offsets: you have a given index into the array and you need to move X
slots over to the right. If you'd like to remain with the first
element, X could only be 0. And there's 0 again. It is unavoidable. -1
and 1, on the other hand, are entirely avoidable. The APIs are more
consistent with 0. 0 wins.
   
Again I claim a non-sequitur. Yes: you need zeroes for offsets. And yes: 
it is convenient for implementation purposes to index from zero. Yet 
nearly all UIs I have seen use one-based indexing. Either we have to 
convince the world to start at zero or do the conversion somewhere.


The other part of my original mail you ignored is the fact that I 
actually never even claimed zero-based indexing is a bad idea. My claim 
is that it is not universally a good idea and that dismissing people who 
want one-based indexing as just not being up to the job while citing 
some scribbled notes of a famous person might not be a good idea at all. 
There are arguments for one-based indexing (matches externally expected 
behaviour, matches expectation of the un-trained) and a lot of the 
arguments for general superiority of zero-based seem either weak or 
specific to a particular view. If zero-based is truly better, both 
Dijjkstra and you do a bad job selling it.


  Peter





On Apr 17, 12:56 pm, Peter Beckerpeter.becker...@gmail.com  wrote:
   

Reinier,

you very conveniently pick pieces. Let me show you inline...

On 17/04/10 13:16, Reinier Zwitserloot wrote:  replies inline.

 

On Apr 17, 2:15 am, Peter Beckerpeter.becker...@gmail.comwrote:
   
 

Traditionally zero is not a natural number.
 
 

Who cares about natural numbers?
   

You wrote:
 

RULE 1: Counting elements in a list is in the domain of the natural
numbers. Therefore, if negative numbers are needed the solution is
inferior.
   

This is what I was replying to, only that you removed that part.  This is 
about the counting numbers,
 

and zero is undisputably a counting number.
   

Funny, the first three hits for counting number on Google are for me:


[The Java Posse] Zero-based vs. one-based indexing

2010-04-16 Thread Peter Becker

[was: a new programming language]

I don't find either Reinier's or Dykstra's reasoning conclusive.

First Reinier's points:

RULE 1: Counting elements in a list is in the domain of the natural
numbers. Therefore, if negative numbers are needed the solution is
inferior.
   

Traditionally zero is not a natural number.

RULE 2: In a list of, say, 10 elements, it would be odd if '11' is
anything other than an Out-Of-Bounds number.
   

It isn't in either scheme.

The end index has to be to the RIGHT and not to the LEFT of the final
character. If it was to the LEFT, then you'd need negative numbers to
describe the empty set of a set with 1 element in it.
That is based on convenient implementation, not the perspective of the 
user. It's a leaky abstraction, not UI/API design.

list.subList(0, 0) would then describe a list of size 1, whereas we
want one of size 0, so we'd have to write list.subList(0, -1). That's
awkward, so end indices have to work like they do in java.
   
How often would you write something like list.subList(0,-1). The only 
case I can think of are tests for the list structure. It might appear in 
calculations, but that seems not an issue to me.

List copy = list.subList(1, 11);

Now '11' shows up as a valid number in a 10-length list. That's rather
annoying, as it doesn't feel very natural for 11 to be a meaningful
count into a size 10 list.
   
But the point in the proposed semantics of the subList(..) parameters is 
that the second is _behind_ the last element. Being one higher than the 
highest position seems perfectly natural to me.


Now Dykstra's:
The observation that conventions a) and b) have the advantage that the 
difference between the bounds as mentioned equals the length of the 
subsequence is valid.
Again: implementation perspective. Most people (at least the ones I deal 
with) are perfectly capable of figuring out how many numbers you have if 
you start with 11 and end with 15.
There is a smallest natural number. Exclusion of the lower bound —as 
in b) and d)— forces for a subsequence starting at the smallest 
natural number the lower bound as mentioned into the realm of the 
unnatural numbers.
What is the smallest natural number? I studied math in Germany and there 
I learned that there is a set N (let's not add too much TeX -- the N 
should have the double bar on the left), which is the sequence starting 
at one, then repeatedly adding one. The numbers including zero are N_0 
(subscript zero). That is a bit old school, and there are many different 
conventions (see e.g. http://en.wikipedia.org/wiki/Natural_number). But 
saying there is a smallest natural number and implying it is zero 
hides the fact that conventions have been and continue to be different.


Adhering to convention a) yields, when starting with subscript 1, the 
subscript range 1 ≤ /i/  /N/+1; starting with 0, however, gives the 
nicer range 0 ≤ /i/  /N/.
What makes the second range nicer? I miss an argument supporting this 
statement. Despite having used C, C++ and Java as my primary languages 
for something like 15 years I still feel the former is nicer.


My personal opinion is that there are valid reasons why it is convenient 
for an implementation of array structures to use the convention Dykstra 
proposes as (a). You basically take the perspective of pointers (oddly 
enough not an argument Reinier or Dykstra made). The first position is 
the array start + 0, the last position is array start + (n-1), array 
start plus n is to the right of the last. Makes perfect sense to me.


Does that justify designing APIs in higher level languages that way? I 
don't really think so, I think other criteria should be applied. The 
most important one from my perspective would be the question what is 
the programmer using the API most likely to expect?. The answer to that 
one depends on your target audience: if you have low-level coders or 
people trained in a C-style language they will feel comfortable with the 
0-based index. I believe pretty much anyone else (including most 
mathematicians) tend to prefer 1-based indexing.


Sometimes I think a programming language should just have a generic 
array a.k.a. map and optimize for integer ranges. Then you could say:


  var zeroBasedArray = new Map([0,5], String);
  var oneBasedArray = new Map([1,6], String);

And the rest is up to the compiler to optimize. I would expect both data 
structures to be represented internally in the same way.


Of course apart from requiring integer ranges as types (quite doable) it 
leads to the problem that you can have a mix of both styles in one 
project, which might create a mess (I have no good answer to that). And 
the syntax above is too verbose, but that is a separate issue.


  Peter


On 17/04/10 04:51, B Smith-Mannschott wrote:

On Fri, Apr 16, 2010 at 18:40, Kevin Wright
kev.lee.wri...@googlemail.com  wrote:
   

You've now gone and spoilt a perfectly good nonsense thread with some
(admittedly obvious) logic and reason!
shame 

Re: [The Java Posse] Software Patents

2010-04-08 Thread Peter Becker

On 09/04/10 08:13, Scott Melton wrote:


Would you agree that patents and property rights greatly accelerate 
the rate of innovations, accelerating the growth of a free market 
economy?


Not at all -- I claim the opposite and the jury is still out. Even 
proponents of patent law seem to occasionally admit that the innovation 
benefit has not been proven.


The cost of patents is manyfold. Read the two excellent articles posted 
previously in this thread:


http://mises.org/daily/3702
http://mises.org/daily/4018
Why would I would I work nights and weekends to come up with a 
solution to a real world problem if I knew that as soon as I did I 
received nothing for it? The answer is I would not. I would do 
something where I would get rewarded instead. Camp, fish, raise kids, 
work a few extra hours for that new toy money, you get the picture.

I can think of at least two reasons:
(1) you just want to do it. Believe it or not: there is such thing as 
intrinsic motivation and it can be the core driver for some people. 
Being one of them I'd like to believe they are the truly innovative bunch.
(2) you need to do it for some business reason. Whoever invented the 
doubly linked list most likely did so because they had some other 
problem to solve (or it fell into category (1)). Or you might improve on 
some existing system to get a competitive advantage.


What patents do is to artificially extent that advantage. Is that 
ethical? Depends on your value system. Is that useful? Who knows -- it 
is something hard to study, I can't see scientific experiments done on this.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: software patents

2010-04-07 Thread Peter Becker

On 07/04/10 19:13, Christian Catchpole wrote:

Disclaimer: I once worked on a patient review board for a large
corporation

Somehow that typo amuses me in a sad way.

  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-16 Thread Peter Becker
I can see a working version of that scenario you describe, but I wonder 
how aspects like remote communication and concurrency will work. I think 
it is feasible, but it won't be easy to get a nice user experience.


And then there is the question how much value you add. As a gimmick it 
is great, but it is hard to judge if it would be significantly more 
efficient than just jumping through code in a text editor. I'm not 
saying it wouldn't be, but I'm not yet convinced it will be either.


I think someone should rather implement something like HarnMaster on a 
combination of Surface and iPads -- now that would be really useful :-)


  
http://kotaku.com/5385175/dungeons--dragons-on-microsoft-surface-is-for-wealthy-dms-only


With programming I just keep coming back to my text. But maybe I could 
be converted.


  Peter


On 16/03/10 17:21, Reinier Zwitserloot wrote:

multitouch is spectacularly great when the device is in your hands.
Trying to adapt the model of I'm sitting in a chair, in front of a
desk, working, and I have plenty of room for  my interface devices to
multitouch is unlikely to lead to good things.

The issue was the reverse, really: Handheld devices were attempting to
co-opt the interface paradigm established by the chair+desk+working
model, and this wasn't working out very well. The iPhone set the scene
for a new user interface design that no longer attempts to emulate
this but instead works with its own strengths and does away with many
of its weaknesses.


As programming is typically something that fits the chair+desk+working
model, multitouch isn't going to be a good option. The Microsoft
Surface concept (the *concept*. The actual device isn't that great,
but the idea behind it) isn't a chair+desk model either. As sitting in
front of it doesn't feel right I'm not sure how well it'll stand up to
a full working day but, let's paint a picture here:

You're in a team of 20 programmers. About 12 of you are in the office
today, 4 are working from home, 1 is at a client, and the rest is on
vacation.

Everyone is working on their own part of the plane, both the office
folks and the guys working from home. The guy at the client calls;
he's been debugging an issue on-site and he thinks he may have tracked
the problem down. He's logged via the VPN into the plane and has set
up a little area gathering relevant bubbles and put up some notes with
the problems. Some of the office folks walk on over to a Surface
device, pan it over to this area, and start brainstorming. One of
experts in this area is working from home but he's watching along,
seeing everything live. He's not quite getting the full vibe of the
crowd at the table but he can see enough to give useful input. Soon an
approach to solve the problem is decided on, a few tasks are created
at the Surface device, and the team disperses back to their own
systems. They pan over to the space they just saw on the Surface, and
start working in 2 pairs of 2 (pair programming!) to fix the problem.


Cool and realistic, or unrealistic scenario?

On Mar 16, 12:21 am, Peter Beckerpeter.becker...@gmail.com  wrote:
   

I can see this work on something like MS Surface, but also on a
wall-mounted large multi-touch screen if we are talking the code review
or mentoring scenarios.

But I agree though touch interfaces are often overrated, in particular
the multi-touch variation. They have their place, but they are not all
that useful in most scenarios I can think of.

I just had a discussion last week about the idea of using multi-touch
for a 3D viewer component and I just don't see much advantage that the
pinch control has over an icon that you drag single-touched. In
particular since the availability of multi-touch gestures is not visible
-- as long as most of the audience will not expect to be able to use
these gestures they are useless unless you accept some (minor) training
effort.

Peter

On 16/03/10 01:30, Reinier Zwitserloot wrote:



 

With multitouch? Craptastic, of course.
   
 

Multitouch requires one of two things:
   
 

   - the touch surface is NOT the display surface (e.g. it's a keyboard-
wide trackpad that's below the keyboard and uses absolute coordinates
instead of the relative coordinates that trackpads use, and somehow
knows the difference between you just resting your wrists and actually
using it)
   - the screen is below you.
   
 

Go ahead. Try it. Point at stuff on your screen for 40 seconds. Notice
how tired your arms are? Now do that for 8 hours. It boggles the mind
that so many people are excited about, and so many companies investing
in, the notion that you touch a monitor that's in front of you.
   
 

On an iPad this would be fun, but you really run into the cramped
screen real estate problem. Presumable with the pinch-zoom gesture you
could 'zoom' into a bubble and zoom right out again very quickly, but
part of the charm would be lost (that charm being: That relevant info
is around 

Re: [The Java Posse] NY Times: How Apple vs Google happened

2010-03-15 Thread Peter Becker
GMail often doesn't show you your own mail if you post through IMAP. 
Most of the time, actually -- but not always.


GMail is another walled garden -- it works well as long as you use the 
GMail interface, but the IMAP interface behaves weird in some regards 
and the fact that renaming an email subject renames a whole thread for 
GMail UI users is ridiculous. The walls are pretty low, though :-)


  Peter


On 16/03/10 03:45, Karsten Silz wrote:

Hi,

I thought I had posted this interesting reading about a sorry
development yesterday, but I must have been mistaken.

http://www.nytimes.com/2010/03/14/technology/14brawl.html

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-15 Thread Peter Becker
I can see this work on something like MS Surface, but also on a 
wall-mounted large multi-touch screen if we are talking the code review 
or mentoring scenarios.


But I agree though touch interfaces are often overrated, in particular 
the multi-touch variation. They have their place, but they are not all 
that useful in most scenarios I can think of.


I just had a discussion last week about the idea of using multi-touch 
for a 3D viewer component and I just don't see much advantage that the 
pinch control has over an icon that you drag single-touched. In 
particular since the availability of multi-touch gestures is not visible 
-- as long as most of the audience will not expect to be able to use 
these gestures they are useless unless you accept some (minor) training 
effort.


  Peter



On 16/03/10 01:30, Reinier Zwitserloot wrote:

With multitouch? Craptastic, of course.

Multitouch requires one of two things:

  - the touch surface is NOT the display surface (e.g. it's a keyboard-
wide trackpad that's below the keyboard and uses absolute coordinates
instead of the relative coordinates that trackpads use, and somehow
knows the difference between you just resting your wrists and actually
using it)
  - the screen is below you.

Go ahead. Try it. Point at stuff on your screen for 40 seconds. Notice
how tired your arms are? Now do that for 8 hours. It boggles the mind
that so many people are excited about, and so many companies investing
in, the notion that you touch a monitor that's in front of you.

On an iPad this would be fun, but you really run into the cramped
screen real estate problem. Presumable with the pinch-zoom gesture you
could 'zoom' into a bubble and zoom right out again very quickly, but
part of the charm would be lost (that charm being: That relevant info
is around the periphery even when you're typing).

On a gigantic all-touch-screen table this might be really interesting
though :)

On Mar 14, 7:00 pm, pub...@lesstroud.comstroud@gmail.com
wrote:
   

Hmmm...what would this be like with multi-touch?  That might get
interesting.

I remember JG talking about visual bandwidth in IDEs.  I think that
this may require an upgrade in my bandwidth. :)

LES
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-12 Thread Peter Becker

You can get 1920x1200 on 15 laptops ;-)

My old 15 one is 1680x1050, which is quite enjoyable. I'll probably try 
the 1920 the next time round.


  Peter


On 12/03/10 19:20, Fabrizio Giudici wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

In short, to second others' opinion: -1 for regular editing /
development, +1 for code reviews, refactorings and such.

For what concerns the screen estate management, I'm not puzzled for
the vertical spacing: most of my methods are just a few LOCs, as they
should be. I'm puzzled about the horizontal spacing: using speaking
names and things such as fluent interfaces, my personal attitude is
that code listing need horizontal space. I use a standard of 120
columns, and I hate to have lines that wraps around.

Needless to say that it would be unusable on a lattop (where I do 95%
of my work), but this is related to the use and when you do a code
review with other people you probably use a large screen. My current
customer has got several video walls in the lab, maybe I could try to
look at the video on one of them.

- -- 
Fabrizio Giudici - Java Architect, Project Manager

Tidalwave s.a.s. - We make Java work. Everywhere.
java.net/blog/fabriziogiudici - www.tidalwave.it/people
fabrizio.giud...@tidalwave.it
-BEGIN PGP SIGNATURE-
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkuaB24ACgkQeDweFqgUGxf2HwCfbtqUVSyazdo1od30fHwqQe8q
QQoAni09r0uvyAGDBnSFHGxs0DUhuYWL
=v5dW
-END PGP SIGNATURE-

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-12 Thread Peter Becker

On 12/03/10 19:35, Fabrizio Giudici wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 3/12/10 10:30 , Peter Becker wrote:
   

You can get 1920x1200 on 15 laptops ;-)
 

I know, I've seen one years ago. Too bad Apple is so innovative to
deliver only 1440x900 at 15 where 1680x1050 is common :-((( (my
latest HP laptop, circa 2004, was so). (*) The problem is that I find
such a pixel density to be excellent for looking at pictures, but not
for text-based processing.

(*) Note my subtle ability that allowed be to bash Apple in one of the
most unsuspected threads. Ha! :-D
   

I was setting you up ;-)

  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker
I had the same impressions: it seems to wasteful for editing, but 
extremely useful for anything that is explorative. Discussions about 
code came to mind, the debugging use case they showed as well as the 
scenario where you have to sit down and grok code you haven't seen 
before. Teaching/mentoring would be another use case.


I liked the flagging, too. And the notes combined with the option to 
email the whole workspace.


Did anyone else get the impression this is written in Swing? The code in 
the editors had plenty of JPanels over it and if these guys are anything 
like me they demo on their own code base :-)


  Peter


On 11/03/10 20:55, Reinier Zwitserloot wrote:

I stumbled on this video of Code Bubbles in action:
http://www.youtube.com/watch?v=PsPX0nElJ0k

and was quite amazed. I'm not sure if its pragmatic to have so little
signal-to-noise when actually typing new code, but there's easy
solutions around this. Basically, your IDE is an effectively boundless
plane and the granularity of editing anything isn't per-file but per-
method/class, with the method/classes actual location just metadata,
with the IDE sorting it all into the appropriate files internally.
Navigating anywhere is primarily via a search-in-everything keyboard
box, and code appears in bubbles on this infinite plane. If you do
things like visit declaration, the declaration opens, but in a new
bubble, visible together with the original code, instead of what most
current IDEs do, which is to open a new 'tab' and replace the view
entirely. It would also be an _amazing_ pair programming / code review
IDE if only you could all work in one plane, each having their own
little section in it, with you able to freely travel to someone else's
space. Unfortunately from the video it seems like all you can do is
email workspace layouts around, but that too could be addressed, I
guess.

Later on in the video a debug session is started which really does
look amazing (for code editing I'm not entirely convinced yet, but
that looks like a fantastic debugger!)

I know discussions about Why are code editors still a glorified dumb
terminal show up from time to time and this is certainly something
new.

There isn't a download yet; more info is here:
http://www.cs.brown.edu/people/acb/codebubbles_site.htm

I wouldn't mind seeing an interview of Andrew Bragdon about this :)

   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker

On 11/03/10 21:56, Jo Voordeckers wrote:


On Thu, Mar 11, 2010 at 12:27 PM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:



Did anyone else get the impression this is written in Swing? The
code in the editors had plenty of JPanels over it and if these
guys are anything like me they demo on their own code base :-)


Apparently it's built on top of the Eclipse platform, this doesn't 
mean it's not Swing, but more likely SWT.

I should have probably read something instead of just watching the video :-)

Eclipse makes sense -- after all you could reuse major parts of the JDT. 
I wonder what code they were looking at then.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker

On 11/03/10 22:21, Viktor Klang wrote:



On Thu, Mar 11, 2010 at 1:19 PM, Casper Bang casper.b...@gmail.com 
mailto:casper.b...@gmail.com wrote:


 Did anyone else get the impression this is written in Swing? The
code in
 the editors had plenty of JPanels over it and if these guys are
anything
 like me they demo on their own code base :-)

Not at all, it looks much too pretty and responsive at the same time,
I suspect it's an Eclipse plugin. On another note, booss,
I need a bigger monitor!


I use a 40 monitor

Next upgrade will probably be 52 ;)


You just need a 400 dpi screen and good glasses.

  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker
The current generation of IDEs already supports this navigation 
approach, just not the visualization. I hardly ever go through the file 
hierachy to find a file to open, I use the shortcuts to open types or 
resources, I use the shortcut to go into a method that's called, I find 
all callers via another shortcut or hit a key to see the hierarchy for 
an object. And then there is the object browsing, hot code replacement 
and all the other cool stuff in the debugger.


If you are still using vi/emacs/whatever you should probably go back and 
check out the keyboard reference chart of a proper IDE. I only recently 
converted a hard-core vi user to Eclipse (or at least an Eclipse/vi 
combo) -- it is pretty easy to see an IDE just as a glorified text 
editor, in which case sticking with vi makes sense if you already know 
it. But an IDE is much more than that, but it is not all that obvious. 
The code bubbles just make it obvious, but that by itself is a major 
achievement.


   Peter


On 12/03/10 02:46, Alexey Zinger wrote:
I gotta say, this is the first IDE I want to use.  Yes, I know, I 
haven't actually tried it, so it's a bit premature for such judgments, 
but I can't help but feel enthralled.  I'm a little concerned about 
what it'll feel like to work on longer methods, where vertical 
scrolling is necessary.  I guess in that situation your bubble takes 
up as much vertical real estate as you can give it and then if the 
user would probably start moving its sibling bubbles to the side to 
give it maximum height.  I guess it could work...


As far as a paradigm shift, I don't see it.  Both in IDE's and in 
plain text editors, it seems most people spend a lot of time 
referencing API docs, other snippets of relevant code, often looking 
at the same set of snippets of code for any given problem, etc.  I 
think this thing matches the current paradigm perfect, but with a 
better execution than what's on the market presently.



*From:* Brian Ehmann behm...@gmail.com
*To:* The Java Posse javaposse@googlegroups.com
*Sent:* Thu, March 11, 2010 11:31:35 AM
*Subject:* [The Java Posse] Re: Code Bubbles: A really weird new IDE. 
(Posse: Interview this guy!)


I really like its approach.  The UI appears to intuitively allow a
developer to narrow their focus to the parts of the code that are
absolutely necessary in order to accomplish a given task.  Also, the
ability to send a serialized copy of a given section of my workspace
to another developer is another plus.  Its strikes me as the next
evolutionary step from pastbin since you can build out the context of
the message you are trying to get across with the appropriate code
fragments, notes, and flags.

Unfortunately, going from seeing entire source files in a project tree
to functions in a bubble is such a radical change that I wonder if it
will be difficult for developers to adapt their practices in order to
take advantage of the features of Code Bubbles.

- Brian


On Mar 11, 6:00 am, Johannes Thönes johannes.thoe...@googlemail.com 
mailto:johannes.thoe...@googlemail.com

wrote:
 Yes I agreed. It is a very interesting approach. And I would love to
 hear an interview about this.

 On Thu, Mar 11, 2010 at 11:55 AM, Reinier Zwitserloot





 reini...@gmail.com mailto:reini...@gmail.com wrote:
  I stumbled on this video of Code Bubbles in action:
 http://www.youtube.com/watch?v=PsPX0nElJ0k

  and was quite amazed. I'm not sure if its pragmatic to have so little
  signal-to-noise when actually typing new code, but there's easy
  solutions around this. Basically, your IDE is an effectively boundless
  plane and the granularity of editing anything isn't per-file but per-
  method/class, with the method/classes actual location just metadata,
  with the IDE sorting it all into the appropriate files internally.
  Navigating anywhere is primarily via a search-in-everything keyboard
  box, and code appears in bubbles on this infinite plane. If you do
  things like visit declaration, the declaration opens, but in a new
  bubble, visible together with the original code, instead of what most
  current IDEs do, which is to open a new 'tab' and replace the view
  entirely. It would also be an _amazing_ pair programming / code review
  IDE if only you could all work in one plane, each having their own
  little section in it, with you able to freely travel to someone else's
  space. Unfortunately from the video it seems like all you can do is
  email workspace layouts around, but that too could be addressed, I
  guess.

  Later on in the video a debug session is started which really does
  look amazing (for code editing I'm not entirely convinced yet, but
  that looks like a fantastic debugger!)

  I know discussions about Why are code editors still a glorified dumb
  terminal show up from time to time and this is certainly something
  new.

  There isn't a download yet; more info is here:
 

Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker

On 12/03/10 06:51, Viktor Klang wrote:



On Thu, Mar 11, 2010 at 9:43 PM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


The current generation of IDEs already supports this navigation
approach, just not the visualization. I hardly ever go through the
file hierachy to find a file to open, I use the shortcuts to open
types or resources, I use the shortcut to go into a method that's
called, I find all callers via another shortcut or hit a key to
see the hierarchy for an object. And then there is the object
browsing, hot code replacement and all the other cool stuff in the
debugger.

If you are still using vi/emacs/whatever you should probably go
back and check out the keyboard reference chart of a proper IDE. I
only recently converted a hard-core vi user to Eclipse (or at
least an Eclipse/vi combo) -- it is pretty easy to see an IDE just
as a glorified text editor, in which case sticking with vi makes
sense if you already know it. But an IDE is much more than that,
but it is not all that obvious. The code bubbles just make it
obvious, but that by itself is a major achievement.


100% of the time I'm not interested in what file the code is in - I 
just want to jump to the declaration or definition of a type or 
method. IMHO files are not a good fit for organizing code.


Frankly: I find tree-shaped hierachies the even worse part of organizing 
code (or anything else). A lattice, my virtual kingdom for a lattice!


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Code Bubbles: A really weird new IDE. (Posse: Interview this guy!)

2010-03-11 Thread Peter Becker
As I said: I hardly ever browse the file hierarchy. As in maybe an 
average once per full day of coding with high variation depending on the 
project I'm working. Sometimes the way files are grouped helps 
understanding the architecture due to Java's 1:1 correspondences between 
packages:folders and topClasses:files.


But I agree that it would be nice to open code in a new tab/window 
similar to the way browsers do: a modifier key could force any such link 
to create a tab / split the editor window / popup a new one (depending 
on user's choice).


I forgot to mention one important shortcut, though: the one for a 
logical back. Often I hop into a method to check out what is happening 
in there, then jump back using the equivalent of the browser's back 
button. Again: it can be useful to see both things at once, and it can 
be useful to have things open in parallel (breadth, not depth). But I 
still believe many programmers have yet to discover the power of 
browsing in a modern IDE.


And don't get me wrong: I'm not trying to show off or claim that I'm a 
better programmer for knowing some keyboard shortcuts, but I find it sad 
to see people who miss out since a lot of these features are well hidden 
in current IDEs. I still learn some new trick every few months, despite 
the fact that I have been using Eclipse as primary IDE since 2.0, tend 
to read the What's new on milestones and used to subscribe to the 
Eclipse Magazin when I lived in Germany. Eclipse is a complex beast 
with mediocre UI -- it is way to easy to miss the good stuff in there.


  Peter



On 12/03/10 06:59, Alexey Zinger wrote:
That's my point though -- I don't care about the file structure.  It 
just happens to more-or-less resemble the class division in Java, but 
even that's not always helpful if you adopt some functional style with 
all the anonymous inner classes into your code.  So what really counts 
is just what the bubbles approach lets you do (in a more obvious 
manner, as you noted) -- define or discover meaningful selections of 
code and use them as first-class citizens of the development process 
(persist them, share them, attach meta-data to them, etc.)..  Contrast 
that with the current crop of IDE's that do let you discover bits of 
code that are connected, but it's tough to isolate, say a method from 
one class with a method from another class with some instance 
variable, etc. etc. -- all in one unit.  What's ironic, is that 
while a typical IDE will let you quickly pop up a bunch of tabs, each 
jumping to the relevant line, if you want to see 2 snippets from one 
file together, it's tough to do if they're not close together, if I'm 
not mistaken (I'm not entirely up to speed on the IDE state of the art).



*From:* Peter Becker peter.becker...@gmail.com
*To:* javaposse@googlegroups.com
*Sent:* Thu, March 11, 2010 3:43:41 PM
*Subject:* Re: [The Java Posse] Re: Code Bubbles: A really weird new 
IDE. (Posse: Interview this guy!)


The current generation of IDEs already supports this navigation 
approach, just not the visualization. I hardly ever go through the 
file hierachy to find a file to open, I use the shortcuts to open 
types or resources, I use the shortcut to go into a method that's 
called, I find all callers via another shortcut or hit a key to see 
the hierarchy for an object. And then there is the object browsing, 
hot code replacement and all the other cool stuff in the debugger.


If you are still using vi/emacs/whatever you should probably go back 
and check out the keyboard reference chart of a proper IDE. I only 
recently converted a hard-core vi user to Eclipse (or at least an 
Eclipse/vi combo) -- it is pretty easy to see an IDE just as a 
glorified text editor, in which case sticking with vi makes sense if 
you already know it. But an IDE is much more than that, but it is not 
all that obvious. The code bubbles just make it obvious, but that by 
itself is a major achievement.


   Peter


On 12/03/10 02:46, Alexey Zinger wrote:
I gotta say, this is the first IDE I want to use.  Yes, I know, I 
haven't actually tried it, so it's a bit premature for such 
judgments, but I can't help but feel enthralled.  I'm a little 
concerned about what it'll feel like to work on longer methods, where 
vertical scrolling is necessary.  I guess in that situation your 
bubble takes up as much vertical real estate as you can give it and 
then if the user would probably start moving its sibling bubbles to 
the side to give it maximum height.  I guess it could work...


As far as a paradigm shift, I don't see it.  Both in IDE's and in 
plain text editors, it seems most people spend a lot of time 
referencing API docs, other snippets of relevant code, often looking 
at the same set of snippets of code for any given problem, etc.  I 
think this thing matches the current paradigm perfect, but with a 
better execution than what's on the market presently

Re: [The Java Posse] Re: Is there something like Google Code or SourceForge that we can install on a corporate intranet?

2010-03-09 Thread Peter Becker

On 09/03/10 21:45, Karsten Silz wrote:

On 9 Mrz., 00:11, Peter Beckerpeter.becker...@gmail.com  wrote:
   

There are other
commercial offerings such as the Atlassian tools which are loved by many
(http://www.atlassian.com/). I've got not too much experience with
those, but that little bit suggests that they are not as accessible as
trac, but more powerful.
 

Agreed.  I used Bugzilla for a couple of years before switching to
JIRA, and it was a revelation (JIRA actually had the concept of
releases and versions - oh my...).  JIRA is a lot more powerful than
Trac, but Trac's wants to be as minimalistic as possible.  For
instance, we added a Closer custom fields to JIRA and could specify
its type to be a user name, so you got the type-ahead completion for
user names.  Trac has types for custom fields, too, but you can't
specify them to be user names (http://trac.edgewall.org/wiki/
TracTicketsCustomFields).
   
Don't get me started on Bugzilla ;-) It took me years to file my first 
bug against Eclipse and that was not due to the amount of issues I found.


Trac's tickets are quite accessible by default and if that's not good 
enough you can always use this: 
http://trac-hacks.org/wiki/SimpleTicketPlugin


I think having an easy way to file tickets can be very important if you 
want feedback from non-technical users. And that means not having to 
figure out which 10% of the form you should actually fill in.


BTW: surprisingly Sun (or Oracle) got that right for JVM crashes. I 
filed one of those today (SIGSEGV in HotSpot) and that was very 
straightforward. No ticket URL as answer, though :-(


I think a ticket form for end users should only capture the basic 
information plus an email address. Somehow I think that people who are 
willing to file a ticket are also happy to follow up with more 
information if asked nicely.


  Peter

--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Is there something like Google Code or SourceForge that we can install on a corporate intranet?

2010-03-08 Thread Peter Becker
I second that. We use trac a lot and while it has its limitations, it 
makes up for it by being extremely accessible. There is also a number of 
plugins to tailor it to specific needs. It can use a variety of 
versioning systems and Mylyn has integration for trac tickets.


One major limitation we found is the lack of an external API, though. 
You can set up projects with scripting thanks to the nice trac-admin 
command line tool, but we failed to e.g. submit a ticket through a 
REST-style call -- there are session tokens all over the place. The 
login scheme is also a bit weird, partly since HTTP auth is just too 
broken. But we've always managed to find other solutions/workarounds.


As mentioned before: Sourceforge has a commercial offering, but while 
Sourceforge seems to be improving a little bit recently, it has had a 
long period of time where things got worse, not better. There are other 
commercial offerings such as the Atlassian tools which are loved by many 
(http://www.atlassian.com/). I've got not too much experience with 
those, but that little bit suggests that they are not as accessible as 
trac, but more powerful.


Other companies that come to mind are http://www.collab.net/ and 
http://www.polarion.com/ -- but I don't have any experience with them. 
I'm not even sure Polarion does web-based products, they tend to be more 
in the Eclipse camp.


You might also want to check out http://www.liferay.com/ if you want 
something to manage documentation for the non-developer crowds. I only 
recently started playing with that, but I see a whole lot of potential. 
Personally I store most of the documentation together with the source 
code, but that is not everyone's favorite approach. In many ways SVN is 
better for your Word documents than a file server, but unfortunately 
that doesn't seem to extent to Mercurial and git. And then there is of 
course the Holy Grail of not using bloody Word :-)


HTH,
   Peter

On 09/03/10 08:04, Karsten Silz wrote:

I found Trac to be a very good option - bug tracking and project Wiki
in, integrated with SVN/GIT/Mercurial.  Love the timeline view that
combines Wiki, source and bug changes.  Out of the box, the bug
tracker is a bit basic, but you can add custom fields and change the
workflow easily through the trac.ini file.
http://trac.edgewall.org/

If you want to give it a whirl, there's a VM of Trac together with
Git, Bazaar, Mercurial and SVN (though at least SVN is an outdated
version).  I use it with VMware Workstation, but it supposedly also
runs with just the base VMware Player or Oracle's VirtualBox.
http://www.turnkeylinux.org/trac

The new 0.12 version of Trac is pretty close, it seems (http://
trac.edgewall.org/milestone/0.12); 0.11 is in production right now.

On 8 Mrz., 18:31, Eric Winterejwin...@gmail.com  wrote:
   

I work at a fairly large employer with a few hundred software
developers.  We are looking to improve our project sharing potential.
One step we are doing is introducing Maven to as many developers as
possible to make it easier to create, share, and use libraries.

Is there something like Google Code or SourceForge that we can install
on a corporate intranet?
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: The TURBO button

2010-02-16 Thread Peter Becker
The first time I encountered turbo buttons was in IBM ATs (or 
compatible), where they reduced the CPU speed to roughly that of an IBM 
XT. Otherwise older programs would run way too fast. Once the PCs left 
the binary area (XT or AT), the button got a bit useless -- programs had 
learned to use timers by then anyway.


I remember fixing a lot of performance issues by pushing that button 
back in.


   Peter



On 16/02/10 20:35, Christian Catchpole wrote:

i guess the button was quite advanced by the time it got to 16/20 Mhz.

I just remember a friend who had a 286 which was 4 and 8 mhz from
memory.

my amiga was 7.12 but it had a chipset and a high bandwidth blitter.

as for modern over-clocking it just depends on how conservative the
ratings are to start with. i guess it's about reliability and heat
disbursement.

On Feb 16, 7:35 pm, Casper Bangcasper.b...@gmail.com  wrote:
   

The turbo button on old computers was not an over-clocker, it was
simply a clock-halver.
   

I'm pretty sure my old 386 would go from 16 to 20 Mhz when I pressed
the turbo button though. But obviously clock-halvers were easier to
make, since all you needed was a flip-flop (2 NAND gates).

 

I do remember my girlfriend's father never used the turbo button
because he thought it would hurt the computer.
   

My my have we come far, today computers are 20-30% over-clocked from
the factory.
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Re: Apple's purity approach

2010-02-04 Thread Peter Becker
The days when soft scrolling was an impressive feat. But working with 
some guys who started with punch cards and soldering irons I don't try 
to pull the been here for long card anymore :-)


One day I might go to Warpstock, though -- after all that is still an 
annual conference, so OS/2 just can't be dead.


  Peter



On 04/02/10 19:50, Christian Catchpole wrote:

You think talking MS-DOS TSR's dates you?  How about 8 bit Commodore
64, assigning the vertical blanking interrupt to a SID player or
similar.

On Feb 4, 4:36 pm, RogerVrog...@qwest.net  wrote:
   

On Jan 30, 9:12 pm, Christian Catchpolechrist...@catchpole.net
wrote:

 

But as I think about it, I'm taking a new perspective.  We all think
that in the future we  will have simpler, cleaner easier to use,
Minority Report devices.  But until that happens, we all *need* unix
shells and root access to get anything done.  Progress in computing is
limited by our attachment to the past. I believe Apple are trying to
get us closer to the future.  Obviously, the geekier of us who are
used to total control over a system will revolt against it.
   

Sadly I date myself but we've lived all this before - back in the day
of MS-DOS TSR (terminate and stay resident) applications.

Those were eventually deemed too limiting relative to an OS offering a
true multi-processing and multi-tasking approach.

Is rather strange to see Apple steering the 21st century of computing
back to the 1980s.
 
   


--
You received this message because you are subscribed to the Google Groups The Java 
Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.



Re: [The Java Posse] Money Managers

2010-01-03 Thread Peter Becker
I never really got out of the research stage, but KMyMoney and jgnash 
seemed decent contenders in the OSS world.

  http://kmymoney2.sourceforge.net/index-home.html
  http://sourceforge.net/apps/mediawiki/jgnash/index.php?title=Main_Page

The OpenDirectory has a lot of links to offer:

  http://www.dmoz.org/Home/Personal_Finance/Software/

One product I noticed being mentioned as a decent cross-platform 
commercial solution is Moneydance:

  http://moneydance.com/

But that's just stuff I read on the internet somewhere ;-)

I have no personal experience beyond startup + 10min with any of these, 
and I'm not in the UK. I'd be interested to hear proper opinions, in 
case I ever bother to do my finances properly :-)

  Peter



Kevin Wright wrote:
 Okay, that's just spooky, I've recently been discussing exactly this 
 need over on the London Scala user group:
 http://groups.google.co.uk/group/scala-london/browse_thread/thread/ac20f7c5f7518911

 I took a different angle though, and was considering writing this a a 
 showcase app for Scala, especially as nothing currently available 
 seems to really address our fair isle.  You're correct that both 
 quicken and MS Money no longer provide UK editions.  Currently gnucash 
 does seem to be about the best offering available within the open 
 source world, though it doesn't exactly have the most intuitive UI 
 that I've ever encountered.


 2010/1/3 Rakesh rakesh.mailgro...@gmail.com 
 mailto:rakesh.mailgro...@gmail.com

 Hi guys,

 one of my resolutions for 2010 is to get better at sorting out my
 finances.

 Anybody recommend any software packages or if they just use excel?

 I'm in the UK so Quicken and Microsoft Money (i believe) are no
 longer supported. Would be good to hear if the independent/open
 source ones are actually any good. I just want to be able to enter
 expenditure and see where it all goes - a graph would be nice but
 a table of data is fine.

 Thanks

 Rakesh

 --

 You received this message because you are subscribed to the Google
 Groups The Java Posse group.
 To post to this group, send email to javaposse@googlegroups.com
 mailto:javaposse@googlegroups.com.
 To unsubscribe from this group, send email to
 javaposse+unsubscr...@googlegroups.com
 mailto:javaposse%2bunsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/javaposse?hl=en.




 -- 
 Kevin Wright

 mail/google talk: kev.lee.wri...@googlemail.com 
 mailto:kev.lee.wri...@googlemail.com
 wave: kev.lee.wri...@googlewave.com mailto:kev.lee.wri...@googlewave.com
 skype: kev.lee.wright
 twitter: @thecoda

 --

 You received this message because you are subscribed to the Google 
 Groups The Java Posse group.
 To post to this group, send email to javapo...@googlegroups.com.
 To unsubscribe from this group, send email to 
 javaposse+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/javaposse?hl=en.

--

You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.




Re: [The Java Posse] Re: Hat colours

2009-12-19 Thread Peter Becker
It's funny how proud people of British heritage are of never having had 
a spelling reform ;-)

Not only might they label a table as their American friends, they also 
might post a letter at the shopping centre. No wonder I meet so many 
people with spelling problems even in academia.

  Peter


John Stager wrote:
 I love the fact that this discussion uses the correct spelling of
 colours

 :)

 On Dec 11, 4:00 am, Peter Becker peter.becker...@gmail.com wrote:
   
 And then a dinosaur comes and forces you to swap the green skivvy for a
 blue one. Such is life.

   Peter

 Christian Catchpole wrote:
 
 I wonder if the wiggles have the same issues.  I heard their colour
 choices were down to who got to the skivvy shop the quickest.
   
 On Dec 10, 10:44 am, Joe Nuxoll (Java Posse) jnux...@gmail.com
 wrote:
   
 actually - when we got the hats...  I was at Apple (gray/black), Tor
 was at Sun (blue), Carl was at Google (yellow), and Dick was at New
 Energy (red).  Then Dick went to Google (red still works well), I went
 to Navigenics (still enough Apple cool-aide in my blood to stay gray/
 black), then Dick went to Navigenics (red still works fine).  Now Carl
 is at Netflix, and probably Carl and Dick should swap colors because
 Netflix is *very* red.  I'm a free-lance user experience designer now,
 so I'll stick with gray/black.
 
 My $0.02.
 
  - Joe
 
 On Nov 30, 10:31 am, carl carl.qu...@gmail.com wrote:
 
 I think they were chosen at random. Joe probably grabbed the grey one
 because it was the least geeky. I think they turned out to be pretty
 good matches in the end.
   
 On Nov 30, 3:57 am, Rick rickcar...@gmail.com wrote:
   
 I didn't realise that Dick has a Red Hat.  That's pretty funny. :D
 
 Do the other hat colours have any significance?
 
 --
   
 You received this message because you are subscribed to the Google Groups 
 The Java Posse group.
 To post to this group, send email to javapo...@googlegroups.com.
 To unsubscribe from this group, send email to 
 javaposse+unsubscr...@googlegroups.com.
 For more options, visit this group 
 athttp://groups.google.com/group/javaposse?hl=en.
   

 --

 You received this message because you are subscribed to the Google Groups 
 The Java Posse group.
 To post to this group, send email to javapo...@googlegroups.com.
 To unsubscribe from this group, send email to 
 javaposse+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/javaposse?hl=en.


   

--

You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.




Re: [The Java Posse] Re: Hat colours

2009-12-11 Thread Peter Becker
And then a dinosaur comes and forces you to swap the green skivvy for a 
blue one. Such is life.

  Peter



Christian Catchpole wrote:
 I wonder if the wiggles have the same issues.  I heard their colour
 choices were down to who got to the skivvy shop the quickest.

 On Dec 10, 10:44 am, Joe Nuxoll (Java Posse) jnux...@gmail.com
 wrote:
   
 actually - when we got the hats...  I was at Apple (gray/black), Tor
 was at Sun (blue), Carl was at Google (yellow), and Dick was at New
 Energy (red).  Then Dick went to Google (red still works well), I went
 to Navigenics (still enough Apple cool-aide in my blood to stay gray/
 black), then Dick went to Navigenics (red still works fine).  Now Carl
 is at Netflix, and probably Carl and Dick should swap colors because
 Netflix is *very* red.  I'm a free-lance user experience designer now,
 so I'll stick with gray/black.

 My $0.02.

  - Joe

 On Nov 30, 10:31 am, carl carl.qu...@gmail.com wrote:



 
 I think they were chosen at random. Joe probably grabbed the grey one
 because it was the least geeky. I think they turned out to be pretty
 good matches in the end.
   
 On Nov 30, 3:57 am, Rick rickcar...@gmail.com wrote:
   
 I didn't realise that Dick has a Red Hat.  That's pretty funny. :D
 
 Do the other hat colours have any significance?
 

 --

 You received this message because you are subscribed to the Google Groups 
 The Java Posse group.
 To post to this group, send email to javapo...@googlegroups.com.
 To unsubscribe from this group, send email to 
 javaposse+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/javaposse?hl=en.


   

--

You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.




Re: [The Java Posse] Re: No more SOA for NetBeans?

2009-12-11 Thread Peter Becker
Brian Leathem wrote:
 On 10/12/09 8:10 PM, Reinier Zwitserloot wrote:
   
 I always thought Service-Oriented-Architecture was a a devteam take-a-
 break bullshit word.

 You know, something you tell the brass so they get off your back for a
 month or two, giving the team time to spend some much needed time in
 feature-freeze, cleaning up stuff, refactoring code to be more
 maintainable for the future, and turning hacked together workarounds
 into proper fixes. Once you're done, you tell management you have the
 exact same thing you had before, except it's now all smoother and more
 maintainable (true), and that it is because it now has more
 SOA (which is false, as SOA is meaningless blather).

 

 I think a distinction needs to be made between well 
 modularized/refactored code that is architected to provide services; vs. 
 SOA.  I interpret SOA these days as an architecture that uses things 
 like BPEL and workflow engines to wire various service endpoints 
 together.  I'd say the former is what you are describing, and the latter 
 is what the tool support was providing.
   
I've heard many definitions for SOA, the only one I like is that you 
look at your business in terms of business processes and then break it 
down into small services which all have some kind of agreements around 
them. Where agreements are along the lines of SLAs, i.e. include things 
like availability and response times and not just the input and output 
formats.

The execution can happen with web services and BPEL/workflow enignes, 
but doesn't have to. In fact I have seen someone giving a talk on their 
SOA architecture, which turned to be implemented to some extent in CORBA 
(sic!). But with the above notion of SOA that is perfectly valid.

The problem is that most of the time people try to sell something using 
the SOA term. You sell technology, so you bind some technology to that 
term. That process somehow took over and suddenly everyone thinks web 
service, WS-* or even BPEL when the term is mentioned. I somehow 
suspect is wasn't originally meant that way.

Which leads to the question: does someone have a reference for the 
origin of the acronym? I once heard that it came out of Gartner, but I 
can't find any proof of that.

  Peter

--

You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.




Re: [The Java Posse] Mercurial strangeness

2009-11-24 Thread Peter Becker
Phil wrote:
 I have a Mercurial repository on my laptop which I clone locally to
 make code changes, these changes are committed locally and
 periodically groups of changes are pushed back into the 'master'
 repository. This works well.

 Last night I set up a new clone of the repository on a NAS drive. My
 Mac automatically reconnects to the NAS drive when I log in. The NAS
 repository will be accessed by a Hudson installation on another Mac on
 the network to build and deploy into a sandbox, so that the current
 working version of the application is always available to play with.

 Having set up the repository in the normal manner (hg clone) last
 night I've tried to push changes to it today, only to receive the
 following message:

 pushing to /Volumes/mercurial/content-api
 abort: No such file or directory: /Volumes/mercurial/content-api/.hg/
 store/lock

 And yes, looking in /Volumes/mercurial/content-api/.hg/store, there is
 no file or directory called 'lock'. Any suggestions?
   
I don't think there should be such a file unless hg is working. If this 
question is Java related at all, you might suffer from the infamous 
exception reuse problems in the JDK. In this case the overloaded 
FileNotFoundException could be the culprit. Maybe your problem is a lack 
of a write permission on the folder, not the lack of the file.

  Peter

--

You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javapo...@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.




[The Java Posse] Re: A max function for comparables

2009-11-14 Thread Peter Becker

Brian Leathem wrote:
 On Nov 13, 8:38 am, Kevin Wright kev.lee.wri...@googlemail.com
 wrote:
   
 On Fri, Nov 13, 2009 at 4:34 PM, Alexey inline_f...@yahoo.com wrote:
 
 Otherwise, doesn't seem too difficult to write your own such method,
 no?
   

 It is indeed trivial to write my own method.  I could then package
 that method along with other such methods in a toolbox jar that I
 include with all my projects.  It just strikes me that in the general
 case it's not good if everyone does this, as one will have to learn a
 new toolbox API every time one joins a new project.  I don't have the
 experience of working in many organizations, or on a diverse set of
 projects, but are such toolboxes common?  Is there much overlap
 amongst these toolboxes that people have seen?

 Granted I'm blowing things somewhat out of proportion with just this
 one method.  I was just curious if anyone else had a standardized
 way of dealing with this one.
   
There is a little problem with the idea of a generic maximum function on 
Comparables: the maximum is not necessarily defined. Let's say we sort 
people by age: chances are that you will encounter two people with the 
same age. In mathematical terms that means that they are in the same 
equivalence class, which means neither of them is considered larger than 
the other. Declaring one of them the maximum would not be correct and in 
fact the proposed implementation would not be symmetrical: depending on 
the order of the parameters you get different results.

One way out would be to actually not use the original order, but a more 
fine-grained one falling back to something like the system hashcode as 
secondary order, i.e. if the comparator/comparable returns 0, then we 
compare the references. But that's not really good either since the 
semantics are then dependent on the references -- we get into problems 
with multiple references to the same object as well as multiple runs of 
the program being inconsistent.

The only correct solution IMO would be to extend Comparator/Comparable 
by something that is explicitly antisymmetric, i.e. a total order. That 
then could have a maximum function that would be well-defined.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: A max function for comparables

2009-11-14 Thread Peter Becker

Also that is just another case of bad naming. According to the order on 
Doubles, the minimum is not what the JDK claims. That static should 
clearly be called MIN_POS_VALUE or maybe even MINIMUM_POSITIVE_VALUE or 
SMALLEST_REPRESENTABLE_POSITIVE_VALUE :-)

BTW: What is the actual use for that field? I honestly don't know what I 
would use it for.

  Peter



Casper Bang wrote:
 True. Semantics can be a tricky one. For instance, the output of the
 following is surprising to many:

 System.out.println( max(0.0, -1.0, -2.0) );

 public static double max(double... candidates)
 {
assert(candidates.length  0);
double knownMaxValue = Double.MIN_VALUE;
for(double candidate : candidates)
if(candidate  knownMaxValue)
knownMaxValue = candidate;
return knownMaxValue;
 }

 /Casper

 On Nov 14, 10:57 pm, Peter Becker peter.becker...@gmail.com wrote:
   
 Brian Leathem wrote:
 
 On Nov 13, 8:38 am, Kevin Wright kev.lee.wri...@googlemail.com
 wrote:
   
 On Fri, Nov 13, 2009 at 4:34 PM, Alexey inline_f...@yahoo.com wrote:
 
 Otherwise, doesn't seem too difficult to write your own such method,
 no?
   
 It is indeed trivial to write my own method.  I could then package
 that method along with other such methods in a toolbox jar that I
 include with all my projects.  It just strikes me that in the general
 case it's not good if everyone does this, as one will have to learn a
 new toolbox API every time one joins a new project.  I don't have the
 experience of working in many organizations, or on a diverse set of
 projects, but are such toolboxes common?  Is there much overlap
 amongst these toolboxes that people have seen?
   
 Granted I'm blowing things somewhat out of proportion with just this
 one method.  I was just curious if anyone else had a standardized
 way of dealing with this one.
   
 There is a little problem with the idea of a generic maximum function on
 Comparables: the maximum is not necessarily defined. Let's say we sort
 people by age: chances are that you will encounter two people with the
 same age. In mathematical terms that means that they are in the same
 equivalence class, which means neither of them is considered larger than
 the other. Declaring one of them the maximum would not be correct and in
 fact the proposed implementation would not be symmetrical: depending on
 the order of the parameters you get different results.

 One way out would be to actually not use the original order, but a more
 fine-grained one falling back to something like the system hashcode as
 secondary order, i.e. if the comparator/comparable returns 0, then we
 compare the references. But that's not really good either since the
 semantics are then dependent on the references -- we get into problems
 with multiple references to the same object as well as multiple runs of
 the program being inconsistent.

 The only correct solution IMO would be to extend Comparator/Comparable
 by something that is explicitly antisymmetric, i.e. a total order. That
 then could have a maximum function that would be well-defined.

   Peter
 
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Promoting artifacts

2009-11-10 Thread Peter Becker

I keep thinking what we need are Maven distributions. Or at least one of 
them.

The big feature distributions add to the Linux world is that they do QA 
and select packages that work together. No one does this in the Maven 
world -- at least not that I am aware of.

I don't think it is a technology issue, though. For me it seems more a 
social issue: we would need some kind of people who are willing to do 
the work (and work there is) and who would be trusted by others. Ideally 
there would be external test suites, checking dependencies throughout a 
whole stack (Hudson can be fun for such things).

Sometimes I think it would be a good thing for a larger Java shop to do: 
streamline your in-house Java development with well-tested tools and 
publish the results as open distribution, which gives you respect and 
further testing. But it would require at least a full-time position, 
probably more.

   Peter



Frederic Simon wrote:
 My first big Maven 2 project was in 2005, and since then nothing
 changed: I'm still amazed by the lack of version management and
 promotion we used to have with Linux Debian apt-get in 1999!!

 The Debian guys understood perfectly what bleeding, test, stage,
 and release really means. And 10 years after, we still don't have
 anything comparable in Maven??

 Anyway, we (at JFrog) worked on trying to solve this issue in
 Artifactory
 http://blogs.jfrog.org/2009/11/search-based-promotion-staging-and.html
 ,
  but the response so far can be qualified of mild :)

 I'm thinking: Am I the only crazy guy out there annoyed by this?
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Promoting artifacts

2009-11-10 Thread Peter Becker

Frederic Simon wrote:
 Let's hope promotion will be used more often by OSS libraries (and 
 Maven plugins). Everyone will benefit and we will start using version 
 ranges without being scare of tomorrow new version of log4j :)
I thought sl4j is the new evil :-)
 The idea is that when you develop something based on log4j, you can 
 use test or even bleeding level artifacts, and so new open 
 libraries versions have a good level of global worldwide acceptance 
 before being promoted stable.

 BTW: We did the Full Monty with Hudson (Promote builds and 
 dependencies as bulks) and we will show it at Devoxx :)
The thing I am imagining is a set of test suites at the top level, doing 
end-to-end testing on things like large web applications or maybe just 
below targeting the appservers, database engines etc. If all projects 
are set up with open dependencies, then a new release of something like 
log4j should trigger a large amount of builds downstream, up to the 
point of the distribution test suites. If all that succeeds, then 
chances are good that the new release is not only reasonably stable but 
also backwards-compatible. Of course no testing is perfect, but with a 
growing test suite confidence could rise.

But I guess I'm preaching to the choir :-)

   Peter



On Tue, Nov 10, 2009 at 1:01 PM, Peter Becker peter.becker.de 
http://peter.becker.de@gmail.com http://gmail.com wrote:


 I keep thinking what we need are Maven distributions. Or at least
 one of
 them.

 The big feature distributions add to the Linux world is that they
 do QA
 and select packages that work together. No one does this in the Maven
 world -- at least not that I am aware of.

 I don't think it is a technology issue, though. For me it seems more a
 social issue: we would need some kind of people who are willing to do
 the work (and work there is) and who would be trusted by others.
 Ideally
 there would be external test suites, checking dependencies
 throughout a
 whole stack (Hudson can be fun for such things).

 Sometimes I think it would be a good thing for a larger Java shop
 to do:
 streamline your in-house Java development with well-tested tools and
 publish the results as open distribution, which gives you respect and
 further testing. But it would require at least a full-time position,
 probably more.

   Peter



 Frederic Simon wrote:
  My first big Maven 2 project was in 2005, and since then nothing
  changed: I'm still amazed by the lack of version management and
  promotion we used to have with Linux Debian apt-get in 1999!!
 
  The Debian guys understood perfectly what bleeding, test,
 stage,
  and release really means. And 10 years after, we still don't have
  anything comparable in Maven??
 
  Anyway, we (at JFrog) worked on trying to solve this issue in
  Artifactory
 
 http://blogs.jfrog.org/2009/11/search-based-promotion-staging-and.html
  ,
   but the response so far can be qualified of mild :)
 
  I'm thinking: Am I the only crazy guy out there annoyed by this?
  
 






 -- 
 Co. Founder and Chief Architect
 JFrog Ltd
 5 Habonim st., P.O.Box 8187
 Netanya, Israel 42504.
 Tel: +972 9 8941444
 Fax: +972 9 8659977
 http://www.jfrog.org/
 http://twitter.com/freddy33

 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Upgrade to (K)Ubuntu 9.10 anyone ?

2009-10-30 Thread Peter Becker

Casper Bang wrote:
 Peter: Any experiences with the new EC2 support of the server version?
   
Sorry, no. I just used it to evaluate another product -- it seemed a 
good excuse to try the 9.10 server.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Upgrade to (K)Ubuntu 9.10 anyone ?

2009-10-29 Thread Peter Becker

Jan Goyvaerts wrote:
 Did somebody in here already did the upgrade to (k)ubuntu 9.10 ? 

 I thought it better to ask before asking my machine to commit suicide. :-)
I started with alpha 6 at home, with the beta at work (both Kubuntu). 
Two issues I had:

1) half of the dialog buttons in Eclipse stopped working (when clicking 
you get the visual feedback, but the action is not executed). The magic 
incantation is

   export GDK_NATIVE_WINDOWS=1

somewhere in your profile or Eclipse startup script. Supposedly the 
Eclipse Ubuntu package has the problem solved, but while they are on 
3.5.1 some plugins won't install on that since they removed the default 
update sites. With the line above the normal Eclipse downloads work.

See https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/443004

2) the upgrade of the Maven packages didn't work properly and I lost 
pretty much all of the plugins. That is easily solved by either not 
using the Maven from Ubuntu or just selecting every Maven plugin you can 
find in aptitude/synaptic/kpackage/whatever.

3) as so often with Ubuntu upgrades I got some sound hickups. KDE's 
sound is still ok, but Flash turned quiet on my machine at work. I 
haven't bothered to look into that yet.

Otherwise it's all fine. Subversion is finally officially on 1.6 (no 
need for PPAs anymore) and a couple of other things are updated. KDE's 
quick start thing (the Alt+F2 dialog) seems a lot faster.

I used Ubuntu Server 9.10 (the RC version) for a VirtualBox installation 
testing some stuff and the startup speed is impressive.

HTH,
   Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Upgrade to (K)Ubuntu 9.10 anyone ?

2009-10-29 Thread Peter Becker

Jan Goyvaerts wrote:
 Did somebody in here already did the upgrade to (k)ubuntu 9.10 ? 

 I thought it better to ask before asking my machine to commit suicide. :-)
I started with alpha 6 at home, with the beta at work (both Kubuntu). 
Two issues I had:

1) half of the dialog buttons in Eclipse stopped working (when clicking 
you get the visual feedback, but the action is not executed). The magic 
incantation is

   export GDK_NATIVE_WINDOWS=1

somewhere in your profile or Eclipse startup script. Supposedly the 
Eclipse Ubuntu package has the problem solved, but while they are on 
3.5.1 some plugins won't install on that since they removed the default 
update sites. With the line above the normal Eclipse downloads work.

See https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/443004

2) the upgrade of the Maven packages didn't work properly and I lost 
pretty much all of the plugins. That is easily solved by either not 
using the Maven from Ubuntu or just selecting every Maven plugin you can 
find in aptitude/synaptic/kpackage/whatever.

3) as so often with Ubuntu upgrades I got some sound hickups. KDE's 
sound is still ok, but Flash turned quiet on my machine at work. I 
haven't bothered to look into that yet.

Otherwise it's all fine. Subversion is finally officially on 1.6 (no 
need for PPAs anymore) and a couple of other things are updated. KDE's 
quick start thing (the Alt+F2 dialog) seems a lot faster.

I used Ubuntu Server 9.10 (the RC version) for a VirtualBox installation 
testing some stuff and the startup speed is impressive.

HTH,
   Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: A case for catch Throwable

2009-10-20 Thread Peter Becker

Kevin Wong wrote:
 Perhaps some code would help.  Here's the stripped down version:

 public class AbstractFoo {
 private ListThing thingsToProcess;

 public void setThingsToProcess(ListThing things) {
 this.thingsToProcess = things;
 }
 protected void processThing(Thing thing) {};
 public void process() {
 for( Thing thing : thingsToProcess ) {
 try {
 processThing(thing);
 } catch (Throwable t) {
 log(t);
 }
 }
 }
 }
   
I would catch Throwable here if each process is independent of each 
other, the chances of recovery from a failed process are high and the 
risk of side effects of a broken process are acceptable. One example 
where I did it is a little desktop indexing tool on top of Lucene, where 
each indexing process is wrapped in a catch Throwable. There are many 
possible exceptions in the different text extraction libraries, many of 
which are RuntimeExceptions. Every now and then you get an OOME from 
large (or weird) documents. The chances of recovering from those seem to 
be roughly 100% from my experience. And if it fails the user will have 
to restart the application, which considering the likelihood is 
acceptable risk.

AFAIK AWT's dispatch thread and Servlet engines follow the same approach.

But in general I'd consider it preferable to manage exceptions properly 
-- I'm one of those few people who think an all-checked-exception 
approach might actually make sense :-)

  Peter


 On Oct 20, 10:09 am, Alexey Zinger inline_f...@yahoo.com wrote:
   
 Maybe I misunderstood, but, even with a utility class, how can you not know 
 anything whatsoever about the subclass?  If it's something akin to 
 reflection, where any type of exception might legitimately be thrown, I'd 
 still not catch Throwable, instead opting for wrapping client exceptions 
 in custom checked exceptions, a la InvocationTargetException, in order to 
 differentiate between bad things happening with your own code and whatever 
 you're calling, which you presumably have little control over.

  Alexey
 2001 Honda CBR600F4i (CCS)
 2002 Suzuki Bandit 1200S
 1992 Kawasaki 
 EX500http://azinger.blogspot.comhttp://bsheet.sourceforge.nethttp://wcollage.sourceforge.net

 
 From: Kevin Wong kevin.peter.w...@gmail.com
 To: The Java Posse javaposse@googlegroups.com
 Sent: Tue, October 20, 2009 9:56:49 AM
 Subject: [The Java Posse] A case for catch Throwable

 Is this a valid case for catch Throwable?:

 A utility class that meant to be subclassed.  It calls protected
 methods that are meant to be overriden by subclasses.  Should those
 method calls be wrapped in catch Throwable?

 The argument is that the utility class has no control over the
 subclass, and doesn't know what exceptions might be thrown, so we
 catch Throwable to program defensively and handle the error.

 The counter argument, the one I agree with, is that in most cases it
 can be assumed that a method won't throw anything but checked
 exceptions, and that catching root exception classes (e.g., Exception,
 Throwable) clutters the code and can inadvertently hide bugs.
 
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: Huge! IntelliJ IDEA Goes Open Source

2009-10-16 Thread Peter Becker

But are they giving away their hard work out of altruism or market 
necessity? Somehow the choice of proprietary features seems to indicate 
the latter.

But good on them -- even if I think that NetBeans and Eclipse had more 
impact in open sourcing IntelliJ IDEA than anyone at Jetbrains. I'd 
still put my bets on them being only a minor player in the IDE market in 
a few years time since all the strong features are still for-pay and an 
Eclipse/NetBeans combo works better for me than IDEA ever did.

  Peter


BoD wrote:
 I think you were being trollish but I'm going to reply anyway just in case :
 they're opening the source (remember : they're *giving away* their hard 
 work, so everybody  can use it), and the only reaction you have is to 
 insult them? Nice!

 BoD

 Alex Turner wrote:
   
 I hope you're being sarcastic.  Honestly this is a huge slap in the
 face if you ask me.  We're going to give you this awesome IDE for
 FREE  Oh - except none of the awesome features that you need to
 actually get real work done are available, but that's okay - open
 source developers don't need any of that advanced crap like Spring, or
 JSF, or Tomcat support because they only develop rubbish anyway right?

 How insulting!  If they were hemorrhaging users to NetBeans and
 Eclipse before, I hope the rest of the IntelliJ user base sees this
 for what it is and stop forking over hard earned cash to this
 organization.

 I ditched IntelliJ because they have no good AOP support, no good PHP
 support, lousy vi plugin, stupid project management (I mean seriously
 - who the hell only needs one project open at a time?), massive memory
 leaks that render the IDE unusable after a few hours of intensive use,
 problems with formatting code that isn't Java, poor hibernate query
 checking.

 The gating factor for NetBeans was maven support, which they added
 rather helpful in 6.7.


 On Thu, Oct 15, 2009 at 5:40 PM, Mark Derricutt m...@talios.com wrote:
   
 
 *yay* :)

 I think its time to dust off my IDEA plugin writing skills, I've not checked
 out any OpenAPI changes since early in the 8 series.

 --
 Pull me down under...

 On Fri, Oct 16, 2009 at 10:32 AM, Reinier Zwitserloot reini...@gmail.com
 wrote:
 
   
 Huh, wow. We really have no excuse to start working on IDEA and
 netbens support! I'm stoked.
   
 
   
 

 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: JavaFX - oddities in the language? Week 2.

2009-09-10 Thread Peter Becker

Jess Holle wrote:
 Peter Becker wrote:
 I have heard of (and from) many people involved in the development of 
 relational databases and/or the SQL standard who regret the introduction 
 of NULL. Codd wanted it replaced with two distinct values, Date called 
 them a disaster. IIRC Jim Melton had some negative comments, too: 
 http://www.se-radio.net/podcast/2009-06/episode-137-sql-jim-melton -- it 
 has been a while that I listened to that episode.

 I don't think not only beginners would think of the following two 
 selects as equivalent, but they are not:

   SELECT * FROM tableX;
   SELECT * FROM tableX WHERE x=5 OR x5;
   
 That should come as no surprise to anyone who has used float or double 
 and has NaN's in the data.
Which reminds me of another possible meaning of NULL: calculation error. 
The NaNs are the NULLs of the primitives. Same arguments apply, and yes: 
if you use some kind of NULL semantics in one type system, you want it 
in all. I personally think they are bad in any.

 Now something that really strikes me as odd is that some databases and 
 JDBC drivers go ape when you do

 preparedStatement.setDouble( bindIdx, doubleVar );

 when doubleVar is NaN.

 Instead you have to do

 preparedStatement.setNull( bindIdx, dataType, typeName );

 in this case, whereas you'd expect that setDouble() should just do the 
 right thing period.
I kind of agree. Since NULL has ill-defined semantics, you could just 
live with the fact. I suspect the reasoning behind the behaviour you see 
is that it is not clear in general that the semantics of the SQL NULL 
and the Double.NaN match. The only truly safe option is to assume they 
don't and force you to go the long way, but in this case it seems 
overkill. At least a configuration option would be nice.

 Some JDBC drivers insist that you specify dataType even for trivial 
 cases (whereas typeName only needs to be specified for STRUCT types, 
 etc).  This is allowed by the spec, but is really quite silly 
 considering the database knows the schema.  For even more fun, some 
 databases/drivers will report the type of NCLOB columns as Types.OTHER 
 and then throw an exception if you turn around and pass this as the 
 dataType for setNull.  It's enough to drive one absolutely batty.
Isn't it always fun if specs are designed by committee and any conflict 
is resolved by defining optional behaviour :-) Consistency is for the 
weak of heart.

  Peter


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: JavaFX - oddities in the language? Week 2.

2009-09-10 Thread Peter Becker

I think the best way to indent is to have the braces on separate lines 
and indentation levels and then put semicolons after the tabs to make 
the indentation level more visible:

for (int y = 0; y  lines; y++)
{
;for (int x = 0; x  columns; x++)
;{
;;sum += cells[y][x];
;}
}

Pretty, isn't it?

Screw all the empty statement warnings!

Peter


Reinier Zwitserloot wrote:
 YES! Casper brought tabs into it! Wahoo! We've got all the ingredients
 here to beat the post count of the checked exception thread. It ran
 for over 150 posts. Can we beat it?

 I'll toss this one into the ring:

 The ONLY right indentation scheme is to use tabs for indentation and
 spaces for spacing. The following two rules may never ever be broken:

 1. The character in front of a tab must be either (A): Start of File,
 (B) another tab, (C) a newline. A tab anywhere else is an error.
 2. 1 tab per semantic indentation.
 3. Yes, this means you get mixed tabs and spaces if you want to line
 up something (such as a line continuation). For all mixed cases, it's
 always all tabs first, then all spaces.

 As a natural result of these rules, changing tab size doesn't change
 the way your code looks at all, other than in the most superficial
 manner: The relative obviousness of each indent. That is dependent on
 your font and screen size anyway, so it makes sense to leave the
 rendering of it up to the editor, instead of hardcoding it.

 I dare you to resist replying to this :)

 NB: Tongue in cheek folks. The only right way to indent is whatever
 you're comfortable with. The only wrong way is to get religious about
 it.

 On Sep 10, 3:50 am, Casper Bang casper.b...@gmail.com wrote:
   
 I agree with Tor, except drop the braces:

 for (int y = 0; y  lines; y++)
 for (int x = 0; x  columns; x++)
 sum += cells[y][x];

 It reads just as easily and there's a reason why we already indented
 the code (with a since tab rather n spaces; how an indentation is
 rendered is really up to the editor/viewer and the preferences you may
 have).

 I often think there must be some neat visual way to show nesting and
 scoping better than we do today, i.e. by drawing a frame around,
 drawing with a darker color or so. NetBeans can already do AST
 selection though Shift + Alt + Comma/Dot but I don't think it really
 unleashes the full potential before the user can see better what the
 IDE sees.

 /Casper

 On 10 Sep., 03:04, TorNorbye tor.nor...@gmail.com wrote:



 
 On Sep 9, 5:27 pm, Reinier Zwitserloot reini...@gmail.com wrote:
   
 Here's a line from my code:
 
 for ( int y = 0 ; x  lines ; y++ ) for ( int x = 0 ; x  columns ; x+
 + ) sum += cells[y][x];
 
 I guess that's where we disagree.
   
 for (int y = 0; y  lines; y++) {
 for (int x = 0; x  columns; x++) {
 sum += cells[y][x];
 }
   
 }
   
 is IMHO better because:
 (a) I can see immediately that I'm dealing with a nested construct
 here, and that's it's O(n^2)
 (b) I can more easily set breakpoints on individual statements of this
 code while debugging - and similarly other line oriented operations
 (like quickfixes etc) get more cluttery when it's all on one line.
 Profiling data / statement counts / code coverage highlighting for the
 line is also trickier when you mash multiple statements into one line.
 (c) I think it's less likely that I would have made the x  lines
 error that was in your code when typing it this way because the
 handling of y and x were done separately on separate lines (though
 this is a bit speculative)
 (d) I removed your spaces inside the parentheses, because they are
 Bad! Bad!
   
 (Ok c and d are padding)
   
 I am -not- looking to minimize the number of lines needed to express
 code.  If I wanted that, I'd be coding in Perl.  I deliberately add
 newlines to make the code more airy and to group logical operations
 together. I always insert a newline before the final return-statement
 from a function etc.
   
 I think the extra vertical space you've gained, which arguably could
 help you orient yourself in your code by showing more of the
 surrounding context, is lost because the code itself is denser and
 more difficult to visually scan.
   
 Oh no, a formatting flamewar -- what have I gotten myself into?
   
 -- Tor
   
 P.S. No tabs!
   
 
   



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: JavaFX - oddities in the language? Week 2.

2009-09-10 Thread Peter Becker

And it alls starts with the language specs still being written at the 
abstraction level of a concrete syntax. Chapter 1: Tokenization.

  Peter


Joshua Marinacci wrote:
 RANT!

 Why, in the 21st century, are we still writing code with ascii symbols 
 in text editors, and worried about the exact indentation and whether 
 to use tabs, spaces, etc?!!

 Since the IDE knows the structure of our code, why aren't we just 
 sharing ASTs directly, letting your IDE format it to your desire, and 
 only sharing the underlying AST with your fellow developers. Encoding, 
 spaces, braces, etc. is a detail that only matters when presented to 
 the human. 

 What we do today is like editing image files from the commandline!

 On Sep 9, 2009, at 7:32 PM, Ryan Waterer wrote:

 While experienced programmers might not worry about the braces on a 
 single line, they become invaluable to any junior programmers.  I've 
 trained a few in which they couldn't understand why the following 
 code segment simply stopped working.  (Let's not even start a 
 discussion about System.out.println as a valid debugging tool, ok?   
 This is just an example of a n00blet mistake )

 for (int y = 0; y  lines; y++)
for (int x = 0; x  columns; x++)
   System.out.println(The sum is:  + sum);
sum += cells[y][x];


 I agree that the braces add a bit of clutter to the visual look and 
 feel of code.  However,  I feel that it helps with the overall 
 maintainability of the code and therefore, I disregard the way that 
 it looks. 

 --Ryan


 On Wed, Sep 9, 2009 at 8:24 PM, Jess Holle je...@ptc.com 
 mailto:je...@ptc.com wrote:

 I'll agree on the newlines and indents, but the braces are silly.

 One might debate the extra whitespace inside the ()'s, but I find
 it more readable with the whitespace -- to each his/her own in
 that regard.


 TorNorbye wrote:
 On Sep 9, 5:27 pm, Reinier Zwitserloot reini...@gmail.com 
 mailto:reini...@gmail.com wrote:
   
 Here's a line from my code:

 for ( int y = 0 ; x  lines ; y++ ) for ( int x = 0 ; x  columns ; x+
 + ) sum += cells[y][x];
 
 I guess that's where we disagree.

 for (int y = 0; y  lines; y++) {
 for (int x = 0; x  columns; x++) {
 sum += cells[y][x];
 }
 }

 is IMHO better because:
 (a) I can see immediately that I'm dealing with a nested construct
 here, and that's it's O(n^2)
 (b) I can more easily set breakpoints on individual statements of this
 code while debugging - and similarly other line oriented operations
 (like quickfixes etc) get more cluttery when it's all on one line.
 Profiling data / statement counts / code coverage highlighting for the
 line is also trickier when you mash multiple statements into one line.
 (c) I think it's less likely that I would have made the x  lines
 error that was in your code when typing it this way because the
 handling of y and x were done separately on separate lines (though
 this is a bit speculative)
 (d) I removed your spaces inside the parentheses, because they are
 Bad! Bad!

 (Ok c and d are padding)

 I am -not- looking to minimize the number of lines needed to express
 code.  If I wanted that, I'd be coding in Perl.  I deliberately add
 newlines to make the code more airy and to group logical operations
 together. I always insert a newline before the final return-statement
 from a function etc.

 I think the extra vertical space you've gained, which arguably could
 help you orient yourself in your code by showing more of the
 surrounding context, is lost because the code itself is denser and
 more difficult to visually scan.

 Oh no, a formatting flamewar -- what have I gotten myself into?

 -- Tor

 P.S. No tabs!



   








 



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: JavaFX - oddities in the language? Week 2.

2009-09-09 Thread Peter Becker

I have heard of (and from) many people involved in the development of 
relational databases and/or the SQL standard who regret the introduction 
of NULL. Codd wanted it replaced with two distinct values, Date called 
them a disaster. IIRC Jim Melton had some negative comments, too: 
http://www.se-radio.net/podcast/2009-06/episode-137-sql-jim-melton -- it 
has been a while that I listened to that episode.

I don't think not only beginners would think of the following two 
selects as equivalent, but they are not:

  SELECT * FROM tableX;
  SELECT * FROM tableX WHERE x=5 OR x5;

And that is a very simple case. Put a few subselects and joins in a 
statement and NULLs get even experienced SQL developers. Pretty much all 
of SQL uses ternary logic, but I suspect not too many developers think 
that way.

Even without larger expressions the lack of semantics can get you. While 
people tend to think it is perfectly clear why they put a NULL 
somewhere, it tends not to be. Did the attribute not apply to the 
entity? Is it missing and should be added? Is it a value that could be 
derived and just wasn't cached? Or has it another, more specific meaning 
like undecided for a boolean?

Sometimes I suspect NULL is just a case of premature optimization where 
people figured it was much better to have that than to live with fully 
normalized data. In some cases they might have been right, but declaring 
it not only a standard but also the default seems a bad idea to me.

  Peter



Jess Holle wrote:
 I've always found the whole endless debate over null treatment that 
 I've seen here and elsewhere odd.

 In databases most everything is nullable unless explicitly stated 
 otherwise -- and there's good reason for this.  There are really good 
 use cases for true/false/null tri-state data -- and similar use cases 
 with most any other data type.  How does one get this in JavaFX?

 I can see that maybe one need @Nullable Boolean to tell the JavaFX 
 compiler that
 Joshua Marinacci wrote:
 It's also important to point out that the compiler rejects null for a  
 Boolean because null simply isn't a valid value for a boolean (in the  
 abstract mathematical sense of 'boolean'). Booleans can be true or  
 false. That's it. The compiler rejects anything else. The same for  
 Numbers.  The compiler tries to enforce what makes logical sense,  
 since setting a boolean to null is almost always a programmer error.  
 That said, since you *can* drop down to the Java there *are* ways to  
 defeat the javafxc compiler protections if you really want to, but  
 then you are taking your own life into your own hands. :)

 On Sep 7, 2009, at 7:02 PM, TorNorbye wrote:

   
 I posted a comment on the blog, but I don't see it there so I may have
 done something wrong.

 In any case, as far as I understand things (from using the language -
 I'm not working on the compiler team)

 1. The return type of a function, if it isn't specified explicitly
 (either here or in the function it is overriding or by the parameter
 type you are supplying the function to) is inferred from the last
 statement of the function.   I personally tend to specify it
 explicitly in function declarations, especially if it's a public
 function. I likewise tend to specify it on variables, if I (a) want to
 use a broad type (e.g. List instead of ArrayList)_, or (b) if I don't
 assign to it right away.

 2. When you see :Boolean (or :Number etc) specified as a type, that
 doesn't mean it's a java.lang.Boolean or java.lang.Number.  The JavaFX
 compiler will try to find the most efficient way to represent it --
 which means that it can often use a native int, float or boolean
 primitive. (In other cases, where there is a bind involved, it may be
 a BooleanVariable object etc).   It's pretty interesting to use the
 javap tool to see how the variables, properties, functions etc. are
 represented as Java classes by the compiler. This would explain why
 you can null a string but not a boolean for example.

 Hope that clears things up, if not just ask again.

 -- Tor

 On Sep 7, 2:20 pm, Rob Wilson netp...@gmail.com wrote:
 
 Hi all,

 I posted last week to let you know about my first post in JavaFX, I
 now have a new post that's slightly more in-depth covering some
 language oddities from my perspective.

 If you're interested...http://spikyorange.blogspot.com/

 Cheers,
 Rob.

   




   


 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



Re: Optimizations? was Re: [The Java Posse] A quick and dirty way to throw unchecked exceptions

2009-08-28 Thread Peter Becker

+ is a binary operator. In mathematics it tends to be associative, i.e. 
it doesn't matter if you do (a+b)+c or a+(b+c), but it would be resolved 
by combining two values at a time.

The Java compiler does do the right thing, but by allowing mixed type 
operations with semantics depending on the types the associativity is 
broken.

  Peter


Reinier Zwitserloot wrote:
 I can confirm that the compiler is completely unaware of multi-arity
 operators (the notion that + takes 2 OR MORE elements - it just takes
 2 elements, no more, and multiple applications are merely this notion
 chained), and that these are always resolved in a strict left-to-right
 fashion.

 You can see the same weird shenanigans when trying to add numbers and
 non-numbers together:

 5 + 3 + foo = 8foo.
 foo + 5 + 3 = foo53.

 On Aug 27, 10:20 am, Christian Catchpole christ...@catchpole.net
 wrote:
   
 hmm.. think you missed the point there peter.  two  + three ==
 two three regardless of what comes before it.  But I think i might
 know why the optimizer picks up

 one  + two  + three

 but not

 getOne() + two  + three

 it probably sees this..

 ((one  + two ) + three)
 ==
 ((one two ) + three)
 ==
 (one two three)

 It can collapse one two, then the third because they are all constant.

 ((getOne() + two ) + three)

 the first collapse produces something unpredictable.

 On Aug 27, 7:43 am, Peter Becker peter.becker...@gmail.com wrote:



 
 Alexey Zinger wrote:
   
 There are quite a few optimizations with strings, for sure.  Such as
 replacing concatenation using + operator with StringBuilder and
 concatenation of literals with a single literal (*).
 
 There's an interesting exception to that rule.  The following will
 work as expected:
 one  + two  + three
 gets turned into
 one two three
 
 However, in the context of this: public String getOne() { return one ; }
 this: getOne() + two  + three
 will not get turned into
 getOne() + two three
 
 If I am not mistaken the compiler can not replace that without
 potentially breaking the code. You method is public and non-final, which
 means it can be overwritten, so you need the dynamic dispatch, inlining
 is not ok.
   
 The JIT might do a different thing since it knows the state of the
 running system. If it should optimize that call it will need to be able
 to revert it if a baseclass of the class you describe is loaded.
   
 If the method getOne() would be either final or private, then the
 compiler should theoretically be able to inline it. No idea if it would.
   
   Peter
   
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



Re: Optimizations? was Re: [The Java Posse] A quick and dirty way to throw unchecked exceptions

2009-08-27 Thread Peter Becker

Alexey Zinger wrote:
 There are quite a few optimizations with strings, for sure.  Such as 
 replacing concatenation using + operator with StringBuilder and 
 concatenation of literals with a single literal (*).

 There's an interesting exception to that rule.  The following will 
 work as expected:
 one  + two  + three
 gets turned into
 one two three

 However, in the context of this: public String getOne() { return one ; }
 this: getOne() + two  + three
 will not get turned into
 getOne() + two three
If I am not mistaken the compiler can not replace that without 
potentially breaking the code. You method is public and non-final, which 
means it can be overwritten, so you need the dynamic dispatch, inlining 
is not ok.

The JIT might do a different thing since it knows the state of the 
running system. If it should optimize that call it will need to be able 
to revert it if a baseclass of the class you describe is loaded.

If the method getOne() would be either final or private, then the 
compiler should theoretically be able to inline it. No idea if it would.

  Peter


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



Re: Optimizations? was Re: [The Java Posse] A quick and dirty way to throw unchecked exceptions

2009-08-27 Thread Peter Becker

I did miss the point (or in fact the little word not).

I think your theory is probably right, although in the absence of 
arbitrary operator overloading it seems quite clear what the type of 
(getOne() + two ) is and since string concatenation is associative it 
would be a valid optimization. But it requires a bit more reasoning.

Even with operator overloading the case would IMO still be clear since 
the return type of getOne() is exact due to String's finalness. But 
then: we are talking Java, other JVM languages might break some of these 
rules.

  Peter


Christian Catchpole wrote:
 hmm.. think you missed the point there peter.  two  + three ==
 two three regardless of what comes before it.  But I think i might
 know why the optimizer picks up

 one  + two  + three

 but not

 getOne() + two  + three

 it probably sees this..

 ((one  + two ) + three)
 ==
 ((one two ) + three)
 ==
 (one two three)

 It can collapse one two, then the third because they are all constant.

 ((getOne() + two ) + three)

 the first collapse produces something unpredictable.

 On Aug 27, 7:43 am, Peter Becker peter.becker...@gmail.com wrote:
   
 Alexey Zinger wrote:
 
 There are quite a few optimizations with strings, for sure.  Such as
 replacing concatenation using + operator with StringBuilder and
 concatenation of literals with a single literal (*).
   
 There's an interesting exception to that rule.  The following will
 work as expected:
 one  + two  + three
 gets turned into
 one two three
   
 However, in the context of this: public String getOne() { return one ; }
 this: getOne() + two  + three
 will not get turned into
 getOne() + two three
   
 If I am not mistaken the compiler can not replace that without
 potentially breaking the code. You method is public and non-final, which
 means it can be overwritten, so you need the dynamic dispatch, inlining
 is not ok.

 The JIT might do a different thing since it knows the state of the
 running system. If it should optimize that call it will need to be able
 to revert it if a baseclass of the class you describe is loaded.

 If the method getOne() would be either final or private, then the
 compiler should theoretically be able to inline it. No idea if it would.

   Peter
 
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



Re: Optimizations? was Re: [The Java Posse] A quick and dirty way to throw unchecked exceptions

2009-08-27 Thread Peter Becker

I thought your comment to my post was quite appropriate -- I really had 
misread Alexey's post.

But maybe we are just entangled in some weird kind of dance, missing 
each others point until the end of time. Or something.

Bedtime.

  Peter


Christian Catchpole wrote:
 Maybe I missed your point :)  I thought the original question was why

 getOne() + two  + three

 doesnt become

 getOne() + two three

 even if it was

 getTotallyRandom() + two three

 On Aug 27, 9:07 pm, Peter Becker peter.becker...@gmail.com wrote:
   
 I did miss the point (or in fact the little word not).

 I think your theory is probably right, although in the absence of
 arbitrary operator overloading it seems quite clear what the type of
 (getOne() + two ) is and since string concatenation is associative it
 would be a valid optimization. But it requires a bit more reasoning.

 Even with operator overloading the case would IMO still be clear since
 the return type of getOne() is exact due to String's finalness. But
 then: we are talking Java, other JVM languages might break some of these
 rules.

   Peter



 Christian Catchpole wrote:
 
 hmm.. think you missed the point there peter.  two  + three ==
 two three regardless of what comes before it.  But I think i might
 know why the optimizer picks up
   
 one  + two  + three
   
 but not
   
 getOne() + two  + three
   
 it probably sees this..
   
 ((one  + two ) + three)
 ==
 ((one two ) + three)
 ==
 (one two three)
   
 It can collapse one two, then the third because they are all constant.
   
 ((getOne() + two ) + three)
   
 the first collapse produces something unpredictable.
   
 On Aug 27, 7:43 am, Peter Becker peter.becker...@gmail.com wrote:
   
 Alexey Zinger wrote:
 
 There are quite a few optimizations with strings, for sure.  Such as
 replacing concatenation using + operator with StringBuilder and
 concatenation of literals with a single literal (*).
   
 There's an interesting exception to that rule.  The following will
 work as expected:
 one  + two  + three
 gets turned into
 one two three
   
 However, in the context of this: public String getOne() { return one ; }
 this: getOne() + two  + three
 will not get turned into
 getOne() + two three
   
 If I am not mistaken the compiler can not replace that without
 potentially breaking the code. You method is public and non-final, which
 means it can be overwritten, so you need the dynamic dispatch, inlining
 is not ok.
 
 The JIT might do a different thing since it knows the state of the
 running system. If it should optimize that call it will need to be able
 to revert it if a baseclass of the class you describe is loaded.
 
 If the method getOne() would be either final or private, then the
 compiler should theoretically be able to inline it. No idea if it would.
 
   Peter
 
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-24 Thread Peter Becker

Martin Wildam wrote:

[...]
 Maybe we should look at error handling from different point of views.
 First, there is the very normal dummy user who don't have a clue on
 what is there running in the background. Second there is a system
 administrator who - if something goes wrong - could see whether there
 might be a problem with the environment or with the configuration he
 is responsible for. And then there is the developer who wants/needs
 comprehensive detailed information if there is a doubt that an
 upcoming error might be due to a bug.

 The dummy user is usually overwhelmed if you present comprehensive
 information (or a stack trace for example). He/She wants a simple
 message - e.g. like Google Calender's Ooops, some calenders could not
 be loaded. Try again later. - I think basically every IOException
 could result in such a final handling.

 The administrator wants some more information, like if a host could
 not be reached or name could not be resolved etc.

 The developer is the only person interested in stack traces for
 instance.

 I think a solution for the different interests could be a proper
 inheritance model of exceptions that you are using in your
 applications. This means, if an exception occurs I can handle it using
 the first parent exception to generate the operation failed thing
 and for the developer log the exact detail exception that occurred. So
 I could have some common PreCheckException (and children like
 InputPreCheckException, ConfigurationPreCheckException and so on).
   
I think sometimes the same exception can be required to be looked at in 
different ways. While the user should always get some high-level we are 
sorry message, the admin/developer distinction is not necessarily 
nicely along a hierarchy you describe. In fact some of the lowest 
exceptions could be of a nature that administrators have to resolve.

Things get even more complicated if the boundaries are blurry. I've seen 
that many times with smaller projects and I believe it is still common 
at Amazon: the developers are also administrators. There can be quite 
different logging setups depending on your organizational structure, 
auditing needs and other aspects. That's where external logging 
configurations come into play.

And don't forget that there are at least two dimensions: the hierarchy 
and the chaining. I tend to chain exceptions through the abstraction 
layers while using the hierarchies to model different level of detail 
within a layer.

In some way I like the idea of a higher level error reporting system 
where the user interface is not just plain text but allows drilling down 
into the information, ideally with structure data in the exceptions. 
I've seen such systems used in various places (although not with much 
structured data). In some way the Windows error log is one, but I have 
also seen logging handlers that log into a full-blown database or a 
ticket system. The problem is that you really want your logging to be 
easy and reliable, which those system often are not. But even in text 
format you can gain a lot by making sure your exception message is 
written well and with enough information to identify the real issue 
without wading through stack traces (as a developer) or guru meditation 
(everyone).
 The second problem is the coding efficiency and readability. Within a
 method depending on the exception some object variables might not be
 set to a valid instance (if you have a longer try-block above and
 handling just one parent exception). This may result in a lot of null-
 checking necessary. A solution for this could be that the methods you
 are calling should always return in a sane way (mostly just avoiding
 null-pointer-exceptions) if they receive nulls as arguments.

 Sample:

 try
 {
 checkInputs(myTask);
 checkEnvironment(myTask);
 checkConfig(myTask);
 con = openConnection(myTask);
 }
 catch (PreCheckException e)
 {
 doLoggingAndMessaging(e);
 }


 try
 {
 doCoreWork(con, myTask);
 }
 catch (ProcessingException e)
 {
 doLoggingAndMessaging(e);
 }

 closeConnection(con);

 In that sample doCoreWork should fail if con is null or myTask is
 missing some important data/status that it should have got during the
 prechecks.
 The closeConnection method on the other hand should not throw another
 exception but silently finish if no (open) connection is given - just
 as well there is nothing to do for me.

 Such a thing looks quite clean to me.
 Just my - not verified - ideas
This approach can help sometimes, in particular if you can model your 
system in such a way that the prechecked-objects have only safe methods 
(modulo the usual candidates you can hardly avoid such as running out of 
memory). But I don't think this is always feasible, e.g. if you do 
processing on a database you either have to have a lot of memory to 
buffer data or you have to live with the fact that the network can cause 
trouble at any time during your processing.

But 

[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-22 Thread Peter Becker

I think I might have caused some confusion by being too lazy: Ex is 
meant to be a particular checked exception, not a shorthand for Exception.

If you are referring to your sneaky throws: I consider them out of 
scope. There are many ways to subvert Java code, particularly if 
reflection is allowed. If anyone throws a checked exception in code that 
was explicitly designed not to throw it (after all that is what the 
safe/unsafe distinction is for), then so be it. Java is not strong 
enough to stop someone with that attitude from breaking things.

  Peter



Reinier Zwitserloot wrote:
 Peter, your code sample is very much broken - exceptions are just
 silently swallowed in the safe version. Sure, you declared that the
 exception can't happen, but as I've mentioned a few times already,
 because checked exceptions aren't enforced on the JVM level, they can
 occur at _any_ time. Therefore, occasionally, such code would swallow
 an exception. No good.

 I'm fairly sure that turning every java method into BGGA-style
 throws containing generics is going to be just as annoying, if not
 far worse, than the current situation. The problem with checked
 exceptions is that all implementations so far suck far worse than they
 help. I remain convinced that java's checked exception system with an
 explicit command to get around the checked exception system is the
 most practical (though it is of course not the most elegant).


 On Aug 21, 11:43 am, Peter Becker peter.becker...@gmail.com wrote:
   
 As I said: in cases where you want to have a version of your code where
 the exception bubbles up and one where it doesn't you'll get the
 duplication. I think that is usually a bad idea, although I must admit
 the wrapper case you describe is an exception since the layer is the
 same. I don't see that problem spread too far, though.

 If your code is really that big, I'd even consider this:

 public class UnsafeWrapper implements UnsafeInterface {
 protected UnsafeInterface orig;
 ...
 public doAction() throws Ex {
  ...
  orig.doAction();
  
 }

 }

 public class SafeWrapper implements SafeInterface {
 ...
 public doAction() {
...
try {
orig.doAction(); // call on UnsafeWrapper.doAction()
} catch(Ex e) {
// won't happen
}
 }

 }

 Not very elegant, but avoids major duplication.

 I believe that with union types the whole problem would disappear since
 the subtyping would allow using generics to create the different
 versions. As long as exceptions are not part of the type signature it
 won't happen in Java.

Peter



 Reinier Zwitserloot wrote:
 
 Peter, I still don't see how that'll avoid code duplication.
   
 Let's say, for argument's sake, that a FilterInputStream's read()
 method contains 4 pages of complex code. This code calls back into the
 filtered stream's read method loads of times. How would we avoid
 duplicating these 4 pages if we want 2 types of FilterInputStream: One
 that wraps a Safe InputStream and does not throw IOException, and one
 that wraps an unsafe InputStream and does throw IOException.
   
 On Aug 20, 9:36 am, Peter Becker peter.becker...@gmail.com wrote:
   
 Here you go (three files):
 
 = test/Unsafe.java==
 package test;
 
 import java.io.IOException;
 
 public interface Unsafe {
 void method() throws IOException;
 
 }
 
 = test/Safe.java ==
 package test;
 
 public interface Safe extends Unsafe {
 void method();
 
 }
 
 =test/Test.java===
 package test;
 
 import java.io.IOException;
 
 public class Test {
 class UnsafeImpl implements Unsafe {
 @Override
 public void method() throws IOException {
 throw new IOException(); // ok
 }
 };
 
 class SafeImpl implements Safe {
 @Override
 public void method() {
 // can't throw here
 }
 };
 
 void method1(Unsafe unsafe) {
 unsafe.method(); // error, need to deal with exception
 }
 
 void method2(Safe safe) {
 safe.method(); // ok
 }
 
 }
 
 ==
 
 The one trick is to realize that the safe version is actually the more
 specific one. If you think of the exception in terms of the type union
 (not accurate, but a decent analogy), then Unsafe.method() returns
 void|IOException while Safe.method() returns void, which is a more
 specific type, thus the return types are co-variant.
 
 More generally you can argue that Safe.method() makes stronger
 guarantees about its behavior than Unsafe.method(), so subtyping is
 legal. Apart from the one marked position the code above is legal Java.
 
   Peter
 
 Reinier Zwitserloot wrote:
 
 On Aug 20, 12:21 am, Peter Becker peter.becker...@gmail.com wrote

[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-22 Thread Peter Becker

After initially disagreeing completely I can see a point in that 
exceptions break the normal control flow and can thus cause surprising 
behavior. But I agree with you that the alternatives aren't necessarily 
better.

Somehow error handling is never easy. Just take one of these nice 
graphical displays of code execution (UML, workflows) and add the error 
handling in. Particularly in workflows your nice and simple graph 
suddenly turns into a mess. The same is true on the code level: code 
that is pretty straightforward for the normal case can quickly turn into 
a mess once error handling is added, no matter what system of error 
handling you use.

One note: I think you could probably write a system where most common 
technical errors are handled via return values, but you would need to 
have a lot of unions/eithers. That approach is quite comparable to the 
checked exceptions (I have done this comparison the other way around 
before), but the control flow is quite different. The File class in Java 
stands out so much since it is different, but it might just work 
somewhere else.

  Peter



Reinier Zwitserloot wrote:
 I can't let this horse puckey about 'exceptions are less readable'
 stand. It's hogwash.

 Consider that any operation, anywhere in the entirety of your java
 source base, can throw just about any exception. Not just
 theoretically, but practically: You can get an OutOfMemoryError, or a
 ClassNotFoundError, for example. Actually trying to shove these status
 conditions into some sort of return object that tracks exactly what
 went right and what went wrong is *PHENOMENALLY* more boilerplate than
 even java's verbose checked exception system. I take it as axiomatic
 that returning an integer that holds an error code is utterly insane.

 At best you can make an argument that you ought to keep exceptions for
 the very exceptional, and to push the line between 'exceptional' and
 'alternative exit condition' as far to the exceptional side as you
 can; e.g all file operations ought to return a FileOperationResult
 object.

 But, I put it to you: How happy would you really be with such an API?
 Because it exists, folks. java.io.File. Instead of throwing
 exceptions, it returns booleans. And it's so hated, its getting
 replaced in java 7. It's been tried, it's failed miserably. You'd have
 to return an object that states the exact problem that actually
 occurred, and, at that point, aren't you just writing the equivalent
 of:

 public IOException mkdir() {}?

 whether the IOException is returned normally (or, more likely, in the
 case of a method that also needs to return some actual data, as an
 Either and you'd have to query the Either to figure out what happened
 - d'oh) or 'returned' via the exception mechanism is relatively
 speaking a very small point. A much bigger point is that you just
 can't get around the notion that you NEED some sort of exception
 system to handle the truly exceptional - unless we'd all prefer going
 back to the 'core dumped' days, and that there's a real need to have
 semi-exceptional conditions that you'd like, by default, to walk up
 the stack quite a bit before being handled.

 Here, simple example: You write a servlet, and something untoward
 happens - say, a database issue (SQLException). In plenty of
 situations you don't want your servlet to handle it - you want that
 problem to walk up the stack, back to the servlet container that knows
 to return a 500, log something, and maybe try to notify an
 administrator. It would be hopeless if you had to rely on the serlvet
 to pass through problems. It would also make changing APIs to add new
 flavours of the exceptional much more problematic, and as
 theoretically sound it seems to say: But public APIs shouldn't ever
 change! - that's not very practical. The exceptional stuff is the
 first thing APIs are likely to change, exactly because it is so
 closely related to implementation details.


 Joel was dead wrong.


 On Aug 21, 3:40 pm, Martin Wildam mwil...@gmail.com wrote:
   
 On Aug 21, 2:07 pm, Peter Becker peter.becker...@gmail.com wrote:

 
 I take the point that it is possible to make code harder to read using
 exceptions in a way that is not possible without. I must admit I didn't
 really think it through when I read Joel's blog post.
   
 I think the reduced readability is the core disadvantage of using
 Exceptions.
 And I think that it is easier to create buggy code with exceptions -
 especially for beginners.
 (I know that most of those doing Java do it since a long while but
 they get older and junger people must somehow follow them).

 
 There is the opposite danger, though: ignoring a return value. Since
 C-like languages allow functions to be called as statements, it is
 pretty easy to just ignore the fact that there is an error code
 returned. Checked exceptions force you to deal with the issue.
   
 Whether it is an exception or a return code you always can drop it or
 deal

[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-22 Thread Peter Becker

Martin Wildam wrote:
 On Aug 22, 7:23 am, Peter Becker peter.becker...@gmail.com wrote:
   
 While I'm still arguing for checked exceptions, I'm not 100% convinced
 their good yet either. But nearly every argument I see why they are bad
 is about how they are used badly, with the conclusion of some intrinsic
 badness.
 

 I agree with you. - But since (at least my opinion) exceptions are
 either used badly in some of the core Java APIs from Sun the question
 is really, how to get people - especially beginners - to understand
 how they are used correctly.
   
Now that is a good question to ask.

Unfortunately when teaching about exceptions you will encounter some 
major poblems:
1) the first encounter with exceptions will be most likely the JDK, i.e. 
a bad example (and beginner's tend to think the JDK must have the best 
design ever)
2) to deal with exceptions you need to do the wrong things sometimes 
unless you avoid the JDK somehow
3) there doesn't seem to be much agreement on how to do it right in the 
community
4) most people who have experience claim that checked exceptions are 
intrinsically broken (IMO invalidly)

To me it feels like a big case of SNAFU, sustained by Sun's 
unwillingness to do anything that breaks backwards-compatibility. I 
think the only thing you can do to teach someone something decent about 
exceptions is to teach them different error handling approaches in the 
abstract, and make them aware that in many scenarios error handling can 
be the most complicated aspect of your code.

Someone should probably write a nice book talking only about error 
handling, the different ways to propagate errors (special return values, 
checked exceptions, unchecked exceptions, union types) and the different 
ways to deal with them. A nice chapter on logging strategies would be 
good, too. Maybe one on the errors you can't handle (stuff such as 
external errors, infinite loops, infinite recursion, resource leaks). 
Does anyone know of such a book or volunteer? :-)

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-22 Thread Peter Becker

Casper Bang wrote:
 On 23 Aug., 01:25, Peter Becker peter.becker...@gmail.com wrote:
   
 Someone should probably write a nice book talking only about error
 handling, the different ways to propagate errors (special return values,
 checked exceptions, unchecked exceptions, union types) and the different
 ways to deal with them. A nice chapter on logging strategies would be
 good, too. Maybe one on the errors you can't handle (stuff such as
 external errors, infinite loops, infinite recursion, resource leaks).
 Does anyone know of such a book or volunteer? :-)
 

 Well if you read best-practice/state-of-the-art books like Clean Code,
 Code Complete, The Pragmatic Programmer etc. you already get most of
 that. But this is the complex world of Java, I have no doubt we could
 see a book on logging frameworks and strategies. That's when I think
 we need simplicity back so that it won't just be the top 10% reading
 books, that will be capable of producing quality code.
   
I think error handling strategies transcends languages. The book you 
listed do that, too -- but even these books tend to focus on the 
positive cases.

Error handling seems to be the one case hardly anyone gets right. 
Examples for beginners tend to ignore the whole question. Quite often 
you really don't need to (it can be quite acceptable that your program 
crashes in rare cases), but if your system is mission or even life 
critical you suddenly get into a realm that usually no one talks about. 
Or at least no in those books I've read, which could well be my fault.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

I still kind-of like listening to Joel and Jeff. Both make me cringe at 
times, but I like their attitude towards product design and I think Joel 
has quite some insight into the marketing/business side of software.

But I don't think I'd want either as the chief architect of some 
enterprise software :-)

  Peter


Casper Bang wrote:
 I lost my respect for Joel a while ago -  he comes at you in very
 bold, definitive and authoritative fashion (especially on
 StackOverflow where he's down right annoying). Exceptions cater well
 to OO, you can centralize error handling and dispatching via
 polymorphism as well as associate whatever context that's needed. I
 don't think (hope) many in here wants to go back to interpreting
 return values.

 /Casper

 On 20 Aug., 16:03, Martin Wildam mwil...@gmail.com wrote:
   
 Anyone a fan of this:http://www.joelonsoftware.com/items/2003/10/13.html

 I am. :-)
 
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

Number one clearly does not apply to checked exceptions, number two 
applies to returning values, too. Of course you could assign a value and 
follow the approach of having a single return statement at the end, but 
I never understood why the resulting code should be any easier.

  Peter


Martin Wildam wrote:
 Anyone a fan of this: http://www.joelonsoftware.com/items/2003/10/13.html

 I am. :-)
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

As I said: in cases where you want to have a version of your code where 
the exception bubbles up and one where it doesn't you'll get the 
duplication. I think that is usually a bad idea, although I must admit 
the wrapper case you describe is an exception since the layer is the 
same. I don't see that problem spread too far, though.

If your code is really that big, I'd even consider this:

public class UnsafeWrapper implements UnsafeInterface {
protected UnsafeInterface orig;
...
public doAction() throws Ex {
 ...
 orig.doAction();
 
}
}

public class SafeWrapper implements SafeInterface {
...
public doAction() {
   ...
   try {
   orig.doAction(); // call on UnsafeWrapper.doAction()
   } catch(Ex e) {
   // won't happen
   }
}
}

Not very elegant, but avoids major duplication.

I believe that with union types the whole problem would disappear since 
the subtyping would allow using generics to create the different 
versions. As long as exceptions are not part of the type signature it 
won't happen in Java.

   Peter


Reinier Zwitserloot wrote:
 Peter, I still don't see how that'll avoid code duplication.

 Let's say, for argument's sake, that a FilterInputStream's read()
 method contains 4 pages of complex code. This code calls back into the
 filtered stream's read method loads of times. How would we avoid
 duplicating these 4 pages if we want 2 types of FilterInputStream: One
 that wraps a Safe InputStream and does not throw IOException, and one
 that wraps an unsafe InputStream and does throw IOException.

 On Aug 20, 9:36 am, Peter Becker peter.becker...@gmail.com wrote:
   
 Here you go (three files):

 = test/Unsafe.java==
 package test;

 import java.io.IOException;

 public interface Unsafe {
 void method() throws IOException;

 }

 = test/Safe.java ==
 package test;

 public interface Safe extends Unsafe {
 void method();

 }

 =test/Test.java===
 package test;

 import java.io.IOException;

 public class Test {
 class UnsafeImpl implements Unsafe {
 @Override
 public void method() throws IOException {
 throw new IOException(); // ok
 }
 };

 class SafeImpl implements Safe {
 @Override
 public void method() {
 // can't throw here
 }
 };

 void method1(Unsafe unsafe) {
 unsafe.method(); // error, need to deal with exception
 }

 void method2(Safe safe) {
 safe.method(); // ok
 }

 }

 ==

 The one trick is to realize that the safe version is actually the more
 specific one. If you think of the exception in terms of the type union
 (not accurate, but a decent analogy), then Unsafe.method() returns
 void|IOException while Safe.method() returns void, which is a more
 specific type, thus the return types are co-variant.

 More generally you can argue that Safe.method() makes stronger
 guarantees about its behavior than Unsafe.method(), so subtyping is
 legal. Apart from the one marked position the code above is legal Java.

   Peter



 Reinier Zwitserloot wrote:
 
 On Aug 20, 12:21 am, Peter Becker peter.becker...@gmail.com wrote:
   
 No implementation would be duplicated, the safe version could be a
 subtype of the unsafe one. Not too many interfaces will face that
 problem. To me it seems much better than not distinguishing.
 
 Can you show me how this would work?
   
 I have a hard time seeing how you can do that without (oh, the irony),
 employing some sort of sneakythrow mechanism.
   
 I guess we will have to agree to disagree here, but I'm fairly sure
 the idealism lost in allowing sneakythrow is minor, whereas the amount
 of pain you can solve is sizable. (in practice, due to widespread bad
 API design we all know will never ever get fixed, such as in the core
 JDK)
   
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

I can follow your argument to some extent, but wouldn't the equivalent, 
exception-based code have a try/catch block per if(goAhead)? I agree 
that this would create code that is more verbose, but otherwise it seems 
equivalent.

I take the point that it is possible to make code harder to read using 
exceptions in a way that is not possible without. I must admit I didn't 
really think it through when I read Joel's blog post.

There is the opposite danger, though: ignoring a return value. Since 
C-like languages allow functions to be called as statements, it is 
pretty easy to just ignore the fact that there is an error code 
returned. Checked exceptions force you to deal with the issue.

Of course that problem could also be fixed by disallowing calling 
functions as statements, which I think would be a good idea not just for 
this reason.

  Peter



Martin Wildam wrote:
 On Aug 21, 11:33 am, Peter Becker peter.becker...@gmail.com wrote:
   
 Number one clearly does not apply to checked exceptions, number two
 applies to returning values, too. Of course you could assign a value and
 follow the approach of having a single return statement at the end, but
 I never understood why the resulting code should be any easier.
 

 Both, They are invisible in the source code. and They create too
 many possible exit points target the hidden jumps in code. While
 debugging Java code with heavy use of exceptions I found out plenty of
 possibilities in code where some code lines were or were not executed
 depending on the exceptions occurring. In reality I would need to
 write plenty of nested finally blocks to ensure correct handling of
 all steps.

 Let me draw a constructed extreme opposite example not using
 exceptions (before you comment on this example, know that I already
 understood that this is no good practice):

 boolean goAhead = true;
 if (!checkEdits()) goAhead = false;
 if (!checkConfig()) goAhead = false;
 if (!openDestinationFile()) goAhead = false;

 //Prechecks failed so we leave
 if (!goAhead) return goAhead;

 //Start with regular work
 if (goAhead)
 {
//We do some first transaction
startTransaction();
doSomeSaveWorkThatCannotFail();
if (!doSomeTransactionWork()) goAhead = false;
 }

 if (goAhead)
 {
   doSomeMoreSaveWorkThatCannotFail();
   yetAnotherBunchOfOperations();
   if (!saveSomeDataOrDoSomethingElse()) goAhead = false;
 }

 if (goAhead)
 commitTransaction();
 else
 rollBackTransaction();

 The difference here is that you have no ACCIDENTALLY LINE SKIPPING.

 If you use instead something like this:

 try
 {
 checkEdits();
 checkConfig();
 openDestinationFile();
 }
 catch (Exception e)
 {
 throw new PreCheckException();
 }

 try
 {
startTransaction();
doSomeSaveWorkThatCannotFail();
doSomeTransactionWork();
doSomeMoreSaveWorkThatCannotFail();
yetAnotherBunchOfOperations();
saveSomeDataOrDoSomethingElse();
commitTransaction();
 }
 catch (SomeBusinessLogicException e)
 {
 //Where did I get my Exception from? Until which line the above
 has been processed?
 rollBackTransaction();
 }
 catch (SomeTransactionException e)
 {
 //Where did I get my Exception from? Until which line the above
 has been processed?
 rollBackTransaction();
 }
 catch (IOException e)
 {
 //Again we need the rollback
 rollBackTransaction();
 }

 For the first part it makes no big difference - a little less work
 with using exceptions.
 In the second part you can't easily see (without examing javadoc of
 the called methods) which lines could have produced the exception.
 Encapsulating every single operation with try-catch is clearly not an
 option as it produces much more boilerplate (if several lines could
 throw the same exceptions) than using return codes. An advantage of
 using return codes is having a clear information about the overall
 status of the whole operation automatically.

 BUT: I think the handling of the different exceptions can be solved
 with throwing your own Exception type instead of returning a
 resultCode. And I think to remember something like this recommended by
 Josh Bloch in his book Effective Java (just don't remember which
 item and I don't have the book at hand). The only thing is the need of
 an extra Class for your application exception(s). Hey, and you can
 throw an exception that contains either a return code - there you
 would have everything. - Remaining issue is only that in some cases I
 simply don't care of the return codes and I can decide this in the
 parent method. But this can be solved using Unchecked Exceptions
 instead of checked exceptions. - And this is the point where I love to
 have the option of using checked or unchecked exceptions.

 Thank you guys - with your help I got cleared that up.
 
   


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email

[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

Martin Wildam wrote:
 On Aug 21, 2:07 pm, Peter Becker peter.becker...@gmail.com wrote:
   
 I take the point that it is possible to make code harder to read using
 exceptions in a way that is not possible without. I must admit I didn't
 really think it through when I read Joel's blog post.
 

 I think the reduced readability is the core disadvantage of using
 Exceptions.
 And I think that it is easier to create buggy code with exceptions -
 especially for beginners.
 (I know that most of those doing Java do it since a long while but
 they get older and junger people must somehow follow them).
   
In my experience beginners hardly ever think of the exceptional cases to 
begin with ;-)

The reduced readability is IMO not really applicable either, since I 
don't see many beginners writing complex code in a neat fashion like 
your example. And an experienced Java programmer shouldn't write the big 
bit of code where the exception just bubbles out.

 There is the opposite danger, though: ignoring a return value. Since
 C-like languages allow functions to be called as statements, it is
 pretty easy to just ignore the fact that there is an error code
 returned. Checked exceptions force you to deal with the issue.
 

 Whether it is an exception or a return code you always can drop it or
 deal with it. When I use a method like openFile or something the first
 thing automatically is to look for a return code.
   
But is that true for your average Joe Java?
   
 Of course that problem could also be fixed by disallowing calling
 functions as statements, which I think would be a good idea not just for
 this reason.
 

 I would loose then the option to ignore the result which may make
 sense (e.g. loading an optional configuration file).
 People want closures, annotations and all the like but then I should
 get limited how to use a simple method?
   
Anything that has a return value that can be ignored seems suspicious to 
me. Arguably in Javaland you couldn't enforce such rule without some 
option of ignoring it in places, but I'd quite like at least a compiler 
warning with matching @SuppressWarning.

For me an ideal system would have functions that are SEF and procedures 
that never return anything. But I'm a bit of a purist sometimes.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-21 Thread Peter Becker

B Smith-Mannschott wrote:
[...]
 Some have argued that there's nothing wrong with checked exceptions,
 per se, it's just that people don't use them right. This is akin to
 acknowledging that every attempt to practice communism on a national
 level has lead to a  repressive police state, and yet still insisting
 that it would be a great way to run a country, if only people would do
 it right!

 A good idea that can only be implemented badly, isn't a good idea.
The point I'm trying to make is that many people come to that conclusion 
after one failed experiment. Not very scientific, particularly since 
that experiment was executed pretty badly IMO.

While I'm still arguing for checked exceptions, I'm not 100% convinced 
their good yet either. But nearly every argument I see why they are bad 
is about how they are used badly, with the conclusion of some intrinsic 
badness. This is highly illogical, my personal conclusion is we need 
more experiments. Or some arguments why they are intrinsically bad.

Martin's recent argument about the confusing flow wasn't too bad, but 
interestingly applies to all exceptions, not just the checked flavor.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-20 Thread Peter Becker

Ben Schulz wrote:
 The one trick is to realize that the safe version is actually the more
 specific one. If you think of the exception in terms of the type union
 (not accurate, but a decent analogy), then Unsafe.method() returns
 void|IOException while Safe.method() returns void, which is a more
 specific type, thus the return types are co-variant.
 

 I think Reinier was refering to this:

 x.doSomething(new StringReader(xyz));
 x.doSomething(someUnsafeReader());

 Unless you have two overloads of doSomething both invocations will
 throw an IOException. Having two overloads is code duplication though.
 Even if it looks like that:

 public void doSomething(SafeReader r) {
 try {
 doSomething((UnsafeReader)r);
 } catch(IOException e) {
 throw new RuntimeException(e);
 }
 }
   
Here's my version of the story:

If you are happy to deal with the exception, then just write the version 
for the UnsafeReader which will take SafeReader implementations.

If you don't want to allow the exceptions, write the SafeReader version 
only.

If you feel the need to pass the exceptions through without dealing with 
them (not even wrapping them into an exception suitable for your layer), 
then you are probably creating a leaky abstraction.

But I agree that this pattern could not easily be retrofitted into the 
JDK or other code.

  Peter

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



[The Java Posse] Re: How do YOU handle Exceptions?

2009-08-19 Thread Peter Becker

Interestingly Java's generics allow the dual construction on interfaces:

public T extends Interface1  Interface2 void someMethod(T param) {...}

I really like the idea of having the anonymous unions/joins and 
considering that the resulting type system should be a complete lattice 
they sound manageable to me -- both for the compiler and the human 
reader. Does anyone know reasons why no language seems to have this feature?

  Peter



James Iry wrote:


 On Tue, Aug 18, 2009 at 3:13 AM, Peter Becker peter.becker.de 
 http://peter.becker.de@gmail.com http://gmail.com wrote:


 What I would really like to see is a meet/or/disjunction/union
 operator
 in the type system, with a case-like construct to resolve the
 resulting
 types. Scala has two things that are halfway there (Either, case
 classes), but neither is the full monty.


 Few type systems have true union types.  The algebraic data types of 
 the ML and Haskell families, for instance, do not allow unioning of 
 types without explicitly creating a new type with its own 
 constructors.  See Either which in Haskell looks like.  

 data Either a b = Left a | Right b

 In Scala, Haskell, or SML Either is really just a way of faking union 
 typing in a type system that doesn't do union typing.

 Java is actually very unusual in that the small bit of its type system 
 devoted to exceptions basically has union types.  If a method says it 
 throws A,B,C then the union A,B,C forms a type and the type A,B is 
 a subtype, the type A,B,C,D is a supertype.  With regards to 
 declared exceptions on methods Java is covariant.  I know that's not 
 how checked exceptions are normally presented, but that's how the type 
 rules work.

 But then Java, as usual, isn't very regular about this union typing 
 business.  You can write

 Integer myFunction(File file) throws IOException, MyBusinessException 
 {...}

 But if you try to make it first class with something like

 interface FunctionIn, Out, Exc {
   Out apply(In in) throws Exc;
 }

 You can't then write something like

 new FunctionFile, Integer, {IOException, MyBusinessException} {...}

 Your first class function has to pick one exception or declare that it 
 throws a common supertype.

 Project Coin proposed the ability to catch mutliple exception types 
 with one catch block.  That can be seen as extending union typing just 
 a touch further, but it still doesn't cover exception types as type 
 parameters.

 It's not surprising to me at all that Java remains virtually the only 
 language with checked exceptions.  They might be a fine idea, but 
 making them usable and consistent across the language is very tough 
 business.  Checked exceptions are what's called an effects system, 
 which is a way to extend a type system so that functions describe 
 effects they might have beyond computing a value.  Creating an effects 
 system that is usable and consistent across the language is very much 
 ongoing research.  See Disciple 
 http://www.haskell.org/haskellwiki/DDC/EffectSystem, but I warn you 
 it's not for the faint of heart.


 



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups The 
Java Posse group.
To post to this group, send email to javaposse@googlegroups.com
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en
-~--~~~~--~~--~--~---



  1   2   3   >