Pull to refresh
6
0
Сергей @chernser

User

Send message

3D-модель «норвежской спирали»

Reading time1 min
Views1.1K
Появилось более-менее внятное объяснение вчерашнему «НЛО», фотографии которого были опубликованы на Хабре. Специалисты НАСА подтвердили, что загадочная спираль в норвежском небе вполне может представлять собой след от реактивного двигателя, который вышел из-под контроля. В качестве иллюстрации они сделали 3D-модель этого процесса.



Кстати, служившие на Байконуре пользователи Хабра подтверждают, что сами неоднократно наблюдали такое явление.

Подробнее о неудачном запуске российской ракеты «Булава» см. заметку на Lenta.ru.
Total votes 43: ↑40 and ↓3+37
Comments66

Ликбез по уязвимостям в веб-приложениях, а также самые частые ошибки разработчиков

Reading time7 min
Views37K


Эта статья — продолжение цикла статей по информационной безопасности в веб-приложениях (и не только).

Вообще думал написать о «белом ящике», но я решил что нужно сначала ликвидировать возможные пробелы у целевой аудитории (в основном веб-разработчики) в этой области.

Может многие и все знают, о чем я пишу в статье, но я попытаюсь разбавлять ее практическими примерами и занятным опытом.

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

Как обычно — ответственность за все полученные знания только на читателе :)

Читать дальше →
Total votes 171: ↑150 and ↓21+129
Comments75

Программа для быстрого теста загрузочных дисков

Reading time1 min
Views23K
Довольно много людей качает или создает загрузочные диски в формате образов CD/DVD/USB/FDD и есть необходимость быстро проверить их работоспособность перед использованием в деле. Для этого написана данная программа, со сути являющаяся надстройкой над виртуальной машиной QEMU.


Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments23

Как установить Debian Linux с USB flash

Reading time3 min
Views200K
В этой статье вы узнаете, как создать USB flash диск, с которого можно будет установить Debian Linux.

Введение


Здесь я расскажу, как подготовить загрузочную USB флешку с Debian Lenny и установить с неё Debian на любой накопитель (IDE/USB HDD). Заметьте, что в этой статье описывается не то, как установить Debian на USB диск/флешку, а то, как создать «Инсталляционный USB диск». То есть результатом станет то, что вы сможете установить Debian Lenny с USB накопителя, вместо традиционного CD-ROM.

Существует несколько путей установки Debian Lenny:
Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments29

Google Annotations Gallery

Reading time4 min
Views1.7K
The Google Annotations Gallery — новая open-source библиотека, которая предоставляет широкие возможности программистам для самовыражения. Вы не находите, что стандартные Java аннотации суховаты и безжизненны? Вам не хотелось поставить аннотацию LOL или Facepalm (?) Тогда, эта галерея для вас.

Исходный код: code.google.com/p/gag

Описание аннотаций


@AnimalsHarmedDuringTheMaking

Аннотация @AnimalsHarmedDuringTheMaking позволяет раскрыть факты о жестоком обращении с животными.
Copy Source | Copy HTML
  1. @AnimalsHarmedDuringTheMaking(
  2.     number = 1,
  3.     animal = "хомяк",
  4.     disclosure = "не кормил Fermie 2 дня чтобы закончить вовремя")
  5. public class ConstantTimePrimalityTest {

Читать дальше →
Total votes 76: ↑70 and ↓6+64
Comments6

Обработка сигналов в Java

Reading time3 min
Views14K
Передо мной частенько вставала задача написать какой-нибудь Java-сервис. В качестве ОС мы используем по большей части линукс, так что удобнее всего управляться с такими сервисами — работать с ними как с демонами. То есть, запускаем:
start-stop-daemon --start --make-pidfile --pidfile /var/run/myservice.pid --exec /usr/bin/java — -jar myservice.jar

, и останавливаем:
start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/myservice.pid

Команда --stop посылает JVM сигнал SIGTERM и сервис останавливается. Все как бы неплохо, JVM завершается в штатном порядке, если только вам не нужно выполнить по завершении работы сервиса какое-либо действие. Например явно освободить ресурс, или написать что-нибудь приятное в stdout.

Но все не так страшно, благо JVM начиная с 1.3.1 позволяет обрабатывать сигналы. За ответом как — под хабракат.
Читать дальше →
Total votes 38: ↑29 and ↓9+20
Comments10

Прикладная некромантия в линукс или возвращаем из небытия удаленные файлы

Reading time4 min
Views29K
Думаю, каждый из нас с вами сталкивался с проблемой, когда из-за глюка прошивки фотоаппарата, камеры, кпк, смартфона или просто из-за особого устройства /dev/hands карточка была отформатирована, данные были удалены. В свое время данную проблему я решал достаточно просто, используя Portable версию Ontrack Easy Recovery, но так как уже несколько лет являюсь пользователем linux систем, то использование данного нелицензионнного приложения через wine показалось не совсем кошерным, к тому же жажда исследований и приключений требовала найти бесплатный родной аналог для linux систем. Исследования закончились, даже не успев начаться, так как первая строчка в поиске Google привела к набору утилит TestDisk, о которых я расскажу далее подробнее.
Читать дальше →
Total votes 69: ↑66 and ↓3+63
Comments18

Глоток МоКито

Reading time3 min
Views102K
А Вы знаете что такое mock-объект? Нет?

Что же говорит по этому поводу википедия: «В объектно-ориентированном программировании mock-объект имитирует поведение реального объекта заданным образом… ». Казалось бы зачем? Википедия продолжает: «Во время unit-тестирования mock-объекты могут симулировать поведение бизнес-объектов и бизнес-логику, что иногда необходимо из-за сложности реального поведения»

И что же дают mock-библиотеки java-разработчику?
Total votes 37: ↑32 and ↓5+27
Comments10

Делаем reflection быстрой как прямые вызовы

Reading time12 min
Views50K
Большинство программистов знают о reflection, которая (она — рефлексия) упрощает добавление динамических возможностей в статические языки, такие как Java/C#. Однако reflection упрекают в том, что вызовы работают очень медленно — до 500 раз медленнее. Все же это можно c легкостью исправить — покажем в этой статье как сделать reflection-вызов таким же быстрым, как и прямой (direct) вызов.
Читать дальше →
Total votes 58: ↑54 and ↓4+50
Comments15

Разбор выражений, bytecode-way

Reading time3 min
Views3.7K
Приходилось ли вам разбирать выражение? Рисовать график функции по введенной с клавиатуры пользователем строке?

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

Написав вчера о cglib, я заметил в документации главу о модификации байт-кода. И само собой напрашивается вопрос, а можно ли в runtime заставить класс выполнять, то что очень хочется, а не то что хочет класс?
я хочу знать как!
Total votes 18: ↑17 and ↓1+16
Comments21

Я использую Brain Fuck Scheduler!

Reading time1 min
Views5.3K


pic related

Кон Коливаc (автор знаменитых когда-то ck ядер) выпустил свой шедулер для десктопных систем под управлением linux. При этом он руководствовался не супер-честностью и мифической расширяемостью, а производительностью своего рабочего компьютера.

Обыгранная на картинке ситуация — беда многих опенсорсных программистов — они пишут фреймворки и общие-системы-всего и не желают исправлять очевидные недостатки, просто потому, что наличие этих недостатков объясняется стройностью их системы. Линус — не исключение.

Надеюсь, когда-нибудь BFS включат в ядро и его можно будет включить просто из menuconfig'a.

PS А полноэкранное видео на youtube действительно больше не тормозит! Посмотрел для теста несколько HQ трейлеров.

ck.kolivas.org/patches/bfs/bfs-faq.txt
ck.kolivas.org/patches/bfs
Total votes 71: ↑65 and ↓6+59
Comments72

Другие возможности Java

Reading time4 min
Views6.8K
Я продолжаю переводить источник первой статьи. Всё больше очевидных вещей, не смотря на это я все же решил, что повторение — не такое плохое занятие.

И коли источник исчерпыет себя — призыв к хабра-java-сообществу: «Don’t be jealous!», дополните этот список в комментариях, поделитесь опытом. А пока — продолжение предыдущей статьи, после монтажа, дубляжа и разбавления собственным опытом:

JDK tools


Почти все в курсе, что в поставку JDK входит внушительное число tools’ов. Однако в повседневной работе, думаю, многие кроме как java, javac, jar не используют. Что же ещё можно взять из папки bin:
Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments25

Нетривиальные возможности Java

Reading time4 min
Views16K
Java — язык простой. И после года активного использования для Вас не остаётся секретов. Совершенно случайно я обнаружил, что на stackoverfow люди решили поделиться скрытыми возможностями (Hidden Features of Java). Вышло очень занимательно, получился своеобразный рейтинг нетривиальных возможностей, который я далее запротоколирую в вольном переводе на русский.

double brace


С большим отрывом лидирует «double brace», уже обсуждавшийся ранее в статье Эффект «double brace» by zeroed. Подробное описание метода — 
http://www.c2.com/cgi/wiki?DoubleBraceInitialization
несомненно это самое забавное и неочевидное из списка. Однако как уже отмечалось, метод имеет свои минусы в виде анонимного класса на каждое использование этого метода. А также невозможности использования метода equals () для подобных объектов.

далее еще 10 пунктов!
Total votes 54: ↑44 and ↓10+34
Comments50

Information

Rating
Does not participate
Location
Нижний Новгород, Нижегородская обл., Россия
Date of birth
Registered
Activity