Just finished my first 10,000 km ride from Sikkim to Kathmandu to Uttarakhand, Himachal, Kashmir, Zanskar, Ladakh, etc.
It is cheaper, but sometimes a bit tough, when you have to cross a cold stream a half of meter deep..)
1,198 karma · joined September 1, 2012
schiptsov at gmail or facebook
I am looking for employment in Sweden with relocation only.
Will do UNIX sysadmin's and DBA's tasks and/or code CL/Erlang/Haskell/Clojure/Scala/Python/Go for food.)
Just finished my first 10,000 km ride from Sikkim to Kathmandu to Uttarakhand, Himachal, Kashmir, Zanskar, Ladakh, etc.
It is cheaper, but sometimes a bit tough, when you have to cross a cold stream a half of meter deep..)
Really smart guys, however, are trying to leverage old-school languages, to climb on the shoulders of Titans.
David Moon created the PLOT language that leverages Lisps http://users.rcn.com/david-moon/PLOT3/ , Rich Hickey did almost the same with Clojure. Scala has been a leverage of Standard ML, similar to Ocaml. Now Swift is trying to distillate Scala, at least in terms of standard idioms and syntax choices. Julia has been build upon the big ideas from CLOS.
Python incorporated lots of good ideas and bits of syntax and managed to balance the syntax and unify semantics and since 3.5+ earned reputation of a well-designed language (clear, balanced, complementing each other semantics from the Lisp world, and carefully chosen syntax). It is also famous for its culture.
So, for those who wish to change the world by developing a new language, it might be a good idea to look at Standard ML and its derivatives and try to relax some constraints and balance the syntax according to modern conventions.
I personally would prefer to start from David Moon's PLOT3 and, perhaps, try to marry it with some lightweight type-system based with optional annotations.
Btw, Haskell's choice of not mixing type information and function definitions and use annotations with its own DSL for types is a really big idea. It reduces cognitive load, makes code extremely readable, and in general, it seems, the best of both worlds. Python's optional type annotations are clever, but less elegant.
We think that there are solids and atoms - grains of matter - basic building blocks. This model corresponds to what our sense organs give us. It is hard to convince oneself that there is no matter at all, only energy and our perception grossly zoomed out of what is really going on.
Matter is an appearance to perception. A wrong model due to limitation of the sensory system. There is no matter when there is no observer, only states of energy, or fields, which is a better concept, but still mere concept. We could say that atoms are "stable" fields, but it is much better to do not apply "human" predicates to the nature.
Particles is a good-enough model, which allowed us to sequence a genome or build a CPU, but it is only a crude model nevertheless.
The time I have spent doing things like
apt-get remove unity* libqt5*
to rip off all the bloatware and reduce everything back to just gdm + gnome-shell + gnome-terminal + emacs-gtk3 + chrome with pdf viewer + hangouts is comparable with bootstrapping all this from FreeBSD ports (unfortunately without hangouts).Notice, by the way, how easy and intuitive plain text configs done right are.
Each time I see systemd processes in some ps output I feel nothing but despair and disgust.
The problem with AI is that one need enormous money and resources of a big corporation to produce results one could see on AI competitions. It their "research" they do progress, like everyone else, by trial and error (well, augmented with a decent heuristic search process) and the more people and hardware resources they could put in it, the more chances they will outperform other teams. It is resources, not "smartness".
I have completed the very first AI MOOC by Andrew Ng years ago - 780 out of 800 or something. The only difficulty is that it combines methods from math and programming, so one need to have some background to really understand hows and whys. Also really decent knowledge of English is required, otherwise one might miss the nuances in a very dense, loaded with terminology lectures, so, the entry level is quite high (of course, one could always copy-paste code without understanding and use ready-made toolkits and tutorials).
Apart from that it is nothing special. Basically, it is a function composition, with linear algebra and some numerical optimizations. When you have understood the basic building blocks - mathematical functions, processes and algorithms involved, there is nothing much else to do - one has to apply the theoretical knowledge which is, again, not a big deal, to real problems, and this is where big corps with resources took the advantage.
As long as you manage to get inside one of bigcorp AI lab, you become a star, simply because of the well funded PR machine of the corp. Everything that comes out is super cool, of course, so even being mentioned in the context makes one super cool too.
In my opinion, the guys from upper middle class families, who went through a decent technical school (with mom and dad's money) which taught them the basis needed for entering AI, are not that special. I probably could beat one or two of such snobs, having no high school education at all, never studied English or programming in a school and being raised in an impoverished family, but this is another story.
As for ML, take Andrew Ng's course, it is pretty accessible, and then take the one on the Udacity (with all these arrogant hot shots) and realize that there is really no magic in it. It is not that hard.
When you see a cool paper or video about some "breakthroughs" it ML, take into account that it is mostly due to resources spent on it, not some kind of extraordinary genius of the authors of the paper. Remember, all they do is basically a heuristic search and constraint satisfaction problems - train, test, change function (layer) composition (usually, without real understanding of whys), re-train, re-test. The problem is that there are very few of such slots in megacorps.
The guys like Andrew Ng himself are, of course, the real stars. But this kind of success comes from years of rigorous training similar to what Olympic champions have undergo. I personally don't think I have such ambitions or wish to embrace such lifestyle.
A thin layer of encryption over cloud storages is a clever idea! And this is exactly how tech entrepreneurship should be - even if the project would fail due to non-technical reasons, the technology being developed could be reused and sold.
"Lifestyle startup" meme is crap.
It is a fast-food way of building software - cheapest processed shit wrapped in a good SEO and naive user experience (quick and rewarding installation and effortless bootstrapping of a meaningless hello-world - I am so clever meme).
What matters in software in the long run, be it an application or even a programming language, is appropriate design decisions and strong emphasis on design around protocols (by duck-typed interfaces), using declarative (instead of imperative) mostly-functioal paradigm, bottom-up process with focus on modularity and code reuse, while sticking to the standard idioms and principle of less astonishment. This is what is still being taught at MIT, and this is how the internet works as a whole.
99% of Node or PHP code is a toxic amateurish crap, precisely due to ignorant over-confidence of the coders and lacking of proper CS education about right principles and programming paradigms, importance of louse coupling and proper encapsulation, which leads to modular, share-nothing, mostly functional designs with emphasis on immutability and persistence (that's why Clojure is so good - it has been, like Erlang, well-researched with tons of good stuff borrowed form Common Lisp).
Erlang or Haskell or Scala or Swift or Golang are on another side of the spectrum, which could be characterized by discipline of sticking to the right principles and rigorous attention to details (of which Haskell might be a bit too strict, but Erlang or Scala just right).
BTW, these observations about the impact of a proper design, based on right principles, which have been made almost 20 years ago still holds - http://norvig.com/java-lisp.html Today we could state the same for Python3.5+, which, finally, evolved to be so carefully refined as old school Lisps, but emphasizing that Python3 is a prototyping language, while CL is both prototyping and implementation language.
No sane person should even touch PHP or Javascript or any other crap with implicit coercions, error supressions, etc, designed by amateurs (hello, MySQL, Mongo, Hadoop!) like one avoid chap processed junk food or drugs.
It is also nice to have a CL package, which makes porting of relatively easy.
And FemtoLisp is a beautiful thing, of course.
Courses by Brian Harvey, Dan Grossman or Gregor Kiczales are real ones, while the crap could see on youtube, like Google's Python Course, is a disappointing waste of time.
Courses by Peter Norvig on Udacity are the gold standard.
Do not over-estimate your abilities. Good tutoring is hard. Just narrating copy-pasted stuff from the internet does not count as a course.
Same goes for books. On ought to grow up and become an expert first.
Books ought to be written by experts and talents. Just think of the likes of SICP, OnLisp, AIMA or PAIP compared to some Java for Dummies crap.
I wouldn't even start about fiction and guys like Nabokov, Wilde or Orwell.
"The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence". (Who said Java?)
The same notion is related to the concert of "the beginner's mind" popularized by D. T. Suzuki and S. Jobs. Packers call it "thinking out of the box". J. Krishnamurti call it 'freedom from the "known"' (people call all kinds of nonsense "knowledge").
Children learn so quickly and efficiently because they are not habitually pattern matching against personal experiences, cultural conditioning and popular memes - the way most adults do, but are still building the map of the world out of so called primordial awareness, or the Buddha Nature.
But "the map is not the territory".
And finally - “Trust those who seek the truth but doubt those who say they have found it.”
The message was that traditional (evolved according to local food sources and seasons) unprocessed foods of Asian tribes is the most natural and healthy. Economic and habitat selection pressures implicitly works the same way as machine learning, for hundreds of years.
Visit any rural area and try simple folk's foods. They will be way healthier that any processed crap. The similar patterns could be notices really quickly.
Another principal design decision, which complements share-nothing architecture, is a pure functional language with single "assignment". This greatly simplified runtime and VM itself which leads to more controlled and predictable behavior, suitable for soft-realtime systems.
The concept of drivers is another one, but it is irrelevant to this discussion.
Immutability gives simplifies everything including incremental, parallel GC and hence reduces the pauses for GC.
This is the big idea behind Clojure and Datomic - immutability makes everything simple (less complex runtimes) and even more scalable (share nothing means no locks, mutexes, busy waiting) and in the case of Erlang - fault tolerant (strong process isolation - no threads with shared stack or any writable data).
What is funny - everything has been well-researched and right principles formulated by Erlang team decades ago, and the resulting product just works for telecoms.
The two fundamental principles they described are 1) Posix threads and fault tolerance does not match. 2) Imperative code and GC does not match. While Golang, Lua or PyPy are trying really hard to disprove the second principle, Java is an existential proof.
This happens only with piles of Java crap (gigabytes of jars). With [mostly] functional Erlang, Common Lisp, Haskell everything is fine.
But the immune system probably gets reorganized and refreshed.
Also this idea is a hundreds years old, and has been known even by ancient Chinese.
This is, probably, is the treatment for Castro and others. If one has no serious chronic diseases it will do.
Such practices are plainly stupid and based on misconception and uneducated common sense and primitive memes. Every serious professional athlete will tell you that too much stress and pressure will dramatically diminish one's performance and health instead of making one "stronger". Relaxed self-control, proper habits and just enough of exercises will do.
Any highly such competitive and stressful societies of assholes and jerks characterized by high turnaround, very short lifespan for participants, high injury and mortality rates, and hence adaptations, such as earlier reproductive age, smaller body sized, quicker but lower quality development, etc. It is just biology.
The "machinery" probably has notions of a thing, a process, and an attribute, because it reflects characteristics of shared physical environment and every human language has nouns, verbs and adjectives. There are also notions of time and space, due to serialized input of sense organs and self-centered nature of our perception.
Evolved, highly-specialized machinery of the brain's specialized areas reflects major characteristics of the shared environment available to it through the sense organs. There is nothing more than that. No other "knowledge".
Human (and any other) brain has been shaped by evolutionary forces according to constrains and features of the shared environment (gravitation, light, sound, day/night changes, climate, etc) and has evolved machinery to pick up any language from the shared social environment. So-called hard-wired "knowledge" is just a structure of neurons in specialized areas of the brain, shaped by evolution (selection on random mutations) which reflects the environment.