Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2016-06-30

2,3 from 5: Functional Programming in Scala Specialization

Еще одна зарубка: сегодня закончил очередной курс.

Месяц назад на Курсере открылся новый сет:
Functional Programming in Scala Specialization
4 курса и финальный проект, на тему функционального программирования в целом и Scala в частности.

Первый и второй курс сета сделаны на основе старых
-- Functional Programming Principles in Scala
-- Principles of Reactive Programming

К сожалению, большая часть Principles of Reactive Programming в новый сет не вошла, только малая часть про монады, фьючеры и стримы/эвенты.
Но это не беда, я сохранил все материалы и, со временем, изучу их в подробностях.

Как бы то ни было, чтобы участвовать в пятой части сета, финальном проекте, надо успешно пройти четыре предварительных курса. Чем я и занялся.

На сегодняшний день пройдены 3 курса:
-- Functional Programming Principles in Scala (дайджест составлен)
-- Functional Program Design in Scala (дайджест будет)
-- Parallel programming (дайджест будет)

Это было непросто, за месяц пройти аж 3 курса. Только благодаря тому, что с первыми двумя я уже был знаком, удалось прорваться в финал и не порваться.

Теперь жду, когда начнут вещать четвертый курс: Big Data Analysis with Scala and Spark.
А чтобы время не терять, займусь дайджестами пройденного. Stay tuned.




original post http://vasnake.blogspot.com/2016/06/23-from-5-functional-programming-in.html

2016-06-25

Пироговское водохранилище, Марабу

Съездили сегодня на разведку, на Пироговское водохранилище, Ореховая бухта, в клуб Марабу.
Заценить, как-что-почем в плане виндсерфинга.

Широта 55°58′26″N (55.973891) Долгота 37°39′52″E (37.664384)
https://yandex.ru/maps/-/CVXNB059
https://goo.gl/MnturU


Впечатления

Последний километр дороги -- полный пиздей подвеске, ямы, бетонные плиты вкривь и вкось.
Есть место, где при хорошем дожде дорогу может подмыть, есть риск провала.
После шлагбаума -- грунтовка терпимого качества, пока сухо.
На шлагбауме могут потребовать 200 рублей. Местные говорят, что можно бесплатно, если
"я везу оборудование в Марабу, туда и сразу обратно".
Удобного выхода к воде нет, надо лазить по горе вверх-вниз. Есть лестницы.
Все заросло деревьями, кустами, развернуться негде.
Где вооружаться -- неясно, то ли на мостках, то ли в лесу.
Стартовать с мостков (и возвращаться) -- сомнительное удовольствие, скорее всего парус будет порван.
Хранилка: 5000 руб/мес, паруса не в контейнере а под навесом. WTF!
http://www.marabou.ru/part.php?prt=service
На воде довольно много народу всякого.

Плюсы? Недалеко от нерезиновой, большой водоем, нет комаров, рядом цивилизация: кафе, яхт-клуб, все дела.
Вменяемые цены на аренду оборудования.

Фоток не сделал, что там фотать... вот, в тырнетах нашлось




По поводу хранилки посоветовали обратиться к Александру
89166068025 Александр





original post http://vasnake.blogspot.com/2016/06/blog-post.html

2016-06-01

super, MRO

Python, всё, что вам надо знать про функцию 'super' и Method Resolution Order

цитата

The super built-in function was introduced way back in Python 2.2. The super function will return a proxy object that will delegate method calls to a parent or sibling class of type. If that was a little unclear, what it allows you to do is access inherited methods that have been overridden in a class
...

class MyParentClass(object):
    def __init__(self):
        pass
 
class SubClass(MyParentClass):
    def __init__(self):
        MyParentClass.__init__(self)

class SubClass(MyParentClass):
    def __init__(self):
        super(SubClass, self).__init__()

Python 3 simplified this a bit. Let’s take a look:
class MyParentClass():
    def __init__(self):
        pass
 
class SubClass(MyParentClass):
    def __init__(self):
        super()

...
super knows how to interpret the MRO and it stores this information in the following magic propertie: __thisclass__ and __self_class__. Let’s look at an example:
class Base():
    def __init__(self):
        s = super()
        print(s.__thisclass__)
        print(s.__self_class__)
        s.__init__()
 
class SubClass(Base):
    pass
 
sub = SubClass()
http://www.blog.pythonlibrary.org/2016/05/25/python-201-super/

И про MRO 

цитата

 Everything started with a post by Samuele Pedroni to the Python development mailing list. In his post, Samuele showed that the Python 2.2 method resolution order is not monotonic and he proposed to replace it with the C3 method resolution order. Guido agreed with his arguments and therefore now Python 2.3 uses C3. The C3 method itself has nothing to do with Python, since it was invented by people working on Dylan ...
 The list of the ancestors of a class C, including the class itself, ordered from the nearest ancestor to the furthest, is called the class precedence list or the linearization of C.
...
 The Method Resolution Order (MRO) is the set of rules that construct the linearization. In the Python literature, the idiom "the MRO of C" is also used as a synonymous for the linearization of the class C.
 ...
 A MRO is monotonic when the following is true: if C1 precedes C2 in the linearization of C, then C1 precedes C2 in the linearization of any subclass of C. Otherwise, the innocuous operation of deriving a new class could change the resolution order of methods, potentially introducing very subtle bugs.
 ...
 C3 MRO the linearization of C is the sum of C plus the merge of the linearizations of the parents and the list of the parents.
 L[C(B1 ... BN)] = C + merge(L[B1] ... L[BN], B1 ... BN)
 ...
 take the head of the first list, i.e L[B1][0]; if this head is not in the tail of any of the other lists, then add it to the linearization of C and remove it from the lists in the merge, otherwise look at the head of the next list and take it, if it is a good head. Then repeat the operation until all the class are removed or it is impossible to find good heads. In this case, it is impossible to construct the merge, Python 2.3 will refuse to create the class C and will raise an exception.
 ...
 Guido points out in his essay that the classic MRO is not so bad in practice, since one can typically avoids diamonds for classic classes. But all new style classes inherit from object, therefore diamonds are unavoidable and inconsistencies shows up in every multiple inheritance graph.

  https://www.python.org/download/releases/2.3/mro/




original post http://vasnake.blogspot.com/2016/06/super-mro.html

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Klaipeda (15) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) Baltic (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) seaside (1) serialization (1) shore (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)