Замечательная идея: отсоединить 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
Tools
Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.
2016-08-26
Decoupling
Posted by Valentin at 20:39 0 comments
Labels: python
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
original post http://vasnake.blogspot.com/2016/08/cartobonus.html
Posted by Valentin at 20:26 0 comments
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
Posted by Valentin at 23:49 0 comments
Labels: Book, programming, scala
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...
Posted by Valentin at 05:09 2 comments
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
original post http://vasnake.blogspot.com/2016/08/principles-of-reactive-programming-scala.html
Posted by Valentin at 03:25 0 comments
Labels: course, functional programming, scala
Подписаться на:
Сообщения (Atom)
Архив блога
Ярлыки
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)