software by me
софтуер от мен
left to be free. use it.. as you can. and don't hurt it.
оставен на свобода. ползвай го... както можеш. и не го наранявай.
github
-
py-xtdb-datomic
+
transit-python
xtdb is a bi-temporal immutable database, datomic is an older 1-temporal
one ; they did not have convenient python clients, and i needed such for some payments
architecture.. but the project did not happen, so these are left as is - xtdb covers
v1 and early v2 (~02.2024), with tests and everything. The "transit-protocol" library is
3x-5x faster rewrite over the original, but it's only use was xtdb v2 :/
xtdb е двувремева непроменяема база данни, datomic е по-стара
едно-времева такава ; нямаха си удобни питонски клиенти, а ми трябваха за една
платежна архитектура.. но проекта не се случи, така че са оставени както бяха - xtdb
покрива версия v1 и ранна версия v2 (~02.2024), с тестове и всичко. Библиотеката за
транзит-протокола е 3x-5x ускорена спрямо оригинала, но единствената и употреба беше
xtdb v2 :/
-
Notionery
Понятийник
cool and rather far-fetched idea... Notionery: system that helps you do
"routine" things like remembering, learning and expressing yourself, in your terms and
about your known things (subjects, themes, domains, people,.. whatever you have
idea/notion of).
яка и доста далечна идея... Понятийник: Система която ти помага да правиш
"рутинни" неща като запомняне, научаване и себеизразяване, на твоя си език, относно
познатите ти неща (предмети, теми, области, хора,.. за каквото имаш идея/понятие).
-
sklad
склад
tiny python.wsgi file-uploader for www server - multiple (HTML5) or
single selections, progress-per-file, unlimited size (does not store anything in
memory)
мъничка качвачка на файлове на питон/wsgi за www-сървър - множествен
(HTML5) или единичен избор, напредък-по-файлове, неограничени размери (не държи нищо в
паметта)
-
fuselage
фюзелаж
tag-based semantic file system, in python, over FUSE. Pluggable aspects
(parsing or interpretting). Querying and relations between tags/items. Modular
architecture, allows different user-ends (fs/webdav/http/..), or backends
(sql/rdf/..)
етикетна семантична файлова система, на питон, върху FUSE. Добавяеми
аспекти (за превод или употреба). Запитвания и взаимовръзки между етикетите и
нещата. Модулна архитектура, позволяваща различни накрайници към потребителя или към
системата.
-
facer
/ фасон
~2010
tiny language for interface/protocol declaring and describing, in python.
Methods - signature, inheritance, specialization; argument and result types,
cardinality and optionality. Generates documentation. Easy cloning by interpreting
over different set of types/arguments. All kind of checks are possible but are not
automatic - only if called. Similar to static_type below but with different
intentions - for (www) APIs.
малък език за обявяване и описание на протоколи/интерфейси, на питон.
Методи - сигнатура, наследяване, специализация; аргументи и резултати - тип,
размерност, не-задължителност. Генерира документация. Лесно размножаване чрез
прилагане върху друго множество от типове/аргументи. Всякакви проверки са налични но
не са автоматични - само ако се извикат. Прилича на static_type по-долу, но с други
намерения - за (www) програмни интерфейси.
class IO_account( IO_base):
class Types( Types):
email = Types.text
name = Types.user_text
provider = Types.enum( 'facebook linkedin email'.split(), type= str )
r_account_profile = Types.text_stream
MTypes = MTypes( Types) #autonaming-wrapper
account_create= Method(
email = optional( MTypes.email),
first_name = optional( MTypes.name),
provider = MTypes.provider,
).doc( 'creates an inactive account and sends a token to email for confirmation')
account_get = MethodAuth(
).returns( MTypes.r_account_profile
).doc( 'returns account data')
-
smok
/ смок
~2011
Translated Python 3: replacing the english words ( operators, names and messages
- if,else,for,..) with another language - e.g. bulgarian (ако,иначе,за). For kids,
and people who want to think and write in their own language, instead of
suffer with the alternatives - near-"english", transliteration into latin, mixed
latin-cyrilic.
Преведен Питон 3: замества английските думи (оператори, имена и съобщения -
if,else,for,..) с друг език - напр. български (ако,иначе,за). За деца, и хора
които искат да мислят и пишат на собствения си език - вместо да се мъчат с
алтернативите - почти-"английски", български на латиница или смес от кирилица и
латиница.
клас Филминфо( Инфо): #изцяло преведено / fully translated
@класметод
деф сглоби_име( кл, име ):
имена = [ име ]
ако име.завършва('.bg'): имена.допълни( име[:-3])
инако име.завършва('.ru'): имена.допълни( име[:-3])
иначе: имена.допълни( име)
върни Инфо.сглоби_име( *имена)
class Filminfo( Info): #изцяло на английски / fully in english
@classmethod
def make_name( kl, name):
names = [ name]
if name.endswith('.bg'): names.append( ime[:-3])
elif name.endswith('.ru'): names.append( име[:-3])
else: names.append( ime)
return Info.make_name( *names)
-
reporter
/ репортер
~2007
declarative language for describing a report - and executing it:
- input params and data extraction
- data processing - filtering, calculations, aggregation/grouping/ordering
- output layout into various looks (like MVC) - plaintext, wxwin/
printpreview, pdf/reportlab, html, excel, ...
- the modelling is discrete, that is the atomary item is a field. Then fields can
be grouped into various report-metamodels, depending on structural flexibility:
bunch-of-fields - free form ;
rows-of-fields - list of things ;
table - rows of (same) columns (tabular data) ;
cross-cut cols/rows (variable number rows * variable number columns) ;
- there is inheritance in several aspects - structure, fields, processing, layout -
a well as containment (field can be a sub-report)
декларативен език за описание на справки - и изпълнението им:
- входящи параметри и извличане на данните
- обработка на данните - филтриране, изчисления, агрегиране/групиране/подреждане
- оформление на изхода в разни изгледи (като МИК/MVC) - прост-текст, wxwin/
printpreview, pdf/reportlab, html, excel, ...
- моделирането е дискретно, т.е. атомарния елемент е поле. Полетата може да се
групират в разни мета-модели, според структурната гъвкавост:
набор-полета - свободна форма ;
редове-от-полета - списък неща ;
таблица - редове от (еднакви) колони (таблични данни) ;
кръстосани редове/колони (променлив брой редове * променлив брой колони) ;
- има наследяване в няколко посоки - структура, полета, обработка, оформление -
както и съдържане (поле може да е под-справка)
class SprPeople( SprDef):
class MyRow( Row):
_set_ = FieldContainer(
name = FldDef( type= Text, model= 'name.name',
view= FldView( label= 'Name', align= 'l', border= 'r')),
age = FldDef( type= Int, model= 'ageyears',
view= FldView( label= 'Age', align= 'r', border= 'r')),
city = FldDef( type= Text, model= 'address.city'),
suburb = FldDef( type= Text, model= 'address.suburb'), )
_calc_ = FieldContainer(
address = FldDef( type=Text,
data= lambda r: r.city +' '+ r.suburb),
view= FldView( label='Addresse', align='l', border='r')), )
-
dbcook
/ бд-готвач
~2007
language to describe "recipes" for persistency of group of python classes,
within their declarations. Independent of the database, hides it as much as
technicaly possible - so same recipe and queries can be rendered into SQL/Alchemy
(working), or others - RDFalchemy or google-datastore (todo). For big
class-hierarchies. Has bitemporal extension, aggregations, polymorphic
associations (for multiple inheritance), source-code-generator, etc. Even the
query filters can be represented as python expressions..
език за описание на "рецепти" за представяне на набор от питонски класове в база
данни, като част от декларацията им. Не зависи от базата, и я скрива колкото е
технически възможно - така че една и съща рецепта и заявки може да се претворят в
SQL/Alchemy (работи), или в друго - RDFalchemy или google-базата (някога). За
големи йерархии от класове. Има разширения за двувремеви данни, агрегиращи колони,
полиморфни асоциации (за множествено наследяване), генератор на код, и т.н. Даже
заявките може да се представят чрез питонски изрази..
class Employee( Base):
name = Text()
age = Int()
manager = Reference( 'Employee') #single
dept = Association.Link( 'Dept', attr= 'people', nullable= True) #many
@classmethod
def all_a25( kls):
return kls.query( lambda me: me.manager.name.starswith( 'a') | me.age == 25 )
-
static_type
~2003-2006
statically typed attributes and structures in python.
note-2024: When i announced it in 2004 in python mailing group, i was spit at and
torn into pieces - "if you need types, go use java". Fast forward 15-20 years.. python
annotations a.k.a. "type-hints" are everywhere, overgrown, obscuring normal code and
being abused as crutches for unskilled.. but they are just.. hints. Funny irony..
статични типове - атрибути и структури - в питон
забележка-2024: Когато ги представих през 2004 в питонската група, ме оплюха и
разпънаха - "като искаш типове, върви пиши на Джава". Прескачаме 15-20 години..
питонските анотации, ползвани като типови-подсказки, са навсякъде, разраснали се, чак
нормалния код не се вижда от тях, и се злоупотребяват за патерици за начинаещи.. а те
са си само.. подсказки. Ирония..
-
timed
/ овременен
~2007
bitemporal objects engine in python, with or without dbcook;
look forward to history-enabled attributes
машина за дву-времеви обекти на питон, с или без dbcook;
очаквайте атрибути с история
-
SQLAlchemyAggregator
~2006
automatic aggregating columns in SQLAlchemy / python
автоматични агрегиращи колони в SQLAlchemy / питон
-
svd_util
~2000-2022
useful python utilities (modules, classes, funcs, languages/frameworks, ..) made over the years
полезни питонски неща (модули, класове, функции, езици/структури, ..) правени през годините
- optz : simple !! options-getter (wrapping optparse or else)
- attr.py : additional python-reflection tools: - multilevel getattr, setattr, import, getitemer - local vs see-through-hierarchy getattr - fail-proof issubclass() - subclasses extractor
- eutf.py : guess utf or byte-encoding, and (on-the-fly) conversion, on text or files. python2 + python3
- facer.py : protocol/API declaration language. Methods, arguments, results - types, cardinality, optionality; inheritance, specialization, cloning. Use visitors to do/generate all else.
- expr.py : expression builder/visitor
- tracer.py : trace python execution (for expain/log)
- jgenerator.py : model-description "language" + dialects + generator of equivalent model in java + SAX + sqlite
- ui/ : language for dialog/form layout description (text, html, wx); mini-MVC-web-framework (~2003)
- vreme.py : Universal Calendar Time and Pediods arithmetics; physical, logical (next-working-day), inherit/compose, count, compare, overlap, cut
- recorder.py : recorder + re-player of object usage - method calls with their args
- config.py : hierarchical namespaced configuration language/engine, with types, helps, inheritance
-
and many others..
и много други..
-
the bin
~1991-2022
these are some various tools, scripts, settings, "languages"... for example
- qini: config and aliases to make shells and terminals/vim behave same -
- vcs+colorvcs: use + colorize bzr/svn/cvs/hg/git in same way;
- archiv: view and extract all sorts of archives;
- hyphbg: hyphenation in Bulgarian
and many others, more or less usable
това са разни инструментчета, скриптове, настройки, "езици"... например
- qini: настройки и псевдоними за всякакви конзоли и терминали/vim да се държат еднакво
- vcs/colorvcs: ползва и оцветява bzr/svn/cvs/hg/git по един и същ начин;
- archiv: разглежда и изважда всякакви архиви;
- hyphbg: сричкопренасяне на Български
и куп други, повече или по-малко полезни
-
cassowarypy
~2002
python wrapper over the Cassowary linear constraint solver + fixes
питонска огъвка на известния решател на системи линейни ограничения Cassowary (+поправки)
|
писалка върху тефтер | 2009
ballpen on a notebook | 2009
|
подредени топчета | 2009
ordered marbles | 2009
|
нова стара къща | Констанц 2004
new old house | Konstanz 2004
|
диаграма от Лего | 2008
diagram in Lego | 2008
|
лице в лице | ??
face to face | ??
|
шарени каски на строежа | Варна 2004
colorful helmets at building site | Varna 2004
цветные каски на стройке | Варна 2004
|
| |