Archive for the ‘Development’ Category
Posted by jpluimers on 2015/06/04
Interesting book:
Quote:
This is a comprehensive tutorial on thread programming, containing over 50 example pieces of source code.
Improvements to Version 1.1 include:
Read the rest of this entry »
Posted in Delphi, Delphi 5, Delphi 6, Delphi 7, Development, Software Development | 2 Comments »
Posted by jpluimers on 2015/06/03
Like regular life, a programmer’s life is constant learning. And sometimes you’d wish you had known things earlier.
A few quotes from the article:
Test constantly while coding. Personally, I think the single most important contribution of the Agile movement to programming is communicating the value of developer testing (generally, unit testing). I am not an advocate of TDD and feel that many of the critiques directed at it are valid. But I am a passionate believer in unit testing. Of all the practices here, this is the one that would have served me best in my salad days. The ability to check in code knowing that it’s unlikely to contain silly errors and overlooked conditions allows me to have a much clearer idea of what progress I’ve made. I don’t have to worry nearly as much that there is still an extended debugging cycle of unknown length ahead of me. I now compile with the expectation the code will work the first time, rather than entertaining the fond hope that it might.
Fully automate the pipeline. This seems like unremarkable advice. But it got me to continuous delivery before that concept had a name. I automated build, test, deploy. I also automated updates to the website, to the Javadocs, to just about everything I could possibly update as part of the regular build. While this took a lot of time to write out (using Ant), the payoffs are continual. By having automated everything (well, except for some manual tests) I can build with high confidence in the generated software, even if a given feature is incomplete. I don’t worry at all about fragility. In the future, I expect to automate things even more: I want to write more scripts that simulate all the possible installation options and make sure they all work correctly or provide accurate error messages. Right now, I’m pretty sure they do, but I don’t know for certain because of the absence of this step from the automated pipeline.
–jeroen
via: Things I Wish I’d Known Earlier | Dr Dobb’s.
Posted in Agile, Continua CI, Continuous Integration, CruiseControl.net, Development, msbuild, Software Development, Testing, Unit Testing | 2 Comments »
Posted by jpluimers on 2015/06/02
10 hours left to claim free book
Mastering Ninject for Dependency Injection
What is dependency injection? And what problems can it help you solve? Find out with today’s free eBook, which helps you get to grips with one of the most simple yet effective tools for dependency injection – Ninject. Featuring expert insights and practical guidance to help you use Ninject and dependency injection in your own projects, this is an unmissable free eBook for .Net developers!
–jeroen
via Free Learning | PACKT Books.
Posted in Development, Software Development | Leave a Comment »
Posted by jpluimers on 2015/06/02
Interesting:
Shared Projects
Shared Projects are a new feature of Visual Studio 2013 Update 2. It was initially created to support universal apps apps for both Windows Phone RT and Windows RT, and that’s what most people know about it.
However there is also this genius Visual Studio extension that allows Shared Projects on any .NET project. It means that you can create a project shproj that contains a list of C# files. This file can be referenced by any project and will be included at compile time.
With Shared Projects you are always able to debug through any references code. This makes it very easy to find and fix issues or test new features.
Note that in Visual Studio 2015, this is an official feature: Shared Project : An Impressive Feature of Visual Studio 2015 Preview.
Thanks Matthijs ter Woord for noticing that.
–jeroen
via: The unknown beauty of shared projects in .NETGeert van Horrik.
Posted in .NET, .NET 4.0, .NET 4.5, C#, C# 4.0, C# 5.0, Development, Software Development, Visual Studio 2013, Visual Studio and tools | Leave a Comment »
Posted by jpluimers on 2015/06/01
They days of SHA-1 are quickly coming to an end. Chrome has already marked SHA-1 signed TLS/SSL certificates for having an expiration > 2015-12-31 as insecure for a few weeks now. They promised to sunset SHA-1 about 9 months ago.
So if you haven’t done so, upgrade your HTTPS (and HTTP/2 which defaults to TLS) certificates to SHA-2. A great site of help here is SHAAAAAAAAAAAAA | Check your site for weak SHA-1 certificates. It is open source at GitHub.
You’ve less than 6 months now.
More in dept-reading (especially the comments by Ryan Sleevi): Chrome 42 (next stable) will mark SHA-1 signed certs with a validation date >2015 as insecure!.
–jeroen
PS: if you really need to do the balancing act, you technically can serve old certificates to SHA-2 incompatible clients while serving more secure certificates to modern clients. But it’s a risk, so you might as well tell these old clients they’re out.
Posted in https, Power User, Public Key Cryptography, Security, TLS | Leave a Comment »
Posted by jpluimers on 2015/05/28
A while ago, I was fighting a corporate web proxy playing Man-in-the-Middle on all https sessions.
Though playing MitM on your employees is a debatable thing to do (especially without informing the employees, and illegal in certain countries, I had to get a GIT connection to the outside world working.
This helped tracking it down: GIT_CURL_VERBOSE “unable to get local issuer certificate”.
What I finally did was this:
- obtain the CA certificate that issues the MitM certificate in base-64 CRT form (which is the same as the PEM form):
- added it at the top of either of these files:
"%ProgramFiles%\Git\bin\curl-ca-bundle.crt"
"%ProgramFiles(x86)%\Git\bin\curl-ca-bundle.crt"
- added it to the top of either of these files:
"%ProgramFiles%\Mercurial\cacert.pem"
"%ProgramFiles(x86)%\Mercurial\cacert.pem"
–jeroen
PS: These were the failures I was getting:
Read the rest of this entry »
Posted in *nix, cURL, Development, DVCS - Distributed Version Control, git, PKI, Power User, Security, Source Code Management | Leave a Comment »
Posted by jpluimers on 2015/05/27
From The Zen Of Programming:
The novice thought for a moment. “I will design a new editing program,” he said, “a program that will replace all these others.”
There are different forms of the above.
Think about them for a while.
Then name at least three.
Now go back to work.
–jeroen
via: The Zen Of Programming.
Posted in .NET, Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2015/05/26
Nice question (thanks aplm!), as for instance Gist does not render html:
Pastebin is a useful online tool to paste snippets of text. Pastie is a similar tool. Also, Ideone is similar except that it also runs the source code, as well as being a general pastebin.
Is there a similar tool, for HTML?
And ditto links in the answer (thanks meder!):
Unbelievable that such questions get closed as “not constructive”.
Note I could not get http://www.pastekit.com to work.
–jeroen
via: javascript – Pastebin, but for HTML? – Stack Overflow.
Posted in Development, HTML, HTML5, JavaScript/ECMAScript, JSFiddle, Scripting, Software Development, Web Development | Leave a Comment »
Posted by jpluimers on 2015/05/22
When during a git svn clone you get an error message starting with “RA layer request failed: PROPFIND request failed on” it means you have to set your git svn proxy.
This is in a different location than the git proxy setting (it would be too easy if these were the same, right?).
So you do not get/set it through commands like these:
git config --global --get http.proxy
git config --global http.proxy localhost:3128
Via Cannot do git-svn fetch behind proxy and git svn clone died of signal 11 under cygwin (thanks janos, Fredrik Pihl and User Pavel, I found out that you need to change these files (create the .subversion directory and servers file when they do not exist):
- Windows:
- %HomeShare%\.subversion\servers
- %UserProfile%\.subversion\serverssour
- Linux:
If you ever run in the same problem with the regular SVN client, then you need to change yet different files (why have 1 standard when you can have many?):
- Windows:
- %AppData%\Roaming\Subversion\servers
- Linux:
Ensure a section like this exists and fill in the blanks:
[global]
# http-proxy-exceptions = *.exception.com, www.internal-site.org
http-proxy-host = YOURPROXY.com
http-proxy-port = YOURPORT
# http-proxy-username = defaultusername
# http-proxy-password = defaultpassword
# http-compression = no
# http-auth-types = basic;digest;negotiate
# No http-timeout, so just use the builtin default.
# No neon-debug-mask, so neon debugging is disabled.
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem<
Notes:
In some poorly managed networked environments, the %AppData% environment variable can be wrong, so make sure your Windows profile is not somewhere on a network share.
TortoiseGit seems to use yet another directory for GIT SVN server configuration.
–jeroen
via:
Posted in Cntlm, DVCS - Distributed Version Control, git, Power User, Source Code Management, SourceTree, Windows, Windows-Http-Proxy | Leave a Comment »