-
Scala и пустота
В Scala есть несколько разных сущностей для обозначения несуществующих, пустых или неопределенных объектов. Начнем с самого привычного для Java-программистов случая. Null Null – это trait. Объект null (с маленькой буквы) — это как раз и есть объект типа Null. Он находится внизу иерархии типов в Scala, в противовес AnyRef. Благодаря этому вы всегда можете как-бы […]
-
EncryptableProperties и защита от дурака
Все знают, что не следует хранить в конфигурационных файлах (например properties) критически важную информацию в открытом виде. Например логины и пароли от базы данных, почты и т.д. Не стоит этого делать, т.к. “случайный” сисадмин или пользователь сможет открыть этот ваш файлик и увидеть пароль. С учетом того, что довольно часто пароли придумывают люди, то запомнить […]
-
Main args, netbeans
Пара простых вещей (про аргументы командной строки + Java/Scala и чуть-чуть про NetBeans) Самый популярный и набивший оскомину пример HelloWorld встречается, наверное, уже во всех учебниках по программированию: // Пример из туториала: http://download.oracle.com/javase/tutorial/getStarted/application/index.html class HelloWorldApp { public static void main(String[] args) { System.out.println(“Hello World!”); // Display the string. } } Здесь String[] args — аргументы […]
-
Немного карри
Использовать карринг в Scala одно удовольствие. Само определение каррирования(или карринга, названо в честь Хаскелла Карри): Для функции h типа h : (A × B) → C оператор каррирования Λ выполняет преобразование Λ(h) : A → (B → C) Отметим, что Λ – это оператор, то есть “функция над функциями”. Например берем функцию foo(x,y), каррируем и […]
-
Java + Excel файлы (Apache POI)
С периодичностью раз в два-три года сталкиваюсь с проектами, в которых опять нужно работать с Excel файлами. Наверно это у меня что-то кармическое… Сейчас, в очередной раз приходиться реализовать полуавтоматический разбор сотен excel-файлов с прайсами. В прошлых своих проектах использовал JExcelApi. Ничего плохого про эту библиотеку сказать не могу, но хочется какого-то разнообразия в жизни […]
-
Календари и даты
Постоянно наталкиваюсь на людей, которые утверждают, что “Date – deprecated, нужно использовать Calendar”. Это не верно! Вариаций на тему “почему это не верно” где-только уже не написано, но все-равно появляются люди которые мне доказывают, что правильней использовать Calendar (аргументеруя именно “устареванием” Date). На самом деле в классе Date просто много deprecated методов. Но если почитать […]
-
Apache HTTPD, mod_jk, Apache Tomcat, Linux
1. Начало. Если Вы ставите Tomcat как-то так: (от рута) aptitude install tomcat6 tomcat6-admin tomcat6-examples, то прежде чем двигаться дальше, вам возможно стоит обратить внимание на настройки URIEncoding в server.xml. Здесь и далее: Томкат => Apache Tomcat, Апач => Apache HTTPD. 2. Вяжем. Классическая схема работы Томката (Apache Tomcat) в продакшене, это связка его с […]
-
Java one, Day #2
Java One, День Второй. Москва. По просьбе друзей выкладываю фотографии с конференции Java One. Фотки не мои, так что вопросы где взять исходные фотографии не ко мне. Как я туда попал. Вначале идти не очень хотелось – дел по работе выше крыши. Но поскольку Java One мероприятия последнее время проводились в Питере, то я их […]
-
Уменьшение изображения на Java
Довольно рутинная операция. Есть несколько способов. Возьмём исходное изображение: 1. Самый простой. Первый на stackoverflow. Суть метода очень проста – создаем BufferedImage меньшего размера, затем прорисовываем в него исходное изображение. Далее сохраняем обычным ImageIO.write() BufferedImage scaled = new BufferedImage(scaledWidth, scaledHeight, BufferedImage.TYPE_INT_RGB); Graphics2D g = scaled.createGraphics(); g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); g.dispose(); ImageIO.write(scaled, “JPEG”, new […]
-
Простые хаки и Greasemonkey
Недавно обратил внимание на то, что шрифты на сайте java.net какие-то неприятные – мутные и плохо читаются. Может они всегда были такими, а я стал чуть-более придирчивым, а может быть стали такими после мега_перезагрузки_сайта. На самом деле не столь важно почему, важно понять как подправить… Могу предложить два способа из разряда “быстрых хаков”. Способ 1. […]
android (12) blog (2) coworking (4) database (5) dce vm (1) design (2) design pattern (2) gradle (1) groovy (1) gwt (3) gwt-ext (2) hibernate (2) image (3) Jar (1) Java (80) JavaScript (4) json (1) lambda (1) linux (6) maven (6) multimedia (2) mustache (1) mysql (4) netbeans (10) pdf (1) rdf (2) rmi (1) Scala (17) security (1) svg (1) svn (4) template system (1) Tomcat (4) tv (1) uml (9) web (1) xml (1) авторизация (2) архитектор (2) дизайн (1) комикс (1) компьютер (1) места (3) программирование (60) работа (9)