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

2016-08-26

Decoupling

Замечательная идея: отсоединить I/O от конкретного протокола, скажем, HTTP.
Цитирую:

In a word: reusability. By implementing network protocols without any I/O and instead operating on bytes or text alone, libraries allow for reuse by other code regardless of their I/O decisions. In other words by leaving I/O out of the picture a network protocol library allows itself to be used by both synchronous and asynchronous I/O code. And by not simply abstracting out the I/O it allows users of the library to drive the network interactions themselves, not the network protocol library itself; not forcing I/O code to have to conform to a certain API provides the greatest flexibility for users of such low-level details such as network protocols. Working towards this unbinding of network protocols from I/O is very important as the Python community migrates from synchronous I/O code to using async/await for asynchronous I/O.

https://sans-io.readthedocs.io/

Не важно, как ты делаешь I/O, ты, главное, массив байтов или строку текста дай на вход и bob-your-uncle.



original post http://vasnake.blogspot.com/2016/08/decoupling.html

Cartobonus/Картобонус

Как сказал один умный человек, если хочешь сделать резервную копию для Х, выложи это Х в Интернет, пусть люди сами копируют.

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

Картобонус, проект, который не «выстрелил»:


Web map viewer, built on ArcGIS API for Silverlight.
Вместе с mapfeatureserver https://github.com/vasnake/mapfeatureserver
должен был образовать очень привлекательную комбинацию. Но, не судьба.

Информация по теме:

Когда стало понятно, что Silverlight должен умереть, мы начали пилить картобонус на JavaScript:
Кое-что сделать удалось: нормальную «легенду/TOC», репозиторий подключаемых слоев – базовые фишки картобонуса.

А потом кризис добрался и до нас. RIP, картобонус.





original post http://vasnake.blogspot.com/2016/08/cartobonus.html

2016-08-17

produce a random BigInt and convert it to base 36

В книжке Scala for the Impatient есть удивительная задачка:
produce a random BigInt and convert it to base 36,
yielding a string such as 'qsnvbevtomcj38o06kul' ...

Удивительна она не тем, что надо как-то сгенерить рандомный BigInt, или перевести его из base2 (or base10) в base36. Удивительна она тем, что масса народу дает неправильный (очевидно неправильный) ответ.
Просто загуглите и почитайте. Самый распространенный ответ:
BigInt.probablePrime(100, util.Random).toString(36)
Дурдом.

В задаче четко сказано: рандомный бигинт а не рандомный какбы прайм.
Что характерно, эта задачка дана сразу после главы, где разжевано, как пользоваться Scaladoc.
Мало того, в самой задачке сказано: Poke around Scaladoc to find a way...

Короче, внимательно поглядев на Scaladoc в раздел BigInt можно быстро найти правильный ответ:
BigInt(128, util.Random) toString 36


И эти люди пишут нам программы? Боже упаси.




original post http://vasnake.blogspot.com/2016/08/produce-random-bigint-and-convert-it-to.html

BerkeleyX: CS190.1x Scalable Machine Learning, digest

Курс
BerkeleyX: CS190.1x Scalable Machine Learning

и мои подробные конспекты

экстра

Пришла пора обновить память и скомпилять это все в дайджест.

Content

In this course, you will learn how to write and debug Python Spark (pySpark) programs in five weekly lab exercises

WEEK 0: Setup Course Software Environment
Topics: Step-by-step instructions for installing / using the course software environment, and submitting assignments to the course autograder.

WEEK 1: Course Overview and Introduction to Machine Learning
Topics: Course goals, Apache Spark overview, basic machine learning concepts, steps of typical supervised learning pipelines, linear algebra review, computational complexity / big O notation review.
Lab 1: NumPy, Linear Algebra, and Lambda Function Review.

WEEK 2: Introduction to Apache Spark
Topics: Big data and hardware trends, history of Apache Spark, Spark's Resilient Distributed Datasets (RDDs), transformations, and actions.
Lab 2: Learning Apache Spark. Perform your first course lab where you will learn about the Spark data model, transformations, and actions, and write a word counting program to count the words in all of Shakespeare's plays.

WEEK 3: Linear Regression and Distributed Machine Learning Principles
Topics: Linear regression formulation and closed-form solution, distributed machine learning principles (related to computation, storage, and communication), gradient descent, quadratic features, grid search.
Lab 3: Millionsong Regression Pipeline. Develop an end-to-end linear regression pipeline to predict the release year of a song given a set of audio features. You will implement a gradient descent solver for linear regression, use Spark's machine Learning library ( mllib) to train additional models, tune models via grid search, improve accuracy using quadratic features, and visualize various intermediate results to build intuition.

WEEK 4: Logistic Regression and Click-through Rate Prediction
Topics: Online advertising, linear classification, logistic regression, working with probabilistic predictions, categorical data and one-hot-encoding, feature hashing for dimensionality reduction.
Lab 4: Click-through Rate Prediction Pipeline. Construct a logistic regression pipeline to predict click-through rate using data from a recent Kaggle competition. You will extract numerical features from the raw categorical data using one-hot-encoding, reduce the dimensionality of these features via hashing, train logistic regression models using mllib, tune hyperparameter via grid search, and interpret probabilistic predictions via a ROC plot.

WEEK 5: Principal Component Analysis and Neuroimaging
Topics: Introduction to neuroscience and neuroimaging data, exploratory data analysis, principal component analysis (PCA) formulations and solution, distributed PCA.
Lab 5: Neuroimaging Analysis via PCA - Identify patterns of brain activity in larval zebrafish. You will work with time-varying images (generated using a technique called light-sheet microscopy) that capture a zebrafish's neural activity as it is presented with a moving visual pattern. After implementing distributed PCA from scratch and gaining intuition by working with synthetic data, you will use PCA to identify distinct patterns across the zebrafish brain that are induced by different types of stimuli.

Digest...

2016-08-11

Machine Learning (Andrew Ng, Coursera, Stanford)

В далеком 2014 году я открыл для себя новое измерение: возможность учиться у лучших.
Все, что нужно, это компьютер, интернет и знание английского языка.

Первый курс, который я прошел (с отличием!), назывался
Machine Learning
читал его Andrew Ng
на платформе Coursera, Stanford

Вот тут есть подробное изложение изученного:

Сегодня, с целью взбодрить память, я скомпилял типа дайджест курса.
Енджой.



Week 1
    Introduction
    Linear Regression with One Variable
    (Optional) Linear Algebra Review
Week 2
    Linear Regression with Multiple Variables
    Octave Tutorial
Week 3
    Logistic Regression
    Regularization
Week 4
    Neural Networks: Representation
Week 5
    Neural Networks: Learning
Week 6
    Advice for Applying Machine Learning
    Machine Learning System Design
Week 7
    Support Vector Machines (SVMs)
Week 8
    Clustering
    Dimensionality Reduction
Week 9
    Anomaly Detection
    Recommender Systems
Week 10
    Large-Scale Machine Learning
    Example of an application of machine learning

2016-08-04

Principles of Reactive Programming (Scala)

И снова про Reactive Programming.
На Курсере был такой курс «Principles of Reactive Programming». К сожалению – был. Больше нет.
К большому сожалению, ибо материал там убойный, на базе Scala.

Старые курсы они перетряхнули, получилось
но от реактивности там ничего не осталось. Зато параллельность появилась, тоже неплохо.

Но не все потеряно: я сохранил все видеолекции



а также все задачки-assignments, вместе с сопроводительной документацией
равно как и сниппеты кода, приводимые на лекциях.

И сегодня (вернее, вчера) я этот курс закончил: закодил решение последней задачки:
replicated KV store на акторах Akka.

Круто!

Кто хочет одолеть реактивное программирование на Scala – велкам, смотрите лекции, решайте задачки.






original post http://vasnake.blogspot.com/2016/08/principles-of-reactive-programming-scala.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) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) 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) Klaipeda (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) купи/продай (9) Photo (8) 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) 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) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)