Hacker Newsnew | comments | show | ask | jobs | submit | paufernandez's comments login

I saw a video in Spanish of Obijuan installing stuff with apt-get after some configuration, so you can install Ubuntu packages. He showed python.

-----


The Force is strong in that one.

-----


La Fuerza es fuerte en él.

-----


The force is strong in this Juan.

-----


What about the other guy?

-----


Good question! He switched to vim due to RSI I believe.

Conclusion: neither is better. I think.

-----


And you switched to emacs due to RMS ;)

Jokes aside, during the 1 or 2 weeks that I forced myself to use emacs (a few years back), I felt that I would get RSI because of the painful default keybindings. Of course, I didn't know of evil back then, so I returned back to using vim.

-----


Map caps lock to control and it gets a lot better.

-----


Or use god mode!

-----


Nice! This is the first time I've seen the dependency graph implemented in e-learning! Actually I started a programming site in spanish a while ago with the same idea (there is a dependency graph underlying the content). If you are curious: http://www.minidosis.org.

-----


Doesn't the Khan Academy use dependency graphs? I had some fu Ngoing through highschool calculus on their site. Raking in the achievements and unlocking next lessons.

-----


I cannot even tolerate rain... I need noise: http://simplynoise.com/

-----


"... and you ask, and you can find out, and you can follow it up, and you can do it in you own home, at your own speed, in your own direction, on your own time. Then everyone would enjoy learning..."

-----


'npm' is covered by the Go tools themselves. You can import packages using their github/bitbucket/code.google.com URL.

-----


That is really interesting. Thanks for pointing that out. Can you specify specific version dependencies like you do with a full-blown package manager?

-----


After 'go get'ing the package, you can use git/hg/bzr to checkout the specific version you want. From there, all of the Go build tools will work as normal.

-----


I don't think so, but I could be mistaken. (btw, someone pointed that out as a drawback on another thread.)

What I've done sometimes is just clone the repo within a directory that appears in the GOPATH, maybe checkout a specific revision, and that solves the problem.

-----


As we are commenting here, the community is assembling by the minute... Go allows you to import "github.com/user/package" and will download and compile the code, so creating a new project is even easier than with node, no need to "npm install ..." first.

For a taste of what's out there, see: http://go.pkgdoc.org/index.

-----


The GitHub thing was neat the first time I saw it, but then I thought about it some more, and I'm not sure it's such a good idea.

I couldn't find any way to specify a specific tag or revision, so it's basically always getting the bleeding edge developer build of the library code. That might be nice in some situations, but for getting work done I almost always want the most recent stable release.

Am I missing something?

-----


I hit this a while ago. The first thing I tried to install failed, because it depended on something that depended on something that moved its repository location (renamed itself from foo.go to foo).

It's a convenient hack but nothing more.

-----


if the repository owners tags a commit with the tag Go1, it is used by Go. If there is no tag to specify which commit, the tip of master is used. In practice, most maintainers just keep master clean and do all development in a dev branch.

-----


If I wanted a specific tag or release, I would just download that revision in the GOPATH directories, and refer to the package directly, instead of through the github URL.

-----


Kind of a clunky way to handle versioning though. In Lein (for example), adding

    [noir "1.2.0"]
ensures I'm always grabbing the same version. In Go, appears the only way to guarantee this is to check in the full source of the library alongside your own in your repo.

-----


I wish Leiningen would also handle bleeding edge dependencies as easily as rebar eg:

    {deps, [
      {quoted, "1.0.3",
        {git, "git://git.corp.smarkets.com/quoted.erl.git", {tag, "1.0.3"}}},
      {proper, ".*",
        {git, "git://git.corp.smarkets.com/proper.git", {branch, "master"}}}
    ]}.

-----


This plugin[1] looks like what you're looking for.

[1] https://github.com/tobyhede/lein-git-deps

-----


"You will also need to manually add the checked-out project's dependencies as your own (the plugin simply checks out the code, it doesn't recursively resolve dependencies)."

I've seen this plugin before but its not particularly useful without dependency checking. It's a start though. I'll have to look at leiningen to see if it exposes hooks for that sort of thing.

-----


I also consider it a huge plus that Go produces a single, statically linked native binary. No fiddling around with directories of libraries and search paths required.

-----


npm is awesome, this direct import doesn't seem like a feature, more like a lack of a feature.

-----


It works very well for me. If I want someone to install a Go program I've developed, in Ubuntu 12.04 they can just:

  $ sudo apt-get install golang
  $ go get github.com/pauek/garzon/grz
That's it, and it takes a few seconds.

-----


That's great to quickly show someone a program, but not so great if they try it a few weeks later and get a non-stable version of your program, otherwise that definitely won't be it, they'll have to spend some time figuring out what went wrong.

If Go adds some method to specify a tagged version that could be pretty nice though.

I hope it goes without saying that there's no way this kind of hack (neat as it is) is a substitute for a proper package management system like npm (which is a very good package manager).

-----


This is a nifty feature and npm can do something very similar:

    npm install git://github.com/substack/node-optimist.git

-----


How's that any faster than

  npm install express
Not only do npm handle versioning for you, you also don't have to remember the host or username. Obviously Go is a younger community, and could make a package manager some day, but I'm puzzled by how you're comparing this positively with npm.

-----


It is faster because you don't have to install npm, the case I was explaining involves someone with no developing skills.

And I'm not saying this feature of Go is better than npm, I also use npm and I like it very much. What I like is the fact that Go comes already with this feature and I don't need anything extra.

-----


I believe that npm is now included as part of all node distributions.

-----


Oh I get it, you're talking about from a package developer's standpoint. Not having to register your package with a central directory does save a bit of time for you I guess.

But when installing packages, I have to say, npm is fantastic.

-----


You don't have to do this with npm either. You can provide a URL to a tarball or a git repository and npm will install from there.

-----


And npm ships with node, so this is no different.

Furthermore npm can install git URLs directly too, including tags and branches if you need a particular one. Just specify the url as the "version" in your dependencies section of package.json. Totally trivial.

-----


Thanks, I had the same idea!

-----


One thing I noticed: the audio volume on the tutorial is way too low... pump it up a little.

Cheers.

-----


Can you add Go please?

-----

More

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: