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 10 years ago.
As we knew, Google stopped the development of Google Notebook. Though lots of alternatives exist, no one satisfies me (see below for the reasons). Many suggest Google to open source it, but Google didn't response by so far. So I'd like to turn to open source world to develop one. In a nutshell, Google Notebook attracts me in the following ways:
Every notes of a certain notebook present in the form of "list" intuitively. Notes can be dragged to rearrange and organized into Sections, meanwhile notes and sections can be collapsed and expanded easily. To the best of my knowledge, no other note taking software or web service functions like that.
Need to begin a new note? Just move the mouse cursor to any "blank strip" between two notes and click--a new note will emerge there, waiting for your edition, or you can change it into Section freely. No need for the stupid "New Note" button or anything of the kind, and you can always make your new note in the exact place you want. That's the best part that Google Notebook offers, and that I'd like to seek for in the world of existed open source projects.
Well, these are the most valuable things I'd like to have in my new note taking software. Please tell me which open source projects I should learn for, whether web-based (e.g. PHP projects) or executable software (cross-platform is better) will be OK. Thanks very much.
Closest thing I've found was WorkFlowy. Dividing things into categories is not as straightforward (you need to create "subnotes"), but otherwise the interface and the features are similar (although I still prefer Google Notebook's).
Will give OneNote a try as well. If the OneNote webapp is any good, I might end up going in that direction.
the tomboy project guys are developing a django-based web client with and additional api for desktop-sync. it looks interesting. check it out:
http://live.gnome.org/Snowy
http://automorphic.blogspot.com/2009/05/tomboy-0151-release-brings-new-online.html
http://mindby.com/2009/05/tomboy-snowy-nirvana/
Well, there's Chandler. My first thought when I saw Google Notebook was that Chandler had better get its ass in gear...
I have been using Zim-Wiki for along time, really liked it. Will evaluate chandler. Actually we all read articles takes notes, and wish a smiple but powerful desktop wiki or notebook.
Zim-wiki doesnot start a page by clinking over a empty space, as its not ajax based. Anyways here's a set of tools i use to keep my notes.
Zim-Wiki, for something i read, and wish to add my perspective for late reference.
Bokmark, the links for later reference
BScrapBook feature in firefox, or scrapbook+ feature of firefox3.5
I have not found a one-solution product as of now. I hope someone provides a better integrated product.
Zim is extra-simple, usual keyboard shortcuts and intuitive layout , thus hardly any learning cure. It is cross platform, and i share my same common notebook across my windows and linux.
It's not open source, but Microsoft OneNote is pretty stellar in my opinion. It's pretty similar to Notebook(click to start a new note, tags, searching across all notebooks, etc..) and it's easy to move your notebooks around if you have OneNote installed on more than one machine. I've used a handful of others and none of them have been as intuitive and easy to use.
Not open source, but Evernote has an API. I haven't seen any other app with so many modes of getting notes to their system (cell phone with camera integration, web, desktop app). Everything can synchronize. If you have the desktop app installed, it has command-line capability.
There is a tagging system similar to Stackoverflow. All the different notebooks, drag-and-drop arrangements are in the desktop version.
I actually started using fishCode Library.Net and I really like it. I sync it to Live Mesh so database nodes are always in sync.
I just moved from Google Notebook to Google Documents. I essentially just use it as a log book creating an entry for each day with a few lines of details. Works fine for me so far.
I created a webapplication called jottinx to replace Google Notebook for me. It is not open source, but it is free to use. I looked at the alternatives, and frankly found none to be really to my liking. Honestly it still is very much a work in progress, so I do not yet have the drag/drop/collapsing notes, but I am working on that.
You can import your Google Notebook Atom xml files, and work from there again.
For the moment it is a simple clean application, and I use markdown to write your notes, which I personally prefer as I tend to keep also code snippets and scripts in my notes.
As this is still in progress, I am always keen to receive feedback ...
Related
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 :)
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 want to implement an "automatic update" system for a windows application.
Right now I'm semi-manually creating an "appcast" which my program checks, and notifies the user that a new version is available. (I'm using
NSIS for my installers).
Is there software that I can use that will handle the "automatic" part of the updates, perhaps similar to Sparkle on the mac? Any issues/pitfalls that I should be aware of?
There's now a Windows port of Sparkle, see http://winsparkle.org.
There is no solution quite as smooth as Sparkle (that I know of).
If you need an easy means of deployment and updating applications, ClickOnce is an option. Unfortunately, it's inflexible (e.g., no per-machine installation instead of per-user), opaque (you have very little influence and clarity and control over how its deployment actually works) and non-standard (the paths it stores the installed app in are unlike anything else on Windows).
Much closer to what you're asking would be ClickThrough, a side project of WiX, but I'm not sure it's still in development (if it is, they should be clearer about that…) — and it would use MSI in any case, not NSIS.
You're likely best off rolling something on your own. I'd love to see a Sparkle-like project for Windows, but nobody seems to have given it a shot thus far.
Google Chrome auto-update is based on Omaha:
http://code.google.com/p/omaha/
Their overview has a great section on why it was needed:
The browser typically prompted the user with a long series of techy, confusing and scary dialogs all trying to convince the user not to install. Then the user was prompted with a wizard filled with choices that they did not need to or know how to decide amongst. These factors combined to form a bad user experience and large drop-off during the app installation process
It's a good idea to use a third-party solution, cause autoupdates can be a pain, especially with Windows Vista/7 (UAC). For what it's worth, the product my company uses is AutoUpdate+ and it seems to work fairly well.
For .NET, a while back Microsoft Patterns + Practices published the Application Updater Block. This was (to my mind) rather overblown and over-engineered, but did the job quite well.
In essence it used a "stub loader" to check a manifest and a Web service to see if a later version of the program than the one installed was available, then used the BITS background downloader technology to download a new version if one was available on the server.
Once the new version was downloaded and installed (with .NET this is as simple as an xcopy to the relevant folder), the application would update the manifest. The next time the program was loaded the new version would be launched.
While the Patterns + Practices code is .NET specific, there's nothing there that couldn't be copied for a non-.NET application, especially if you have the ability to silently run the install process in the background.
If your application is written in .Net, you could try ClickOnce. However, it's difficult to perform administrative or custom actions during install using this approach.
wyUpdate looks really nice. See video here:
http://wyday.com/wybuild/help/automatic-updates/
For .NET applications you might want to have a look at NetSparkle, a Sparkle variant for .NET programs. It is pretty new (from 2011) and developed actively.
Just came here from an answer to my own question on the same subject - I mention one other updating solution in my question. It uses a stub loader, and an xml file to point to the latest executable.
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.
What do the clever programmers here do to keep track of handy programming tricks and useful information they pick up over their many years of experience? Things like useful compiler arguments, IDE short-cuts, clever code snippets, etc.
I sometimes find myself frustrated when looking up something that I used to know a year or two ago. My IE favorites probably represent a good chunk of the Internet in the late 1990s, so clearly that isn't effective (at least for me). Or am I just getting old?
So.. what do you do?
Two Things I do:
I blog about it - this allows me to go back and search my own blog.
We use the code snippet feature in Visual Studio.
Cheers.
I use:
Google Notebook - I take notes for projects, books I'm reading, etc
Delicious + Firefox plug in - Every time I see a good page I mark it.
Windows Journal (in tablet pc) - When I need to draw something and then copy/cut/paste it. I have more distractions here, the web is always very close :)
Small Moleskine paper notebook - Its always with me.
Big paper notebook - When I need more space to write and less distractions.
Obviously these are for all useful information, not just for snippets or tips and tricks.
Why not set up a Wiki?
If you are on windows, i know that ScrewTurn wiki is pretty simple to deploy on a desktop/laptop. No database to fuss around with.
Blog about it.
One of the nice side-effects of blogging is that if you use a sensible categorization or tagging system, it's quite easy to search for stuff within your blog. The fact that you wrote about it also makes it easier to remember problems you have encountered before ("hey, I blogged about that!").
That's a great benefit aside from, of course, being able to share this information publicly so that others might be able to find your solution to a particular problem using Google.
A number of people I know swear by Google Notebook
I send them to my gmail account, that way I have them where ever I go, and they can be put into appropriate folders for later.
I second the blog about it technique...even Jeff said that's a major reason he blogs.
Also, regarding the wiki idea, if you set one up at work, be sure to encourage your coworkers to do the same. When someone finds something of interest they can just write a little "article" explaining what it is and how to do it... that way, not only are your own things easily available and quickly searchable, but you'll often find out things you never knew from other people in your group. That way it benefits everyone not just you.
I agree with emailing, the wiki and the blog. Emailing is the most useful. If you can't use GMail and you're on windows, install a desktop search utility (Windows search, Google Desktop, Copernic, etc)
I also like to jot it into a textfile and save it in my documents folder. Whatever desktop search utility you use will be able to find it easily. e.g.
//print spool stop.notes.txt
If the printer spooler stops, start it again by
- Services > Provision Networks > Restart Service
tags: printer provision no printer spooler cannot print remote desktop
Subscribe in Google Reader and then search later.
At my last place of work they wouldn't let me set up a wiki or anything - so I just made various word documents full of tips and instructions and gave that to my successor when I left.
Now though I'd use a private wiki, or maybe a blog.
For many years I've kept a Word doc named Knowledgebase.doc that contains all my notes with a decent table of contents. I like to keep everything in one searchable doc.
I use a sync tool to make sure the file is copied to all the machines I want it on.
I use TiddlyWiki stored in my DropBox account. Although, recently, Evernote is getting my atention; it has a really useful feature: you send a twitter direct message to evernote user (myen) and it adds a note with your message (a really quick way to add notes or URL's for post-processing). Imagine, you can use a command-line twitter client to create notes! (or any twitter client). I really like this feature.
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 probably spend far too much time trying to make my visual interfaces look good, and while I'm pretty adept at finding the right match between usability and style one area I am hopeless at is making nice looking icons.
How do you people overcome this (I'm sure common) problem? I'm thinking of things like images on buttons and perhaps most important of all, the actual application icon.
Do you rely on third party designers, in or out of house? Or do you know of some hidden website that offers lots of icons for us to use? I've tried Google but I seem to find either expensive packages that are very specific, millions of Star Trek icons or icons that look abysmal at 16x16 which is my preferred size on in-application buttons.
Any help/advice appreciated.
Good icons are hard to design. I have tried to design my own, and have used in-house graphics designers as well. However, building a good icon set takes a lot of work, even for the graphic designer.
I believe your best solution is to buy/find a set of icons for use in your projects.
The silk icon set is a good, free set and can be found at FamFamFam. There are over 1000 icons in this set, and it is very popular.
If you are looking for something "different", you can purchase icon sets for a couple hundred bucks. Considering the cost of having a designer create them for you, or doing them yourself, the cost of these sets is cheap!
Here's a few icon designers I've come across of the web:
Icon Factory
Icon Experience
Icon Buffet
Don't forget either that unless you have lots of toolbar buttons or other such objects to fill, its possible to get by with very few icons beyond your own unique application icon and system icons. (Remember to call them from existing libraries on the user's machine, not repackage them, keep the lawyers happy.)
Having too many icons can be just as bad as having some ugly ones. Many guidelines state that if you can't have professional looking icons have some whitespace instead. It can help to keep the interface light and feel uncluttered.
If you have money, definitely go with a professional designer. At first if you don't have too many projects requiring a designer, just hire one on a contract basis. If you start feeling the need for a full-time designer then it's going to be beneficial to hire one.
Good looking free icon sets are available, but you should shop around for a decent icon set which you can reuse for most of your projects.
Finally, if you don't have access to a designer, just keep the look very clean and simple, because chances are that you can't do a good looking design (since you're not an artist).
You don't have to be a great designer to come out with a decent UI and a great user experience for your application.
I think there are certain principles you can follow that can dramatically improve your application.
At a high level this includes:
Identifying your top 3 use cases
Measuring and reducing the number of clicks it takes to get through the top use cases
Sketch, Prototype, Throw it away, and challenge yourself to do it with less
I've written a blog entry that attempts to write out some principles related to GUI design. Check it out and let me know what you think.
How to improve the User Experience of your GUI application with some simple principles.
These are the icon links I found some time ago, I think they were not posted yet:
Eyecandy for your KDE-Desktop
+3700 Free icons for your website or blog
Icons for people who need icons
Tango Icon Library
this also sounds interesting: OpenClipArt but their web does not seem to offer quick previews (thumbnails)
We have an in-house designer that does ours, although we also use freelance designers, too.
You could try starting a design competition on 99 Designs?
There are also some free icon sets available, like these.
If you google around, you'll also find quite a few commercially available icon sets that you can use (although obviously neither of the icon set options will get you an icon specific to your app!).
Hope that helps!
I have a couple that I really like:
GlyFx and Liquidicity Vector Icons.
Those from Liquidicity are specially useful for WPF or Silverlight, you can make an interface that even zoomed looks great.
I came across IconBuffet when registering my copy of Visual Studio Express. They have some awesome icons that you could use in your applications.
For application development I have also started playing with WPF interfaces in .Net, soon to be available on Mono as well. With the ability to use web images and pictures in Windows Applications even not creatives can develop some awesome interfaces.
For website layouts I use sites like OSWD for designs and layouts that are free.
I recommend IconFactory, too. Or to be exact: http://stockicons.com/ There are a lot of icon sets for an affordable price and I think buying a professional set is the best choice you have if you're not a graphics designer yourself.
If you only need a single icon, it's probably worth to hire a graphics designer.
But why on earth do you think you need to make icons to make your interfaces look good? Icon driven interfaces are the bane of UI these days. Look at a screenshot of Komodo IDE or Eclipse for example. These are horrendously badly designed interfaces. It's impossible to tell what the buttons do until you hover over them and get the tooltip. I suggest you use text unless there is an icon that better represents the concept, not feel you need to represent every idea visually.
I guess it depends what context you're developing UI for - have you a lot of users who don't speak English as their first language? Is it for occasional use or for power users to use every day? Is it a web site? Is it a desktop application?
But when you really need icons, there are some good libraries out there. I think consistency is really important; Tango for instance "exists to help create a consistent graphical user interface experience for free and Open Source software." and the rather attractive icons are licensed under Creative Commons
I thought it may be interesting to mention that Axialis has just released a version of the their Icon Studio for Visual Studio 2008 for free. It will only install if VS 2008 Pro or TFS is installed and plugs directly into the VS toolbar.
I have always liked the icon selections at VirtualLNK. They have a good number of icon packages that have a modern look at a reasonable price.
Try this site www.iconsreview.com, they offer reviews for a variety of icon packages, both free and for purchase.
www.iconshock.com has over 400,000 icons and you can buy the entire collection for around $400.
Alternatively there are a number of sites offering free icons, just be sure to check the licence.
I ended up getting $20 credits (min amount) from vectorstock - they have a lot of vector images, icons and stuff like that to choose from, selling for 1 credit (1$).
You can always go on Elance and hire someone to make any icons/logos for you. I've done it several times and it's pretty cheap for what you're getting. There is so much competition on that site that someone will eventually come in at your price point. I've always believed theres no point in spinning your wheels with something you don't really specialize in.
Oh yeah and like this site, keeping it simple is always best!
I try to keep my applications very simple. Simplicity and usability can be a good design in-and-of itself if done intelligently.
Take all of the buttons for Stackoverflow for example. It shouldn't be very difficult to implement something similar in your own application. They are simple and they get the job done.
Try aiming for clean and simple first, and then worry about aesthetic elements.
Cheat and use photo's!
I've struggle with this, What I tend to do now, is find photos of objects BUT on a plain white background. The background can be made transparent. I then use this Conversion tool to convert a PNG file into an .ico. When exporting include all resolutions up to 512 pixel size for good results.