Tag Results
22 posts tagged programming
22 posts tagged programming
Sounds like Path has a real prize of an exec in Van Horn. Seriously, why is that guy allowed to speak in public representing them? He’s a serial offender.
The writer unfortunately gets the Siri search for Planned Parenthood story 100% wrong, as did the original complainer. (The vast majority of Siri searches are algorithmic. It can only find Planned Parenthood under terms that PP chose to advertise itself with. It didn’t happen to choose those terms.)
The term I like to use for myself is “software engineer”. I think “programmer” is also a pretty awesome word. I am also completely okay with “geek” and with “roomful of geeks”. Those would be my people.
Now following this, which also includes examples of programmers being dicks and then fixing it, with excellent pull request comments like this one.
Though I did like the “I expected you to just CNAME this to Hacker News” comment.
Yesterday I migrated my project from jquery to Ender. Ender isn’t a library itself, but instead a tool for building javascript libraries from components. It offers something close to the jquery feature set at a much smaller size. If you don’t need everything that jquery does, or if you don’t need the massive backwards compatibility with broken browsers it gives you, ender might be a win.
I had the problem of making my client-side router (davis.js), my client-side templating, and some jquery plugins work.
First, davis.js. The minimal ender build for this needs events, selectors, a dom manipulator, and a dom ready check, aka their “jeesh” package:
ender build bonzo bean qwery domready
I encountered two minor problems. First, davis.js explicitly looks for jquery, not for anything pretending to be jquery in the infamous $. So before you construct your app, tell Davis to use the Ender $:
Davis.$ = $; var myapp = new Davis.App(); // etc
Second, Bean, the ender events library, doesn’t appear to stop the propagation of delegated events the way jquery does. So Davis needs to do so explicitly in its delegates:
var handler = function (targetExtractor) {
return function (event) {
if (differentOrigin(this)) return true
var request = new Davis.Request (targetExtractor.call(Davis.$(this)));
Davis.location.assign(request)
event.stopPropagation();
event.preventDefault();
return false;
};
};
Davis should now work.
That was the easy part of the migration. Far more annoying was migrating from jquery’s ajax api to reqwest’s.
Next, jquery plugins. Rewrite them. They were not invented by you, so they’re probably awful. Okay, that’s a little unrealistic for some things. If you’re using Bootstrap and its plugins, the ender rewrite will be handy. Note that I couldn’t make its meta-package work. I had to build a library with individual plugins one at a time using ender add.
The other thing I did was rewrite ICanHaz to use the faster mote.js instead of the default mustache javascript implementation, as well as to be agnostic about jquery, zepto, and ender. This isn’t enough code to deserve a github repo, so have it in a gist.
I released a simple node.js tool on npm earlier today. I was surprisingly nervous about it. I’ve been shipping software for a long time now, but always in the context of organizations that agree yes, it’s done, yes, it’s tested, yes, it’s worth using by other people. In this case I knew it was working well enough (it’s been quietly chugging inside my big project for a while now), but I wasn’t sure it was significant enough. Who the heck cares? Then I asked myself why I’d written it. Answer: because I went on npm looking for something suitable and found either things that were too complicated (solving a different problem) or simple enough but with notable bugs. Or even worse: with zero documentation. So what the hell. If one person can run off with my code and find it useful, that’s enough.
My beanstalkd client is probably more notable & useful for more people, but I’m not sure I’m happy with the job worker design yet. Must fiddle some more.
Actually, no. I’m going to go finish this user-facing feature instead. FOCUS.
Scratch that previous stack. Ember.js turned out to be heavyweight and confusing. At the moment I’m doing a spike implementation with spine.js and it’s looking far more like a winner despite the CoffeeScript.
In my free time I’m hunting around for deployment tools. Don’t have to solve that problem just yet, however.
Also, how large teams are poisonous to small projects.
To be filled out the next time you read an announcement of a new programming language.
You appear to be advocating a new: [ ] functional [ ] imperative [ ] object-oriented [ ] procedural [ ] stack-based [ ] "multi-paradigm" [ ] lazy [ ] eager [ ] statically-typed [ ] dynamically-typed [ ] pure [ ] impure [ ] non-hygienic [ ] visual [ ] beginner-friendly [ ] non-programmer-friendly [ ] completely incomprehensible programming language. Your language will not work. Here is why it will not work.
Mostly I’ve cared more about the personal essays from people who knew him or worked with him. (Two steps away from me, via General Magic coworkers, which was my first experience of working directly with legendary names, with people who’d made things I admired deeply. It was odd.) I liked this slideshow with brief quotes, however.
As a nerdling writing my first software on an Apple ][, Woz was more immediately inspirational than Jobs, but Jobs was the one who just kept on making things I loved.
Sophisticated trolling of the node.js community, which had satisfactory results.
To my mind, the argument against node.js isn’t the fanboys, and it sure isn’t the core concept. It’s Javascript.
Also remember: There is no silver bullet.
Noted for future investigation and use.
I have written one of these, as I suppose many of us have. Should take a look at this and see what I can learn about how it handles templates. Mine are code driven, but I haven’t found a way I’m satisfied with for declaring template data dependencies. I guess with Stasis’s controllers you could do things like poll a database for to see what’s changed, build a dirty list, then render the list (the way my hand-rolled engine does).
pushState() and popState() in use. I do hope IE manages to catch up with everybody else by the time I get this project out, because I’m using pushState() ruthlessly. This is how you avoid full page loads while also avoiding the hashbang problem. URLs are part of your user interaction design. They have to be readable and stable.
A wild and surprising Node.js project: a graphical rethinking of the venerable Unix shell. Check the essay about the author’s motivations.
Am mainlining an entirely new programming environment. Sites like this one help.
One. Install the homebrew package manager.
ruby -e “$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)”
Two. Use brew to install node.
brew install node
Three. Install npm, the node package manager.
curl http://npmjs.org/install.sh | sh
Observe that you are now cooking with gas, and it was easy.