Джеймс Гослинг - лучший друг детей и физкультурников

Недавно подписался на блог основателя языка Java Дж. Гослинга.



Блог довольно специфический и обновляется редко, раз в 2-3 недели. Но материал, появившийся в нем на днях, приятно порадовал. Оказывается, существует и динамично развивается (при непосредственной поддержке Гослинга) учебная IDE для начинающих Java-разработчиков — BlueJ.



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

Groovy для педагога

Продолжая знакомство с языком программирования Groovy, я всё больше убеждаюсь, что он в разы сокращает путь от идеи до реализации. На днях мне понадобилось задним числом заполнить огромный документ с расписанием занятий по дням недели: в такой-то день 2 урока, в такой-то — 4. Вроде и вручную можно, но практика показывает, что отвлекаешься, забываешь на чем остановился, постоянно заглядываешь в календарик. А что если написать программу, которая выдавала бы список дней/часов в том порядке, в котором они будут записаны в школьном журнале?

На Java я бы такое писать не стал: программа, конечно, простая, но это ж нужно прописывать импорты, компилировать, упаковывать. А вот на Groovy такую программулю наколбасить можно за 15 минут и запускаться скрипт будет без всякой компиляции, стоит лишь присвоить файлу атрибут исполняемости.




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

Пингвины живут в ядрах (как украсить загрузку)

Всё-таки погружение в тайны ядра — дело полезное и увлекательное. Кроме того, иногда оно приносит приятные сюрпризы. Например, до сих пор я считал, что украшение процесса загрузки системы растровым изображением Пингвинятки Тукса в верхнем левом углу — это высший пилотаж, доступный гикам с помощью немыслимых патчей и т.п. Оказалось — банальная фича ядра, которую можно отключить, а можно вывести на экран в одном из трех цветовых режимов. Но не только к этому сводятся приятные сюрпризы.




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

Патчительное отношение к ядру

Как было показано в предыдущих топиках, сборка программ и даже ядра из исходников (см. mtaalamu.ru/blog/linux/942, mtaalamu.ru/blog/linux/936.html и mtaalamu.ru/blog/linux/916.html) — дело вполне посильное даже для начинающих пользователей. Но, конечно, бывают ситуации специфические, когда нужно придать ядру особые свойства. Например пропатчить его под нестандартную, но весьма популярную систему для создания LiveCD aufs, о которой я тоже недавно писал.



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

Основы "ядерной физики"

Продолжая цикл материалов о сборке ПО из исходников, (начало см. mtaalamu.ru/blog/linux/936.html и mtaalamu.ru/blog/linux/916.html), нельзя не сказать о самой лакомой теме — компиляции ядра ОС GNU/Linux.



Тема эта тоже не нова, но на русском языке популярных материалов не так уж и много. К тому же хотелось бы изложить ее в форме практикума, в конце которого будет рассмотрено еще и наложение патчей.



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

Надо патчить всё на свете, кроме шила и гвоздя

Продолжая тему сборки программ для Linux из исходников, хочу несколько слов сказать про патчи, накладываемые на программы.



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

Путь джедая: компилируем GNU/Linux пакеты вручную

Зачем в наш век apt-get'ов и прочих rpm'ов собирать ПО для Linux вручную? Причин может быть несколько.

Во-первых, создатели репозитариев не сразу реагируют на появление новых версий популярных программ. Тот, кто хочет иметь самый свежий софт, может собрать что-то из исходников и раньше всех получить новые, более быстрые и стабильно работающие программы.

Во-вторых, компилируя из исходников знакомишься с культурой GNU, заглядываешь в код продвинутых прогеров и чему-то у них учишься. При этом не обязательно в совершенстве знать C, достаточно азов, но в процессе сборки эти азы здорово совершенствуются.

В-третьих, иногда быстрее найти ПО в исходниках, чем в репозитариях, да и далеко не всё в последних есть. К тому же в пакетах «от производителей» многие программы собраны в обширные коллекции, а нужен всего лишь маленький кусочек.

В-четвертых, сборка их исходников — своеобразный квест, пройти который становится делом чести, когда упираешься в какую-то, на первый взгляд, уж очень запутанную проблему.

Рассмотрим процесс на примере сборки свежей верcии gcc (компилятора для Linux) и убедимся, что не так это страшно, как кажется.



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

Копирование потока в поток

Речь в данном топике пойдет о потоках в смысле Stream, а не в смысле Thread. Часто требуется направить содержимое файла в сокет, или клавиатурный ввод в файл, или содержимое байтового массива в другой байтовый массив. Короче говоря один поток байт в другой. Есть несколько способов сделать это.




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

Еще раз о вреде велосипедов

Есть одна мысль, которую я стараюсь донести до учащихся, преподавая программирование: прежде чем писать что-то свое — изучите готовые решения, и прежде всего в стандартном API. Однако сам я очень даже грешен «изобретением велосипедов», и на днях был немало смущен, обнаружив ответ неизвестного гостя на свой уже почти забытый топик.




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

База данных Derby: Рукавицы за поясом

«Ищет рукавицы, а они за поясом», — говорят про любителей усложнять себе жизнь. Так и с базами данных. Каких только Java-программист не перепробует: MySQL, MS-SQL, PostgreSQL, Oracle, SQLite… Для всех них имеются JDBC-драйвера, но ведь нужно установить еще сам движок БД, а это не всегда просто. Между тем в стандартный комплект JDK входит база данных Apache Derby, вполне пригодная для большинства целей. По крайней мере альтернативой SQLite ее вполне можно считать. Только SQLite скачивать и устанавливать надо (да и с JDBC там не всё просто), а Derby есть везде, где есть JDK.





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