tag:blogger.com,1999:blog-2415041862544909856.comments2023-06-10T23:42:02.309-07:00FlowstopperAnonymoushttp://www.blogger.com/profile/16815999018553645136noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-2415041862544909856.post-41144546083733833432015-10-10T09:04:23.011-07:002015-10-10T09:04:23.011-07:00have been with hetzner for almost 4 years, quite o...have been with hetzner for almost 4 years, quite ok for me, but was in the process of moving to OVH but there are so many negative reviews about them online compared to Hetzner. On the OVH site they tell youthe server will be online in seconds and hours. But from my experience this is not soo.<br /><br />I have made payment over 24 hours, the money has been out of my account, on the OVH site all it says is vetifiction will be done manually, there is no communication or information whatsoever.<br /><br />With Hetzner, i have used 3 different servers at 3 different times and on each occassion immediately payment is made you get details of your live server in minutes,<br /><br />Good have not seen my server yet will kind ask for my money back and still with the devil i know and have know for 4 yearsAnonymoushttps://www.blogger.com/profile/07633288114524797729noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-34175329640794722662015-08-16T23:54:37.250-07:002015-08-16T23:54:37.250-07:00NiceNiceAnonymoushttps://www.blogger.com/profile/06345066637323499316noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-7190464045140412232015-07-23T10:55:22.410-07:002015-07-23T10:55:22.410-07:00sf.net has more system programming projects. githu...sf.net has more system programming projects. github projects are usually web or high level stuffs.Peterhttps://www.blogger.com/profile/16069788224497681233noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-30296538395546047722015-06-17T16:53:00.859-07:002015-06-17T16:53:00.859-07:00Here's some updates on SourceForge activities:...Here's some updates on SourceForge activities: http://www.reddit.com/r/linux/comments/38ebj4/dont_like_whats_happening_with_sourceforge/Anonymoushttps://www.blogger.com/profile/16815999018553645136noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-70754994356670695302015-05-05T18:21:30.018-07:002015-05-05T18:21:30.018-07:00I have not locked myself out of box by misconfigur...I have not locked myself out of box by misconfiguring SSH and/or iptables.<br /><br />What are you talking about is either:<br /><br />* understaffed IT - admins dont have time to "do it right" and just put patches on patches<br />* bad SA - there are tools to fix it and languages that are not shit.<br /><br />or combination of both<br /><br />We have automation. We have Puppet. We have MCollective. We know how to code in something other than that awful shitshow of language that is called shell.<br /><br />I can say "apply my puppet manifest on 5% of machines running jetty and belonging to project XYZ"<br /><br />Every change is documented in git log, together with ticket #id that caused it. Those that dont (...yet... work in progress) like switches are having their configs pulled to other repo.<br /><br />Adding a new machine is literally just a starting installer and going for a break. And configuration management ensures it will be same as other ones.<br /><br />And after that it will be automatically added to backup and monitoring.<br /><br />We actually need to explictly specify which machine is **NOT** backuped/monitored, so not having machine in nagios is HARDER to do than having it.<br /><br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-87352377184437642052015-05-05T10:55:43.921-07:002015-05-05T10:55:43.921-07:00It might also be worth mentioning that what consti...It might also be worth mentioning that what constitutes a newline can differ! There are most commonly CR, LF, CR+LF, as well as the unicode line separator (U+2028) which almost nothing uses by default even in modern systems.Chaz6https://www.blogger.com/profile/01608429060172185449noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-7624035199310333232014-11-22T21:34:55.516-08:002014-11-22T21:34:55.516-08:00Two years have passed and I'm still happy with...Two years have passed and I'm still happy with the NameSilo service, and register all my new domains with them. John Resig has researched registrar prices including domain whois privacy http://ejohn.org/blog/low-cost-com-domains-with-whois-privacy/ and it turns out NameSilo is currently the cheapest. Nice!Anonymoushttps://www.blogger.com/profile/16815999018553645136noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-12131199819225410702014-06-13T06:01:55.809-07:002014-06-13T06:01:55.809-07:00Hi Roy,
How are ensuring that connections are not ...Hi Roy,<br />How are ensuring that connections are not returned to pool ?crmanikandanhttps://www.blogger.com/profile/10688127951602351035noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-82156961346306490542014-05-20T07:39:47.305-07:002014-05-20T07:39:47.305-07:00Thanks for this post. This exactly how I feel abou...Thanks for this post. This exactly how I feel about SourceForge. By now I just want it to die. I refuse to download anything from that site. A lot of Software hosted on SF also comes with crap/bloat/spy ware bundled installers.Lukahttps://www.blogger.com/profile/01472401258947184403noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-20082186448304421212014-05-08T07:27:28.067-07:002014-05-08T07:27:28.067-07:00Or use a language where assigning null to an objec...Or use a language where assigning null to an object variable results in a compile error, like Ceylon or Kotlin.WordWarriorhttps://www.blogger.com/profile/07179814173501490700noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-26335604202644940532014-05-01T20:48:57.282-07:002014-05-01T20:48:57.282-07:00Think about if someone change Color from Enum to c...Think about if someone change Color from Enum to class. == will also break the logic without complie time error. So in my opinion == isn't a good solution for everything. In your case, it is a bug due to partial/incomplete refactoring, which is indeed hard to detect.<br /><br />To complete your refactor, I think you can change Color to a "constant holding class"<br /><br />Color {<br />public static final RED = new RgbColor(0, 0, 255);<br />public static final YELLOW = ...<br />public static final BLUE = ...<br />}<br /><br />Then equals() works like a charm.Henry Wonghttps://www.blogger.com/profile/03815679589433733929noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-44531227922396692252014-05-01T07:20:12.386-07:002014-05-01T07:20:12.386-07:00As a developer of web applications I know the need...As a developer of web applications I know the need for multiple browser instances to test with different logins at the same time. We use a Firefox add-on called Multifox (see https://addons.mozilla.org/de/firefox/addon/multifox/) which is perfect for our use case - perhaps that's a suggestion that may help.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-86876301649375297602014-04-30T02:50:43.645-07:002014-04-30T02:50:43.645-07:00Enums are guaranteed singletons, except when they ...Enums are guaranteed singletons, except when they aren't. I know of at least one - very nasty - way that you can get two *different* Enum instances that represent the same Enum value, and when that happens then == doesn't do the right thing. (Or it does do the right thing, depending on your point of view, but your code still doesn't work)<br /><br />That way is if the enum value is un/marshalled over a CORBA interface. When it comes back in to your code, the CORBA interface creates a new instance of the Enum class rather than using the existing singleton instance.<br /><br />Yes, I hit this in a real product I was working on, and yes it was a nightmare to work out what was happening...<br /><br />And, of course, if you aren't using anything like CORBA in your app then I'd go right ahead and use == because it works :)Grahamhttps://www.blogger.com/profile/05157033220120760339noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-18544668560753103232014-04-29T06:34:43.639-07:002014-04-29T06:34:43.639-07:00Hello Fabian nice post, If you enum is not extensi...Hello Fabian nice post, If you enum is not extensible then == is better option but as Karl suggested it might not work expected when used with Enum as Type, by the way I have also shared my thoughts on <a href="http://javarevisited.blogspot.sg/2013/04/how-to-compare-two-enum-in-java-equals.html" rel="nofollow">Comparing two Enums in Java</a>. Let me know how do you find it. javin paulhttps://www.blogger.com/profile/15028902221295732276noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-32712401674523670812014-04-29T05:46:50.360-07:002014-04-29T05:46:50.360-07:00== breaks type abstraction where equals() does not...== breaks type abstraction where equals() does not.<br /><br />In other words your implementation is now married to your interface and all of those =='s will break the moment you need to define a super interface.<br /><br />See: "Emulate extensible enums with interfaces" Effective Java 2nd Edition. Bloch. p 145.Karl the Paganhttps://www.blogger.com/profile/08670068559230178483noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-90903704169315949812014-04-22T17:00:59.764-07:002014-04-22T17:00:59.764-07:00JDK 8's Optional is a step backwards from Guav...JDK 8's Optional is a step backwards from Guava's, because you can't use it with a foreach statement; it is not an Iterable, and will not give you anything that's an Iterable (Guava's has .asSet() for that). A shame, but at least they did give it filter, map and flatMap.<br /><br />So for anything 'imperative', you'll need to check and then get, which is where errors happen.Anonymoushttps://www.blogger.com/profile/15357860461312756666noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-57843030233187660942014-04-22T09:51:04.355-07:002014-04-22T09:51:04.355-07:00"Use the @NotNull annotation everywhere else...."Use the @NotNull annotation everywhere else. This is optional. The Guava people do not, I do."<br /><br />That is technically incorrect.<br /><br />Guava people do not need @Nonnull because it's using @ParametersAreNonnullByDefault on a package level, see http://jsr-305.googlecode.com/svn/trunk/javadoc/javax/annotation/ParametersAreNonnullByDefault.html<br /><br />When you put @ParametersAreNonnullByDefault on your package (I do, and I hope you do too), a good IDE (I use Eclipse, but I hope this also works on IntelliJ) will inform you when putting @Nonnull is not necessary.<br /><br />BTW I have nothing against intellij, but the de facto Maven dependency for these annotations would be "com.google.code.findbugs:jsr305", which is also the one used by Guava that you mentioned and used, so I was kinda curious why you used intellij's instead of this one:<br /><br />http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.google.code.findbugs%22%20AND%20a%3A%22jsr305%22Hendyhttps://www.blogger.com/profile/05192845149798446052noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-4956456302324016552014-04-22T08:54:08.014-07:002014-04-22T08:54:08.014-07:00It's worth pointing out that Optional is very ...It's worth pointing out that Optional is very similar to the Option class in Scala, which is part of the core library and not an add-on. <br /><br />And I'd argue that the JSR-303 validation annotations are better to use than the JetBrains ones, because being a JSR they are (in theory) better supported. Plus you get to use the JSR-303 Bean Validation stuff too, and we even go further than that and have aspects that wrap our public methods to do validation of all the input and output objects using the JSR-303 Validators to ensure that the data into and out of our APIs are safe.Grahamhttps://www.blogger.com/profile/05157033220120760339noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-28046247168639831202014-03-30T11:02:46.531-07:002014-03-30T11:02:46.531-07:00Recently rewriting database connection pool, figur...Recently rewriting database connection pool, figure out that apache dbcp2 was released. however, never making it work. connection always not returning to the pool. apache dbcp still a fail. now considering to use c3p0.royhttps://www.blogger.com/profile/03231460503201521261noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-60732103163892421312013-12-05T18:47:54.149-08:002013-12-05T18:47:54.149-08:00Is there a way to do this same functionality of si...Is there a way to do this same functionality of simultaneous persistent sessions in mozilla firefox, but using the new tab, rather than the new window mode?Anonymoushttps://www.blogger.com/profile/09616229576200982488noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-45795088746100203552013-11-07T22:05:10.351-08:002013-11-07T22:05:10.351-08:00Interesting topic, of which I have been thinking m...Interesting topic, of which I have been thinking many times myself.<br />I think the example you are using is pretty uncommon. This is a rather technical class and in most cases you don't want your classes to implement CharSequence. In this case I think you reached the right conclusion, but in general domain objects rarely has a business method to be named toString().<br />In almost every case toString() is a technical method used for logging, debugging and error-messages in different leves of test and as such it should not be used in business logic.Jörgen Anderssonhttps://www.blogger.com/profile/10229551989831053791noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-19464058455379731552013-11-06T14:41:37.411-08:002013-11-06T14:41:37.411-08:00I expanded this comment to article in my blog
http...I expanded this comment to article in my blog<br />http://stokito.wordpress.com/2013/11/07/tostring-contract/stokitohttps://www.blogger.com/profile/12691568036832912137noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-27475521377049167142013-11-06T12:49:22.497-08:002013-11-06T12:49:22.497-08:00Thanks you for the great article!
I usually use s...Thanks you for the great article!<br /><br />I usually use some toString() contact:<br /><br />toString() as data converter "as string" only with primitive datatypes wrappers, i.e. Integer, Boolean, Double, Date.<br />Important thing here is that this resulting string representation of value can be parsed verse to get an original value.<br /><br />Another thing is when we need to show the object to a user. In this case it may be better to create another method called like a getDisplayName(), getTitle() or getCaption(). For example User class can contain getDisplayName() that return First Name and Second Name with space between them.<br /><br />In all other cases toString() used for logging output. Since I use Groovy so I do it with @ToString annotation that generates this method in runtime.<br />For example class User can contain toString() method that return user login or email.<br /><br /><br /><br />stokitohttps://www.blogger.com/profile/12691568036832912137noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-6798363707236295442013-09-26T22:01:53.151-07:002013-09-26T22:01:53.151-07:00This should be cleared here: http://stackoverflow....This should be cleared here: http://stackoverflow.com/questions/19042734/is-there-a-limit-like-max-input-vars-in-versions-before-5-3-9/19042981?noredirect=1#19042981rubo77https://www.blogger.com/profile/02729956751400809419noreply@blogger.comtag:blogger.com,1999:blog-2415041862544909856.post-11421015973560427672013-07-24T11:27:23.917-07:002013-07-24T11:27:23.917-07:00Ext containers have a default xtype for their chil...Ext containers have a default xtype for their children. The default xtype for a toolbar is 'button', and since the text property was not specified in your configuration object, it created a button with no text. Since the default style of a button shows only the text/icon in the toolbar, you saw nothing. So it didn't output an error because there was no error to output. It created a button for you and you didn't see it. If you hovered over the area, you likely would have seen the hover class.<br /><br />The grid-search plugin is third party. Third party plugins often break between versions, especially if they override private methods. Most of them do. Whether Ext provides a useful error for them is luck and I wouldn't hold that against the framework.<br /><br />The -dev version, while not perfect, does provide much better errors than without. You make it sound much worse off than it really is.Garbage Collectorhttps://www.blogger.com/profile/15408057394767303925noreply@blogger.com