Archive for June, 2011
Posted by jpluimers on 2011/06/30
Doing a re-haul of a Delphi project from almost 15 years ago, and some modifications a few year later, I came across a list of favourites I used back then.
It also reminded me when beginning that project, there was no Google Search; you had Yahoo Search, HotBot and later on Northern Light, but AltaVista was the best.
Finding your way around was much harder, but luckily later on Google Search was there
So here is a sample of how static the web is:
I was pretty amazed that most of the links still work!
–jeroen
Posted in Delphi, Development, Power User, Software Development | 4 Comments »
Posted by jpluimers on 2011/06/29
A client uses Serena Dimensions, and though the Windows and Web clients are very usable (the 2009 version actually feels a lot faster than version 8), often it is nice to do some of the work on the command-line.
They have the DMCLI tool for with documentation, but that is not available on-line.
There is not a lot of on-line DMCLI documentation available, so here are some links I used to get going:
–jeroen
Posted in Development, Dimensions CM by Serena, Source Code Management | Leave a Comment »
Posted by jpluimers on 2011/06/28
Weaving extends your program adding new functionality.
It can be at different levels for difference purposes (AOP, Debugging, Automated Testing, etc).
This .net – What is IL Weaving? question on StackOverflow contains a few pointers to interesting reading material.
–jeroen
Posted in .NET, Debugging, Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2011/06/27
Regression tests are useful, especially before release.
Clearly someone forgot to regression test the Issue 47714 – chromium – maximize bug while loading webpage on windows 7, as after a while of absence, Chrome 12 reintroduced this issue (it is present in all versions of Chrome 12 I tested, until at least 12.0.742.100).
Workarounds:
- Maximize the window, then enter a URL
- Wait for Chrome to fully load the URL, then maximize.
–jeroen
Posted in Chrome, Power User, Web Browsers, Windows, Windows 7 | Leave a Comment »
Posted by jpluimers on 2011/06/24
I just openened my 1.5TB Iomega® Prestige™ SuperSpeed USB 3.0 Portable Hard Drive to check out what is inside, and if the HDD would fit in my ThinkPad W701.
The answer to the latter is no: the drive is almost 15mm high, and the Serial UltraBay Enhanced bay only fits 12.5 mm drives.
The drive inside is a Seagate 1.5TB FreePlay ST1500LM003 drive.
Funny (by the way: be very cautious when a programmer says that), as the Seagate site has absolutely no reference of FreePlay drives.
The only link with tech specs I could find was on the MacSales site from OWC (the same store that got me a Mac Mini Server memory upgrade).
It looks like it is a OEM product containing 4 platters, and therefore is 14.8mm high.
It makes of a great HDD for a home theatre PC though: silent, low power, etc.
–jeroen
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/23
Recently there was a nice Slight confusion over reference types and value types in the C# spec on StackOverflow.
Summary:
When structs are value types, but interfaces are reference types, how can a struct implement an interface and still be a value type?
The answer is boxing: when a reference to a struct is needed, a reference object is automatically created, and the value of the struct is box-wrapped into it.
This automatic boxing is really nice, but be aware that when frequently doing this, it can have a huge performance impact.
Thanks Abhina Basu for blogging about boxing structs having interfaces, and the many volunteers on StackOverflow explaining about boxing.
–jeroen
Posted in .NET, C#, Development | Leave a Comment »
Posted by jpluimers on 2011/06/22
Danny Thorpe recently wrote a very nice post on via Databinding Collection Properties in WPF that sometimes fail without warning.
The short summary is that this fails without warning when binding to properties that do not explicitly implement the IList interface, for instance when binding to a collection that supports only IEnumerable (because of yield return) or IList<T> (for instance when binding to a Dictionary<TKey, TValue>.Values, which implements IList<T>, but not IList).
Thanks Danny for blogging about this (he explains it way better than I can), and putting a warning that the workaround Dictionary<TKey, TValue>.Values.ToList() potentially can have a big impact on memory consumption.
Life would be so much easier if WPF could bind to IEnumerable or IList<T> :)
–jeroen
via: Databinding Collection Properties » Danny Thorpe.
Posted in .NET, Development, Software Development, WPF | 2 Comments »
Posted by jpluimers on 2011/06/21
I’ve been working on a project that uses both COBOL and Delphi.
For documentation purposes, Syntax Highlighted code makes your code so much easier to read.
Delphi has GExperts for source code export (in either HTML or RTF), but it took me a while to find a good syntax highlighter for COBOL.
I finally found a COBOL syntax highighter at tohtml.com: it exports to HTML.
I’m glad I found that site, as they have a ton of syntax highlighters, divided into groups.
Quite amusing to see COBOL classified as ‘rare’ (given that it has one of the largest code bases in the world).
This is what they support:
- main: Java
- main: C
- main: Visual Basic
- main: PHP
- main: C++
- main: Perl
- main: Python
- main: C#
- main: Ruby
- main: JS.NET
- main: VB.NET
- main: Pascal
- main: JavaScript
- inet: html
- inet: css
- inet: css for html
- inet: css for svg
- inet: jsp
- inet: xhtml transitional
- inet: xhtml strict
- inet: xhtml frameset
- inet: asp – VBScript
- inet: asp – JavaScript
- inet: asp – PerlScript
- inet: SVG 1.0
- inet: ColdFusion
- inet: ActionScript
- inet: VBScript
- xml: xml
- xml: dtd
- xml: xslt 1.0
- xml: XML Schema
- xml: Relax NG
- xml: xlink
- database: Clarion
- database: Clipper
- database: FoxPro
- database: SQLJ (Java sql)
- database: Paradox
- database: SQL, PL/SQL
- database: MySQL
- scripts: Batch/Config.sys/NTcmd
- scripts: sh/ksh/bash script
- scripts: Apache httpd.conf
- scripts: Config, INI and CTL
- scripts: Colorer HRC
- scripts: Colorer HRD
- scripts: Delphi form
- scripts: Java Compiler Compiler
- scripts: Java properties
- scripts: Lex
- scripts: YACC
- scripts: makefile
- scripts: Regedit
- scripts: Resources
- scripts: TeX
- scripts: OpenVMS DCL
- scripts: VRML
- scripts.install: RAR Install Script
- scripts.install: Nullsoft Install Script
- scripts.install: InnoSetup script
- scripts.install: IS script
- rare: ASM
- rare: 1C
- rare: Ada
- rare: ABAP/4
- rare: AutoIt 2.x
- rare: AWK
- rare: Dssp
- rare: ADSP-21xx Asm
- rare: Baan
- rare: Cache/Open-M
- rare: Cobol
- rare: Eiffel
- rare: Forth
- rare: Fortran
- rare: Haskell
- rare: Icon
- rare: IDL
- rare: Lisp
- rare: MatLab
- rare: Modula2 and Oberon2
- rare: PicAsm
- rare: Rexx
- rare: Standard ML
- rare: OCaml
- rare: Tcl/Tk
- rare: Sicstus Prolog
- rare: Turbo Prolog
- rare: Verilog HDL
- rare: VHDL
- rare: z80asm
- rare: asm80
- rare: 8051 asm
- rare: AVR asm
- other: files.bbs
- other: Diff/Patch
- other: message
- other: plain text
- other: default type
–jeroen
Posted in COBOL, Delphi, Development, Software Development | 6 Comments »
Posted by jpluimers on 2011/06/20
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/17
Recently, I upgraded from a T61p laptop to a W701.
Moving the HDD to the new system was relatively straight forward: you get a 0xC000000E error during boot because the BIOS HDD setup by default is in RAID mode; switching it to AHCI lets you boot fine.
I installed the drivers needed for the new hardware and uninstalled all the unneeded drivers.
Still the system kept complaining with this message from:
[SoundMAX]
The SoundMAX audio driver did not load. You may need to reinstall SoundMAX.
[ ] Do not show this message again
[Close]
Disabling is not a good solution: it is a per user setting in the Registry, so logging in as a different user will still bring up the same message.
The real solution is to remove the remnants that the uninstall of the SoundMAX driver package left around.
Process Explorer from SysInternals has a nice “Find Window’s Process” feature to find out which process did show the message, and the executable started for that process: ”C:\Program Files (x86)\Analog Devices\Core\smax4pnp.exe“
Then I used autoruns from SysInternals to find where smax4pnp.exe was started from: a Registry entry under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run: SoundMAXPnP containing the above path.
I deleted that registry key from within autoruns, moved the ”C:\Program Files (x86)\Analog Devices” directory tree to the recycle bin using Windows explorer, then rebooted: problem solved.
–jeroen
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/16
Today, a lot of articles and blogs will mention IBM’s 100th birthday.
My first encounter were their Selectric typewriters, followed by their PC and AT computers at high-school and university, both setting standards for personal computing.
I’ve used their AS/400 machines (via iSeries now named System i, and merged into their IBM Power Systems), RS/6000 (now System p) and mainframes (via zSeries now named System z) too.
However, being mainly on the PC side, I got totally addicted to their keyboards and to their ThinkPad line of machines that – as part of IBM’s PC devision – got sold to Lenovo, and their hard drives (which got sold to HGST and are now part of Western Digital).
IBM still do a lot of research, which sets them apart from many other IT companies.
I love that, as a lot of good things has come from it: just google it or browse their lists with highlights on their research accomplishments.
Happy birthday IBM.
–jeroen
Posted in About, Opinions, Personal | Leave a Comment »
Posted by jpluimers on 2011/06/16
Sometimes when you want to release a network drive you get an error message that something still uses it:
C:\>net use h: /d
The device is being accessed by an active process.
More help is available by typing NET HELPMSG 2404.
Finding out about that something is the trick.
Luckily, Process Explorer allows you to search for handles pointing to resources that start with \device\lanmanredirector, as ASK-LEO explains.
–jeroen
Posted in Power User, Windows, Windows 7, Windows Vista, Windows XP | Leave a Comment »
Posted by jpluimers on 2011/06/15
When visting the Dutch TMobile site for viewing MMS messages, you get a big security message indicating their certificate has expired.
In fact, it expired on 20110612.
For me it is unbelievable that nobody at TMobile has been able to get the renewed certificate on-line yet!
In Google Chrome the message reads like this:
The site’s security certificate has expired!
You attempted to reach mmcp2.mms.t-mobile.nl, but the server presented an expired certificate. No information is available to indicate whether that certificate has been compromised since its expiration. This means Google Chrome cannot guarantee that you are communicating with mmcp2.mms.t-mobile.nl and not an attacker. You should not proceed.
Help me understand
When you connect to a secure website, the server hosting that site presents your browser with something called a “certificate” to verify its identity. This certificate contains identity information, such as the address of the website, which is verified by a third party that your computer trusts. By checking that the address in the certificate matches the address of the website, it is possible to verify that you are securely communicating with the website you intended, and not a third party (such as an attacker on your network).
For a certificate which has not expired, the issuer of that certificate is responsible for maintaining something called a “revocation list”. If a certificate is ever compromised, the issuer can revoke it by adding it to the revocation list, and then this certificate will no longer be trusted by your browser. Revocation status is not required to be maintained for expired certificates, so while this certificate used to be valid for the website you’re visiting, at this point it is not possible to determine whether the certificate was compromised and subsequently revoked, or whether it remains secure. As such it is impossible to tell whether you’re communicating with the legitimate web site, or whether the certificate was compromised and is now in the possession of an attacker with whom you are communicating. You should not proceed past this point.
–jeroen
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/15
I’ve done quite a bit of mobile research development lately, so it was good to come accross the Top 10 Mobile Internet Trends (Feb 2011) slide deck.
Looking into the future is always surrounded with a lot of uncertainty, but that deck has quite some interesting data.
–jeroen
Posted in Development, Mobile Development | Leave a Comment »
Posted by jpluimers on 2011/06/14
A while ago, I needed some generic way of parsing data that could result instancef of both regular ordinal and nullable ordinal types.
Luckily there was a nice question about this on StackOverflow, of which I liked this answer (source code below) much more than the accepted answer: concise, elegant, period.
public static T? Parse(this string text) where T: struct
{
object o = null;
try {
var ttype = typeof(T);
if (ttype.IsEnum)
{
T n = default(T);
if (Enum.TryParse(text, true, out n))
return n;
}
else
o = Convert.ChangeType(text, ttype);
}
catch { }
if (o == null)
return new Nullable();
return new Nullable((T)o);
}
–jeroen
Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2011/06/13
James Clements explains how to resize your VMware ESXi/ESX/vSphere disks.
You can resize the disks live when using ESXi/ESX/vShere 4 and up.
When using Windows Vista or 2008 and up, you don’t need special tools for resizing the partitions on those disks: the built-in disk manager can do it.
When using Windows 2003 Server, Windows XP or less, then you need the EXTPART tool from Dell as explained by GeekSeat:
All you need to do now is provision the extra space to the VM, then run the tool at the command line and follow the wizard:
C:\>extpart.exe
ExtPart - Utility to extend basic disks (Build 1.0.4)
(c) Dell Computer Corporation 2003
.
Volume to extend (drive letter or mount point): c:
Current volume size : 66285 MB (69504860160 bytes)
Current partition size : 76285 MB (79990815744 bytes)
Size to expand the volume (MB): 76285
that’s it – job done . . zero downtime (watch out of course . . this works differently if you have a clustered disk to extend – see: http://geekseat.wordpress.com/2011/01/25/replacing-clustered-storage-for-a-sql-cluster-emc-ce-ms-clustering/ )
Note the “Size to expand” is actually the number of MB you are adding to the volume as Redelijkheid explains.
There is no need to reboot after expanding using ExtPart.
Edit: 20111222; you can download ExtPart through the DELL web-site; there are also direct http downloads of the EXE and README, and direct ftp downloads for the EXE and README.
If you don’t trust ExtPart, there is always the GParted way as explained by BleepingComputer.com.
–jeroen
via: JJClements.co.uk » VMware ESX vSphere resize disk.
Posted in ESXi4, Power User, VMware | 2 Comments »
Posted by jpluimers on 2011/06/10
In the past the Office 2003 Proofing Tools contained the proofing and grammar tools for many languages.
Not so any more since Office 2007 and up.
So when needing the non-English proofing and grammar tools for a particular VM, I trapped into the same pit I fell in before: downloading the Office Language Pack 2010, I only got the English proofing and grammar tools instead of the tools for many languages.
Downloading them from Technet or MSDN for a particular language is of course easy: for each language you need:
- in the “Languages” combobox, select your language
- download the Office Language Pack for that language
Duh
After that, be sure to switch back the language to your default preferred language
–jeroen
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/09
If you love the Delphi books by Marco Cantu as much as I do, then you certainly will love that Marco has created a public SVN repository at code.marcocantu.com containing all the samples of his Delphi 6, 7, 2007, 2009, 2010 and XE books.
Way to go Marco!
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2011/06/08
Earlier this week, the new GExperts 1.35 Release got published: a free set of expert extensions supporting Delphi 6 through XE.
It is an incremental release has a few new features of which I like the new subgroup support in the Grep Search extensions most.
Now hopefully, Thomas Müller will release an experimental GExperts build of version 1.35 soon: his experimental builds integrate a source code formatter that works across many Delphi versions and often formats better than the one included in Delphi 2010 and up.
–jeroen
Posted in Delphi, Development, Software Development | 4 Comments »
Posted by jpluimers on 2011/06/07
I just came across the great new Delphi sorcery blog by Stefan Glienke from Soest, NRW, Germany.
He uses some cool new features recently introduced into Delphi for new ways of DataBinding, Yield-Return, Delphi Lambda Expressions, Delphi Dependency Injection with MEF and more.
Sample code is at his Delphi Sorcery Google Project.
I hoped that somebody would do all that, as this shows the real power of what Delphi can do.
Now it’s there for
–jeroen
Posted in Delphi, Development, Software Development | 1 Comment »
Posted by jpluimers on 2011/06/06
In the past, I used checkdns.net for testing of a domain was configured correctly (including DNS and MX settings).
However, checkdns.net seems to be down or dead.
Luckily, intoVPS (with VPS servers in Amsterdam (Netherlands), Atlanta (USA), Cluj-Napoca (Romania) and Fremont (USA)) started lauched intoDNS a few years ago, and it works at least as good as checkdns.net used to work.
–jeroen
via: intoDNS: checks DNS and mail servers health.
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/03
On both the Microsoft MCP site as well as the WordPress site, I recently had to delete all my cookies, and restart my browser to get those sites working again.
I hate that!
–jeroen
via: Cookie Monster Nightmare | Flickr – Photo Sharing!.
Posted in Power User | Leave a Comment »
Posted by jpluimers on 2011/06/02
I really enjoyed reading the How To Write Unmaintainable Code essay which is mostly a copy of the original materials at the unmaintainable code pages from the MindProd jgloss library.
Whereas the essay is all on one page and really easy to read, the original is not: somehow not only the unmaintainable portion of the MindProd site is unusually hard to navigate around. I’m not sure why: maybe that’s why the content is so good?
Try both sources and let me know what you think.
–jeroen
Posted in Development, Software Development | Leave a Comment »
Posted by jpluimers on 2011/06/01
When you think Skype is down, check the Heartbeat – check the life signs on Skype products page first.
–jeroen
Posted in Power User | Leave a Comment »