Сообщения

Показаны сообщения с ярлыком "opensource"

Несколько компьютеров через один ViPNet Client

Здесь речь пойдет от том, как организовать доступ с нескольких компьютеров к защищенной сети, организованной по средствам ViPNet Client на одном компьютере. Исходные данные: Допустим у нас есть веб-сервис example.com, который доступен в защищенной сети по адресу 192.168.128.1. Локальная сеть 192.168.1.0/24 У нас есть компьютер с установленным ViPNet Client, который обеспечивает нам доступ к сети 192.168.128.0/24. На этом компьютере в файле hosts прописано соответствие 192.168.128.1 example.com. Сам же компьютер имеет IP 192.168.1.2. В локальной сети имеются компьютеры, которым тоже нужно доступ к example.com через защищенную сеть, на них не установлен ViPNet Client. Решение На том компьютере, где установлен ViPNet Client, устанавливаем прокси-сервер squid . Настраиваем прокси-сервер на порт 80 в прозрачном режиме (http_port 80 transparent) Устанавливаем squid в качестве службы и запускаем. На компьютерах, где нет ViPNet Client, в файлах hosts прописываем соответстви...

Driver Pack Solution (drpsu): делаем свою сборку

У Lite-версии drpsu есть один недостаток, чтобы загрузить драйвера из Интернета на чистой системе, сетевые драйвера уже должны быть на ней установлены. И тут возникла идея собрать пакет сетевых драйверов. Здесь я приведу небольшую инструкцию по созданию своей сборки drpsu. Я в эту сборку включил следующие пакеты драйверов: Чипсет USB Сетевые карты WiFi Телефоны / USB-модемы Модемы Итак, начнем сборку...

Изменение размеров изображения на стороне браузера

Давно искал способ изменить размер изображения на стороне клиента, чтобы большие фотографии не гнать на сервер и не тратить его ресурсы (на недорогом хостинге оперативной памяти мало для сложных манипуляций). И вот второй раз забросил невод  сделал запрос в поисковик, я наткнулся на интересное обсуждение на StackOverflow. Немножко усовершенствовав код, получил такую функцию. function resizeImage(url, targetWidth, targetHeight) { var img = document.createElement("img"); img.src = url; var zoom = targetWidth / img.width; var canvas = document.createElement("canvas"); canvas.width = img.width * zoom; canvas.height = img.height * zoom; var ctx = canvas.getContext("2d"); ctx.scale(zoom, zoom); ctx.drawImage(img, 0, 0); var base64 = canvas.toDataURL("image/jpeg"); return base64; }

Массовая конвертация документов Word в PDF

Однажды мне потребовалось преобразовать в PDF большое количество файлов Microsoft Word. Зная, что Word умеет сам сохранять файлы в PDF, я решил этот процесс немного автоматизировать. В качестве средства автоматизации я выбрал VBScript. Накидав довольно простой скрипт, я получил нужный мне инструмент. Чтобы удобно было пользоваться, я сделал запуск скрипта из контекстного меню Проводника Windows. В итоге получился крохотный, но очень удобный инструмент — SaveAsPDF. После установки: для файлов doc/docx/docm/rtf появится в контекстном меню пункт «Сохранить как PDF» для папок — «Документы Word в PDF» В меню Пуск папка программы с двумя ярлыками: readme.pdf и удалялка. Системные требования: Windows XP или выше Microsoft Office Word 2007 SP2 / 2010 / 2013 Скачать SaveAsPDF бесплатно:  safe2pdf-0.2.1.exe   (159 Кб)

Резервное копирование и удобное восстановление данных

В голове уже больше года крутится проект программы для резервного копирования. Я даже пробовал реализовать данный проект, но из-за не хватки времени, мне пришлось его забросить. Но идея-то осталась... Эту систему резервного копирования я бы хотел применить у себя на работе. Вот вкратце то, что я хочу получить. Итак, на каждом компьютере будет храниться локальный бэкап. На специальный сервер резервного копирования будут собираться все бэкапы по средством стандартных протоколов (в плане SSH). Доступ к локальному бэкапу будет производиться по средствам протокола... FTP! Такой подход позволяет нам легкое восстановление данных стандартными средствами, такими как FileZilla или стандартный веб-браузер. Выглядеть это должно примерно так. Запускаете FTP-клиент, заходите на локальный компьютер, видите папку с названием вашего компьютера, заходите в нее, там перечислены года, далее месяцы, далее числа, время, и на конец, диск С:, диск D:, диск E: и т.д. К примеру вот такой путь: ...

Система удаленного тестирования

За 4 дня по заказу работодателя сварганил программу для проведения тестирования муниципальных служащих. Программа имеет клиент-серверную архитектуру. Клиент написан на Си++ с использованием Qt 4.7.4. Таким образом клиентская программа получилась к тому же и кросс-платформенной. Серверная часть написана на PHP, поэтому может быть реализована практически на любом хостинге. Обе части обмениваются данными по HTTP-протоколу. Формат данных свой (текстовый). Программа может печать отчет, вопросы для самоподготовки. Также отчет отправляется на сервер. Через некоторое время опубликую исходники обеих частей, а сейчас пока провожу испытания.

Мой компьютер через FTP. Очередной велосипед.

Захотелось мне создать простой FTP-сервер, который бы позволял иметь доступ к любому файлу на компьютере, даже если в системе несколько жестких дисков. Это было бы удобно при администрировании локальной сети. Все имеющиеся FTP/SFTP-серверы в качестве корня, предлагают конкретную папку, но не весь компьютер сразу. Я же хочу, чтобы при подключении к моему серверу на запрос листинга корневой директории выводился список дисков, подобно тому, как это делает стандартный проводник Windows. И так, взялся я за программирование. В качестве языка и тулкита выбрал C++/Qt. Этот выбор обоснован, только тем, что мне хочется получше изучить Qt, хотя я понимаю, что это возможно выглядит, как выстрел из пушки по воробьям. Рабочее имя проекта совсем банальное — «ftpaccess». Итак, вот, что я хочу получить в итоге: кроссплатформенное решение (Windows/Linux) простая установка (инсталлятор, DEB/RPM-пакет) с простейшей системой разграничения прав: или все, или только один. FTP-сер...

Простой парсер арифметических выражений

Однажды мне нужно было создать парсер математических выражений. Я взялся за этот труд и сразу же понял, что используя посимвольный разбор, я просто погрязну в большом количестве строк кода. Тогда на помощь пришел очень замечательный инструмент - регулярные выражения. Использовать регулярные выражения в Delphi или Builder'е стало легко возможным благодаря подключению модуля RegExpr.pas, созданного Андреем Сорокиным. Всё о регулярных выражениях Вы можете найти на его сайте: http://RegExpStudio.com/ Итак, приступим к созданию самого парсера. Принцип работы Нашему парсеру мы передаем выражение в виде строки, а он возвращает результат тоже в виде строки символов. В первую очередь, нам нужно убрать все пробелы и табуляции из входящей строки. Затем, найти в ней самые внутренние скобки и рассматривать их как подвыражение, которое можно разобрать. Получившийся результат мы вставим вместо скобок и получим новое выражение, тождественно равное исходному. Итак, теперь рассмотрим разбо...

Работаем с форматом Base64

Изображение
В этом обзоре мы рассмотрим модуль Base64. Он предназначен для конвертации информации в формат Base64 и обратно. В этом модуле всего две процедуры: ConvertToBase64 и ConvertFromBase64. Аргументами обеих процедур являются потоки: входной и выходной. Суть формата Base64 заключается в том, чтобы вместо всех 256 вариантов байта использовать, только 64. Следовательно выходной поток будет немного длинее, но зато его можно будет без проблем передать по электронной почте. Весь набор из 64 символов представлен здесь: Входной поток (0..255) Результат разбиения: 0..63 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ Каждым трем байтам входящего потока соответствует четыре символа в выходном потоке. Принцип кодирования изображен на этом рисунке: Так как из входного потока берется по 3 байта, то может быть такой случай, когда в очередной раз при попытке взять 3 байта нам не хватит их. Тогда в выходном потоке появятся на конце знак равенства (ABC= или AB==). М...

Редактор блок-схем

Изображение
Вашему вниманию представляется программа, которая предназначена для создания, редактирования и экспорта блок-схем алгоритмов. Пользователю не нужно заботиться о размещении и выравнивании объектов, программа автоматически разместит все блоки. Редактор позволит экспортировать блок-схему в исходный текст программы для разных языков программирования (Pascal, C/C++, Алгоритмический язык). Редактор блок-схем позволяет экспортировать изображение схемы в различные графические форматы: BMP, JPEG, PNG, TIFF, ICO, PPM, XBM, XPM, SVG. Программа распространяется на условиях лицензии GNU General Public License (GPL). Программа написана на языке C++ на основе библиотеки Qt. Доступны бинарные сборки как для GNU/Linux, так и Microsoft Windows (2000/XP/2003/2008/Vista/7). Возможности генерация исходного кода на основе блок-схемы в различные языки программирования; автоматическое размещение блоков на схеме; экспорт схемы в популярные растровые форматы; экспорт схем в векторный формат SVG; воз...

Исполнитель Черепашка

Изображение
Со своего старого сайта решил перенести стати в этот блог. Начну с одного моего проекта, который я усовершенствовал, когда писал курсовую работу в институте. Перед вами исполнитель Черепашка! Программа является учебным пособием при изучении информатики. Данная программа является свободным программным обеспечением. Вы вправе распространять ее и/или модифицировать в соответствии с условиями версии 2 либо по вашему выбору с условиями более поздней версии Стандартной Общественной Лицензии GNU, опубликованной Free Software Foundation. Описание исподнителя Черепашка Черепашка представляет собой объект, который способен передвигаться по плоскости, а также вычерчивать линии, определенной длины и под определенным углом. Черепашка может безпрепятсвтенно выходить за пределы экрана.Программа для черепашки - это текстовый файл, в котором на опредленномя языке написаны команды. Комнады записываются вне зависимости от регистра букв на русском языке, парамтеры отделяются от команды пробе...

Открытый WDM драйвер для звуковых карт, основанных на чипе C-MEDIA 8738/8768

Пытаясь по-нормальному установить драйверы на звуковую карту Genius SoundMaker Value 4.1, я в сети обнаружил крохотный драйвер, который прекрасно работает под всеми версиями Windows от 2000 до 7. Скачал, установил. Теперь доволен. Ссылка для скачивания (для большинства случаев):  http://cmediadrivers.googlecode.com/files/CMIDriver-1.2.6-bin-x86.zip На этом сайте есть и другие сборки (x64).