Рейтинг
+1.26
голосов:
1
avatar

Кодинг  

Готовая среда для Java-разработчика от Oracle

В организации, где я сейчас работаю, на Java пишется почти всё, причем разработка ведется в консольном режиме. Чтобы каждый раз заново не настраивать среду разработки, имеется готовая виртуальная машина в формате VirtualBox. Она содержит уже установленные инструменты (ant, git, vim) и используется как для обучения, так и для работы. Однако нередко можно слышать ропот: люди хотят пользоваться графическими средами. К тому же наша виртуальная машина, выложенная на Яндекс.Диск, плохо загружается у обладателей не очень надежных Интернет-каналов. Все-таки там более 4 Гб.

Ну что-ж, тогда встречайте: настроенная виртуальная машина для Java-разработки от самого Oracle! В состав входят NetBeans для любителей гуёвых IDE, а также сервер приложений GlassFish. Всё это установлено на фирменный оракловский Linux (гы-гы-гы… уши CentOS торчат с первых минут загрузки).



При установке вас ожидает небольшой квест. Во-первых, нужно зарегистрироваться на сайте Oracle. Без авторизации скачивать не дают. Во-вторых, образ виртуального диска выложен 4-мя кусочками (3 по 700 и еще 200+ Мб). Для их склеивания прилагается нехитрый батничек (assemble.cmd). В-третьих, виртуальную машину лучше не создавать с нуля (хотя и так можно), а импортировать их прилагающегося xml-файла. В-четвертых, не очевидны имя пользователя и пароль (подсказываю: glassfish / glassfish).

А в остальном всё очень мило, можно включить поддержку русского языка, хотя NetBeans, конечно, придется поднастроить. Предупреждаю также о том, что Firefox там настроен через прокси, так что может показаться, что нет соединения с Интернетом.

RPC на JavaScript

Года три назад я написал материал об удаленных процедурах, выполняемых с помощью фреймворка GWT. В то время эта технология действительно выглядела прорывом. Еще бы: клиентский и серверный код пишутся на одном и том же языке! Но за прошедшее время произошло много событий, которые побуждают меня всё чаще писать на чистом JavaScript, особенно там, где не требуется задействовать мощные библиотеки и API.

На стороне сервера использую Node.js, развивающийся в последние месяцы просто космическими темпами. На стороне же клиента — не менее интенсивно развивающийся jQuery, который, помимо возможности рисовать красивые интерфейсы, содержит мощные средства выполнения асинхронных запросов. Ну, а посредником между клиентом и сервером может выступать код в формате JSON (я и раньше его иногда использовал, в GWT для этого есть необходимые пакеты).

Вот как можно организовать передачу JSON-объекта на сервер. На стороне клиента:

var queryParams = {greeting: 'Hello, World!', someBool: true};
$.getJSON('/hello', queryParams, function(data){
     // асинхронный разбор прилетевшего с сервера JSON-объекта.
}


Как принять на стороне сервера (задействован пакет express):

app.get('/hello', function (req, res) {
    res.setHeader('Content-Type', 'application/json; charset=utf-8');
    var someObject = {
        replay: 'Воистину ' + req.query.greeting,
        yesOrNo: req.query.someBool
    };
    res.send(JSON.stringify(someObject));
}


Вот так, довольно бесхитростно. Учитывая то, что с сервера можно присылать довольно сложные объекты, этот метод вполне может заменить GWT в экспресс-проектах, когда городить огород некогда и незачем.

Стереотипы

  • 03 сентября 2012, 09:47
  • dos65
  • 1

10 случайных обоев из командной строки

Удивительно, до чего иной раз додумываются гении консоли:

for i in {1..10}; do wget $(wget -O- -U "" "http://images.google.com/images?imgsz=xxlarge&hl=en&q=wallpaper&sa=N&start=$(($RANDOM%700+100))&ndsp=10" --quiet | grep -oe 'http://[^"]*\.jpg' | head -1);done


А почему бы и не испытать этот трюк? Скопипастить строку в консоль и дождаться результата закачки при хорошем соединении займет не более 3 минут. Вот такой получился «улов».



Остальное под катом.


( Читать дальше )

Qr-код из текста

Сгенерировать можно так:

$ qrencode -o contact.png ?`cat contact.vcs`?


vcs — текстовой формат для обмена визитными карточками.

Здравый смысл против копирайта на Java API

Отгремевшая недавно битва гигантов (Oracle vs Google) принесла победу «Империи добра». Это очень отрадно, поскольку в последнее время здравый смысл всё чаще пасует перед какими-то иными соображениями.

Сыр бор разгорелся из-за того, что Oracle упрекала Google в создании собственной реализации «принадлежащего» первой из упомянутых корпораций языка программирования. В суде было доказано, что да, в исходниках VM Dalvik целых 9(!) строк кода из классической реализации Java. И за это Google заплатит несколько миллионов долларов штрафа. Но и только. Дальнейшие поползновения Oracle в направлении приватизации Java были отвергнуты.

Джеймс Гослинг цитирует в своем блоге золотые слова одного из судей, прозвучавшие на процессе:

Поскольку для реализации методов используются специфические программы, любой человек свободен писать свой собственный код, реализующий любые функции или спецификации, использованные в Java API. И не важно, что декларации или заголовочные строки могут при этом совпадать у разных авторов. По правилам, принятым в Java, они (декларации и заголовки) должны быть идентичными, хотя реализация может различаться. Когда есть лишь один способ выразить идею или функцию, никто не вправе это монополизировать. И хотя в ОС Android имена методов и классов могли бы отличаться от соответствующих имен в (классической) Java, копирайт не распространяется на имена и короткие фразы.

Отмена автопереноса строк в Vim

Работая в Vim, я стараюсь вытягивать строки как можно длинее, типа

if(id == null || ref == null || getInitParameter("allowed_ips").indexOf(ip) < 0)


Это позволяет видеть больше строк на экране одновременно. Знаю, что не очень это приветствуется в профессиональных кругах и много раз пытался писать «по правилам», но привычка берет своё. Для того, чтобы строки не переносились автоматически, следует добавить в конфиг vim'а

set nowrap


Однако с какого-то момента vim стал поставляться с настройками, при которых происходит не просто враппинг, а принудительный разрыв длинных строк. Чтобы отключить этот эффект нужно добавить в конфиг

set textwidth=0

Список каталогов и файлов в виде дерева

Выводится на консоль такой остроумной командой:

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'




Источник.

HelloWorld Explorer

Интересный веб-сервис создал Мэт Годбольт. Он

представил первую версию инструмента GCC Exlorer, предназначенного для наглядного просмотра результата компиляции участков исходного кода на языках C/C++ в инструкции на языке ассемблера. GCC Explorer позволяет быстро просмотреть результат компиляции произвольного участка кода, оценить качество его оптимизации, а также наглядно изучить техники оптимизации, применяемые GCC.

А я как раз о программировании сегодня лекцию читал и два раза на разных языках HelloWorld писал. Пришлось дома писать в третий раз:



Подробности.

Свободному сообществу подарили Lotus

Компания IBM перевела свой давний офисный проект Lotus Symphony в разряд свободных.



В 80-х и начале 90-х Lotus-123 какое-то время был лидером рынка. В России, например, это название было знакомо компьютерной тусовке не меньше, чем продукты от Microsoft. Его, кажется, даже на КаМАЗе внедрили. Потом MS-Office выбился в безусловные лидеры и о пакете от IBM (его более позднее название — Lotus Notes/Domino) стали забывать. Позднее и другие конкуренты появились: OpenOffice, разработки от сообщества KDE, Google Docs. Тягаться с такими драконами — себе дороже и IBM поступила грамотно, по принципу «На тебе, боже, что нам не гоже». Теперь наработки Lotus Symphony будут интегрированы в OpenOffice, развивающийся с недавних пор под эгидой фонда Apache.

«Поинтегрировать» там есть что: ведь Lotus — это не столько офисный пакет, сколько полноценная система электронного документооборота с возможностью ведения внутрикорпоративной переписки, электронными подписями, интеграцией с OpenLDAP и т.д. В связи с этим всякие Directum'ы, MS-Exchang'и и даже Zimbr'ы начинают нервно покуривать в сторонке .