Foolproof dartboard
Now this is the best way to play darts. 🙂
Now this is the best way to play darts. 🙂
Tanya Short gave one of the best talks I’ve heard in a long time about the fallacies of crunching and bad work habits many people have. The video is now up for free at the GDCVault. Her talk starts at 6:00 :
http://gdcvault.com/play/1024174/Indie
Summary of her points:
When trying to hit deadlines, she starts out by observing that most of the time we think ‘getting X done’ is our highest priority. It’s not. It’s actually #3:
Your real priorities:
That sounds great, but it also sounds a bit idealistic. She says it is not easy, but lays out these points.
Step-by-step roadmap to not dying:


Other quotables:
A few long nights won’t kill you, but a few long months might. Especially if combined with other health and life factors.
Burnout is the feeling of being dulled as layer after layer of exhaustion accumulates. Burnout is the void left behind where your career could have been.
Then she has a real Benedictine moment: The moment right now will never come again. Every one of us will die. No matter what we create, all we have is right now. Don’t use up that joy, love, and creative energy you have by burning yourself out.
Keep death always before your eyes.
—St. Benedict: The Rules: Chapter 4.47
She doesn’t cite the studies, but I found some:
http://lifehacker.com/working-over-40-hours-a-week-makes-you-less-productive-1725646811
Setting up VNC on Ubuntu used to be pretty painless. But recent changes in Ubuntu and X have left it kind of a mess. It took me way longer to set up VNC than it should have, and finding the documentation wasn’t super-easy either. There were lots of broken guides. So, here’s what you need to do:
I was trying to scp some files and kept getting this:
scp: connect to host 134.xxx.xxx.xxx port 22: Connection refused
Some linux distros, like the ancient Fedora 21, have ssh daemon turned off by default. So, turn it on:
sudo service sshd start
Lets say you want to copy between two hosts host_src and remote_machine. host_src is the host where you would run scp, ssh or rsyn, irrespective of the direction of the file copy.
If this file does not exists, then the above cat command will create it. Make sure you remove permission for others to read this file via chmod. If its a public key, why prevent others from reading this file? Probably, the owner of the key has distributed it to a few trusted users and has not placed any additional security measures to check if its really a trusted user.
That’s it. Now you can run scp, ssh and rsync on host_src connecting to remote_machine and it won’t prompt for the password. Note that this will still prompt for the password if you are running the commands on remote_machine connecting to host_src. You can reverse the steps above (generate the public key on remote_machine and copy it to host_src) and you have a two way setup ready!
This was more annoying than it should have been. When setting up my Amcrest IP2M-841B camera, I was able to use the Amcrest IP Config tool to log in and watch my camera without issue.
When using iSpy 64, however, the darn thing couldn’t figure out how to connect to it. Here’s how I did it. I left the camera on channel 1, set the encoding to plain H.264, and then did the following.
The first thing is to make sure your camera is working at all:
rtsp://192.168.1.99:554/cam/realmonitor?channel=1&subtype=0
rtsp://<username>:<password>@<ipaddress>:554/cam/realmonitor?channel=1&subtype=0
If connecting via VLC worked, your 75% of the way there.
rtsp://<username>:<password>@<ipaddress>:554/cam/realmonitor?channel=1&subtype=0
Once you have iSpy connected, you can set up events and connect to the cloud for full web monitoring.
So, where did I get that rtsp line? Directly from the Amcrest HTTP API SDK Protocol Specification. Section 4.1.1, p14 – Get real-time stream. It’s also a handy guide on all the other parameters you can send the camera.
Windows can trigger this error, but sometimes it’s not easy to figure out what’s going on.
I recently got this error when trying to use the OpenGL ES ANGLE library on Windows 10. When compiling against the ANGLE library, the error came when trying to call into the ANGLE and used eglGetProcAddress().
eglGetProcAddress() returns function pointers for important GL extensions, so I couldn’t just ignore it or work around it.
In looking around, the obvious first step is to make sure you’re defining the function pointers correctly, but that turns out not to be my problem.
In looking at this article, I realized I probably had a mismatch of compiler and linker settings. The Visual Studio projects (VS2008) that came with ANGLE required a certain set of compiler and linker flags that were not standard. I had migrated the Visual Studio projects to VS2015, so that also added an element of uncertainty. I simply opened both project settings up next to each other and compared the settings for the ANGLE library build and the final project and found a few mismatches. I change a number of them to be the same, and things worked great.
Summary:
Check the linking AND compiling flags for not only your project, but the project files that generate the libraries you’re linking against. Differences in compiler settings can cause this error.
If you own a GeForce GTX 1070, you might want to pay attention to this news item as you could be effected by this memory issue.
Some users have reported they noticed occasional flickering or graphical artifacts on multiple brands of the 1070. Right now most of the major vendors are working on (or already issuing) a BIOS firmware update for their graphics cards.
Investigation has shown the issues are graphics memory related. GeForce GTX 1070 cards fitted with Samsung memory do not appear to have any issues but some manufacturers have switched towards Micron chips and these appear to be the culprit. This is noticed most during overclocking the graphics memory subsystem. The problem is in the the speed of the voltage adjustment from the low power idle P-States for memory voltage under load. If you can keep the idle voltage above 0.800V before you apply the overclock, you never see the issue.
A number of manufacturers have been working on VBIOS updates, so be sure to check your vendor:
A number of source websites expose their source via the git:// protocol. Unfortunately, the git protocol recently broke on one I used, but the git http:// protocol was working. Instead of changing my fetching scripts, I found a clever url replacement in git using the following command:
git config --global url.https://gitsite.com/.insteadOf git://gitsite.com/
This allows you to change the protocol per URL instead of globally. Exactly what I needed.
Serial ports are a thing of yesteryear, but never seem to go away. If you have a USB adapter that exposes serial ports to your favorite Linux branch, knowing how to get to them isn’t intuitive.
puTTY is a great terminal emulator, and you can connect to whichever port is exposed using the following format:
sudo putty /dev/ttyUSB0 -serial -sercfg 115200,8,n,1,N
If it’s on a different port, use /dev/ttyUSB1, etc.
As for cables that expose a serial port via USB, I recommend the Sabrent USB 2.0 to Serial (9-Pin) DB-9 RS-232 Converter Cable using the Prolific Chipset.