Если вы арендуете офис в большом центре, где есть СКС и все круто, то эта заметка не для вас. Но если вы переезжаете в помещение, переведенное из жилого фонда, то эта статья будет для вас полезна. Я расскажу о возможных проблемах с электрикой и о том, как их предотвратить.
Julia @juliette
User
Как подружить Java и C++. Часть первая
5 min
102KЗдравствуйте.
Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.
Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).
Как вы, наверное, уже догадались, речь пойдет о JNI. Для тех, кто не знает что это, объясняю: JNI (или java native interface) — это такая штука, которая позволяет делать вызовы нативного кода из java машины и наоборот.
Зачем это может потребоваться? Есть несколько причин: необходимость использовать код, который уже написан для нативной платформы, необходимость реализовать что-то такое, что невозможно сделать с помощью одной JVM (например, работа с какими-нибудь специфическими железками), ну и ускорение выполнения критических кусков кода (правда, это весьма спорный момент).
+37
Консольный скринкаст
2 min
1.6KОказывается, записывать сессии работы в терминале — совсем просто. Программа script, входящая в пакет util-linux-ng может записать все ваши действия в файл. В выходном файле ( по умолчанию он называется «typescript» ) сохраняется полный лог вашей работы за терминалом, включая вывод консоли. Можно использовать его в разных целях, начиная с записи студенческих лабораторных работ и заканчивая слежением за тем, кто и что делал за вашим терминалом.
Но самое интересное — возможность последующего проигрывание этого лога в реальном времени с помощью perl-скрипта под названием scriptreplay
Но самое интересное — возможность последующего проигрывание этого лога в реальном времени с помощью perl-скрипта под названием scriptreplay
+30
Эстетика штрих-кода
1 min
5.7K
Несмотря на, казалось бы, ограниченные оформительные свойства двухмерных штрих-кодов, в умелых руках они вполне способны превратиться в самостоятельный эстетический объект. Взять хотя бы нашумевшую ёлочку Тёмы Лебедева.
Далее, хочу привести в пример, как к подобной задаче подошли BBC, Adidas и Microsoft.
+40
ASCII-стеганография на ваших картинках
1 min
5.1KВсем известно ASCII-искусство, которое позволяет рисовать любые картинки с помощью стандартной ASCII-кодировки. В то же время всем известна стеганография — искусство прятать информацию в открытые для всех файлы таким образом, что никто даже не догадывается в них что-то искать. А если найдёт, то не сможет раскодировать, потому что применяется стойкая криптография.
Народные умельцы забавы ради решили скрестить две этих технологии — ASCII-искусство и стеганографию. В результате появился новый сервис, где вы можете загрузить свою фотографию и документы объёмом до 40 КБ, а программа сгенерирует ASCII-изображение с информацией, надёжно зашифрованной в нём (никто не мешает применить 128-битный ключ перед помещением в ASCII-контейнер).
Например, вот в этом ASCII-логотипе Хабра размером 100х100 пикселов закодирован весь текст данной заметки. Другие примеры тут. Каждый пример можно раскодировать на страничке с декодером (просто сделать копипаст картинки в текстовую форму декодера).

Народные умельцы забавы ради решили скрестить две этих технологии — ASCII-искусство и стеганографию. В результате появился новый сервис, где вы можете загрузить свою фотографию и документы объёмом до 40 КБ, а программа сгенерирует ASCII-изображение с информацией, надёжно зашифрованной в нём (никто не мешает применить 128-битный ключ перед помещением в ASCII-контейнер).
Например, вот в этом ASCII-логотипе Хабра размером 100х100 пикселов закодирован весь текст данной заметки. Другие примеры тут. Каждый пример можно раскодировать на страничке с декодером (просто сделать копипаст картинки в текстовую форму декодера).

+34
Пакетное масштабирование изображений
3 min
2.9KСтолкнулся с необходимостью масштабирования большого количества фотографий. Конечно, думаю есть и более элегантное решение,
но поскольку гугла под руками не было — быстро набросал фронт к imagemagick на bash. Думаю, кому-то он может пригодиться.
но поскольку гугла под руками не было — быстро набросал фронт к imagemagick на bash. Думаю, кому-то он может пригодиться.
+33
Gmail Notifier своими руками
6 min
5.3K
+119
Векторная графика в LaTeX. Пакет PGF/TikZ
7 min
61K
Мне в своё время понадобилось найти и изучить какое-то гибкое средство для создания качественных векторных изображений, потому что уже достали криво масштабированные, вставленные с ужасным расширением картинки растровых форматов, портящие всё впечатление от документа, да и увеличивающие его размер в два раза из-за одной большой картинки с прямоугольником и несколькими подписями к нему. Имеющиеся возможности встроенного окружения picture весьма скудны; пакет PStricks ориентирован на язык PostScript (не работает с pdflatex, который мне необходим), хотя и может кое-что, чего не может PGF; система MetaPost, пожалуй, является наиболее мощной из всех в этой области, но функционирует с использованием отдельного интерпретатора со всеми вытекающими из этого последствиями. Таким образом, выбор пал на PGF/TikZ.

+70
Частые ошибки программирования на Bash (продолжение)
6 min
39KTranslation
Продолжаю знакомить сообщество с переводом Bash Pitfalls.
Часть первая.
Нельзя читать из файла и писать в него в одном и том же конвейере. В зависимости от того, как построен конвейер, файл может обнулиться (или оказаться усечённым до размера, равному объёму буфера, выделяемого операционной системой для конвейера), или неограниченно увеличиваться до тех пор, пока он не займёт всё доступное пространство на диске, или не достигнет ограничения на размер файла, заданного операционной системой или квотой, и т.д.
Часть первая.
11. cat file | sed s/foo/bar/ > file
Нельзя читать из файла и писать в него в одном и том же конвейере. В зависимости от того, как построен конвейер, файл может обнулиться (или оказаться усечённым до размера, равному объёму буфера, выделяемого операционной системой для конвейера), или неограниченно увеличиваться до тех пор, пока он не займёт всё доступное пространство на диске, или не достигнет ограничения на размер файла, заданного операционной системой или квотой, и т.д.
+66
Пакеты с getdeb.net теперь доступны в качестве неофициального репозитория
1 min
1.6KЯ люблю когда стоит последняя версия любимого пакета, но к сожалению официальный репозиторий не всегда их содержит, поэтому часто приходится пользоваться getdeb.net. Сегодня набор зависимостей оказался таким, что руками не получилось с ними разобраться, после гугления было обнаружено зеркало:
deb http://ubuntu.org.ua getdeb/
deb http://ubuntu.org.ua getdeb/
+16
Apt-cacher как корпоративный сервер обновлений для Ubuntu/Kubuntu/*buntu
5 min
16KTutorial
Замена apt-mirror`у
apt-cacher — утилита для Debian-подобных дистрибутивов использующих apt в качестве установщика пакетов. Она кеширует файлы, которые скачивает пользователь с офф. зеркала обновлений и при следующем запросе выдает их из своего кэша.
+32
Атака на WPA: подробности
10 min
39KПо мотивам топика о взломанном WPA.
Попытаемся все же разобраться, что случилось и чем это может нам грозить. Поскольку криптографические атаки — вещь, требующая для понимания весьма много специфических знаний, статью можно считать в некотором роде ознакомительной с безопасностью в Wi-Fi сетях.
Попытаемся все же разобраться, что случилось и чем это может нам грозить. Поскольку криптографические атаки — вещь, требующая для понимания весьма много специфических знаний, статью можно считать в некотором роде ознакомительной с безопасностью в Wi-Fi сетях.
+69
Настройка резервного копирования в Ubuntu
4 min
99KНастройка резервного копирования в Ubuntu за 20 минут.
Для работы над проектами использую svn, который находится на удаленном виртуальном выделенном хосте, под управлением ubuntu 8.04. Со временем объемы данных выросли, как и критичность этих данных. Потеря чего-то снилась в кошмарах. Время от времени копировал репозитории на локальный компьютер. Недавно мне это надоело. И я стал искать возможности автоматизировать это дело. Не буду говорить о поисках и вариантах, расскажу о результатах.
Итак, мы имеем удаленный хост под управлением ubuntu, с некоторым массивом довольно критичных данных. Довольно логичным было бы настроить бэкап прямо на удаленном хосте, с помощью tar по крону, rsyns и т.д. Но, т.к. место на виртуальном выделенном хостинге довольно дорого и использовать его лучше по делу, идеально было бы, чтобы данные автоматически копировались на какую нибудь локальную машину, место на которой хоть отбавляй. В моем случае это файловый сервис в офисе, под управлением все той же Ubuntu.
+48
USB в VirtualBox
1 min
57KПосле установки VirtualBox в Ubuntu не подключаются USB устройства в виртуальных машинах.
Дело в том, что информацию об устройствах VirtualBox берет из файловой системы /proc/bus/usb, которая в Убунте не примонтирована. Чтобы ее смонтировать, пишем в /etc/fstab следующее:
Сохраняем файл, и выполняем в консоли sudo mount /proc/bus/usb
Теперь можно подключать устройства к виртуальным машинам.
Дело в том, что информацию об устройствах VirtualBox берет из файловой системы /proc/bus/usb, которая в Убунте не примонтирована. Чтобы ее смонтировать, пишем в /etc/fstab следующее:
none /proc/bus/usb usbfs devgid=125,devmode=664 0 0
Сохраняем файл, и выполняем в консоли sudo mount /proc/bus/usb
Теперь можно подключать устройства к виртуальным машинам.
+22
Работа с ветками в SVN. Изменения в версии 1.5.
2 min
12KПродолжение этой статьи
Долгое время в ветках SVN был один существенный недостаток. Система не помнила мержей, и программисту приходилось самостоятельно заботиться о том, что бы сохранить номер ревизии, когда происходило копирование изменений из транка. Проблема частично решалась добавлением комментариев в лог, но все таки это было чревато ошибками, и целиком ложилось на совесть программиста.
В версии 1.5, наконец-то, программисты Subversion выполнили свое давнее обещание, и добавили несколько полезных фич для работы с ветками.
Итак, в версии 1.5 команда merge обзавелась двумя новыми опциями: --record-only и --reintegrate.
Теперь ответственность за контроль копирования изменений ложится целиком на плечи SVN (merge tracking), а программист может легко, и без боязни выполнять merge так часто, словно это команда update.
Долгое время в ветках SVN был один существенный недостаток. Система не помнила мержей, и программисту приходилось самостоятельно заботиться о том, что бы сохранить номер ревизии, когда происходило копирование изменений из транка. Проблема частично решалась добавлением комментариев в лог, но все таки это было чревато ошибками, и целиком ложилось на совесть программиста.
В версии 1.5, наконец-то, программисты Subversion выполнили свое давнее обещание, и добавили несколько полезных фич для работы с ветками.
Итак, в версии 1.5 команда merge обзавелась двумя новыми опциями: --record-only и --reintegrate.
Теперь ответственность за контроль копирования изменений ложится целиком на плечи SVN (merge tracking), а программист может легко, и без боязни выполнять merge так часто, словно это команда update.
+31
Работа с ветками SVN
6 min
189KПрежде чем приступать вообще к использованию веток, и даже если вы и не думаете их использовать, необходимо прочесть Этот Священный Талмуд.
После того как вы прочли статью о ветках в svnbook, вы уже понимаете для чего нужны ветки, как с ними работать и в каких случаях их необходимо использовать. В принципе, после этого, то, что написано под катом вам уже скорее всего не нужно. Но если вам было лень читать, то может текст ниже вас заинтересует, и вы все таки прочтете статью документации. А может, просто поможет вам лучше понять то, что только что прочли в svnbook-е.
После того как вы прочли статью о ветках в svnbook, вы уже понимаете для чего нужны ветки, как с ними работать и в каких случаях их необходимо использовать. В принципе, после этого, то, что написано под катом вам уже скорее всего не нужно. Но если вам было лень читать, то может текст ниже вас заинтересует, и вы все таки прочтете статью документации. А может, просто поможет вам лучше понять то, что только что прочли в svnbook-е.
+78
Компоновка — начало начал
5 min
15KВ этой статье я расскажу о компоновке элементов интерфейса в PyGTK. Мы будем использовать дизайнер интерфейсов Glade и сделаем первое кросплатформенное приложение на PyGTK.
+53
Северное сияние впервые сняли в 3D
1 min
1.6KНа сайте New Scientist выложили трёхминутный видеофильм о британских физиках, которые впервые в мире сделали трёхмерную съёмку северного сияния (там есть и фрагменты видео, которое вообще-то нужно смотреть в стереоочках). Северное сияние в этом фильме похоже на полотно зелёного шёлка, которое развевается на ветру (фотографии можно посмотреть здесь).

Природное явление снимали с двух точек, расположенных на расстоянии 32 км друг от друга и идеально чётко откалиброванных по звёздам. Хотя в теории создание такой стереопары выглядит просто, но на практике исследователи столкнулись с множеством технических проблем. Им нужно было подобрать оборудование, которое способно длительное время работать при температуре почти -40 градусов по Цельсию и обеспечивающее приемлемое качество видео практически в полной темноте.
Финансирование проекта обеспечили научные организации Великобритании и Финляндии, а также компания Apple.

Природное явление снимали с двух точек, расположенных на расстоянии 32 км друг от друга и идеально чётко откалиброванных по звёздам. Хотя в теории создание такой стереопары выглядит просто, но на практике исследователи столкнулись с множеством технических проблем. Им нужно было подобрать оборудование, которое способно длительное время работать при температуре почти -40 градусов по Цельсию и обеспечивающее приемлемое качество видео практически в полной темноте.
Финансирование проекта обеспечили научные организации Великобритании и Финляндии, а также компания Apple.
+27
«Python 3 Patterns & Idioms». Новая книга Брюса Эккеля.
1 min
3.6KБрюс Эккель, автор бэст-сэллеров «Thinkin in Java» и «Thinking in C++», выпустил новую книгу «Python 3 Patterns & Idioms».
Книга доступна в форматах html и Windows Help.
Распространяется по лицензии Creative Commons Attribution-Share Alike 3.0.
Линк
Книга доступна в форматах html и Windows Help.
Распространяется по лицензии Creative Commons Attribution-Share Alike 3.0.
Линк
+43
Tribler сделал торрент-трекеры архаизмом
1 min
14KНесколько европейских университетов и Гарвард продолжают работу над совместным мега-проектом Tribler по созданию идеального BitTorrent-клиента. Об этом проекте мы уже несколько раз упоминали на Хабре, например, после разработки платёжной системы, основанной на взаимозачёте трафика (гигабайты вместо долларов, которыми можно расплачиваться за товары), а также после внедрения там системы рекомендаций.
И вот сейчас разработчики объявили (PDF), что в новой версии клиента Tribler 4.1.0 реализована технология полноценной децентрализованной работы. Вся статистика об объёмах закачек и раздач, а также информация о рейтингах и привилегиях, сохраняется в распределённой клиентской сети без помощи торрент-трекеров, при этом есть система социальных рекомендаций по протоколу Buddycast, что устраняет угрозу спама. Искать новые .torrent-файлы можно напрямую на компьютерах других пользователей, опять же без нужды в торрент-трекерах.
И вот сейчас разработчики объявили (PDF), что в новой версии клиента Tribler 4.1.0 реализована технология полноценной децентрализованной работы. Вся статистика об объёмах закачек и раздач, а также информация о рейтингах и привилегиях, сохраняется в распределённой клиентской сети без помощи торрент-трекеров, при этом есть система социальных рекомендаций по протоколу Buddycast, что устраняет угрозу спама. Искать новые .torrent-файлы можно напрямую на компьютерах других пользователей, опять же без нужды в торрент-трекерах.
+89
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Registered
- Activity