• Programming Essentials: List of utilities to make you a better programmer.
    43 replies, posted
Hey, everyone. I've had this little idea to make a large thread of lists of utilities that every person needs in order to code efficiently. Obviously this varies greatly by language, so I will be separating this into different categories based on programming language. And, of course, I don't know every language, so if you all would like to make a list of utilities for a language, by all means do so, and I will add it to the OP. If there is already a list for a language but you have more to add, just reply your contributions to the thread and I will add them to the OP as well. These utilities go from language documentation to IDE's to helpful code snippets to anything that will make your experience with a language easier! I'll get us started! [B][U]All Languages:[/U][/B] - [URL="https://github.com/"]Github[/URL] - Git(via Github) is an extremely powerful version control software that allows for a great way to keep up with your changes you make to your code. It allows for issue tracking and pull requests making it extremely great for open source projects. - [URL="http://www.sublimetext.com/"]Sublime Text[/URL] - Sublime Text is a favorite among scripters and programmers. Sublime is an extremely powerful text editor with control over every aspect of your workspace, allowing for an environment that can be tweaked to perfection to suit your needs. - [URL="http://www.expandrive.com/apps/expandrive/"]ExpanDrive[/URL] - A personal favorite, ExpanDrive is an application that allows you to seamlessly connect online file locations as a virtual disk on your PC. For example, I can input my SFTP details into ExpanDrive, and it maps my remote machine to a physical drive on my PC for me to seamlessly interact with. This is great for seamless file editing! - [URL="http://repl.it/languages"]repl.it[/URL] - EXTREMELY useful code sandbox that lets you test drive your code of almost any language. Super useful when you just need to test something out. - [url=http://atom.io]Atom[/url] - Text editor, similar to Sublime, but completely FOSS. Expandable with a large repository of addons. - [url=https://git-scm.com/book/en/v2]Git Bible[/url] - Because you will fuck up, blindly rewriting history. [B][U]PHP:[/U][/B] - [URL="https://www.jetbrains.com/phpstorm/"]JetBrains PHPStorm[/URL] - PHPStorm is probably the best piece of software you will ever use as a PHP developer. The amount of raw functionality it provides is simply astonishing. It is an extremely powerful IDE that will never let you down when writing PHP. - [URL="http://www.phpmyadmin.net/home_page/index.php"]phpMyAdmin[/URL] - pMA is a very powerful database management utility that anyone who has ever deployed a LAMP stack is sure to be familiar with. - [URL="http://socketo.me/"]Ratchet[/URL] - Ratchet is an amazing websocket manager for PHP. It allows you to easily set up a websocket server for a seamless constant connection between your client and PHP script. Use it to create anything from chat apps to push notifications! - [url=https://github.com/squizlabs/PHP_CodeSniffer]PHP_CodeSniffer[/url] - Linter for PHP, providing coding style checks for many popular standards (PSR2, PEAR, Zend). - [url=http://xdebug.org/]XDebug[/url] - Enhanced warning and error traces for PHP, as well as a ton of useful debugging tools and calls. [B][U]HTML/CSS/JavaScript:[/U][/B] - [URL="https://www.jetbrains.com/webstorm/"]JetBrains Webstorm[/URL] - Just like it's PHP counterpart, Webstorm is an extremely powerful JS IDE that allows for an extremely fluid and amazing programming experience. - [URL="http://getbootstrap.com/"]Bootstrap[/URL] - Bootstrap is an amazing HTML/CSS framework that gives you a base design for a beautiful website. - [URL="https://bootswatch.com/"]Bootswatch[/URL] - Free themes for bootstrap. I use this in almost all of my projects. Beautiful themes to make your bootstrap-based site even better. - [URL="https://chrome.google.com/webstore/detail/web-developer/bfbameneiokkgbdmiekhjnmfkcnldhhm?hl=en-US"]Chrome Web Developer Tools[/URL] - Allows for deep control of every aspect of your webpage. - [URL="https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo"]Chrome Advanced REST Client[/URL] - Allows you to modify and send HTTP headers and interact directly with WebSocket servers. Much more but i'm dumb when it comes to this software. [B][U]C+[U]+[/U][/U][/B] (contributions by Naelstrom & Birkett) - [url=http://valgrind.org/]valgrind[/url] - Valgrind is a tool that can automatically detect many memory management and threading bugs, and profile your programs in detail. It's incredible how well this thing works to give you when and where memory was lost, and where your code segfaulted and why. Debuggers are for chumps I've got VALGRIND. - [url=http://cppcheck.sourceforge.net/]cppcheck[/url] - A static code analysis tool that fixes up your dumb coding conventions and warns you of potential problems. Any static analysis tool is good though, cppcheck is just one of many. - [url=http://www.cmake.org/]cmake[/url] - CMake is a build system that makes it quite easy for anyone else to build your project while it makes it hell for you, but it's better than automake, is officially packaged and ships on just about anything, and it's old so there's lots of documentation to go around. This thing is a must if you plan to give your code to someone else to compile. - [url=http://clang.llvm.org/]LLVM Clang[/url] - Alternative compiler and front end to gcc / g++. Provides great static analysis and warnings. [u][b].NET languages[/b][/u] - [url=https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx]Visual Studio Community[/url] - Seriously, get it. It's like the best IDE for .NET languages ever (especially C#). - [url=http://www.pinvoke.net/]PInvoke.net[/url] - Basically a wiki with PInvoke signatures for most (if not all) Win32 and other windows API functions. - [url=http://www.telerik.com/products/decompiler.aspx]JustDecompile[/url] - Free managed code decompiler, works really well. [B][U]C#:[/U][/B] (contributions by Protocol7) - [URL="https://www.jetbrains.com/resharper/"]ReSharper[/URL] - This tool saves my ass when doing C#. Identifies redundancies in conditional statements, fixes up lambda statements, fully formats code files solution-wide. It makes you lazy as hell, but it makes you intelligently lazy. [B][U][b]SQL[/b]:[/U][/B] (contributons by Rocke - [url=http://www.heidisql.com/]HeidiSQL[/url] is a really great database management tool, and it works with MySQL, MariaDB, MSSQL, and Postgres. Plus you don't need to install a local web server to use it. - [url=https://www.jetbrains.com/dbe/]0xDBE[/url] is a database management tool from the guys behind IntelliJ, RubyMine, PHPStorm, ReSharper, and more. It's free for now, since you can get a free build through their early access program. [QUOTE=awcmon;48086474][u][b]A buncha languages but not all:[/b][/u] (contributions by awcmon) - [url=http://codepad.org/]Codepad.org[/url] - Another online compiler/interpreter. I'll update this more tomorrow, but it's late so this is all I've got for now. Please contribute your suggestions!
[B][U]C++:[/U][/B] - [url=http://valgrind.org/]valgrind[/url] - Valgrind is a tool that can automatically detect many memory management and threading bugs, and profile your programs in detail. It's incredible how well this thing works to give you when and where memory was lost, and where your code segfaulted and why. Debuggers are for chumps I've got VALGRIND. - [url=http://cppcheck.sourceforge.net/]cppcheck[/url] - A static code analysis tool that fixes up your dumb coding conventions and warns you of potential problems. Any static analysis tool is good though, cppcheck is just one of many. - [url=http://www.cmake.org/]cmake[/url] - CMake is a build system that makes it quite easy for anyone else to build your project while it makes it hell for you, but it's better than automake, is officially packaged and ships on just about anything, and it's old so there's lots of documentation to go around. This thing is a must if you plan to give your code to someone else to compile.
[b][u]All Languages:[/u][/b] - [url=http://atom.io]Atom[/url] - Text editor, similar to Sublime, but completely FOSS. Expandable with a large repository of addons. - [url=https://git-scm.com/book/en/v2]Git Bible[/url] - Because you will fuck up, blindly rewriting history. [b][u]PHP:[/u][/b] - [url=https://github.com/squizlabs/PHP_CodeSniffer]PHP_CodeSniffer[/url] - Linter for PHP, providing coding style checks for many popular standards (PSR2, PEAR, Zend). - [url=http://xdebug.org/]XDebug[/url] - Enhanced warning and error traces for PHP, as well as a ton of useful debugging tools and calls. [b][u]C++:[/u][/b] - [url=http://clang.llvm.org/]LLVM Clang[/url] - Alternative compiler and front end to gcc / g++. Provides great static analysis and warnings.
[u][b]A buncha languages but not all:[/b][/u] - [url=http://codepad.org/]Codepad.org[/url] - Another online compiler/interpreter. [u][b]All Languages:[/b][/u] - [url=https://notepad-plus-plus.org/]Notepad++[/url] - A text editor that's pretty nice, but not very shiny or cross-platform for that matter unfortunately. It's pretty fast though if that matters any.
[u][b].NET languages[/b][/u] - [url=https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx]Visual Studio Community[/url] - Seriously, get it. It's like the best IDE for .NET languages ever (especially C#). - [url=http://www.pinvoke.net/]PInvoke.net[/url] - Basically a wiki with PInvoke signatures for most (if not all) Win32 and other windows API functions. - [url=http://www.telerik.com/products/decompiler.aspx]JustDecompile[/url] - Free managed code decompiler, works really well.
[B][U]C#:[/U][/B] - [URL="https://www.jetbrains.com/resharper/"]ReSharper[/URL] - This tool saves my ass when doing C#. Identifies redundancies in conditional statements, fixes up lambda statements, fully formats code files solution-wide. It makes you lazy as hell, but it makes you intelligently lazy. If you're going to be working in .NET, VS Ultimate has CodeLens and that's fucking awesome. Lets you see how many and what references a method has right in the middle of the code. Some other shit too but that's the most helpful for me.
[B][U]C++:[/U][/B] - [URL="https://www.jetbrains.com/clion/"]CLion[/URL] - If you're on Linux (or I'm willing to guess OS X) CLion is a great IDE, second to Visual Studio in my opinion. Apparently not free but if you're a student JetBrains will give you a [URL="https://www.jetbrains.com/student/"]license to all of the things[/URL]. [B][U]C#/TypeScript/JavaScript/Others:[/U][/B] - [URL="https://code.visualstudio.com/docs"]Visual Studio Code[/URL] - I actually prefer to use VS Code to full VS when working sometimes, it's lighter and feels faster. It also has some features comparable to Ultimate such as CodeLens that Protocol7 mentioned. Also supports JS/TypeScript, haven't tried but I imagine the experience is good since TypeScript is an MS thing. 0.4.0 is also coming with ECMAScript 6 support which is cool.
Some comments: - phpMyAdmin: not only useful for PHP developers - it's without contest the best web-based MySQL management tool, and one of the best MySQL managers in general. - IDEs: I would strongly recommend [I]beginner[/I] programmers not start out with an IDE unless their chosen ecosystem encourages or requires it (such as .NET/Visual C++ or iOS/OS X development). You won't be using 90% of the functionality at that stage, and you probably don't know what a lot of it does or how it works either, and it'll just be weird and confusing in general. This may sound a lot like your maths teacher telling you not to use programmable calculators for everything, but the difference is that while for many people advanced mathematics is something they only do for school and won't ever need again, you're actively trying to become a good programmer, and just as knowing how the magic in a computer-algebra-system works helps you be a better mathematician (and make better use of the CAS itself), knowing what all the fancy buttons in an IDE do and why is a valuable part of programming knowledge that's a prerequisite to an IDE being useful and is best picked up on the side.
[b][u]All Languages:[/u][/b] - [url=https://github.com/git-ftp/git-ftp]Git-FTP[/url] - Deploy a git repository over FTP. - [url=http://www.cjmweb.net/vbindiff/]vbindiff[/url] - Diff for binaries. [b][u]Assembly (x86 / x64):[/u][/b] - [url=http://www.nasm.us/]NASM[/url] - The Netwide Assembler. Also provides ndisam, for dumping binaries. [b][u]PHP / SQL:[/u][/b] - [url=http://phpminiadmin.sourceforge.net/]phpMiniAdmin[/url] - Single file alternative to phpMyAdmin, great for quick SQL jobs.
Another vote here for [URL="https://notepad-plus-plus.org/"]Notepad++[/URL]. Don't think I could live without it. Also, [URL="http://www.southrivertech.com/products/webdrive/"]WebDrive[/URL]. Great for easy file editing and allows you to map a drive to each site you're editing. Really cool.
If you're developing for android try [URL="https://www.genymotion.com/#!/"]Genymotion[/URL] for a better emulator. The free version still has a lot of features and it's a lot faster than the default emulator, if you have virtualization technology on your CPU make sure to install Intel HAXM and it will be very fast. There are plugins for Eclipse and Android Studio to integrate it with the IDE.
[QUOTE=Rocket;48091511]Speaking of [b]SQL[/b]: - [url=http://www.heidisql.com/]HeidiSQL[/url] is a really great database management tool, and it works with MySQL, MariaDB, MSSQL, and Postgres. Plus you don't need to install a local web server to use it. - [url=https://www.jetbrains.com/dbe/]0xDBE[/url] is a database management tool from the guys behind IntelliJ, RubyMine, PHPStorm, ReSharper, and more. It's free for now, since you can get a free build through their early access program.[/QUOTE] HeidiSQL is really nice, I use it myself.
[QUOTE=_RJ_;48097133]HeidiSQL is really nice, I use it myself.[/QUOTE] Endorsement for HeidiSQL from myself as well. Been using it on and off for almost ten years now.
[U][B]Rust:[/B][/U] - [URL="https://github.com/phildawes/racer"]Racer[/URL] - A code completion tool for various text editors. - [URL="https://github.com/brson/multirust"]Multirust[/URL] - A tool for managing multiple installations of the Rust toolchain. - [URL="https://crates.io/"]Cargo[/URL] - The Rust-lang package manager, it makes managing dependencies so much easier.
[U][B]All Languages:[/B][/U] Windows and Linux: - [url=https://getsharex.com/]ShareX[/url] - Who doesn't want to share videos and screenshots of cool programming stuff? Linux: - [url=https://github.com/naelstrof/maim]Maim[/url] - Programmable screenshot application that comes with [url=https://github.com/naelstrof/slop]slop[/url]. Depending on your programming finesse slop and maim can take videos and images while uploading them to websites. Mac: ???
[QUOTE=Naelstrom;48099963][U][B]All Languages:[/B][/U] - [url=https://github.com/naelstrof/maim]Maim[/url] - Programmable screenshot application that comes with [url=https://github.com/naelstrof/slop]slop[/url]. Depending on your programming finesse slop and maim can take videos and images while uploading them to websites.[/QUOTE] shameless self-advertising, tsk tsk also while cool, are slop and maim really programming utilities
They're not programming utilities, but I believe they're programming essentials. Feedback is a major fuel for my motivation, and there's no better way to get more fuel besides sharing your work instantly. I see now why someone wouldn't think that though, my bad.
[url=https://www.mysql.com/products/workbench/]MySQL Workbench[/url] Useful for ERD, sychronisation with mysql server. [url=http://psysh.org/]PsySH[/url] It's a PHP REPL just like the JS debugger in web browsers
[B][U]All Languages:[/U][/B] - [URL="http://stypi.com"]stypi.com[/URL] - Does someone need help coding? Use this website to easily show your code off using real-time PHP sockets along with syntax highlighting and a built-in HTML instant iframe to view your website's code instantly [B][U]Debugging:[/U][/B] - [URL="http://dumps.metastruct.uk.to"]dumps.metastruct.uk.to[/URL] - Need help debugging a crash? Use this service to easily break down the crash dump file and find the reason why your client crashed
[B][U]Misc:[/U][/B] - [URL="https://code.google.com/p/win-sshfs/"]win-sshfs[/URL] - Really useful for working on a project on a remote server over SSH, I've actually been using to edit code on an ARM machine whilst attempting to port coreclr, and it's performed remarkably well, even for a large code base and a weak host device. I would recommend you forgo the included Dokan and use [URL="http://dokan-dev.github.io/"]Dokany[/URL] though, it's a maintained fork. [editline]2nd July 2015[/editline] [QUOTE=KaPow!;48095794]If you're developing for android try [URL="https://www.genymotion.com/#!/"]Genymotion[/URL] for a better emulator. The free version still has a lot of features and it's a lot faster than the default emulator, if you have virtualization technology on your CPU make sure to install Intel HAXM and it will be very fast. There are plugins for Eclipse and Android Studio to integrate it with the IDE.[/QUOTE] [URL="https://www.visualstudio.com/en-us/features/msft-android-emulator-vs.aspx"]Microsoft's Android emulator[/URL] is pretty good too, and it's on Hyper-V so you don't have to disable Hyper-V if you do Windows Phone development or use it for other VMs. [URL="https://xamarin.com/android-player"]Xamarin[/URL] also have an Android emulator which I've heard is good.
Is there a free alternative to ExpanDrive?
[QUOTE=ben1066;48106305][B][U]Misc:[/U][/B] - [URL="https://code.google.com/p/win-sshfs/"]win-sshfs[/URL] - Really useful for working on a project on a remote server over SSH, I've actually been using to edit code on an ARM machine whilst attempting to port coreclr, and it's performed remarkably well, even for a large code base and a weak host device. I would recommend you forgo the included Dokan and use [URL="http://dokan-dev.github.io/"]Dokany[/URL] though, it's a maintained fork.[/QUOTE] win-sshfs itself is no longer maintained, use [url=https://github.com/dokan-dev/dokan-sshfs]dokan-sshfs[/url] instead. As far as SFTP goes, this would be an alternative to the aforementioned ExpanDrive.
[QUOTE=DrTaxi;48124435]win-sshfs itself is no longer maintained, use [url=https://github.com/dokan-dev/dokan-sshfs]dokan-sshfs[/url] instead. As far as SFTP goes, this would be an alternative to the aforementioned ExpanDrive.[/QUOTE] [quote]This program requires following programs. Dokan library ([url]http://dokan-dev.net/en[/url])[/quote] Which links to a dead page. Great
Dunno if it's the exact same page, but the most current Dokan fork lives [URL=http://dokan-dev.github.io]here[/URL].
What's the difference between PHPStorm and WebStorm? Seems to me like webstorm is same except it doesn't have php support.
[QUOTE=itisjuly;48129605]What's the difference between PHPStorm and WebStorm? Seems to me like webstorm is same except it doesn't have php support.[/QUOTE] They're both built on top of the same platform, they're basically the same thing with different plugins. IntelliJ IDEA is the "full featured" IDE where you can have features from both PHP/WebStorm enabled at the same time.
[QUOTE=itisjuly;48123784]Is there a free alternative to ExpanDrive?[/QUOTE] Probably. There are many places you can acquire a copy for free though. Also, i'll be updating the OP when I get home this evening.
[b][u]All Languages:[/u][/b] [url=http://wakatime.com]WakaTime[/url] - "WakaTime uses open-source text editor plugins to automatically track the time you spend programming so you never have to manually track it again!"
[U][B]HTML/CSS/Javascript:[/B][/U] [URL="http://brackets.io/"]Adobe Brackets[/URL] - Front-end developer's best friend. Chrome live-preview for markup, CSS and CSS pre-processors. Also has PSD assets and styles extraction, plus it's free. I work in .NET CMS's at my company, which of course entails using Visual Studio. Before Brackets, my experience with VS for front-end work was a total nightmare. The web-developer package for Visual Studio is just awful (live browser updates, CSS preprocessors, etc). Brackets' live-preview is outstanding, and works with markup, CSS and SASS/LESS. It's almost as powerful as Chrome's own Dev Tools, but comes with the features to make it a viable professional product. When I cut/integrate a site anymore, I always do as much as I can in Brackets before switching to integration in VS.
[b][u]Reverse Engineering:[/u][/b] [url=https://www.hex-rays.com/products/ida/index.shtml]IDA[/url] - By far the best static disassembly tool out there. The free version comes with everything you'd find in another disassembler, but the pro version supports every architecture you can think of and has by far the most accurate and readable assembly decompiler available. It also allows you to graph code flow. [url=http://www.ollydbg.de/version2.html]OllyDbg[/url] - A popular debugger for reverse engineers. Has a ton of plugins, conditional breakpoints and logging, string searching, syntax highlighting, and the ability to run traces to see which instructions were executed and how they modified registers. It also has a nice stack view with return addresses and structured exception handler info marked. A fork of it called Immunity Debugger is also good.
Sorry, you need to Log In to post a reply to this thread.