For clojure, I'd actually recommend using light table. From my experience with the latest dev versions, the learning curve isn't hard at all and immediately having your code evaluated is pretty powerful and intuitive. [I started learning clojure recently as well]
I disagree with this post: there's another use case for visualizations -- consuming data as fast as possible to take action (eg firefighting). I work on tools for engineers, and I've found that a rich, non-standard visualization that people can learn to parse quickly after a tiny bit of initial acclimatization -- but showing them exactly what they need can help a lot.
a rich, non-standard visualization that people can learn to parse quickly ... showing them exactly what they need
I do a lot of UI work, also mostly for technical users, so I’m interested in both effective visualisations and efficient interactions built around them.
I’ve found that customised and/or contextual visualisations and interactions can be very effective if, but only if, they fit how the user thinks about the situation better than any of the standard alternatives.
Put another way, if you’re dealing with a solved problem, using the solution that everyone already knows usually works best. But if you’re dealing with something new and different, and you can’t build what you need cleanly using existing tools, then creating a new kind of tool often gets better results than cobbling something together with the wrong tools for the job.
The hard part is that creating more appropriate tools generally requires understanding your users’ mental model(s) of the situation and the actions they need to take, and even a seemingly small mismatch between what a user expects and what you actually give them can really hurt when the user doesn’t have familiar conventions to fall back on.
In practice, I’ve had some success building UIs around a small number of specialised visualisations and controls (typically making up a single main screen/page) but using only mainstream presentation like tables and histograms for supporting features, but every project is different.
True -- any visualization that doesn't get the message across is just about useless.
Luckily we have very tight feedback loops -- and I can push new versions every couple of hours so I can customize it really fast to suit their needs/mental models.
I just tried the Beethoven intro lesson for guitar -- first off, these are awesome for me as an almost-n00b guitar player!
Two suggestions:
- When you're holding really long notes the interval to see the next note is really small [the tab moves forward only once the long note ends so you don't have as much time to transition your fingers because you don't know/remember the next note; while in practice these should be the easiest transitions]
- Indicate the note lengths as well in terms of fourth or eighth notes, for those of us who like to count along.
Awesome to hear, I love the Beethoven lessons. Some classical stuff sounds really cool on a guitar (esp Beethoven on an electric).
Both good suggestions. We haven't found out a great way to handle scrolling with long notes yet. Also, agreed that it would be cool to show 1/4, 1/8 notes etc. Would love to find a subtle way to do it within tab, rather than with a tab/staff notes blend.
For those who don't tweak their toolchains spending one chunk of time and forgetting about them is obviously better than doing nothing else, but personally I recommend continuously evaluating what you do on the shell (well, obviously this can be generalized, but I won't go there) and tweaking away your pain points and repetitive tasks.
Some specific recommendations --
- Keep a version controlled `dotfiles` folder, link important files to it and share it across dev envs.
- Add shortcuts to modify your vimrc (<leader>v) and apply it (<leader>V) to help you tweak fast and get instant feedback.
- Using an approximation of REPL for any work I do has been the single largest productivity boost I have: minimize keystrokes between (Write Code) <> (Build/Compile/Run/Whatever/Get feedback) <> (Write code). I started using vimux recently (lets you run commands in a split pane without actually leaving the pane with vim installed) and have never been happier.
The font is nice but I'd like one with a sexy `' pair, like they used to be before ASCII went all 8-bit on us. ;-) Also, a dollar that only has the vertical line(s) beyond the S avoids it becoming too heavy compared to glyphs around it.
No, he's correct. RMS uses the recipe analogy often, though he uses it as a free software analogy (i.e. cooks have freedom with recipes, recipes are like programs, why can't users have a similar freedom with programs).
When I can hand the user source code and they can experiment on their own and they don't come back and blame me the engineer who created it for doing something wrong.
There is an inherent disconnect between cooking and programming. In cooking; experimenting and throwing in an extra ingredient or leaving an ingredient out most likely won't cause anything bad to happen to the outcome and it will most likely still be edible.
In programming if the end user leaves out a line of code or doesn't have the correct logic the program will most likely do something it wasn't supposed to and could destroy the users files, could cause them to lose countless hours of work.
Burnt chicken can be thrown out, and you can try again, if your hard drive has been formatted it is going to take a while to get going again. Also, since when is programming, compiling, linking as easy as following a recipe?
Analogies are usually meant to serve a particular purpose. In this case, RMS is using an analogy to make a point about sharing. Do you think that anyone here really confuses cookery with programming?
I'm not particularly sure about this, but why would revealing the people who have stored YOUR phone number to YOU be such a big deal?
I'm assuming phone number verification checks that you own the number via SMS; so it just acts as a reverse-stalker (I'd be worried about people I _don't_ know having my phone number saved).
Because, as the article says, it can reveal Facebook accounts that you didn't knew your friends had, such has this friend of the OP who has a "straight" and a "gay" FB account.
I'm not sure that's such a huge sin -- technically I think FB says that you cannot have more than 1 account/actual person; I'd imagine when this `feature` was baked in the engineers didn't imagine that anyone would maintain an account that 1) they would keep hidden from friends _and_ 2) add their phone numbers to.
At the very least, the friend could have blocked the set of people he didn't want to know about his preferences from the "gay" account: otherwise what stopped a simple search by name from showing both accounts?
1. People may very well have an account with a fake name, so that it doesn't show up in search. In France, for example, a large number of FB users are stripping out the vowels from their last name to make their FB account less findable.
2. According to the article, it's not the "gay friend" that put his phone number on his hidden account. He merely has OP's number in his phone address book (wich is normal since they are friends in real life), and the FB app is pulling this information.
That simple search by name would not show his account with the gay persona - so they thought they were safe. His phone # was probably not listed publicly either.
I am supposed to _start_ work at FB assuming I get a visa.
I'm a bit curious about why a search for name won't show the alternate persona? I've had friends who made 2 profiles and both used to show up whenever I typed their name in; and his # being listed publicly doesn't affect the argument either way.
Edit: Reply to child comment by jarofgreen: apparently the comments are too deeply nested to reply directly: "using FB wrong therefore deserves to have his privacy violated"
I've never stated that he _deserved_ to get his privacy violated; it's simply that the behaviour of any s/w is based on what settings you choose. Your argument would have to be that it's the S/Ws fault for not being transparent enough/not easily understandable enough leading the user to be misled - but the general response seems to be that the s/w is actively out to get the user.
Blogs down so cant check but I'm pretty certain it said the the gay profile was under a fake name.
Also, are you trying to make the argument that his gay friend is using FB wrong therefore deserves to have his privacy violated? That sounds like a pretty shit argument to me.
I'm an amateurish PHP dev; so I can't suggest specific projects to get into. BUT I've found the best way to go about getting into any open source project probably would be:
- Choose a project you've used if you can. (I went with WordPress for example)
- Decide whether you want to try helping out with the core project or you would prefer to make an add on
- Make sure you follow the docs, get the build for the project ready -- or at least try to following what the project's docs tell you to. Do your personal best to get a hang of the source--particularly the area where you're aiming at. Try your hand at writing some code.
- _Now_ reach out to the core developers and the community (IRC, mailing lists, forums)-- discuss any problems you faced getting your dev set up ready, writing/testing code or any concepts you didn't understand (don't ask stuff that can be answered with a lmgtfy), your idea. Ask for a simple bug to fix if you haven't managed to find anything.
- Develop it further -- get feedback from devs and end users -- release/submit a patch. Based on feedback, iterate and release the next version/new patch. Repeat!