Google Analytics

понедельник, 20 декабря 2010 г.

Выбор дистрибутива

Вы думали, какой дистрибутив Linux лучше всего удовлетворяет ваши запросы? Если нет, тогда вам тоже стоит заглянуть на 'этот ресурс. Это тест, пройдя который вы будете знать, какой дистрибутив вам лучше подойдёт. Мне вот посоветовали:

Всё бы хорошо, но мне нравиться Ubuntu и Arch, видно тяга к свежему ПО у меня сильнее, чем я думаю. так что отвечая, будьте искренни на все 100%. И воспринимайте результат как совет, а не руководство к действию:)

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

Продали Novell...

Что-то нехорошее происходит с компаниями, занимающимися поддержкой Open Source. Вначале продали Sun компании Oracle. Не успело сообщество прийти в себя, как последовала новость о продаже Mandriva. Это ещё более насторожило всех Linux-пользователей. И вот теперь новая новость. Novell продают компании, бизнес которой сконцентрирован вокруг Windows. Это удар по проектам LibreOffice, Gnome, KDE, Mono и многим другим вкладам в развитие проектов для Linux и Free Software.

Это ещё что. Самое страшное - это то, что само свободное существование Linux находиться под вопросом. Часть кода Linux предположительно реализует вещи, подпадающие под патенты на UNIX. И эти самые патенты, скорее всего, и купил холдинг патентных троллей CPTN Holdings LLC. Данный холдинг в своё время был создан корпорацией Microsoft для борьбы с конкурентами. Предполагалось, что холдинг будет активно скупать патенты на IT технологии для защиты M$ от патентных исков, и преследования конкурентов этими самыми исками. И теперь они могут нанести удар по всем смежным с Unix технологиям. Вместе с Linux проблемы с нарушением патентов вероятно возникнут и у FreeBSD, и производных систем. Так, как часть кода FreeBSD используется в проекте Darvin, то теоретически, даже MacOS X не в безопасности.

Вопрос: что делать? Его пока рано задавать, но в перспективе возможно форсирование разработки GNU/HURD, или переезд на ядро от Minix. Если окажется что FreeBSD не нарушает эти патенты, возможно возрождение дистрибутивов на ядре FreeBSD. Возможно так-же, что сообщество разработает со временем принципиально новое ядро, не нарушающее ни один патенты - но это крайне долгий и тяжёлый путь. Кто знает, как будут развиваться события... И к чему это приведёт. Но точно знаю одно - с мира Unix назад на Windows дороги нет. Windows не подходит тем, кто любит подгонять систему под себя. Она подходит только невзыскательным пользователям с их сугубо средненькими запросами. И поэтому я верю, что никакие патенты не остановят развитие Open Source. Пока есть те, кто любят свободу, всегда найдется какой-нибудь парень, с работы которого вырастет прекрасная свободная ОС.

P.S.: Надеюсь в будущем свободная ОС будет покрываться двумя лицензиями, BSD и GPL. Хотя бы основные её компоненты. Это даст больше свободы для разработчиков, и желающих коммитить в проект. И ещё, если Software Patents не отменят, возможно Open Source разработчикам стоит создать организацию для патентования Open Source разработок и помещения патентов в общий пул. Это помогло бы сражаться с проприетарщиками. Они подают иск на FSF, а те встречный... Open Source не должен быть беззубым. Если свободную разработку используют проприетарщики, пусть делают свободный выбор: становиться в ряд разработчиков/коммитеров проекта, или платить лицензионные отчисления.

суббота, 23 октября 2010 г.

Сегодня я увидел видео, которое не мог не выставить на свой блог. Последний год лично для меня оказался очень тяжелым. Потерял любимую работу из-за резкого снижения покупательной активности. В результате в июле фирма закрылась, а я оказался в свободном плавании. Цены и тарифы растут, отношение к русскоязычным ухудшилось ещё во время избирательной кампании 2009 года. В общем, этот год - чёрный год лично для меня, и я думаю для многих жителей нашей страны. Посмотрите, подумайте, и ответьте себе на вопрос: а каким этот год был для вас? Вот сам ролик.

P.S.:Я не сторонник коммунизма, я не сторонник социализма и других радикальных идей.. От деятельности радикальных социалистов и коммунистов развалилась великая Российская империя. Пострадали миллионы "несогласных", среди которых учёные и интеллигенция, дессиденты и просто трудолюбивые и предприимчивые люди.
Вроде-бы, что общего у большевиков в начале XX века, и либералов-реформаторов в начале XXI века в Молдове? Когда все эти движения за либерализацию и независимость зародились, ещё в 1980-е годы, то у них были основные качества большевиков из XX века: вера в свою непогрешимость, идеализация своей идеологии и нетерпимость к несогласным. Это привело к многочисленным конфликтам на территории бывшего СССР, и образованию непризнанных республик. И эти самые реформаторы, как большевики при Ленине, развалили старую страну до основания. Сами отправляли миллиарды в оффшорки, а народ стал жить на грани нищеты(и даже за гранью). Вот что роднит большевиков, и либералов.
ПКРМ за восемь лет своего правления немного заботилась о социалке. При всех их недостатках, при них жизнь со скрипом, но стала налаживаться. Они не идеальны, они откровенно слабы и плохо организованны. Они растеряли свою старую веру в коммунистическую идеологию, и не создали никакой ясной идеи взамен. Это партия без будущего. Но радикалы от либеральных партий ещё хуже. Лучше неуверенные ни в чём члены ПКРМ, чем радикалы. Китайцы не зря говорили: только бы не жить в эпоху перемен. К власти опять пришли радикалы, которые раздевают нашу страну до нитки, и берут кредиты на миллиарды долларов. А отдавать то их потом нам, простым людям. И главное, они сеют национальную рознь, подпитывая националистов и откровенных фашистов, награждая их медалями и называя в их честь улицы. И не потому, что они сами националисты. Просто так они отвлекают граждан от размышлений на тему: кто виноват, что бюджет и полученные кредиты опять исчезли на каких-то счетах за границей.
Большевизм, дикий капитализм, фашизм, национализм и другие крайности - это пути ведущие в никуда. В развитых странах довольно либеральная экономика сочетается с развитыми социальными программами, и по сути является сплавом из наиболее эффективных идей из обоих миров: как капитализма, так и социализма. Нельзя игнорировать интересы капитала, это может затормозить прогресс. Но игнорирование проблем простых людей тоже недопустимо, да и в долгосрочной перспективе невыгодно самому капиталу - ведь бедность основной массы населения снижает его покупательную активность. Баланс между эффективной рыночной экономикой и хорошей работой социальных программ, важных для всей нации, особенно для самых незащищённых её слоёв, очень хрупок. Отклонения в сторону, и чрезмерное лоббирование интересов бизнеса так-же губительны, как, и не по доходам государства, щедрая социальная политика. Любые крайности приводят к катастрофе, и перекосы "реформаторов", или националистов - такой же путь в никуда, как ленинская революция. И с этой позиции теперешняя власть такое же зло для страны, каким в своё время был большивисткий строй. Может, пора уже отойти от крайностей всем нашим политическим формированиям? А простым людям пора проснутся и трезво оценить своё прошлое, настоящее и свои шансы на будущее. А то за 10, может 20, лет в нашей стране просто не останется граждан. Одни вымрут от политических экспериментов, а другие(их большинство) - станут жителями других стран. Печально всё это, даже очень печально. А видео - доказательство того, что крайности до добра не доводят.
P.P.S:А в ПКРМ должны наконец чётко оценить свои возможности, и определить цели своей политики. Их метания между ЕС, США и Россией, несдержанное обещание о статусе русского языка и некоторые другие ошибки, а также нодостаточная ясность их программы, и политического вектора их партии сыграли против них. Ясная идеология, отказ от старых, радикальных идеалов, ребрендинг, и молодой, умный лидер, способный сложные вещи объяснять простыми словами - вот то, что может быть, всё же спасёт их партию.

четверг, 14 октября 2010 г.

Наступление проприетарщиков на свободу получения информации

В Молдове прикрыли крупнейший торрент-трекер страны. Об этом даже в газете написали. Похоже, не зря товарищ Столлман так старается защитить свободу человека, его право на свободное получение информации. Некоторые корпорации решили превратить информацию в товар. Это само по себе не нормально. Это абсурд. Носитель, полиграфическая продукция идущая с ним - это товар. Но информация, как наша речь, наши слова, чувства и мысли - это не товар. Они не могут стоить денег. Денег может стоить только конкретная реализация в виде материального объекта(гаджета, чипа, носителя информации), или конкретный сервис(обучение, прокат, просмотр посредством специального ПО или WEB-сервиса, помощь или сопровождение). Требовать оплату за идеи, знания или другую информацию без предоставления материального объекта или сервиса - это значит торговать воздухом. Так называемые правообладатели, патентные тролли и их приспешники - это жулики. Они попросту торгуют воздухом, и при этом опутали своей ложью и взятками правоохранительную и законодательную системы многих стран. Вчера эти торговцы воздухом прикрыли torrentsmd.com, сегодня не работает rutracker.org, а что будет завтра? В мире есть люди которые хотят сделать достояния культуры и науки, а также другую информацию доступной только привилегированному классу, но это ущемление прав и свобод всех людей, населяющих нашу планету. Мы все - в первую очередь граждане мира! И любой человек в любой точке нашего небольшого земного шарика имеет право на доступ к знаниям и достижениям нашей общечеловеческой цивилизации. Люди должны объединится и защитить свои права, дать отпор копирайтерам и держателям патентов, иначе знания и информация через несколько десятилетий станет привилегией нового "дворянства", супер-богачей, которых невежественные работяги(по сути просто рабы), будут почитать сверхчеловеками просто за то, что те хранят знания. Такая деспотия уже была в древнем Египте, Вавилоне, империи Майя и других цивилизациях. Это путь в никуда, путь в рабство и эпоху "тёмных" веков. Неужели мы хотим такого будущего для нас и наших детей? Люди должны сплотиться в международные сообщества для защиты своих прав и свобод. Надо не боятся говорить об этом в блогах, на страницах газет и журналов, в личных беседах и везде где нас могут услышать. Иначе мир в котором мы проснёмся в недалёком будущем, боюсь, нам сильно не понравится.

среда, 6 октября 2010 г.

Вчера поздно вечерком, где-то около 2 ночи кажется, сижу я, никого не трогаю, и вдруг у меня воспроизведение одного из эпизодов сериала "Sanctuary" обрывается. Я от компьютера такой наглости не ожидал, попытался открыть видео ещё раз. SMplayer выдал ошибку, типа прочитать директорию не может. В общем стал я искать в чём дело, а разделы со второго винта у меня просто отвалились. В общем, ситуация не из приятных.

Попробовал подмонтировать их заново, и тут облом. Ругаются, что разделов с нужными uid просто нет. Пришлось запускать Fdisk. Он выдал информацию по двум хардам, лишнюю я вырезал:

lucentcode@lucentcode-desktop:~$ sudo /sbin/fdisk -l

Disk /dev/sda: 120.0 GB, 120033075200 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x91baf8f6

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        9223    74083716   83  Linux
/dev/sda2   *        9224       14593    43134525    7  HPFS/NTFS

Стало ясно что разделы с данными сохранились, хотя Disk Utility из System->Administration уверяла меня что разделов на винте нет, и предлагала создать таковые из "незанятых" блоков, которых ровно и было на весь винт.

Была идея использовать gpart, и я честно попытался. Но он меня полчаса почти мурыжил, а толку ноль. Хотя иногда gpart помогает:

sudo gpart /dev/sda

Но не в этот раз. Пришлось делать по другому:

lucentcode@lucentcode-desktop:~$ sudo fdisk /dev/sda

Fdisk просит ввести команду, вот некоторые из них: u - эта команда показывает размер в секторах. v - проверяет таблицу разделов. w - записывает таблицу разделов на диск, заменяя старую на полученную в результате проверки или изменения.

Я так в принципе и проделал всё, в этом порядке. И в результате после команды:

sudo mount -a

Я вернул свои два раздела. Так что если у вас пропал раздел, или вы его удалили - это ещё не приговор. Всё можно вернуть, пока ваши секторы не будут реально пререзаписаны новой информацией. Если у вас не получится справится при помощи данного ПО, используйте TestDisk и PhotoRec, только перед экспериментами не забудьте сделать посекторную копию вашего диска, ведь чаше всего данные свои мы теряем из-за наших же ошибок.

Unable to find specified executable ошибка в Thunderbird

Столкнулся с багом в работе Thunderbird 3.1.4 под Ubuntu Maverick. При получении сообщения стали выскакивать всплывающие окна с надписью "Unable to find specified executable", что стало очень раздражать, так как у меня не один ящик, и писем хватает. В общем, решается дело довольно просто, надо всего лишь установить один пакетик, который забыли указать в зависимостях. Выполните в терминале:

понедельник, 27 сентября 2010 г.

Ubuntu 10.10 Beta - третий день после установки. Полёт нормальный.

В субботу установил новую версию Ubuntu 10.10 Beta.Уже на следующий день убедился что это реально ещё тестируемая версия ОС. Но расскажу обо всём по порядку.

Итак, на компьютер я установил версию под amd64, так как пакеты под ia32 собираются не под Pentium 4 даже, а под i686. А это по сути платформа, по своим возможностям оставшаяся ещё в 20 веке. Даже у смартфонов теперь камни с более фичастыми возможностями. А камень у меня от AMD, и при этом 64-битный. Получается что камушек у меня более мощный, а ОС собрана под набор инструкций Pentium II. Анахронизм какой-то.

Так вот, установил я Ubuntu 10.10 Beta с архитектурой amd64. Первое, что удивило, это скорость загрузки. Даже устаревшая Windows XP грузится медленней этом железе. Видно, что парни из Canonical неплохо поработали. Во вторых, из системы убрали ненужный простым юзерам софт, и добавили Snotwell.F-Spot очень был неплох, но не всем хочется его держать из-за Mono.  

Ещё один сюрприз, работа OpenGL под мою встроенную видюху NVidia GeForce 6100 с проприетарным драйвером версии 260.19.06 работает заметно быстрей. Это проявляется в значительно более плавном движении шестерёнок.

Да, регулятор громкости тоже стал интересней. К нему прикрутили управление воспроизведением композиций в Rhythmbox.

Памяти жрёт где-то 320 метров, для GNOME это нормально.При этом часть памяти для чего-то резервирует. Меня пугали слухи, что под amd64 объём памяти нужно увеличивать в 1,5 раза, но это оказалось очередной интернетовской байкой.

Всё хорошо, но есть ещё шероховатости у этой системы. И это касается именно 64-битной версии. Skype только успевал отобразить список контактов, и сразу вылетал с ошибкой. А затем примерно в 12 ночи я обновил систему, обновился только один пакет содержащий библиотеки для поддержки ia32(x86) платформы. И всё заработало. Одним словом testing есть testing.

Кстати, Skype в пакете под i386 и Skype под x86_64 содержат одну программу. А 64-битная версия просто обёрнута в пакет под x86_64(amd64). А выдаёт эту 32-битность зависимость от ia32-libs.

Дизайн не очень изменился, так-что похоже Ubuntu обрёл свой стиль. Вот он какой примерно.


вторник, 21 сентября 2010 г.

Классный ролик про Linux. Посмотрел, решил запостить в блог. Может посмотрев его ещё кто-то даст пожить линксу на своём винте. Я вначале просто держал его как запасную систему, а потом понемногу мне стали открываться достоинства этой потрясающей ОС.

воскресенье, 29 августа 2010 г.

Приёмы программирования на Python: обработка списков.

Эффективность программиста сильно зависит от того, насколько хорошо он знает язык программирования и владеет им.Важно привить себе правильные приёмы программирования. И встретив ПРАВИЛЬНЫЙ приём, тут же брать его на вооружение.В этой заметке мы рассмотрим использование некоторых приёмов обработки списков.
Допустим, у нас есть список:
my_list = ["Andrew","Joan","Jack","Betty"]
Для того, что-бы перебрать его, поэлементно мы используем цикл for:
for name in my_list:
 print name

Получение одновременно индекса и значение элемента из списка.

А теперь представьте, что вам нужно каждый раз получать индекс элемента и значение. В эпоху моего раннего чайничества (боюсь и теперь я многого не знаю) - я использовал такие варианты как получение индекса как метод списка
index()
и конструкцию:
for index in xrange(0,len(my_list) ):
 print "{0} on position {1}".format(my_list[index],index)
Если этот метод кривой до ужаса, то вариант с
index()
ещё и создаёт трудноуловимую ошибку. Если в списке есть пару одинаковых элементов - вы получите каждый раз при попадании на повторяющийся элемент индекс ближайшего такого элемента:
for name in my_list:
 print "{0} on position {1}".format(name,my_list.index(name))
А ведь так просто сделать правильно:
for index, name in enumerate(my_list):
 print "{0} on position {1}".format(name,index)

Перебор в цикле for двух списков:

Если у вас есть два списка, значения из которых надо последовательно считать в цикле одновременно, используйте функцию zip().Код примера:
fruits = ['Grape', 'Apple', 'Lime']
colors = ['violet', 'red', 'green']

for fruit, color in zip(fruits, colors):
 print "The color of {0} is {1}".format(fruit,color)
Что же возвращает функция zip? Смотрим на её результат:
[('Grape', 'Violet'), ('Apple', 'Red'), ('Lime', 'Green')]
Сюрприз!На выходе мы видим список из последовательностей вида (fruit,color).

Сортировка списка

Функция sorted() - возвращает отсортированный список.Часто используется в виде:
print sorted(set(fruits))
Функция set() возвращает последовательность.Если при вызове ей передать последовательность, она возьмёт из неё все записи, по сути вернув копию списка или иной последовательности.
Функция reversed() выстраивает записи в обратном порядке.Пример:
print list(reversed(fruits))
Помни!Только правильные приёмы программирования сделают твой труд продуктивным, а процесс написания программ приятным. И не будет отчаянного желания спрятать исходники от глаз более продвинутых программистов.Ведь хороший программист — это тот программист, исходники которого приятно читать и несложно править. Не стесняйтесь пользоваться поиском и задавать вопросы. И я надеюсь что вам повезёт не повторять ошибок многих чайников, изобретавших велосипед из=за плохого знания своего программерского инструментария.

суббота, 28 августа 2010 г.

Приёмы программирования на Python: Вступление

Я думаю, не секрет, что программу можно писать легко и с удовольствием, а можно мучатся и изобретать велосипеды. Что же отличает успешного программиста от его незадачливого коллеги - вечного конструктора ужасных и монструозных велосипедов?Плохое знание языка, стандартных библиотек, и отсутствие хороших привычек программирования.


Мы все стоим на плечах гигантов.На плечах тех, кто изобрёл множество вещей, которыми мы ежедневно пользуемся. И используем приёмы в работе, изобретённые не нами. И было бы наивно отказываться от опыта гигантов программерской мысли. Если они уже столкнулись с какой-то проблемой, которую сейчас решаете вы - надо просто узнать как её уже решали до вас. В 90% случаев вы найдёте оптимальное решение. Такие общепризнанные способы решения задач - это стандартные приёмы программирования.Просто набор хороших привычек.Которые сберегают кучу времени и сил, и уберегают от ошибок.


Я решил записывать все подсмотренные где-то хорошие привычки программирования на питоне. И оформлять их в виде цикла публикаций. Я назову этот цикл публикаций:"Приёмы программирования на Python".Надеюсь они пригодятся ещё кому-то кроме меня.

воскресенье, 13 июня 2010 г.

Если ваш пакетный менеджер(Synaptic или Aptitude) ругается на отсутсвие ключей для добавленнных в /etc/apt/sources.list источников пакетов, и вам это надоело - используйте простенький скрипт на замечательном языке Python , написанный мной примерно после трёхсотого напоминания о непроверенных источниках ПО для моего любимого Ubuntu.

Создаём файл keyadder.py такого содержания:

#!/usr/bin/env python
# -*- coding: utf8 -*-
#Скрипт для добавления ключей репозиториям,добавленным вами вручную.
#Опупликовано по лицензии GPL V2 или выше.

import os.path,sys,string,commands,re

print "Пожалуйста запаситесь терпением,мы получаем недостающие ключи...\nЭто довольно долгий процесс,особенно на слабых интернет каналах.\n"
outp = commands.getoutput("sudo apt-get update ")

if re.search( ur"NO_PUBKEY", outp ):

        outp = outp.split("\n")

        for line in outp:
                match = re.search( ur"[/nA-Z0-9]{16}", line )
                if match > 0:
                        key = match.group()
          print "Ключ " + key + " успешно добавлен."
          commandOutput = commands.getoutput("sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com " + key + " ")
 
else:
        print "Поздравляем!У вас все репозитории имеют ключ верификации.\n"
 quit()

Делаем его исполняемым при помощи chmode. Запуск производим из консоли при помощи команды:

sudo keyadder.py
Или:
sudo python keyadder.py

Будьте осторожны, не стоит использовать ПО из PPA авторов, которым у вас нет доверия. Если есть сомнения, лучше сами заведите себе свой PPA , и собирайте важные для себя пакеты в нём.