Where did Heroku's interactive architecture diagram go? - heroku

Heroku used to have an interactive diagram on their home site which discussed the platform's architecture. I can't seem to find it anywhere - is it gone forever?

I don't have enough points to write a comment yet but heroku took down a lot of those docs after the rap genius post about a year ago. The diagram you are describing sounds like one of those most likely taken down. Here is the rap genius post: http://news.rapgenius.com/James-somers-herokus-ugly-secret-annotated

Related

Machine Learning with Google Data

A couple years ago I saw a fantastic presentation on machine learning based on using Google as the data source. The idea was to leverage Google and Ruby to get more people involved in the concepts of machine learning since massive amounts of data are now readily accessible. For the life of me I have not been able to find this presentation. I realize that this wouldn't normally be a very good format to ask this question, however the content was so valuable and well presented that I felt we would all be enriched by having another pointer to this information.
Although I realize this is somewhat vague, Can anyone refer us to this original video presentation?
If not, could you share some useful links that would get one started down this road of machine learning leveraging massive data sources that now exist and are generally available?
As was noted in the comments the link is: Intuition & Data-Driven Machine Learning
He particularly piqued my interest with this quote: "... in certain cases, you are simply better off working on getting more data, then spending your time on improving the algorithm..."
Excellent presentation and presenter (Ilya Grigorik)! Highly recommended for anyone wanting to start down the path of machine learning.

Collaborative Ruby resources for novices

I am very much a Ruby newb - hoping to migrate to Ruby on Rails (although I have walked through Mike Hartl's Tutorial, which was excellent). I just want to solidify my Ruby knowledge first.
I am working on a hobby Ruby project to help me learn. I am pretty happy with how far I have got so far, but wanted to discuss/share it with other like-minded novice/beginner programmers.
Can anyone point me to a 'community' that promotes collaboration, critisim and discussion on code (ideally Ruby, obvs)?
If such a community doesn't exist, does anyone have any advice on how to find other like-minded programmers working on small-scale scripts/programs?
I have an account on Github, and on here (obviously!). Whilst Github is great for navigating around, cloning and looking at people's code, I don't feel anywhere near the level where I can start to actually contribute to anything and likewise request people look at my code. Maybe I am just being a wuss and I should just jump in the deep end? Perhaps I am not using GitHub correctly as a 'social network'.
Also, from what I can see, StackOverflow is not the place to send out 'Hey, check this out and let me know what you think' type requests either.
Not meant to be a discussion - just whether anyone knows if such 'networks' exist.
It depends on where you're located, but hacknights (Ruby or otherwise) are probably up your alley. There are different flavors (Are you solving a stated problem? Working on something general?) but usually you can work with others in a collaborative and low-stakes environment. I'd suggest searching for "hacknight" in your area and look at any past or upcoming nights.
As an example, see http://www.meetup.com/torontoruby/events/53887372/
RailsCasts - very interesting project for knowing ruby-technologies.
Also you can going to software-company and start working, and you get criticism, discussions and collaboration :)

Does anyone know what one would do to participate in a cloud community?

I've been looking at the plaintive entreaties for participation on cloud.com and eucalyptus.com
I have read much of their documentation and looked at cloud.com's videos, the introductory video on cloud.com in particular is a fine example of someone saying nothing for four minutes while reassuring you that what he's talking about is "cool".
I've played a bit of Call of Cthulhu in my time and am wary of getting involved with cults trying to invoke elder gods through bizarre rituals. When communities are so cagey, vague and inconclusive about what it is they do I have to wonder...
What the hell would one do in contributing to these communities? What benefit does contributing confer apart from being able to play buzzword bingo on your resume?
For context sake. I am asking this because an outsource developer we are using is getting involved with amazon ec2 stuff and we've been having a look at those services. So that I can understand how all this whizz-bang IaaS stuff works I'd like to poke about in one but I'm not paying to do so out of my own pocket and, frankly, no one in our office fully understands how this all works and the venture is unlikely to attract budget until someone with the company credit card "gets" it. Usually I have found experience is the best teacher but I don't know what I am supposed to be experiencing or how best to experience it.
I guess this boils down to: is there any kind of cloud service similar to ec2 I could "have a go" with for free? And if not is there anyone who can explain it without using a thesaurus of current business flavours du jour sprinkled liberally with the word "cool"?
It's with some intrepidation that I try to answer your question (first time answerer, be kind :) ).
Your line of questioning isn't silly - it is just what I'm trying to figure out myself, what are the compelling reasons to implement cloud computing? I'm the technical writer for OpenStack, and I want to write some starter tutorials for some virtual "try it out" images we're creating.
The title question, "what to do to participate in a cloud community" really depends on the community. We're so early-on that community participation is pretty technical - get a Launchpad account, try out the code, talk to us on IRC and mailing lists. Other communities would have different participation patterns.
In summary, I think you could try OpenStack's developer preview out, get a feel for our community, and play with the cloud fabric controller (spin virtual machines up and down and so on) using VirtualBox.
So, if you want to try out OpenStack's Compute (aka Nova on Launchpad), download Virtual Box, and then get the image by downloading from here. Unzip the image, then start Virtual Box. There's a readme in the zip file that has step-by-step instructions (not super air-tight, but I'm testing them). What I'm trying to learn myself is "what's a good starter tutorial for *aaS?"
I think you'd find 10 Steps to Initiating an OpenStack Cloud Service an interesting read. It's all about how to get a major service (i.e. code contribution) accepted into OpenStack.
I don't know if there are any free Cloud providers - but EC2 isn't going to hurt you. I work with it daily in the office, billed to a corporate card, and I use it for personal projects billed to my own card.
Signup to EC2 is free, and if you already have an Amazon account as a purchaser then it's just a couple of clicks. Spinning-up a Micro or Small instance for a few hours to play with it will set you back a few pence. Leave it running and you'll venture into pounds territory - but we're talking £10 or £20 for a months' usage. Fire a Medium or Large (or larger) up, and you'll accrue charges at a higher rate, obviously. Terminate any instances and zap any storage you might have created, and the billing drops to zero.
EC2 pricing is here.
There are various options. However in my opinion, the most useful and easy options would be to go along with OpenStack. Read about it. Visit devstack.org, and OpenStack official website and install it on your system. Observe it and figure out how it works. Once you are comfortable with its working and code structure, go to launchpad and pick problems you think you can solve it then learn git( if you don't know already) then propose your solution. Get in touch with IRC channel associated with the project you wish to work upon. And with time you will start enjoying it.

How to stay DRY? Do Not Repeat Yourself! [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I find that one of the most frustrating aspects to software development is finding a solution to a problem, forgetting it, then being faced with the same issue in the future only to forgot how you previously solved it. Or to write a useful bit of code, then on a later project not be able to find this code.
My general question is this: How do you keep track of all the new things you learn each day while programming? Does anyone have a systematic way to capture knowledge and easily and efficiently apply it in the future?
UPDATE: Thanks the for the responses, here's what you came up with:
Social
Stackoverflow
Tumblr
Twitter
Evernote
Blogs/Wikis
Code Repositories
Github
Unfuddle
LaunchPad
Google Code
Desktop
Dropbox
Yojimbo (mac)
VoodooPad (mac)
Wikidpad (win)
Surfulater
Stackoverflow is a good place to start :-)
Keeping a blog is another thing (here's mine).
Even Twitter can be useful for this.
There are also a number of "desktop wiki" applications that I find very useful: VoodooPad on the Mac and Wikidpad for Windows.
Finally, if you need to store snippets (or more) of code (that you have the rights to, of course), then there are plenty of source code repositories available now (GitHub, LaunchPad, Google Code or Unfuddle if you want complete control).
The brain has limits. Accept it.
The solution is to have tests for your code so you can merge repeated code without breaking a sweat as soon as you notice it.
I use TiddlyWiki to keep track of a lot of things. It's a one-page, self contained wiki that you can run off your desktop, or your server.
If you want a hosted solution, you can get one for free over at TiddlySpot
I'm having this problem myself too. I've just started couple months ago by adding good SO questions/answers into my favorites, even those I answered or posted. I guess that's a good start. :)
Write a blog. Publish your findings, code samples and everything else. The best way to save the knowledge for future.
I don't care too much when I forget how I solved some problem five years ago. Chances are that in the meantime, there is a better way to do it available. GIYF.
If it is for an organisation, having internal wiki page (or something similar) could help.
If it is only for you (and anyone that's interested), write a blog, favourite snippets on internet etc.
For code, a good approach (in both cases: organisation and yourself) is to keep something I call "Utilities Library". Each piece of code I like usually fits into one of the problem scopes / namespaces of the library. This way, over time, you have a neat code base that allows you to not to invent the weel again. Of course, after couple of months or years the library needs documentation to find anything in there :)
I think Evernote is one of the best resources for storing all kinds of notes. You can even upload photos of texts (say from your iphone, or just your computer), and the text will be OCR'd, so that you can free-text search for parts of the text later.
I use Yojimbo to keep track of just about every neat algorithm, code snippet, or handy idea.
A database of notes (I use an application called Surfulater) and a directory tree of source code (also kept in a Subversion repository).
If I were to start today, I'd probably use some Wiki framework to store my notes.
I always carry around all my interesting projects with me using dropbox. Then I usually know where to find the tricks I did before.
Everytime I see something good on SO I star it, everytime I see a good article on the web I bookmark it.
Keeping a blog or a tumblr is also nice.
I am used to carry my flash disk wherever I go. So, I have different folder there for C# notes, Asp.Net notes, Design Patterns etc.
And whenever I do something that I feel I can use it in the future, basically I open the relevant Word document in it, add the details and the code snippet with a header and save.
I do not know how the others do it but it really helps me.
Do not forget to add a reference index in the beginning of your document.
P.S : I also carry all the e-books in my disk. To have them all in my pocket gives me really good feeling.
I use google reader to store all the interesting blogs and I add notes on the issues it was about.For codes strangely I always forget after having solved the issue but now I either post on asp.net forum and stackoverflow. But only strange thing happened to me couple of years ago, I had an issue and I managed to research to solve it but when I reviewed some codes I had written 3 years before I saw that I had used the same function and identical code for a similar issue. I think even if I didn't remember the code, it must have been hidden somewhere in my mind :)

Is help file (or user manual) dead? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
Back in the days of Unix, you couldn't even close a software without reading the man page first. Then came Mac and Windows with consistent menu layout and keyboard shortcuts, but you still saw paper user manuals shipped in the shrinkwrap box, which described each and every single operation possible in the app. After the Internet, help files became html documents.
Nowadays with Web 2.0 applications, you hardly see the Help. Even if it's there, they simply describe some specific tasks. In other words, the apps are relying more on the common sense or don't-make-me-think factor of the user base.
Years ago Microsoft came up with a concept called Inductive User Interface, which basically tells programmers to put in instructions on the apps itself, but I am not sure how popular that idea is.
Are help files, user manuals, and context sensitive online help with F1 key dead? Have I failed if user could not find out what to do from the UI? If not, what degree of help should I provide? (both for desktop and web app)
EDIT: How does documentation/help file mesh with agile development methods? For example, should the developers think twice before UI changes that may obsolete a bunch of screenshots?
Three notes on help:
F1 / stand-alone context-sensitive help was always doomed. It was hidden by default, and so the people who most needed it were least likely to read it. There was hope at one time that we would be able to train users to always hit F1 when they ran into trouble, but too many applications without useful context-sensitive help... combined with too many bizarre help interfaces... pretty much killed this.
Manuals are as important now as they ever were. Not so many printed manuals anymore, but online manuals are better than ever. The proliferation of wiki-as-a-manual systems has helped here, reducing the up-front cost of creating good online documentation. Of course, plenty of people just don't read...
The beauty of using web pages as an application interface is that you can combine useful context-sensitive help with the UI, removing the barrier for novices and others who otherwise couldn't be bothered to look for relevant information when they get stuck.
Of course, there are still plenty of apps, even online apps, designed with obtuse interfaces and a tiny little help icon in a corner somewhere, presumably hoping that the latter mitigates the former. Pity them.
No way. You look at the amount of documentation and training and marketing expenditure even MS puts up.. you'll get your answer.
Try using someone else's product, and you will learn the true value of documentation - I'm learning Godiagrams right now.. :)
So I can say without a doubt.. NO and it never will.. no matter how intuitive user interfaces get.. beyond a certain size, you will need help and training. But by understanding the user and what he needs to get done, you could design it such that the time he/she needs to learn the system to do his/her routine tasks is minimal.
Have I failed if user could not find out what to do from the UI?
If not, what degree of help should I provide? (both for desktop and web app)
They should be able to use your your app to do basic things from the UI. eg say for an image editor, they should be able to create a new image, and draw some lines then save it just by looking at the UI.
This is best done by following common layouts (like having new, open and save under file in the menubar, and using the standard open and save dialogs).
The same goes for webapps, people exspect to be able to do the basic stuff without having to read the docs, but for more advanced features people will still read the docs. (eg most pople will read the docs for say BB code, or markdown at least sometimes, but they expect to be able to post without having to know them)
Are help files, user manuals, and context sensitive online help with F1 key dead?
They still have their place. People will use them to learn about how to best use various features, for example markdown or bbcode, or how to use filters to get certain effects in an image editor.
I've been incorporating context-sensitive screencasts into my applications. I've found this helps non-technical users grasp the application quickly, without asking for live help.
The Idiot/Dummy books must be doing quite well. Imagine if the standard application help was as good as those books. The standard F1 help for a lot of apps is just awful.
Is help dead? No, but some of it should be taken out and shot.

Resources