Архив автора: admin

Влияние на гены приводит к регрессии лейкемии

Сегодня исследователи рака объявили о том, что они разработали способ уклонения одного из самых опасных «плохих актеров» при лейкемии. Их подход зависит от использования молекулярного ключа в шестерни важной машины, которая заставляет гены двигаться, позволяя раковым клеткам размножаться.

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

Читать

Salamandra – инструмент обнаружения скрытого микрофона

Salamandra – это инструмент для обнаружения и нахождения шпионских микрофонов в закрытых средах.

Он находит микрофоны на основе силы сигнала, посылаемого микрофоном, и количества шума и перекрывающихся частот.

Основываясь на генерируемом шуме, он может оценить, насколько близко или далеко от микрофона.

Установка

USB SDR Девайс

Чтобы использовать Salamandra, вам необходимо иметь устройство SDR (Software Define Radio).

Это может быть любой из дешевых USB-устройств, таких как это.

rtl_power software

Саламандре требуется программное обеспечение rtl_power, установленное на вашем компьютере.

Для его установки вы можете:

На MacOS:

 # sudo port install rtl-sdr 

Если у вас нет портов в вашем MAC, см. Установку порта

На Linux:

 # apt-get install rtl-sdr 

В Windows: см. http://www.rtl-sdr.com/getting-the-rtl-sdr-to-work-on-windows-10/

Если rtl_power был установлен правильно, вы должны иметь возможность запускать эту команду в любой консоли:

 #rtl_test 

И вы должны увидеть одно обнаруженное устройство.

Использование

Основное использование для обнаружения микрофонов

 # ./salamandra.py 

Эта команда будет использовать пороговое значение по умолчанию 10,8, минимальную частоту 100 МГц, максимальную частоту 400 МГц и звук.

Вы можете изменить значения по умолчанию с помощью параметров.

Режим поиска, чтобы найти скрытые микрофоны

Запустите Salamandra с порогом 0, начиная с частоты 100 МГц и заканчивая частотой 200 МГц.

Поиск активируется с помощью (-s). И сделайте (-S)

 # ./salamandra.py -t 0 -a 100 -b 200-s -S

Режим местоположения из сохраненного файла rtl_power

 # ./salamandra.py -t 0 -a 111 -b 113 -s -f stored.csv 

Чтобы создать файл с rtl_power, с 111MHz до 114MHz, с шагом 4000Khz, усиление 25, интеграция 1s и захват в течение 5 минут, вы можете сделать:

 # rtl_power -f 111M:114M:4000Khz -g 25 -i 1 -e 300 stored.csv 

 

 

 

 



2018-01-09T13:53:41
Аудит ИБ

Как правильно выбрать бюстгальтер по размеру

Как правильно выбрать бюстгальтер по размеру

В этой статье дамская тема: как правильно выбрать бюстгальтер по размеру. Простые советы и видео.Эти полезные советы специалистов вам помогут приобрести удобный лифчик, который станет вашей любимой вещью. Помните, что лучше не экономить на качестве, удобстве и тем более на вашем здоровье. Немного истории. Бюстгальтер (лифчик) — это предмет женского нижнего белья, основная функция которого поддерживать и слегка приподнимать грудь. Его предшественником до конца XIX века был неудобный и стягивающий корсет.

Как правильно выбрать бюстгальтер по размеру

Как правильно выбрать бюстгальтер по размеру

В этой статье дамская тема: как правильно выбрать бюстгальтер по размеру. Простые советы и видео.Эти полезные советы специалистов вам помогут приобрести удобный лифчик, который станет вашей любимой вещью. Помните, что лучше не экономить на качестве, удобстве и тем более на вашем здоровье. Немного истории. Бюстгальтер (лифчик) — это предмет женского нижнего белья, основная функция которого поддерживать и слегка приподнимать грудь. Его предшественником до конца XIX века был неудобный и стягивающий корсет. Первое подобие лифчика появилось очень давно, в VI веке до н. э. Он представлял собой широкую льняную или кожаную ленту (строфион), стягивающую грудь у древних египтянок и женщин Древней Греции. Это можно увидеть на

PyPDF2: новый форк pyPdf (Перевод)

Сегодня узнал, проект pyPDF НЕ умер, как я думал раньше. На самом деле он перешёл в PyPDF2 (видите небольшую разницу в написании?). Есть так же вероятность того, что кто-то занимается и оригинальной версией проекта. При желании, за судьбой PyPDF2 можно следить на reddit. Тем временем я решил посмотреть, чем же PyPDF2 отличается от оригинала. Так что если у Вас есть пара свободных минут — милости просим.

Введение в PyPDF2

Два года назад я уже  писал про pyPDF, а совсем недавно мне как раз пришлось погрузиться в различные библиотеки для работы с PDF на Python, так что появление нового форка пришлось кстати. Мы возьмём несколько моих старых примеров, запустим их в PyPDF2 и посмотрим, как они сработают.
# Соединяем два PDF
from PyPDF2 import PdfFileReader, PdfFileWriter
 
output = PdfFileWriter
()
pdfOne = PdfFileReader
(open( "somepathtoaPDf", "rb"))
pdfTwo = PdfFileReader
(open("someotherpathtoaPDf", "rb"))
 
output.
addPage(pdfOne.getPage(0))
output.
addPage(pdfTwo.getPage(0))
 
outputStream =
open(r"output.pdf", "wb")
output.
write(outputStream)
outputStream.
close()
На моём Windows 7 это сработало без проблем. Как Вы можете предположить, всё, что этот код делает — создаёт два объекта PdfFileReader и прочитывает в каждом первую страницу. После этого, он добавляет эти две страницы в наш PdfFileWriter. И, наконец, мы открываем новый файл и записываем в него PDF. Вот и всё! Мы только что создали новый документ из двух разных PDF!
Теперь давайте попробуем скрипт для поворота страницы из другой моей страницы:
from PyPDF2 import PdfFileWriter, PdfFileReader
 
output = PdfFileWriter()
input1 = PdfFileReader(file("document1.pdf", "rb"))
output.addPage(input1.getPage(1).rotateClockwise(90))
# output.addPage(input1.getPage(2).rotateCounterClockwise(90))
 
outputStream = file("output.pdf", "wb")
output.write(outputStream)
outputStream.close()
Этот скрипт так же сработал на моей машине. Очень даже хорошо. Мой последний тест на соответствие должен проверить, можем ли мы вытаскивать данные так же, как мог оригинальный pyPdf. Давайте попробуем прочитать метаданные:
>>> from PyPDF2 import PdfFileReader
 
>>> p = r'C:UsersmdriscollDocumentsreportlab-userguide.pdf'
 
>>> pdf = PdfFileReader(open(p, 'rb'))
 
>>> pdf.documentInfo
 
{'/ModDate': u'D:20120629155504', '/CreationDate': u'D:20120629155504', '/Producer': u'GPL Ghostscript 8.15', '/Title': u'reportlab-userguide.pdf', '/Creator': u'Adobe Acrobat 10.1.3', '/Author': u'mdriscoll'}
>>> pdf.getNumPages()
 
120
>>> info = pdf.getDocumentInfo()
 
>>> info.author
 
u'mdriscoll'
>>> info.creator
 
u'Adobe Acrobat 10.1.3'
>>> info.producer
 
u'GPL Ghostscript 8.15'
>>> info.title
 
u'reportlab-userguide.pdf'
Тоже очень хорошо, кроме поля автора. Я определённо не автор этого документа и я не знаю, почему PyPDF2  решил, что я им являюсь. Всё остальное сработало верно. Теперь давайте посмотрим, что тут нового.

Что нового в PyPDF2

Одна из вещей, которую я сразу заметил как только взглянул на исходники PyPDF2, это то, что он добавляет несколько новых методов в PdfFileReader и PdfFileWriter. Кроме того, я заметил, что появился совершенно новый модуль merger.py, который содержит класс PdfFileMerger. Поскольку никакой нормальной документации нет — придётся лезть «под капот». Единственный новый метод, который был добавлен в reader — это getOutlines, который позволяет получить эскизы документа (outlines), если они есть. В writer появилась возможность добавить bookmarks и named destinations. Не так уж и много, но дарёному коню в зубы не смотрят. Но больше всего меня вдохновил новый класс PdfFileMerger, который мне напомнил почти погибший проект Stapler. PdfFileMerger позволяет нам объединить несколько PDF в один, используя соединение, вставку и вырезку и их комбинации.
Давайте попробуем?
import PyPDF2
 
path = open('path/to/hello.pdf', 'rb')
path2 = open('path/to/another.pdf', 'rb')
 
merger = PyPDF2.PdfFileMerger()
 
merger.merge(position=0, fileobj=path2)
merger.merge(position=2, fileobj=path)
merger.write(open("test_out.pdf", 'wb'))
Тут мы соединяем два файла вместе. В первый файл вместо третьей страницы будет добавлен второй файл, а как только содержание второго файла закончится будет продолжен первый файл. Это проще, чем проходиться по страницам двух документов и соединять их. Команда merge имеет следующую сигнатуру и строку документации, которая хорошо всё это описывает:
>>> merge(position, file, bookmark=None, pages=None, import_bookmarks=True)
 
Сливает страницы из исходного документа, определённого в
"file" в файл вывода на место, определённое в "position".
 
Опционально Вы можете определить закладку, которая будет установлена на начало этого файла. Для этого надо передать текст закладки в параметре
"bookmark".
 
Вы можете запретить импорт закладок из исходного документа если передадите значение False параметру
"import_bookmarks".
 
Вы можете так же использовать параметр "pages" для того, чтобы добавить только некоторые страницы исходного файла. Для этого надо задать их диапазон.
Есть так же метод append, который аналогичен команде merge, но вместо того, чтобы сливать файлы, он добавляет их в конец исходного файла. Вот скрипт для примера:
import PyPDF2
 
path = open('path/to/hello.pdf', 'rb')
path2 = open('path/to/another.pdf', 'rb')
 
merger = PyPDF2.PdfFileMerger()
 
merger.append(fileobj=path2)
merger.append(fileobj=path)
merger.write(open("test_out2.pdf", 'wb'))
И совсем не больно!

Подводим итоги

Мне кажется, это хорошая альтернатива для работы с PDF. Я могу комбинировать и разделять PDF при помощи PyPDF2 даже проще, чем с оригинальным pyPdf. Кроме того, я надеюсь, что PyPDF не умрёт, так как у него есть спонсоры, оплачивающие его разработку. Согласно потокам reddit есть даже шанс, что оригинальный pyPdf будет переработан и в конце концов оба эти проекта сольются в дружеском экстазе. Но, вне зависимости от того, чем всё закончится, я рад, что разработка его возобновилась и надеюсь, что она не скоро прекратится.

Домашнее чтение

Автор: Ishayahu Lastov

Вам интересно, кто чаще выздоравливает?

clip_image001

Британский психолог, один из лидеров биологического направления в психологии, автор популярного теста интеллекта доктор Ганс Айзенк еще в 1970-х опубликовал статью, где доказывал, что курение абсолютно невредно для здоровья и не провоцирует развития рака. Читать