View access-static-constant-thymeleaf.md

From expercise project:

<td>
  <input class="form-control" type="text" name="inputValue"
          th:maxlength="${T(com.expercise.utils.Constants).MAX_TESTCASE_VALUE_LENGTH}" />
</td>
View java-notserializable-comparator.md

TreeMap, sıralamada kullanmak üzere bizden bir Comparator nesnesi ister ve bu Comparator nesnesini bir field üzerinde tutar. Eğer TreeMap nesnesine verilen bu Comparator nesnesi Serializable değilse serialization esnasında (cache'e yazma gibi) NotSerializableException alınır. Özellikle anonim sınıf üzerinden oluşturulan Comparator nesnelerine dikkat etmek gerekir.

Çözüm, Comparator sınıfını Serializable olarak işaretlemektir. Anonim olarak oluşturulan Comparator yerine top-level (ayrı sınıf) biçiminde Comparator oluşturup Serializable interface'i ile bu sınıfı Serializable olarak işaretleyebiliriz.

Kaynak: http://stackoverflow.com/questions/20978922/java-unable-to-serialize-a-objects-which-contain-treemaps-with-comparators

View jaxb-cdata-without-escaping.md
JAXBContext jaxbContext = JAXBContext.newInstance(MyClass.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty("com.sun.xml.internal.bind.characterEscapeHandler", new CharacterEscapeHandler() {
                @Override
                public void escape(char[] ac, int i, int j, boolean flag, Writer writer) throws IOException {
                    writer.write(ac, i, j);
                }
            });
View limit-number.py
def limit(num, minimum=1, maximum=255):
"""Limits input 'num' between minimum and maximum values.
Default minimum value is 1 and maximum value is 255."""
return max(min(num, maximum), minimum)
View find-and-delete-files-by-name.sh
find . -name '*.pyc' -delete
View safe-method-name-in-before-interceptor.groovy
class MyController {
/**
* Normally, String type method name in except part of beforeInterceptor is legal. For example:
*
* def beforeInterceptor = [action: this.&intercept, except: ['index', 'hede', 'hodo']]
*
* But this is not safe for future naming refactorings. Instead, using closure-maker
* ampersand operator(.&) before method name and then getting 'method' property to get
* method name as String is better for future safe changes.
View get-startup-and-build-version-metadata-in-grails.groovy
/**
* Simple build metadata from system.
*
* To populate application version, just give following parameter while generation WAR package on grails CLI.
*
* $ grails "set-version 1.4" "clean" "war myproject.war"
*
* '1.4' is just an example for build version. If you want to auto generate it by your CI such as Jenkins, then
* create an environment variable and pass it to CLI command.
*
View grails-render-method-download-file-not-found-error.md

Grails'de render metoduna (1) adresindeki file ve fileName parametrelerini vererek kullanıcının istediğimiz dosyayı indirmesini sağlayabiliriz. Fakat eğer tarayıcı "dosya bulunamadı" hatası veriyorsa bu durumda Grails'deki Config.groovy dosyasında bulunan grails.mime.types listesini kontrol etmek gerekir. Eğer indirmek istediğimiz dosya türü için gerekli mime türü bu listede yoksa hata alırız. Örneğin zip dosyası indirtmek istiyorsak bu durumda listeye zip:'application/zip' kaydını girmek gerekir.

(1): http://docs.grails.org/2.4.4/ref/Controllers/render.html

Kaynak: http://mrhaki.blogspot.com.tr/2013/09/grails-goodness-render-binary-output.html

View process-old-files-by-lastmodifieddates.groovy
// 'delete' is a process example
public void deleteOldFiles(File path) {
long startOfDay = new Date().clearTime().time
path.eachFile { file ->
if (file.lastModified() < startOfDay) {
file.delete()
}
}
}
View variable-value-key-of-map.md

If you want to use a variable value as key of your map, then you should wrap your key with parenthesis. It makes key to be considered as expression instead of String literal.

String keyVar = "mykey"

def map0 = [keyVar : 12]
assert map0.keyVar == 12
assert !map0.mykey