I learned how to solve some of my type-related puzzlement by redefining stuff as "undefined" and using HDevTools to see what type gets inferred.
Also I can't wait to see what wild stuff people will come up with using the typechecker plugin API
224 karma · joined December 17, 2013
I learned how to solve some of my type-related puzzlement by redefining stuff as "undefined" and using HDevTools to see what type gets inferred.
Also I can't wait to see what wild stuff people will come up with using the typechecker plugin API
I just ported all my stuff to Neovim earlier this week and everything works out of the box. I just had to cp everything vim to nvim (.vim -> .nvim, .vimrc -> .nvimrc, etc).
Unfortunately there are no immediate benefits, but I agree with Neovim's long-term goals, so I suppose I'l be there when we get async plugins written in Lua.
Most typing implements these days are among those despicable types:
1) touchscreen virtual keyboards
2) race-to-the-bottom cheap mass-produced rubber dome cap
3) gaming keyboards, which are less race-to-the-bottom-ish but sin by abuse of bells, whistles and gongs
4) laptop keyboards optimized for looks
Some attention to the proper form of the best computer input peripheral ever invented is definitely welcome.
I can't wait for the API docs and sources to be released.
Tweets and videos are lousy at conveying information : )
What platforms are targetted? Out of, say, iOS, Android, Linux/X11 desktop, Windows desktop, WinRT, OSX?
1) if I understood correctly, the design of Angular has some inherent, and rather large, performance hits.
2) Google isn't dogfooding Angular save for one project. Facebook seem pretty serious about doing all new developement in React.
3) the specific kind of developement they're doing is similar to the one I have to do right now, viz. taking an established mostly static page and adding bits of highly interactive and dynamic behavior here and there. Google used Angular to reimplement the app from scratch. I can't afford that.
4) Angular, at what will probably the top of its popularity right now, just broke all interfaces and syntax and everything during the passage to 2.0, for reasons that were never fully explained (to me at least). Facebook won't be able to do that without breaking the proportionally large investment they had so far with React.js and incurring significant costs, which is nice and stable and comfortable. If the benefit/cost ratio of React 2.0 (or 1.0, I guess) is acceptable for Facebook, then it will probably be acceptable for me, too.
5) React interacts nicely with their Flow typechecker, which I think is, uh, the safest vector, right now, to foster the adoption of algebraic typing in the mainstream of programming. I won't typecheck my JS before the summer, probably, but still, this is philosophically fun.
Obama announces nuclear India on landmark breakthrough trip
India breakthrough nuclear trip on landmark Obama announce
PHP is still hugely popular, and much better than it was in 2009, and still getting better, ever so slowly. Arguably because of the beauty of Rails.
Depending on one's definition of "enterprise", Java is slowly become less enterprise, pulled towards to cool side of the Force by Clojure and Scala.
And I'l go out on a limb and say that the evolution of front-end technologies, and the popularity of REST interfaces makes the current web friendlier towards wacky multi-language setups, hence friendlier towards wacky languages.
You see people suggesting stuff like using a compiled lang as the REST server for a front-end JS app using a Node.js instance to do server-side rendering.
But no.
The conclusion remains: it's totally legit to start new projects in PHP these days.
I don't know how to feel about the use of template Haskell in this lib (beyond the fact that it seems like it works great and avoids the curse of the weird error messages). I'm tempted to see it as a proof that, while deconstructive pattern matching is great (I really mean it!), it's nearly impossible to get rid of antediluvian dot accessor syntax/semantics.
Either way I'm too tired and incompetent with Haskell to have a meaningful opinion on that.
Time to fight for remoting rights.
I took a certain pleasure in the opposite recently, by writing on a few simple .html files on an Apache server with headers in <h\d> and content in either <p> or <ul>
One of my main problem is that there is a huge bagage of material wealth and social status attached to those jobs that look, to me, right now, completely useless.
By tying that to the job itself, it makes it hard to assess the value of the work accomplished, independently of the fact that said job is stable and well-paid.
Hence,
It pisses me off when politicians announce not that some shit got done, but that jobs were created.
It pisses me off that the goal of working seems to be shifting from solving a problem to getting paid for it.
I'm young and stupid and idealistic and I'm angry with the world.
It'l probably pass ; )
For example: people need to eat, and they do that much eating at the McD's, and this costs that many socio-dollars, and then eat that many TV dinners, and do that much cooking, with an estimation in socio-dollars of how much time it takes to cook vs. how much to stop by the McD's to grab a burger.
And, let me get controversial: what was the evolution of that global cost as the traditional, implicit people responsible for cooking (women) started working full-time, too.
See, that wave of feminism represents a moment where the distribution of labour, and the shape of it, changed rather dramatically. It's hard to get a decent outlook on the economic effect of that event, which makes it hard to devise some form of public policy that would, at the same time, help our society solve the problems that probably appeared as a result, and to help society make the most of this new workforce.
My wet econodream is that we realize that we collectively spend an absurd amount of cold, hard cash on feeding ourselves, and that we'd save that much cold, hard cash by having a bunch of government-owned "restaurants" simply giving away (within some reasonable limit) good but ruthlessly efficient (in terms of labour, value of basic ingredients, nutricious value, taste, and even general convenience) meals to, like, anyone, at any time.
But we can't take any halfway decent decision at all without data. Which we don't have.
Although it appears that it might be happening.
Slatestarcodex found that database of cost-effectiveness of various public health measures, illnesses and drugs, measured in some acronym that looks seductively close to the philosophical definition of "utility"
See, the current assumption (or rather, the assumption that socially still stands but that is already shaken by the current lifespan augmentation) is that once a child is an adult, it won't be long before they will eventually see their parents either die (before modern medicine) or retire (the current paradigm), and have to replace them.
They will get hired fast, to get enough experience with their notional parents while those are still in the workforce, and then quickly be needed in a full-time, important gig.
It's also worth mentioning that the society, right now, is built on the idea that full-time stable jobs are widely available, on one hand, and a strict necessity for anyone to reach any kind of reasonable level of material comfort, social adjustment and general happiness. When not the only way to get basic human dignity.
That assumption is old as balls, and it's hard to see it surviving the current state of technology and medicine, let alone what's about to come.
So what will probably happen is that we'l keep telling people that working 40 hours a week in a job you had for the last, like, 5 years, is a basic necessity, yet that it's nearly impossible to get 'em, because old people are a) living forever b) holding on to those jobs because they're a strict requirement c) creating machines that do other people's 40hrs/week jobs.
So yeah, now that stable, full-time work has been overloaded with all that junk, the conditions that make this paradigm possible have to be saved whenever they're menaced. Sometimes I wonder whether I'm the only one here who thinks that the point of working is to make the world around me a better place, rather than a way to reach some kind of social status and incidentally keeping a relatively helpful system up and running.
With those prospects of limitless healthly lifespans, those limits would look like either
- capping the timespan people are allowed to work, so that they can't hog those precious, limited 40hrs/week stable jobs that young folks need to get some kind of implicit economic citizenship
- creating demand for those, by doing the old sorta-Keynesian thing and just creating jobs. This has worked great in the past, 'cause those jobs looked like building the Golden Gate, the Hoover dam, nailing down the basics of nuclear physics, getting jet engines to work, and then sending people on the freaking moon. But now it looks more like working as under-trained wannabe-SWAT police teams raiding teen's bedrooms for small-time weed deals, building the like five thousandth M1-A1 the USArmy doesn't need, and stuff like that.
My ideal, which I can't even seriously hold as I watch how most governments deal with their respective economic crises, is to strip that socioeconomic status away from stable employment.
I picture guaranteed basic income as the very first economic stepping stone of that project. See, I would gladly accept a basic living wage to stay home, cook for my family, take care of the house, and whatever, while dedicating exactly all, and not one second more, of my daily intellectually productive work timespan to something relevant, I don't know what. I think that, all things considered, I'd be more productive at my programming job working 3 hours per day than my current 8-ish.
But this is an socioeconomic rant I need to refine and turn into a set of attainable political measures, and then get off my butt and militate for them.
That tail call elimination, agressive inlining, escape analysis, continuation passing style, are saying a lot about the boundary between blocks in Algol-style languages, on one hand, and functions in LISP and ML derivatives, on the other hand.
I've seen someone in a Quora thread state that monads are just like semicolon - newline, which, beyond the witticism, says that (most) monads do sequential code, which is the point of blocks (defined by statements separated by semicolons, and semantically executed sequentially, and to make that block an atomic... Thing)
Now yeah. Where am I getting to?
I'm not sure.
The point for functional programming is composability, which is obtained in many philosophically and technically different ways, but since those distinctions, naively implemented, make call stacks explode and garbage collectors cry in agony.
TCO aims to find functions that can be seen as a block of statements that set n different variables, block which is then iterated a set number of times with different values of those variables
Escape analysis aims to find functions that take an argument A and return a value R where R can be substituted for A in the caller's, uh, memory. Such a function is equivalent to a block that simply sets a variable that is in scope.
(state-ish) monads aim to allow the sequential and atomic execution of functions that are related in a way that's hard to fit into the "pipes" model, typically by passing around a data structure representing the state those functions "live in". That data structure is roughly equivalent to the scope in block-structure languages.
CPS means, more or less, that the stack is a great way to deal with tree-like expression evaluations, but that some control flow is hard to fit in a tree, or that it's a waste of tree space to do so.
It seems like a lot of those techniques' goal is to offer, at the same time, the composability of functions, and the performance of blocks.
Just ask Scott Adams if he would have wanted his father to live "well beyond 120".
Some text patterns (like, say, grep going through minified JS) make my monitor emit a weird noise I was having all the trouble in the world believing.
Now I know this tone actually exists
But while fun it was pretty much useless because recursive descents and combinators are so much easier.