пятница, 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) Государству и крупным корпорациям будет выгодно распространять часть технологий как открытые стандарты, привязывая тем самым разработчиков к своей инфраструктуре