Вы читаете журнал [info]imploid

imploid
Why learning Haskell/Python makes you a worse programmer

Согласен с автором, это действительно неприятно, не иметь возможности применить свои новые навыки в текущей работе.
Только у него то хотя бы C#, а у меня C ... :(
Метки: ,
 
 
Настроение: worriedworried
 
 
imploid
22 Сентябрь 2007 @ 15:14
Поюзал сабж для питона... Очень порадовало оно меня... Особенно хорошо что можно быстро сделать автоматизированно что то с информацией в календаре написав буквально 20-30 строчек кода... Когда эвентов много это может быть полезно. Буду заносить инфу в календарь а потом выдеру скриптом и соберу статистику....
Написал консольную смотрелку расписания и добавил себе в PATH. Настроил alias c логином и паролем. Теперь пишу в консоли gcal и вижу расписание на ближайщие дни... Удобно...
Использует Google Calendar Data API
Python Client Library
И ElementTree - Нужен для PCL
iso8601.py

Ну и сам код:

from elementtree import ElementTree
import gdata.calendar.service
import gdata.service
import atom.service
import gdata.calendar
import iso8601
import datetime
from sys import argv,exit
from os.path import basename

class Calendar(object):
    def __init__(self, email, password):
        self.cal_client = gdata.calendar.service.CalendarService()
        self.cal_client.email = email
        self.cal_client.password = password
        self.cal_client.source = 'Google Calendar Python'
        self.cal_client.ProgrammaticLogin()

    def getUpcomingEvents(self):
        query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
        query.start_min = datetime.datetime.today().date().isoformat()
        feed = self.cal_client.CalendarQuery(query)
        entry=feed.entry
        entry.sort(lambda a,b: cmp(*[i.when[0].start_time for i in (a,b)] ))
        get_time = lambda x:iso8601.parse_date(x.when[0].start_time).strftime('%c')
        return [(get_time(i),i.title.text) for i in entry]

if __name__=='__main__':
    if len(argv) < 3: 
    print "Usage:%s username password" % basename(argv[0])
    exit()
    
    cal=calendar.Calendar(*argv[1:])
    print "\n".join(map(lambda x: "%s\t%s" % x, cal.getUpcomingEvents()))


 
 
imploid
26 Июнь 2007 @ 08:45
Поставил висту на посмотреть. Заметно местами тормозит, непонятно с чего комп Athlon X2 4200+ 2Gb DDR + GF7600GT - дрова и обновления поставил. Рейтинг 4.9 поставила. Походу она не учла в своем рейтинге что у меня двухядерник - всего 4.9 за проц поставила.

Самое плохое что виста эта, как и все винды делает из пользователя идиота. Даже хуже чем все винды. Только и знаешь что жать на кнопки Да, Продолжить, Подтвердить, Разрешить. Учит не думать, а на все соглашатся.
Красивостей тоже я не оценил - у меня в Линуксе с beryl'ом куда красивее быстрее круче и функциональнее...
И тему оформления можно любую поставить, и поприкольнее чем в висте этой.
Игры глючат, с такой поддержкой игр и тормозами я могу лучше Линуксе игратся - в эмуляторе. Во всяком случае у меня СТАЛКЕР в Линуксе идет, а в висте глючит.
 
 
imploid
У меня есть мнение, что вы зря убрали из проекта упоминание о национальном оборудовании.

На самом деле как раз программно - аппаратные комплексы под четко определенный круг специальных задач - это то в чем архитектура с открытым кодом как раз смотрится наиболее выгодно:

Во первых, сам факт наличия исходного кода позволяет переносить его не только между программными, но и между аппаратными платформами. То есть, проще говоря, имея исходный код, мы более не привязанны к архитектуре PC (тоже иностранная разработка имеющая, кстати, множество недостатков (например закрытый BIOS))
То есть, это дает нам возможность разработать и наладить производство отечественных узкоспециализированных высокотехнологичных устройств специального назначения. При этом эти устройства могут быть аппаратно открыты в любой необходимой степени (вплоть до того что вся схемотехника включая процессор может быть отечественной разработкой). Или можно использовать процессоры с открытой архитектурой SPARC или распространенной архитектурой ARM (имеющие множество преимуществ для применения в устройствах) То есть избавится от влияния таких западных монополистов как Intel и AMD.
При этом значительный обьем кода (который написан на языках довольно высокого уровня, а не поставляется в бинарном виде в отличие от коммерческого ПО) не потребует практически никаких усилий для переноса на такие архитектуры или потребует незначительные усилия. Основная задача - это перенос средств разработки - в основном компиляторов и ядра операционной системы (например Линукс). Это хорошо отработанный процесс в сообществе открытого исходного кода.

Какие устройства могут быть разработаны? Любые.

Например можно разработать для сотрудников силовых ведомств устройство заменяющее обычные рации. При этом такое устройство может быть близко по функциональности к современным мобильным телефонам. Например обладать встроенной камерой, большим экраном, быть подключено к системам глобального позиционирования. Можно будет сделать и передать с использованием цифровых каналов фотографии. получить например фоторобот преступников или террористов. Координировать действия групп по карте с использованием глобального позиционирования.
При этом себестоимость одного такого изделия при значительных обьемах выпуска будет не выше стандартной рации, а множество программных функций необходимых для такого устройства уже разработаны в сообществе открытых кодов.

Или другой пример - можно производить высокотехнологичные приборы для нужд различных отраслей - например медицины, образования, спасательной службы. Производственное оборудование и спецтехнику нового поколения.
На самом деле высокотехнологичная техника не в виде привычного компьютера, а в виде узкоспециализированного устройства на мой взгляд довольно востребованна страной.

Производство компонент высокотехнологичного оборудования гораздо реальнее чем "российский процессор уровня Intel Core2 Duo". В специальных устройствах не нужна такая мощность, особенно если они используют технологии открытого кода. Так что российское оборудование или русский процессор уровня ARM7 или ARM9 - это гораздо реальнее.

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

Опять же такое оборудование более конкурентноспособно на внешнем рынке чем чистое ПО (тут более понятна и традиционна бизнес модель) и у нас есть уже множество иностранных партнеров кторые производят у нас закупки вооружения, и могут потенциально быть заинтересованны в закупках подобного оборудования (интерфейс которого легко может быть переведен на иностранные языки при необходимости благодаря тем же открытым кодам)

Вот это действительно целая область и отрасль, в которой Россия реально может выйти в перспективе в мировые лидеры, потому как нет такого единого монополиста с такими ресурсами как Майкрософт - который бы смог контролировать этот рынок. А Майкрософт как раз мало что может протвопоставить открытому коду в этой сфере - так как его сила - в ПО сторонних разработчиков - которое существует пока только под платформу Intel x86.
Другая платфрма - это шанс для свободного кода в России - выжить и развится, развить отрасль и специалистов, и начать продуктивное сотрудничество с государством. Сначала в области узкоспециализированных устройств и с формой госзаказа которая уже отработана, а потом развившись в национальную платформу начать вытеснять коммерческое ПО из других сфер.