пятница, 22 октября 2010 г.

Gedit+FASM

Редактор Gedit я думаю в особых представлениях не нуждается:) И кроме всего прочего (а про прочее можно прочесть здесь) он позволяет подсвечивать синтаксис разных языков программирования. Чтобы включить этот режим достаточно выбрать:
Вид->Подсветка синтаксиса->...(нужный язык)
Итак что же мы имеем? Имеем мы много чего кроме ассемблера. Я остановил свой выбор на FASM(Flat Assembler). И заглянув на форум FASM-community обнаружил следующее: http://board.flatassembler.net/topic.php?t=6365 
Тем в топике не так уж и мало что вдохновляло, а с подсветкой синтаксиса FASM для Gedit была связана эта:http://board.flatassembler.net/topic.php?t=8523
Итак качаем файлики из темы. Это описания в формате xml лексем для ассемблера разновидности fasm. Эти файлы нужны для GTKSourceView. Это в свою очередь С-библиотека расширение для GTK, которое позволяет осуществлять многострочное редактирование текста, операции redo/undo   неограниченной глубины,регистронезависимый  поиск в тексте с кодировкой UTF-8, и прочие вещи специфичные для редакторов исходных текстов. Именно на этой библиотеке работает например Gedit,Anjuta(среда разработки для GNOME). Так вот, чтобы добавить возможности   подсветки нового синтаксиса в Gedit нам нужно распакавать файлики из темы, после чего кидаем в папку GTKSourceView по адресу: /usr/share или /usr/local/share или /user/gnome/share или /usr/X11R6/gnome/share  (у меня сработал первый путь ). Но здесь нас ждет засада: usr относится к системным папкам, которые Linux абы кому модифицировать не дает поэтому root спешит нам на помощь=)
И здесь есть два пути (точнее 3:)):
1) Пойти истинным Unix-way и копировать все командой sudo cp /path/to/your/file  /usr/share/ GTKSourceView/language-specs/asembly.lang
2)запустить nautilus из командной строки sudo nautilus
3) или его же запустить но немного иначе gksu nautilus
Далее когда вы скопируете файл asembly.lang  в language-specs,а в styles   oblivion2.xml останется только перезапустить gedit и возрадоваться.
    
 

воскресенье, 17 октября 2010 г.

Python: запускаем скрипты

 Если вы пользователь Linux то скорее всего у вас уже все есть и проверить наличие python довольно просто:откройте командную  строку и наберите: python
На самом деле все вы уже можете писать программы) Каждое ваше действие вы непосредственно передаете интерпретатору и его результаты будут немедленно показаны на экране в командной строке. Можно так же установить IDLE это штатная и очень неплохая среда разработки на python:
apt-get install idle. 
  А если нам захочется немедленнот в консоли проверить команду python? Ответ: 
python -c "print( 'Twest')"
-с заставляет python интерпретировать строку как код. 
Чтобы запустить скрипт в консоли можно написать python имя_скрипта.py 
А если написать в скрипте первой строчкой: #!env/python 
То python будет запущен с этим скриптом автоматом по команде 
./имя_скрипта.py    
./ Так как заставляет искать скрипт не по переменным окружения, а в текущем каталоге   

Что такое copyleft?

Все нам внушают то что собственность это святое и неприкосновенное, и то что за все нужно платить.Производители коммерческого программного обеспечения явно довольно таким положением вещей и всячески его стремятся закрепить.Однако практика развития ИТ показала, что оказывается можно иначе. Как? Окунемся немного в историю OpenSource движения
Первые открытые лицензии это лицензия MIT и BSD. Но это были весьма мягкие лицензии для пропиетарных программ.Но свою пользу они принесли, например система FreeBSD и ей родственные используются и поныне.   главное отличие лицензий MIT и BSD от GPL и сходных с ней лицензий в том, что они не запрещают совмещать открытый код и закрытый и делать весь код закрытым. Пропиетарные дельцы этим пользуются, например продукт LabVIEW использует виртуальную машину LLVM для организации выполнения байт-кода, однако исходные тексты LabVIEW вы не получите:) 
В 1984 году Ричард Столлман выдвинул новый тип лицензии GPL. Ее отличиемот предыдущих лицензий открытого типа была очень жесткая позиция по отношению к закрытым программам, а именно: ни одной строчки кода под GPL не может попасть в закрытый продукт. Для защиты от пропиетарных(закрытых) продуктов GPL-кода от закрытия было выдвинуто 4 права и одно ограничение GPL лицензии. 
Права:

  • Выполнять программу с любыми целями как коммерческого так и некоммерческого характера 
  • Свободно получать исходный текст программы 
  • Модифицировать исходный текст программы 
  • Распространять свою версию программы вместе со всеми   изменениями на условиях той же лицензии с которой вы ее получили 
Именно благодаря последнему пункту мы наблюдаем бурное развитие GPL-софта и его возрождение из пепла даже если разработчики бросили проект. Конечно то что производные работы заставляют то же лицензировать под GPL очень не нравится производителям коммерческого софта и они потому не особо то и хотят участвовать в OpenSource движении.Microsoft кроме того открыто поливает грязью открытый код. 
   Хотя и я уже об этом и говорил, но повторюсь: приучать со школы надо именно к открытым GPL-разработкам, так как они гораздо дешевле государству, либо равны, а часто и лучше своих коммерческих аналогов  по возможностям. Кроме того так как многие открытые программы таят в себе множество возможностей при внимательном изучении и требуют своего изучения, то пользователь приучится читать документацию. 
Теперь посмотрим на это и с другой стороны: государству то же есть немалая выгода в OpenSource, ведь вокруг нужного продукта формируется сообщество, которое может помочь тестированием кодом и т.д. При чем процесс можно вполне контролировать госорганизациям.А реализация научных разработок в рамках открытой модели это и дальновидное решение с точки зрения правительства. Почему? 
1) Открытая форма распространения знаний позволит более эффективно совершенствовать разработку. Если применять GNU/GPL  то и воровать код, чего так боятся, будет невыгодно потому что разработка будет нелегальной и это будет грозить судебными разбирательствами. 
2) Разработка комплекса ПО для исследований с открытым исходным текстом позволит избежать волокиты и высоких затрат для университетов и НИИ страны. Кроме того открытые исходники будучи способствовать более лучшему вовлечению студента в процесс обучения программирования.        
3) Государству и крупным корпорациям будет выгодно распространять часть технологий как открытые стандарты, привязывая тем самым разработчиков к своей инфраструктуре            

вторник, 5 октября 2010 г.

wget: менеджер заначек командной строки

В Windows для многих является совершенно привычной вещью менеджер закачек. Linux нам то же его предоставляет при том несколько вариантов, но мы рассмотрим один из самых популярных, особенно когда дело касается больших файлов: консольную качалку wget. На самом деле ее интерфейс весьма прост, поэтому начнем с ней знакомится не откладывая   дело в долгий ящик.
Решим с помощью нее несколько простых задач(качать будем ну например CentOS с зеркала Яндекс):
Задача 1 просто скачать файл:
wget       http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
В этом случае файл сохранится в домашнем каталоге. Или в том каталоге в который перешел пользователь до начала загрузки wget'ом
Задача 2  Скачать и сохранить файл в определенный каталог:
wget  -P /home/auser/download      http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
Не забываем про волшебное сочетание: ./ Это указывает на текущий каталог и заставляет уже в нем искать необходимую папку. Обратите внимание при необходимости иерархия папок указанная после ключа -P будет создана.
Задача 3: скачать файлы из списка, хранящемся в файле:wget -i spisok.txt
В сам файл нужно записать прямые ссылки на файлы. И wget последовательно скачает файлы из списка.
Задача 4: докачка файла:
wget   -с    http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso
Здесь важно предварительно перейти в директорию, где хранится нужный файл, а ключ c(continue) укажет что необходима докачка.    
Задача 5: создать зеркальную копию сайта(на примере http://mirror.yandex.ru/):
wget -r  http://mirror.yandex.ru/
Ключ -r заставляет заходить wget последовательно во все подкаталоги и воссоздавать всю структуру каталогов у вас на компьютере. Так же можно указать уровень рекурсии, то приведет к скачиванию только части каталогов. Допустим файловая структура site/content/1.htm  и внутри  content еще есть каталог subcontent. Вот если мы укажем уровень рекурсии 2, то будет загружен лишь каталог content , а подкаталог subcontent нет.      
Задача 6:отключить машину по окончании загрузки:
sudo wget   http://mirror.yandex.ru/centos/5.5/isos/i386/CentOS-5.5-i386-bin-DVD.iso &&shutdown -h now
Нам обязательно нужно предоставить права суперпользователя для того чтобы могла сработать команда shutown, флаг -h(halt) говорит о том что компьютер нужно выключить а now я думаю объяснять не надо:) При помощи операции логического И(&&) мы объединяем две операции для последовательного выполнения, т.е. сначала будет выполнено скачивание файла, а затем команда shutdown. Внимательно изучите вывод команды wget --help в нем много интересного:)  
Удачных закачек!  

воскресенье, 3 октября 2010 г.

Прокачиваем gedit

Gedit это программа, которая идет по умолчанию с GNOME и является аналогом Блокнота Windows. Точнее говоря  Блокнот Windows это жалкая тень Gedit:) Gedit по своим возможностям споставим с OpenSource проектом Notepad++ в Windows. Нам итак из коробки предоставляется возможность подсветки синтаксиса многих языков программирования, проверки орфографии, вывода статистики документа, сопряжения с внешними программами и т.д. 
Но на самом деле это далеко не все: у Gedit есть постоянно расширяющийся набор плагинов. Вот о них то мы и поговорим. Чтобы установить их наберем в командной строке:
 sudo apt-get install gedit-plugins
Дальше запускаем Gedit и входим в меню плагинов: Правка->Параметры->Модули 
А здесь нам откроется выбор плагинов. 
Меня заинтересовали такие модули:
1)  Встроенный терминал. При помощи этого модуля вы сможете получить доступ из Gedit к командной строке Linux.
2) Дополнение скобок. Добавляет автоматически закрывающие скобки
3) Python консоль. Комментарии не требуются:)     
На самом деле это далеко не все плагины. Не забудьте включить нижнюю панель в меню Вид