Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Soricidus
Oct 21, 2010
freedom-hating statist shill

AlsoD posted:

if the compiler warned you when you just assumed an object wasn't null without proving it first (i.e. by manually checking) then you wouldn't need Option.

can you have nonnullable objects? seems pretty pointless if anything you know isn't Nothing or whatever it is in java could just be null after all
This exists. you tag things with @NonNull/@Nullable annotations and the ide uses that to figure out what can and can't be null

i'm using it in eclipse and it does make the language a bit less painful. but none of the libraries you'll want to use have nullability annotations, so it;s not exactly great yet

Adbot
ADBOT LOVES YOU

Soricidus
Oct 21, 2010
freedom-hating statist shill
code:
use Acme::PrettyCure;

  # retrieve member on their teams
  my @allstar =  Acme::PrettyCure->girls('AllStar');    # retrieve all
  my @allstar1 = Acme::PrettyCure->girls('AllStarDX1'); # retrieve first .. fresh
  my @allstar2 = Acme::PrettyCure->girls('AllStarDX2'); # retrieve first .. heart_catch
  my @first    = Acme::PrettyCure->girls;
  my @mh       = Acme::PrettyCure->girls('MaxHeart');
  my @ss       = Acme::PrettyCure->girls('SplashStar');
  my @five     = Acme::PrettyCure->girls('Five');

  my $hc = Acme::PrettyCure->now; # retrieve active team members
gas planet, ban humanity

Soricidus
Oct 21, 2010
freedom-hating statist shill

Nomnom Cookie posted:

java.security.SecureRandom biyatch
yagni, unless you're like literally a terrorist or a spy. java.util.Random is faster and ideal for all your high-performance legal cryptographic needs.

top tip: Random.nextInt(n) does a whole bunch of weird stuff that slows it down. use nextInt()%n for better performance in exchange for a minor loss of uniformity that nobody will ever notice

Soricidus
Oct 21, 2010
freedom-hating statist shill
someone somewhere is using that in production code

Soricidus
Oct 21, 2010
freedom-hating statist shill

Shaggar posted:

java style properties files are pretty straight forward
Properties are processed in terms of lines. There are two kinds of line, natural lines and logical lines. A natural line is defined as a line of characters that is terminated either by a set of line terminator characters (\n or \r or \r\n) or by the end of the stream. A natural line may be either a blank line, a comment line, or hold all or some of a key-element pair. A logical line holds all the data of a key-element pair, which may be spread out across several adjacent natural lines by escaping the line terminator sequence with a backslash character \. Note that a comment line cannot be extended in this manner; every natural line that is a comment must have its own comment indicator, as described below. Lines are read from input until the end of the stream is reached.

A natural line that contains only white space characters is considered blank and is ignored. A comment line has an ASCII '#' or '!' as its first non-white space character; comment lines are also ignored and do not encode key-element information. In addition to line terminators, this format considers the characters space (' ', '\u0020'), tab ('\t', '\u0009'), and form feed ('\f', '\u000C') to be white space.

If a logical line is spread across several natural lines, the backslash escaping the line terminator sequence, the line terminator sequence, and any white space at the start of the following line have no affect on the key or element values. The remainder of the discussion of key and element parsing (when loading) will assume all the characters constituting the key and element appear on a single natural line after line continuation characters have been removed. Note that it is not sufficient to only examine the character preceding a line terminator sequence to decide if the line terminator is escaped; there must be an odd number of contiguous backslashes for the line terminator to be escaped. Since the input is processed from left to right, a non-zero even number of 2n contiguous backslashes before a line terminator (or elsewhere) encodes n backslashes after escape processing.

The key contains all of the characters in the line starting with the first non-white space character and up to, but not including, the first unescaped '=', ':', or white space character other than a line terminator. All of these key termination characters may be included in the key by escaping them with a preceding backslash character; for example,

\:\=

would be the two-character key ":=". Line terminator characters can be included using \r and \n escape sequences. Any white space after the key is skipped; if the first non-white space character after the key is '=' or ':', then it is ignored and any white space characters after it are also skipped. All remaining characters on the line become part of the associated element string; if there are no remaining characters, the element is the empty string "". Once the raw character sequences constituting the key and element are identified, escape processing is performed as described above.

As an example, each of the following three lines specifies the key "Truth" and the associated element value "Beauty":

Truth = Beauty
Truth:Beauty
Truth :Beauty

As another example, the following three lines specify a single property:

fruits apple, banana, pear, \
cantaloupe, watermelon, \
kiwi, mango

The key is "fruits" and the associated element is:

"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"

Note that a space appears before each \ so that a space will appear after each comma in the final result; the \, line terminator, and leading white space on the continuation line are merely discarded and are not replaced by one or more other characters.

As a third example, the line:

cheeses

specifies that the key is "cheeses" and the associated element is the empty string "".

Characters in keys and elements can be represented in escape sequences similar to those used for character and string literals (see sections 3.3 and 3.10.6 of The Java™ Language Specification). The differences from the character escape sequences and Unicode escapes used for characters and strings are:

* Octal escapes are not recognized.
* The character sequence \b does not represent a backspace character.
* The method does not treat a backslash character, \, before a non-valid escape character as an error; the backslash is silently dropped. For example, in a Java string the sequence "\z" would cause a compile time error. In contrast, this method silently drops the backslash. Therefore, this method treats the two character sequence "\b" as equivalent to the single character 'b'.
* Escapes are not necessary for single and double quotes; however, by the rule above, single and double quote characters preceded by a backslash still yield single and double quote characters, respectively.
* Only a single 'u' character is allowed in a Uniocde (sic) escape sequence.

Soricidus
Oct 21, 2010
freedom-hating statist shill
i maintain a program that uses java properties files for its data, and users keep trying to edit them by hand or generate them from scripts and they always get it wrong. always.

basically gently caress users use xml

Soricidus
Oct 21, 2010
freedom-hating statist shill

Bloody posted:

just use protobufs
a format that's deliberately designed not to scale? sounds good to me

Soricidus
Oct 21, 2010
freedom-hating statist shill

Bloody posted:

a format that sets out to do something reasonably scoped and then hits it out of the park and also provides suggestions and points you in a reasonable direction for your idiotic use case? :monocle:
it's good for what it was designed for (sending many small messages over the network), but that doesn't mean it's good for every case

Soricidus
Oct 21, 2010
freedom-hating statist shill

Hard NOP Life posted:

How so?

Also I don't see what problems xml is solving that protobuf hasn't also solved but better.
"Protocol Buffers are not designed to handle large messages. As a general rule of thumb, if you are dealing in messages larger than a megabyte each, it may be time to consider an alternate strategy."

"Protocol Buffers do not include any built-in support for large data sets."

"If you want to write multiple messages to a single file or stream, it is up to you to keep track of where one message ends and the next begins. The Protocol Buffer wire format is not self-delimiting, so protocol buffer parsers cannot determine where a message ends on their own."

in other words, protobufs are intended for sending short messages over the internet. they do that pretty well, but that's all they're good for. if you need to handle non-trivial quantities of data, you'd have to invent your own proprietary file format that maybe uses protobufs internally to store chunks of data (and then you still have to worry about whether those chunks might hit the size limit).

alternatively you could just get over your irrational fear of angle brackets and use xml.

Soricidus
Oct 21, 2010
freedom-hating statist shill

Bloody posted:

this is funny
holy poo poo

Soricidus
Oct 21, 2010
freedom-hating statist shill

Notorious b.s.d. posted:

step 1: install linux

step 2: it's really easy from there. why the gently caress were you trying to use windows?

Soricidus
Oct 21, 2010
freedom-hating statist shill

Nomnom Cookie posted:

Java libraries typically have excellent documentation. Of course, reading the source of a Java library to learn how it works is also a valid option, because Java programmers understand how to design their systems and don't try to show off how smart they are by using the cleverest code possible.
lol

tbh 99% of libraries in any language are underdocumented poo poo that dont quite do what you need, best plan is just to man up and take responsibility for writing your own code instead of relying on other people all the time

Soricidus
Oct 21, 2010
freedom-hating statist shill

Bloody posted:

why is a factoryFactory a thing, i barely (lol jk not at all) grasp the need for factories

or really any programing paterns from a book
factories are necessary because sometimes you want to get an object but you want someone else to create it for you (maybe they're better placed to decide which implementation to use, or maybe they're doing caching or whatever). in java they can also be used to hack around the language restriction that prevents you treating a constructor as a value without wrapping it in an object first.

factory factories are necessary because the quality of java code is measured by volume.

Soricidus
Oct 21, 2010
freedom-hating statist shill
i use jython 2.7 for all my jvm scripting needs. its pretty good if you want to combine the robustness and raw performance of python, the terse expressiveness of java apis, and the proven reliability of beta software

do we have this driving mission-critical production code? i'll leave that to your imagination!

Soricidus
Oct 21, 2010
freedom-hating statist shill

coffeetable posted:

the general purpose equivalent would be
code:
10 I = SOMEFUNC()
20 IF I < 0 THEN GOTO 40
30 GOTO 10
40
which is definitely less succinct, but has the benefit that the next programmer along to read your code doesn't have to be familiar with C idioms. it also doesn't "hide" an assignment where you wouldn't generally expect it.
Why do we even bother with structured programming?

Soricidus
Oct 21, 2010
freedom-hating statist shill

Notorious b.s.d. posted:

hell, people unironically use scala on anroid to make videogames
"people unironically do X" is not a strong argument in favor of X

i mean there are unironically SDL bindings for loving PHP

Soricidus
Oct 21, 2010
freedom-hating statist shill
Good things about perl:
1. it's not php
2. it's not javascript
3. it's not ruby
4. it's not ksh
5. it's still not php

Soricidus
Oct 21, 2010
freedom-hating statist shill

Arcsech posted:

which is worse, ruby on rails or node.jabascript
which is worse, crack or meth

just say no

Soricidus
Oct 21, 2010
freedom-hating statist shill
yeah, porting fortran can be pretty bad.

the other week I was trying to get some code running on linux that was written like 20 years ago in a mixture of k&r c and fortran 77. by a mathematician. for unicos. without access to any of the cray manuals that might have told me what all the proprietary keywords were supposed to do.

my advice for anyone else in a similar situation is to re-evaluate your life choices, e.g. your choice to be alive

Soricidus
Oct 21, 2010
freedom-hating statist shill

Shaggar posted:

its not a coincidence the most popular IDEs for c# and java (vs and eclipse) are also the two best IDEs. like I guess you could develop c# or java on a non-windows platform, but idk why they hell you would (esp c#).
The only reason I use java at all is because I have one program that still has some users stuck on windows, and using java means I don't have to develop it there (but can still be confident that it'll just work)

Soricidus
Oct 21, 2010
freedom-hating statist shill

Internaut! posted:

people whose time is worthless
my time's worth a fixed rate, it's not like i get paid for results or anything. might as well make sure i don't run out of work.

Soricidus
Oct 21, 2010
freedom-hating statist shill
lol if you learned to program

Soricidus
Oct 21, 2010
freedom-hating statist shill

havelock posted:

C# enums accept arbitrary ints for versioning reasons. Sum types force you to handle all cases at compile time, enums (in C# anyway) explicitly don't. As long as you have a default: in your case statement then you're fine.
exhaustiveness checking is the best thing about java enums. if i add a new member, the compiler will tell me what code needs to be updated to handle it. default clauses just hide the problem, like why are you using a statically typed language if you don't want static checks

Soricidus
Oct 21, 2010
freedom-hating statist shill

hackbunny posted:

code:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
	at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
	at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
	at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
	at org.codehaus.groovy.grails.orm.hibernate.events.PatchedDefaultFlushEventListener.performExecutions(PatchedDefaultFlushEventListener.java:46)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027)
	at org.springframework.orm.hibernate3.HibernateTemplate$28.doInHibernate(HibernateTemplate.java:883)
	at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
	at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
	at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:881)
	at org.codehaus.groovy.grails.orm.hibernate.metaclass.SavePersistentMethod$1.doInHibernate(SavePersistentMethod.java:58)
	at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
	at org.codehaus.groovy.grails.orm.hibernate.metaclass.SavePersistentMethod.performSave(SavePersistentMethod.java:53)
	at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractSavePersistentMethod.doInvokeInternal(AbstractSavePersistentMethod.java:179)
	at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod.invoke(AbstractDynamicPersistentMethod.java:59)
	at sun.reflect.GeneratedMethodAccessor505.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:188)
	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:132)
	at org.codehaus.groovy.grails.plugins.orm.hibernate.HibernatePluginSupport$_addBasicPersistenceMethods_closure71.doCall(HibernatePluginSupport.groovy:806)
	at sun.reflect.GeneratedMethodAccessor504.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
	at org.codehaus.groovy.runtime.metaclass.ClosureMetaMethod.invoke(ClosureMetaMethod.java:80)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:307)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:63)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
	at license.RequestCacheService.insert(RequestCacheService.groovy:39)
	at license.RequestCacheService$$FastClassByCGLIB$$7876a7b5.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
	at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
	at license.RequestCacheService$$EnhancerByCGLIB$$bb83a13b.insert(<generated>)
	at license.RequestCacheService$insert.call(Unknown Source)
	at farts.LicenseController.proxyRequestTo(LicenseController.groovy:158)
	at farts.LicenseController.this$2$proxyRequestTo(LicenseController.groovy)
	at sun.reflect.GeneratedMethodAccessor1449.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
	at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1003)
	at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:153)
	at farts.LicenseController$_closure2.doCall(LicenseController.groovy:189)
	at sun.reflect.GeneratedMethodAccessor1571.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:225)
	at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:51)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149)
	at farts.LicenseController$_closure2.doCall(LicenseController.groovy)
	at sun.reflect.GeneratedMethodAccessor1570.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
	at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
	at groovy.lang.Closure.call(Closure.java:282)
	at groovy.lang.Closure.call(Closure.java:277)
	at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleAction(SimpleGrailsControllerHelper.java:368)
	at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.executeAction(SimpleGrailsControllerHelper.java:232)
	at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:190)
	at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.handleURI(SimpleGrailsControllerHelper.java:129)
	at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:73)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:292)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:298)
	at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:264)
	at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:255)
	at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:183)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:245)
	at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:134)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:112)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
	at org.codehaus.groovy.grails.plugins.springsecurity.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:40)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.codehaus.groovy.grails.plugins.springsecurity.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:69)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at farts.security.HttpResponseHeaderFilter.doFilterInternal(HttpResponseHeaderFilter.java:24)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at farts.security.HdivHelperFilter.doFilterInternal(HdivHelperFilter.java:181)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.hdiv.filter.ValidatorFilter.processRequest(ValidatorFilter.java:233)
	at org.hdiv.filter.ValidatorFilter.doFilterInternal(ValidatorFilter.java:168)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at javax.servlet.FilterChain$doFilter.call(Unknown Source)
	at filters.NetworkInterfaceFilter.doFilterInternal(NetworkInterfaceFilter.groovy:45)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:865)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
	at java.lang.Thread.run(Thread.java:636)
grails baby :coal:

Soricidus
Oct 21, 2010
freedom-hating statist shill

Notorious b.s.d. posted:

nope

a core problem with c++ advocates is that they rarely understand what the gently caress c++ is.
hardly anyone understands that. look at anyone who says "c/c++" and you are looking at someone who only knows what one of those is

Soricidus
Oct 21, 2010
freedom-hating statist shill

Bloody posted:

i wanted to read dog cover book once but then i didnt own it and well
lol if your employer doesn't even pay for a safari subscription

or i guess you could say ... owned

Soricidus
Oct 21, 2010
freedom-hating statist shill
in that case i'm glad i only have one of those fake jobs where you can take some time out for personal development and still get paid the same

like when else are you going to read about it, on your personal free time? seriously?

Soricidus
Oct 21, 2010
freedom-hating statist shill
we live in a world where someone can be considered a professional developer despite struggling with trivial concepts like pointers and recursion. at least regexps have some moderately subtle edge cases, and i guess the book maybe discusses implementation details as well?

Soricidus
Oct 21, 2010
freedom-hating statist shill

Socracheese posted:

most of the time iterative methods are superior and they are much more "will someone else be able to understand this in a year" friendly usually
idk there are cases where the recursive form is simpler and using iteration might be slightly more efficient but maybe not enough to be worthwhile. just do whichever fits your algorithm best really

Soricidus
Oct 21, 2010
freedom-hating statist shill

hepatizon posted:

2 Tablespoonfuls of Butt
mods

Soricidus
Oct 21, 2010
freedom-hating statist shill

Gazpacho posted:

because (1) the contract that other languages follow sucks whenever you have to fall back to legacy syntax just to get the index
good solutions:
1. provide two mapping functions, so you can provide the index when explicitly asked for it
2. do it like python's enumerate(), which explicitly maps a sequence to tuples that contain the index

bad solutions:
1. implicitly do something unexpected that can cause bizarre and non-obvious bugs

Gazpacho posted:

(2) parseInt isn't a collection mapping function, nobody said it would be, wtf would you expect it to fulfill any contract other than its own
yes, how unreasonable to expect different parts of the built in library to be composable like they are in non-poo poo languages

Soricidus
Oct 21, 2010
freedom-hating statist shill
i for one am convinced that this trivial microbenchmark provides useful information about real-world performance

also lol if you think the main point of removing bad features is to make your lovely code run faster

Soricidus fucked around with this message at 01:13 on Mar 22, 2014

Soricidus
Oct 21, 2010
freedom-hating statist shill

Tiny Bug Child posted:

yeah!! sheesh everyone knows the point is to show how superior you are to the plebs who don't make it harder for themselves to write code for no reason
this is a good computer joke you have posted in the computer jokes forum

Soricidus
Oct 21, 2010
freedom-hating statist shill
ides are good for statically typed languages where they can give you instant feedback on errors and sensible auto completion and type information and stuff

if your working in a plang then they don't buy you much. just use sth like emacs with flycheck mode to employ whatever syntax checking tools are available

Soricidus
Oct 21, 2010
freedom-hating statist shill
read the old new thing from start to finish (you can skip the ones about dreams and classical music). now you know everything about developing for windows in C

Soricidus
Oct 21, 2010
freedom-hating statist shill

hackbunny posted:

Microsoft Office

Soricidus
Oct 21, 2010
freedom-hating statist shill

Tiny Bug Child posted:

loose equals is for when you don't care what specific way the computer is storing some value (which is most of the time for most ppl)
most ppl also wouldn't care if you killed yourself, does that make it a good idea?

Soricidus
Oct 21, 2010
freedom-hating statist shill

MononcQc posted:

just use whatever language you like and is appropriate for the task at hand?
what if you're doing client side webdev? none of the choices are fit for any purpose and nobody who likes them should be trusted to write code

Soricidus
Oct 21, 2010
freedom-hating statist shill

uncurable mlady posted:

then you should be shot
thanks for the advice, i'll give it a try

Adbot
ADBOT LOVES YOU

Soricidus
Oct 21, 2010
freedom-hating statist shill

Tiny Bug Child posted:

lol @ butthurt spergs raging against the modern universal development platform/their imminent obsolescence
thanks for the concern but my job doing interesting things with tolerable technologies isn't going anywhere

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply