Posts

Showing posts with the label cool tools

Cool Tools: Remote Tech Support

We all have to support our friends and families on their broken computers. Recently I was introduced to teamviewer . It's a remote support application that free for non commercial use, and works perfectly.   May your next "mom's computer doesn't work" incident be less stressful.

Typeform: Surveys and data gathering

As an entrepreneur, figuring out what your customers need is your top priority. When you have lots of customers, surveys are a great way of doing this. If you're doing surveys I strongly recommend typeform . It's simple to setup, and produces beautiful ux on phones and desktops for data gathering.  When you're thinking of using typeform, don't limit yourself to surveys. For example, I use typeform for sign up forms.  This saved me several hours of initial development, and even more hours when I made changes to my sign up process. 

Cool Tools: World Time Buddy

Disclaimer:  I know the CEO, I know this sounds like spam, but it's still awesome. Keeping multiple time zones strait is a pain.  Missing a meeting because you came 3 hours too late is worse.  World Time Buddy makes it easy to keep track of time zones. Check it out. https://worldtimebuddy.com

Cool Tools: Vim Tricks

This post will help me remember cool tricks I learn in VIM.  It's mostly for me to find things I've forgotten how to do ... Select an XML/HTML tag block Tag blocks * tag-blocks * For the "it" and " at " text objects an attempt is done to select blocks between matching tags for HTML and XML. But since these are not completely compatible there are a few restrictions. The normal method is to select a until the matching . For " at " the tags are included, for "it" they are excluded. But when "it" is repeated the tags will be included (otherwise nothing would change). Also, "it" used on a tag block with no contents will select the leading tag .

Cool Tools: Vim Keybindings

This post will enumerate the vim emulators I use, I expect it to refresh as I learn of more.  The VIM community is very passionate and frequently adds plugins to support VI keybindings in random tools. Here are the tools I use with their vim key bindings.  Chrome/Firefox  -   Vimium  Chrome/Firefox   Textboxes  -   Wasavi  Windows Command Line  -  Clink  ( instructions ) Unix Command Line  - set -o vi OneNote  -  Vim For OneNote Visual Studio - VsVim  (my customization here ) Visual Studio Code  -  VsCodeVim IntelliJ -   IdeaVim  (my customization  here ) XCode  -  XVim  (my customization  here ) Jupyter Notebooks -  jupyter-vim-binding Happy VIMing. 

Cool Tools: Git Helpers

This post will enumerate the helpers and commands I use with git, I expect it to refresh as I learn of more.  This is now basically out of date, and a place to jog my memory.  I'd recommend finding your problem and solution here: https://github.com/k88hudson/git-flight-rules Tools: Source Tree - a superb gui for git. I use it for all but the simplest commits. gitk - Built into the git distro, gitk allows you to visualize the tree Uncommon, but useful operations Move recent commit from master to a branch. git branch newbranch git reset --hard HEAD~3 # Go back 3 commits. You *will* lose uncommitted work.*1 git checkout newbranch Get a local copy of a server branch (tracking branch)     git checkout   See which branches contain which commit  git branch -r --contains See pretty view of history (all after tag 1.2.38.0) git log --decorate --oneline --no-merges  1.2.38.0.. Even prettier git log --pretty=format:"%C(yellow)%h%...

Cool Tools: Rescue Time

Image
Have you ever tried to remember where your time went last week and had no clue?   Rescue Time  helps you understand where your time goes by keeping track of what application and web sites you use, and providing analytic over that data. I started using rescue time a few days ago, and can't wait to build up my personal usage data.

Cool Tools: Distributed Source Control Systems (git + hg)

I assume you're already using version control: svn, cvs, or if you work at microsoft source depot (sd) Summary If you don't know what git/github are, go download and start using it.  If you use hg and bitbucket, sigh, and switch to git/github. What is DCVS? Distributed Version Control Systems (DVCS) are version control systems (VCS) that don't rely on a single central server.  DVCS is designed so multiple people can check in independently while offline and then merge their changes together. In DVCS systems everyone has a copy of the entire version control repository (repo), instead of just having a version of all the files .  Because you have the entire repo, you can check in at will, and when it's time to collaborate you can push your changes into someone elses repo. A common question when VCS people come to DVCS is if you're distributed how do you know the version that should ship? Turns out even though everyone has their own repo, there is still a centr...

Cool Tools: Google Reader Replacement: The Old Reader

If you don't know what google reader is, read this .  If you do know what google reader is, you know it is getting decommissioned on July 1st 2013 and you're likely anxiously looking for a replacement. If so,  the old reader is a clone of google reader, which as best I can tell is almost identical to google reader, down to the keyboard shortcuts. That's my google reader replacement - enjoy!

Cool Tools:LinqPad

If you use C# and you don't use LinqPad , drop everything you're doing and download it -  it will change your life.  LinqPad is so great, I'm not going to describe it - just download and run it.

Cool Tools: ConEmu

ConEmu is a windows console replacement. You still run cmd.exe or powershell.exe, but you get a console host which doesn't suck.  I've only been using it for a few hours but here's some of the stuff I love: Multi Tab Support Sane Copy/Paste Support Correct Handling of Win-Left and Win-Right Win7 integration (see different tabs during  icon hover) Everything just works (so far)

Assembly to JavaScript;TSRs to Bookmarklets

Image
Back when I started computing (the nineties), the coolest thing to to know was assembly. If you knew assembly you could make the computer do anything because the computer was essentially executing assembly[1]. Back in those days the way to inject code into the system was something called a Terminate And Stay Resident ( TSR ). This mini application could be invoked via a hotkey and run arbitrary code in your memory space - this was a great way to hack applications, or provide additional capabilities to programs. Luckily history repeats itself.  Today, assembly has been replace by JavaScript, and  the mechanism for  TSRs is called bookmarklets. Bookmarklets are book marks which execute arbitrary javascript code. To show you the power of bookmarklets I wrote a JavaScript bookmarklet that will take a search from  bing and run it on google or vice versa. You can install it by dragging  SwapSearchEngine  to your bo...

Cool Tools:Excel Online - The web services I use

I wanted to show off embedding online spreadsheets from excel and sky drive, and remind myself how much I spend renting content, hosting, and renting software.  So, here's what an embedded excel sheet looks like To produce, save an excel file to your sky drive then click Share then Embedded: The excel web app control is great, you can sort, filter, or make local modifications (they are not saved to the original). Anyway - have fun with this.

F# and the immediate window

(This post is inspired from t his Stack Overflow question ) F# debugger integration is quite good, except for the immediate window. The immediate window requires C# style syntax, so calling F# functions is not intuitive. Below are recipes for the immediate window integrated into a console application. As always code can be found here : // Learn how to use the immediate window for F#. module Program= // To build, add a reference to Microsoft.CSharp. This is required for dynamic support in // the debugger. let allowDynamicToWorkFromImmediateWindowByLoadingCSharpBinders = Microsoft.CSharp.RuntimeBinder.CSharpBinderFlags.BinaryOperationLogical let plusOne = (+)1 let xPlusOnes = [1;2;3] |> Seq.map plusOne [ ] let main (args) = printfn "Try the following in the immediate window: // plusOne 4 ((dynamic)plusOne).Invoke(4) // Seq.Head xPlusOnes Microsoft.FSharp.Collections.SeqModule.Head(xPlusOnes) // let xPlusTwos= xP...

Use Paint.Net to Highlight key areas in an image to get your point across

Image
(Since posting this I've also become very fond of  Jing , which is the tool I use when taking screen shots) Earlier , I mentioned how important communication is to software engineering. A key tool in communication is being able to highlight portions of images.  For this task I use some basic features of Paint.Net .  In the below image I want to draw your attention to the name of the dress, and the name of the color of the dress. Without these highlighted regions, it's likely your eye wouldn't have picked up the points I wanted you to see. To perform these highlights in Paint.Net do the following: Copy image into Paint.Net Select the ellipse tool Specify Fill Options as Draw shape with outline Set Secondary color(the fill color) to yellow Set transparency to 50 % Draw ellipse

Cool Tools: Paint.Net

Paint.Net is a nice compromise between advanced picture editing software, and picture editing software usable by humans. The biggest problem I had with paint.net is figuring out how to download it. In what I assume is an attempt to make advertising dollars, this website exists that make it impossible to download Paint.net without accidentally downloading crap.  Here's a direct paint.net download link . Update here are my usages of Paint.Net: Highlighting portions of an image  Other you'd like to see