Very very useful tool. Copy EXE to USB drive and run. An emulator will attempt to boot from the USB drive resulting in either your loaded OS or boot errors.
cherry valley forever

Janaina Medeiros
Game of Thrones Daily
todays bird

blake kathryn
he wasn't even looking at me and he found me

Love Begins
"I'm Dorothy Gale from Kansas"
One Nice Bug Per Day
Monterey Bay Aquarium

@theartofmadeline
Not today Justin

if i look back, i am lost
🩵 avery cochrane 🩵
No title available
wallacepolsom
trying on a metaphor
No title available
Peter Solarz

tannertan36

seen from Australia
seen from Japan

seen from United States
seen from Philippines

seen from Austria

seen from Argentina
seen from United States

seen from Argentina

seen from United Kingdom

seen from United States
seen from Germany

seen from United Kingdom
seen from Malaysia

seen from China
seen from United States
seen from United States
seen from United Kingdom
seen from Australia
seen from Netherlands

seen from T1
@toofn
Very very useful tool. Copy EXE to USB drive and run. An emulator will attempt to boot from the USB drive resulting in either your loaded OS or boot errors.
The best ISO to USB tool I've found.
Troubleshooting 101
When it comes to technical problems there are principles that can be learned to improve how successful and how fast you are in resolving them. I see basic mistakes made all the time which are at best unnecessary and at worst embarrassing. Hopefully the following with give you some guidance if you keep in mind the 3 principles I outline here.
Everything is understandable
Computers are stupid. They can only count in zeros and ones, but they can count ridiculously fast and that’s what makes them valuable. Everything else we have built on top of this speed of calculation, all of the logic, all of the design, we have made.
It’s because of this that it’s possible to account for everything that goes on in a computer system. It may be complicated, but it can be understood. Until the machines rise and conquer the world we are in control of the system.
The number of times I’ve heard “oh it must have had a funny 5 minutes” makes me cringe. Yes something might have gone wrong in those 5 minutes, but there will be a reason for it.
This is where fundamentals and domain knowledge are required. The further you are away from what you are trying to solve the harder it is to make that jump, so knowing your basics and building up your domain knowledge is key. Don’t let questions slip into a black hole. Seek the information you require to build a complete picture.
Divide and conquer
A basic system consists of:
Input -> Processing -> Output
If you have a problem with the Output, there are only two places to look. Choose one, adjust it & replicate safely (which is a whole other topic). Look for patterns. Look for similarities. Use your domain knowledge to adjust parameters accordingly.
Don’t adjust both the Input and Processing at the same time. This sounds basic, and it is, but it’s an easy mistake to make when you’re in a rush or not sure where the problem is. Take your time.
It’s also important to compare like for like.
Follow the links
A system needs links to move data from one place to another. A link could simply be the movement of variables in memory, it could be your browser talking to a web server, it could be a word document being saved to your hard drive.
Just as divide and conquer can help to narrow a problem down, by following the data flow you can learn (sometimes very quickly) just what is happening and where the problem might be.
Programmers use debuggers. System administrators use netstat and network monitor. Whatever tools you have available to you, use them to follow the links.
Report reading club, some random thoughts
Inspired by Peter Siebel's post on his approach to code reading (think Indiana Jones rather than Shakespeare) I decided to try gather together a group of SQL report writers to discuss one of our large, difficult to maintain and often used reports.
I had no idea how the meeting would go but found the experience rewarding and useful. Not only did we uncover the truth behind the previously mysterious report but everyone took something away in terms of their own learning.
When you bring together like minded individuals and let them geek out the results are often very surprising. I'm reminded of a lecture I attended (yes it happened a few times) on soft systems methodology where one of the concepts is understanding that the whole is greater than the sum of the parts.
I'm sure we often underestimate this.
Cloning a hard drive using Redo Backup
I had a need to swap the hard drive on a friend's laptop recently. it was BSODing randomly after booting up for a few minutes, usually when trying to access files from the hard drive. It turns out the hard drive had some bad sectors and no number of chkdsk repairs would fix it so I suggested we swap the hard drive out.
There were numerous ways we could do this, but not knowing the content of the netbook or where important files were stored I didn't want to take the risk of doing a selective backup. Cloning was my preferred choice.
I came across a backup and recovery tool called Redo Backup. It looked exactly what I wanted with a very straight forward GUI.
Having a Windows 7 laptop I downloaded the Redo ISO and then used a tool called Rufus to create a bootable USB stick using the Redo ISO. According to the Redo website they suggest you burn the ISO to CD then boot from it and use their 'Install to USB drive' function. I didn't do this and just went straight from ISO to USB drive using Rufus which worked like a dream.
I did encounter a problem getting Redo to load in the first place. I didn't spend any time looking into why it wouldn't boot by default (upon seeing the Redo boot menu it would hang trying to continue loading) but fortunately there was a safe mode option which worked.
After loading via safe mode the GUI was very straight forward allowing you to either backup or restore. Having connected my external USB drive earlier to backup to I started the process, which over USB2 was going to take a few hours. During this time I did encounter a number bad sectors, hardly unexpected given the reason for cloning in the first place, but what was frustrating was having to acknowledge each bad sector. The fact that Redo wouldn't continue backing up until you did meant that I had to babysit the process.
Once the backup had finished (nearly 8 hours later due to the condition of the old hard drive) I installed the new hard drive and performed a restore. This was very straight forward and finished within a few hours.
I have to say I am impressed by the open source/free software community. The tools that they provide constantly prove invaluable to my work and home technical needs.
Using Notepad++ to re-indent XML
Notepad++ is an awesome piece of software. I don’t know what I’d do without it given the number of scripts I've had to write over the years or the countless text files I’ve had to review and tweak.
I thought I'd collate the information I've found around how the XML re-ident functionality works as it looks like from v5.9.3 the old way of using the TextFX menu would not longer work without manually downloading the libhtml.dll it used. Subsequently there appears to have been a plugin developed called XML Tools that you can use.
I found two posts on stackoverflow that have instructions depending on which route you want to go down:
libhtml.dll - http://stackoverflow.com/questions/7117949/auto-format-indent-for-xml-html-in-notepad/15786901#15786901
XML Tools - http://stackoverflow.com/questions/7117949/auto-format-indent-for-xml-html-in-notepad/8786249#8786249
I now use XML Tools as I struggled to get the libhtml.dll working on Windows 7.
Modify Microsoft Access 2007 linked tables data source when moving server
If you ever need to update all the data sources for a whole load of linked tables in Microsoft Access 2007 then the following script should help:
Sub modifyAllLinkedTables()
Dim objDatabase As Database
Set objDatabase = CurrentDb
Dim objTableDef
For Each objTableDef In objDatabase.TableDefs
If InStr(1, objTableDef.Connect, "server=oldserver") > 0 Then
Dim strModifiedConnect
strModifiedConnect = Replace(objTableDef.Connect, "server=oldserver", "server=newserver", 1)
Debug.Print strModifiedConnect
'Update connection string and refresh link
objTableDef.Connect = strModifiedConnect
objTableDef.RefreshLink
End If
Next
End Sub
Add the code above to your Access Database within a module and call the sub routine directly. The above may work on older and new versions of Access, but it was tested on 2007. If you are using .mdb format DBs you will probably need to add Microsoft Data Access Objects (DAO) 3.6 to your references.
Essentially the script loads a list of Table Definitions, searches through their connection strings locating ones that need updating, updates the connection string and then refreshes the linked table (very important step otherwise Access doesn't save the new connection string).
Citrix Secure Gateway: "The Secure Gateway service terminated with service-specific error 1 (0x1)"
A couple of months ago a change was made to the server running our Citrix Secure Gateway that resulted in the following error when the Secure Gateway service was restarted:
The Secure Gateway service terminated with service-specific error 1 (0x1)
Googling and searching the Citrix forums didn't turn up any results that resolved the issue, so I remembered the motto "If in doubt, Process Monitor it out" and did exactly that.
As the service was starting I ran Process Monitor from Sysinternals to monitor file and registry calls. As I followed the calls for the Secure Gateway executable I noticed the last few filesystem reads were for msvcr71.dll, but it was failing, unable to find it. I ran a search for the DLL and sure enough could not locate it in the filesystem.
Fortunately I had a backup available where I could restore a copy of the DLL into a path the Secure Gateway was looking at and the service started successfully.
A few lessons to learn from this:
Change manage servers more closely. The DLL must have been removed during the change, but there was no record of this at the time
If in doubt, process monitor it out
Backups are invaluable
Multiple monitors with single Citrix desktop
When in the office, I connect my laptop to a 2nd monitor, keyboard and mouse to work in comfort and not hunched over my desk. The extra screen space is very handy, but recently I've had to use apps from both a Citrix full desktop and installed locally on my laptop.
There are a number of ICA file settings that allow you to configure how the Citrix full desktop handles the multiple monitors, but to accomplish the above I found the following works best:
TWIMode=Off DesiredWinType=16 DesiredHRES=1600 DesiredVRES=900 PreferredLaunchMonitor=0
You do need to specify the horizontal and vertical resolution of your screen within the ICA file settings, but this does then restrict the Citrix full desktop to one monitor allowing you to run local applications side by side from the other monitor.
Does Microsoft Office with Software Assurance come with License Mobility?
Short answer
No (as at December 2012)
Long(ish) answer
I recently had a need to confirm this after an Infrastructure as a Service (IaaS) supplier advised that we could not bring our Microsoft Office Software Assurance licenses with us into their IaaS environment. I wasn't able to find on the internet a definitive 'No' within the current Product Use Rights document, however, Licence Mobility is explicitly granted to products such as SQL Server 2012 Standard, SQL Server 2012 Enterprise, etc... Given that Microsoft Office does not have this explicit declaration and that the supplier we have discussed this with has also said the same then I think it's a fair enough assumption.
Still, if anyone is able to find a definitive 'No' regarding Office I'd love to see it.
OS X Mail/Calendar and Outlook Web Access (OWA) 2003
In this current age of technology, we expect, nay, we demand that our data be accessible from any device, any time, anywhere.
Unfortunately for Microsoft Outlook Web Access 2003 users who also use OS X it's not quite that simple to access your Exchange mail, calendar and contact information from Mail/Calendar/Contacts apps.
A quick search of Google would suggest this is a common problem, with few satisfactory answers. Results such as My Struggle: How to synchronize iCal with Exchange? would suggest there are solutions out there but all involve workarounds that are not accessible for the average user. One link I did find though was to a piece of software called DavMail. The software acts as a broker between OWA and your local apps.
I decided to give it a go this morning and much to my delight managed to get it working rather painlessly.
I'm currently running Mountain Lion, with Gatekeeper enabled. Currently you need to disable Gatekeeper the first time you run DavMail (this is unfortunate as this really is the purpose of Gatekeeper in the first place), but once ran you can switch it back on again. After adding your OWA URL into the settings screen, it's then a simple case of configuring your Mail/Calendar/Contacts app with the DavMail localhost URL along with your OWA credentials and then DavMail does the rest.
I've only tested this with Calendars, but so far so good, albeit with a couple of drawbacks:
DavMail needs to be always running in the background. Without further testing it's difficult to say what impact this may have on battery life if you're using a MacBook.
Events added by others appear in your calendar as tentative (at least this is what happened after my first sync).
Sync is very difficult to get right, especially with 3rd party applications who have had to reverse engineer or make assumptions about how each end point interprets the sync protocol. I'm wary of this and for that reason will only use DavMail one way (i.e. read all my events from OWA, I'm not going to update you from OS X, it would be nice if there was a setting to enforce this). If you're looking for a two way sync setup I'd be a little cautious and test thoroughly.
Right now though, it looks DavMail will solve my problem with minimum effort required to setup.
Windows Server 2003 Enterprise & Google Chrome 23.0.1271.64
Seeing problems with Google Chrome install 23.0.1271.64 running on Windows Server 2003 R2 SP2.
Unable to get to the bottom of the problem, but it looks like others are also experiencing the same issue:
http://productforums.google.com/d/topic/chrome/QEBouUfnBgY/discussion
Will update once further information is available.
Update #1 14-Nov-12 22:18
It looks like a problem has been identified and a fix will be released "in the next few weeks". The workarounds for those of us in the meantime are:
Revert back to a working version (22.0.1229.94)
Enable Data Execution Prevention (DEP)
Use the --no-sandbox parameter
Update #2 30-Nov-12 22:07
Little bit late in posting this but Google have released the fix to the their stable branch of Chrome which resolves this issue. I can confirm that having rolled out the latest version you no longer require any of the work arounds above.
It's a lesson to all of us that continuous updating of software without full testing does have it's risks which need to managed just like any other deployment decision.
The VDI Delusion
I've just about finished reading The VDI Delusion (Brian Madden, Gabe Knuth, Jack Madden) and I already feel it's one of the most important books I've read in my IT career.
The reason I say this is that it brings all the VDI hype back to reality. I remember attending sessions from both VMWare and Citrix on their VDI offerings back in 2010 and thinking how cool it was going to be to take the desktop back into the data centre, where they could be managed much more easily, and then hand out cheap, low maintenance thin clients to end users. Of course this hasn't materialised and the book's own low uptake numbers (admittedly guestimates but calculated reasonably) reinforce the fact that VDI is a solution for specific use cases rather than a replacement of traditional PCs.
I particularly like the comment that
a desktop virtualization project is an excellent time to take a step back and look at the habits and processes that you and your department use in your daily life. (page 98)
This for me is an important concept that many non-technical and even semi-technical (the really dangerous kind) will miss. Just because your introducing a new technology does not mean it will automatically fix any underlying architectural problems that already exist. You still have to get the fundamentals right.
Despite the books title the authors are keen to stress that they actually love VDI and really just want it to be understood and deployed with the right level of expectation. This is part of Brian Madden's (and friends) charm that he manages to hammer home the disadvantages and drawbacks about a technology whilst simultaneously acting as an advocate of it.
If your contemplating a desktop virtualisation implementation of any kind (VDI, RDSH, OS streaming, App virtualisation) then I would really recommend you download it to your favourite e-reading device and consume all the advice.
* Please note that the links here are affiliate links. If your thinking of buying the book from Amazon and would like to support this site then using the link above is really appreciated. If you don't, then that's perfectly fine too!
Citrix session 65536 down
Every now and again, I see a Citrix session appear within Citrix Access Management Console with the session number 65536 in a 'down' state. This ID (usually) represents either an RDP or ICA broker connection.
With no other users logged into the server, it's possible to safely reset the session using the following command from the server:
reset session 65536
Check out the content source link from the Citrix support forums for more information.
SQL LEFT JOIN with (missing) NULL values
In SQL, you need to be careful where you place your search condition to filter a result set when using a LEFT JOIN where the joined table includes NULL values.
Why is this cause for concern?
Depending on your data you might get different results returned when filtering your results using the WHERE clause compared to ON.
The reason?
There is something called the Logical Query Processing Phases that describes the steps your SQL query performs when building a result set. The steps are performed in the following order:
1. FROM 2. ON 3. OUTER 4. WHERE 5. GROUP BY 6. CUBE | ROLLUP 7. HAVING 8. SELECT 9. DISTINCT 10 ORDER BY 11. TOP
As a result, a search condition in the ON clause is performed before WHERE. When you couple this with how NULL values are handled in JOINS it's easy to misinterpret your query results.
Pinal Dave has written a good explanation with SQL code of this in his post SQL SERVER – Interesting Observation of ON Clause on LEFT JOIN – How ON Clause affects Resultset in LEFT JOIN.
This has caught me out a couple of time. But no more!
dsget failed:Directory object not found - yet some results return?
Whilst trying to export a list of users from AD using dsquery & dsget I came across the error dsget failed:Directory object not found continuously despite a number of results being returned.
Command ran: dsquery user "ou=Users,ou=CompanyName,dc=company,dc=local" -limit 300 | dsget user -display -samid -disabled -dept -company
I suspected that one of the user objects was to blame, however it wasn't obvious which one as the results being returned were in no obvious order. By adding -scope onelevel to dsquery the list of results was alphabetical and I was able to compare this AD and identify a username with a curly apostrophe rather than a straight one.
Corrected in AD and managed to run the command without error.
SQL LIKE operator wildcards
Whilst being trained to use T-SQL some months back I was informed of the % wildcard available for the LIKE operator that equates to zero or more characters.
This morning, much to my surprise I discovered there are others!
_ (underscore) equates to a single character
[ ] equates to specific characters
[^] reverse of the above (not these characters)
The full list can be found in the excellent MSDN documentation.