Re: [The Java Posse] Distributing Java program on Ubuntu 10
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?
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.
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.
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.
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.
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.
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?
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.
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
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
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
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
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
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?
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
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
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?
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?
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 ?
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
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
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
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
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
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
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?
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?
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)
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?
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
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]
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
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.
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?
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?
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
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
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
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
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
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
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
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
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
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
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
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
[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
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
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!)
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
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!)
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!)
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!)
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!)
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!)
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!)
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!)
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!)
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!)
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?
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?
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
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
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
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
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
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?
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
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
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
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
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
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 ?
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 ?
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 ?
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
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
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.
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.
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.
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.
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
+ 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
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
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
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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 -~--~~~~--~~--~--~---