After installing WordPress to my website to run a blog on the 28th June, I decided to make the next decision to migrate the whole site.

I had to edit a lot of the page content HTML, mess around with WordPress to get it to run nice, edited a lot of the content as it seemed really out of date and then complete the migration. This involves changes wordpress settings, moving the physical files on the FTP and checking all permalinks work OK.

All done now, and glad as it’s 4:55AM. But well worth it. Have a look around the site, let me know what you think in the comments below. But just to note that ND CMS is no longer operating here… RIP, though the code and database will be kept in backups forever!

Peace and love all,

Niall 🙂

So just thought I’d share this as we’ve been testing Windows 10 as part of the implementation process at work and came across this:

Brilliant – Microsoft are finally acknowledging responsibility for their issues. Although the funny part is, group policy is what’s stopping Microsoft account user creation in this situation.

That is all,

Niall

I was told on Friday morning that Soundcloud was shutting down. Shocked at the news at first, I think I refused to believe it. But it was confirmed to me in the following article: http://variety.com/2017/music/news/soundcloud-has-enough-money-to-survive-only-50-days-report-claims-1202494582/

The above article reports that;

The prognosis on SoundCloud, the popular but financially strapped streaming service, has been grim for all of 2017, with 40 percent of its staff laid off last week and statements from its founders that it may not have enough money to see it through the year. According to a report published Wednesday in TechCrunch, the company may not have enough money to see it through the summer.

I was gutted to find this out, as if you know me I am a long time user of SoundCloud and have uploaded many of my songs. It is a great resource for sharing your music, and listening to many other DIY artists as well as artists that have established a decent fanbase. I know many people who share on SoundCloud, ranging from DJs to producers, to singer/songwriters, I am sure that they will share my feelings on this and want to get to the bottom of it.

After doing some Googling, I couldn’t really find much out about this, apart from the above article. It seemed to be crazy to me that nobody had made an official statement regarding the claims that SoundCloud could only operate for the next 50 days, into the fourth quarter of 2017. It makes me think that SoundCloud really is in trouble, and without the support of it’s user base and funding from pro users and ad revenue – we really could lose it for good. What would this mean for DIY artists, djs and producers then though? After discussion with a few friends about this, we came to the conclusion that we’d probably use YouTube. But it’s not the point, SoundCloud was built for a market – and that market is still there – so why is it struggling so much? Plus YouTube is full of so much variation, so what gives anyone confidence that people would use it to look up independent music in the first place? SoundCloud was always a community to me, people helping eachother out. It’s not like YouTube, Spotify, Deezer, or any other music sharing website. It was built for the people, by the people.

Eventually, I came across this article:  SoundCloud Issues Statement, Says It’s Not Going Anywhere – XXL

This week, the Internet has been in a frenzy after reports surfaced that Soundcloud allegedly only had enough funding until the start of the fourth quarter of 2017. After Chance The Rapper vowed to work on the issue, and claimed to have had a phone conversation with the CEO earlier today (July 14), the streaming service is releasing a statement confirming that the company isn’t shutting down any time soon.

Read More: http://www.xxlmag.com/news/2017/07/soundcloud-issues-statement-not-going-anywhere/?trackback=tsmclip

I have now found this statement, here: https://blog.soundcloud.com/2017/07/14/soundcloud-is-here-to-stay/

Hey everyone,

There’s an insane amount of noise about SoundCloud in the world right now. And it’s just that, noise. The music you love on SoundCloud isn’t going away, the music you shared or uploaded isn’t going away, because SoundCloud is not going away. Not in 50 days, not in 80 days or anytime in the foreseeable future. Your music is safe.

Along with each of you, we’ve built this incredible creative community of artists, podcasters, DJs, producers and more who are the driving force in pushing culture forward in the world. That’s not going to change. Last week we had to make some tough decisions to let go of some of our staff, but we did this to ensure SoundCloud remains a strong, independent company.

Thank you for the outpouring of love and support. Some of you have asked how you can help–spread the word that we’re not going anywhere and keep doing what you’re doing–creating, listening, uploading, sharing, liking, and discovering what’s new, now and next in music. SoundCloud is here to stay.

Peace,
Alex

The above statement didn’t really fill me with too much confidence, for the following reasons;

  • It doesn’t actually say how they expect to keep running into the fourth quarter of 2017, and the “foreseeable future.”
  • It doesn’t define what is “the foreseeable future” – when you think about it, this could be the end of this year, are they seeing how it goes, and trying to brush the problems under the carpet? Who knows? Only the people working at SoundCloud could answer that.
  • They’ve stated that they’ve had to let some staff go, which is an unfortunate step that a lot of companies have to take to ensure that they stay in operation. However, working in the IT industry myself leads me to believe that letting a few staff go is a short-term fix, not one for business continuity. I would imagine that an organisation as big as Soundcloud will have a lot more costs on servers and infrastructure than they will on wages.

One thing that has pleased me to see from the above statement however, is that they’ve stated that “to ensure SoundCloud remains a strong, independent company.”

It’s a good thing that SoundCloud wants to remain independent, after having discussions with a couple of friends regarding this, we thought that perhaps somebody like Google, Apple or Microsoft might snap SoundCloud up. But this wouldn’t necessarily be a good thing. Why? Because operating something for independent artists is never going to work when the focus is on profits. That’s not what independent music is about.

I hope that SoundCloud continues to operate, I really do. But the fact remains that however the future goes, the next quarter is going to be a difficult one for them. In the meantime, take their advice, “keep doing what you’re doing–creating, listening, uploading, sharing, liking, and discovering what’s new, now and next in music.”

Peace and love to you all,

Niall

So, following on from the previous update where I posted a useful batch file to back up files to a specified drive, I have now continued to work on this script and can confirm that it is now possible to backup the files to any location specified. It writes a log file and now has improved error handling. Also, I copied in a fun script which enters the matrix… have a look!

You can download NDBackupScript from https://www.nd.me.uk/filez/backup_script/ – This place will also be updated with any newer versions of the script. It has only been made for use for me at home, so feel free to steal it, put your own name on it, or whatever – but please don’t expect support from me if it goes wrong!

Backs up any of the following:

  • User profile (C:\Users\%username%) BACKUPTYPE=USER-%username%
  • Full HDD/drive (E:\) BACKUPTYPE=FullHDD-<Drive>
  • Custom (specify own location) BACKUPTYPE=CUSTOM-<Custom name>

Backups will then be named with the following format: YYYY-MM-DD-%computername%-[BACKUPTYPE]-script to the desired location.

The command is just one of ROBOCOPY, and this also outputs a log file. Log files for this can be found either in the backup directory or in %temp%\NDBackupScript

In the next update for this, 0.3, I will be adding the ability to select whether or not to copy hidden files or folders.

The code is as follows, feel free to copy it into a notepad and save it as NDBackupScriptv0.2.bat, then double click the file. Alternatively, you can download v0.2 here

Created for myself, but will share. Put this in a batch file or download the latest copy from here and run it to complete any of the following backups:

  • User profile (C:\Users\%username%)
  • Full HDD backup (C:\)
  • Custom backup (Specify own location and backup name)

It uses robocopy, also creating log files.

@ECHO OFF
GOTO script_init
:script_init
CLS
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_started=NONE
SET backup_drive=W
SET backup_confirm=N
SET user_confirm_yes=N
SET final_confirm=N
SET path_created=N
SET path_create=1970-01-01_00-00-00
SET backup_src=C:\Users\%username%
SET backup_start=1970-01-01_00-00-00
SET backup_complete=1970-01-01_00-00-00
SET custom_src=C:\Users\%username%\Desktop
SET script_start=%fullstamp%
SET script_restart_prompt=N
SET backup_success=N
SET backup_logs=C:\Users\%username%\AppData\Local\Temp\NDBackupScriptLogs
SET backup_logs_created=N
SET backup_logs_create=1970-01-01_00-00-00
SET robocopy_log_date=%fullstamp%
SET robocopy_logs=%backup_logs%\%fullstamp%-Backupscript-robocopy.log
SET custom_backup_name=CUSTOM-%timestamp%
SET hdd_src=E
SET log_file=%backup_logs%\%fullstamp%-backupscript.log
IF NOT EXIST %backup_logs% (
ECHO Creating backup script logs directory %backup_logs%...
MKDIR %backup_logs%
IF ERRORLEVEL 0 (
SET backup_logs_created=Y
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_logs_create=%fullstamp%
) ELSE (
GOTO script_restart
)
)
ECHO Backup script by Niall Davies (c) 2017
ECHO Script started at %fullstamp%
ECHO ------------------------------------
:backup_drive_prompt
ECHO ---------------------------------
ECHO Please confirm the drive letter that you will back up to. (selected is %backup_drive%)
SET /P backup_drive= Enter the drive letter [W]:
GOTO backup_drive_confirm
:backup_drive_confirm
ECHO -------------------------------------
ECHO Please confirm either Y or N, is the drive %backup_drive%:\ correct? (default is N)
SET backup_confirm=N
SET /P backup_confirm= Y/[N]:
:backup_init
IF "%backup_confirm%"=="N" (
GOTO backup_drive_prompt
) ELSE (
GOTO backup_choice
)
:backup_choice
SET backup_started=NONE
ECHO -------------------------------------
ECHO Please select one of the available following options...
ECHO 1. User profile backup.
ECHO 2. Full HDD backup.
ECHO 3. Custom backup.
ECHO 4. Restart script (clear CMD window).
ECHO 5. Exit script.
CHOICE /C 12345 /M "Enter your choice:"
:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 5 GOTO end
IF ERRORLEVEL 4 GOTO script_restart
IF ERRORLEVEL 3 GOTO custom_backup
IF ERRORLEVEL 2 GOTO full_hdd_backup
IF ERRORLEVEL 1 GOTO user_profile_backup
:user_profile_backup
ECHO ----------------------------------
ECHO User profile backup selected.
ECHO This will backup C:\Users\%username% and all contents to the %backup_drive%:\ drive.
ECHO Please confirm that you would like to start the backup of the %username% profile by typing "Y"
SET user_confirm_yes=N
SET /P user_confirm_yes= Y/[N]:
GOTO user_backup_process
:user_backup_process
IF %user_confirm_yes%==N (
GOTO backup_choice
) ELSE (
SET backup_started=USER_PROFILE_%username%
SET backup_src=C:\Users\%username%\
SET backup_appended=Profile-%username%
GOTO backup_process
)
:full_hdd_backup
ECHO ----------------------------------
ECHO Hard drive backup selected.
ECHO Please enter the drive letter of the HDD that you would like to backup. Default is %hdd_src%
SET /P hdd_src= Drive letter [%hdd_src%]:
ECHO This will backup %hdd_src%:\ and all contents to the %backup_drive%:\ drive.
ECHO Please confirm that you would like to start the backup of the %hdd_src%:\ drive?"Y"
SET user_confirm_yes=N
SET /P user_confirm_yes= Y/[N]:
GOTO full_hdd_backup_process
:full_hdd_backup_process
IF %user_confirm_yes%==N (
GOTO backup_choice
) ELSE (
SET backup_started=FULL_HDD_%hdd_src%
SET backup_src=%hdd_src%:\
SET backup_appended=HDD-%hdd_src%
GOTO backup_process
)
:custom_backup
ECHO ----------------------------------
ECHO Custom backup selected.
ECHO Please enter the path of the folder that you would like to backup. Default is %custom_src%
SET /P custom_src= Path:
ECHO This will backup %custom_src% and all contents to the %backup_drive%:\ drive.
ECHO Please confirm that you would like to start the backup of %custom_src% by typing "Y"
SET user_confirm_yes=N
SET /P user_confirm_yes= Y/[N]:
GOTO custom_backup_process
:custom_backup_process
IF %user_confirm_yes%==N (
GOTO backup_choice
) ELSE (
ECHO Please enter a name for the backup:
ECHO If none specified, name will be %custom_backup_name%
SET /P custom_backup_name= Name:
GOTO custom_backup_processed
)
:custom_backup_processed
SET backup_src=%custom_src%\
SET backup_appended=%custom_backup_name%
SET backup_started=CUSTOM_%custom_backup_name%
GOTO backup_process
:backup_process
ECHO ---------------------------------
ECHO Getting current date stamp...
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
ECHO datestamp: "%datestamp%"
ECHO timestamp: "%timestamp%"
ECHO fullstamp: "%fullstamp%"
ECHO ----------------------------------
ECHO Starting backup...
SET backup_date=%datestamp%
SET backup_start=%fullstamp%
SET backup_name=%backup_date%-%computername%-%backup_appended%-script\
SET backup_path=%backup_drive%:\%backup_name%
SET backup_logs=%backup_path%.scriptlogs
SET robocopy_logs=%backup_logs%\%fullstamp%-ROBOCOPY.log
IF NOT EXIST %backup_path% (
ECHO Creating backup directory %backup_path%...
MKDIR %backup_path%
IF ERRORLEVEL 0 (
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
ECHO Creating backup logs directory %backup_logs%...
MKDIR %backup_logs%
IF ERRORLEVEL 0 (
SET path_created=Y
SET path_create=%fullstamp%
SET backup_logs_created=Y
) ELSE (
GOTO backup_failed
)
) ELSE (
GOTO backup_failed
)
)
IF NOT EXIST %backup_logs% (
ECHO Creating backup logs directory %backup_logs%...
MKDIR %backup_logs%
IF ERRORLEVEL 0 (
SET backup_logs_created=Y
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_logs_create=%fullstamp%
SET robocopy_logs=%backup_logs%\%fullstamp%-ROBOCOPY.log
) ELSE (
GOTO backup_failed
)
)
ECHO The script will now copy files from %backup_src% to %backup_path%
ECHO Final check. Are you sure you wish to continue?
SET /P final_confirm= Y\[N]:
GOTO backup_run
:backup_run
IF %final_confirm%==N (
GOTO script_restart
) ELSE (
ECHO Preparing to copy files from %backup_src% to %backup_path%
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_start=%fullstamp%
SET robocopy_log_date=%fullstamp%
ECHO Running command: "ROBOCOPY %backup_src% %backup_path% * /E /COPY:DAT /Z /R:3 /W:15 /LOG:%robocopy_logs%"...
ROBOCOPY %backup_src% %backup_path% * /E /COPY:DAT /Z /R:3 /W:15 /LOG:%robocopy_logs%
IF ERRORLEVEL 0 (
SET backup_success=Y
GOTO backup_finished
) ELSE (
GOTO backup_failed
)
)
:backup_failed
ECHO -------------------------------------
ECHO Backup failed or there were errors in the backup.
ECHO Please check the log files and try again.
ECHO The log files can be found in %backup_logs%
ECHO Particulariliy %robocopy_logs% if it got that far.
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_complete=%fullstamp%
IF %path_created%==Y (
ECHO Backup directory %backup_path% was created at %path_create%
)
IF %backup_logs_created%==Y (
ECHO Backup logs directory %backup_logs% was created at %backup_logs_create%
)
GOTO end
:script_restart_process
IF %script_restart_prompt%==N (
GOTO end_complete
) ELSE (
GOTO script_restart
)
:backup_finished
ECHO -------------------------------------
ECHO Backup was completed.
ECHO Backed up files and directories from %backup_src% to %backup_path%
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET backup_complete=%fullstamp%
ECHO ----------------------------------
IF %path_created%==Y (
ECHO Backup directory %backup_path% was created at %path_create%
)
IF %backup_logs_created%==Y (
ECHO Backup logs directory %backup_logs% was created at %backup_logs_create%
)
ECHO Backup started at %backup_start%
ECHO Backup finished at %fullstamp%
ECHO The log files can be found in %backup_logs%
MSG %username% ND Backup Script: Backup from %backup_src% to %backup_path% started at %backup_start% and completed at %fullstamp%
SET backup_success=Y
GOTO end
:script_restart
ECHO Script restarting...
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
ECHO ----------------------------------
ECHO Script started at %script_start%
ECHO Script finished at %fullstamp%
ECHO -------------------------------------
GOTO script_init
:end
ECHO ---------------------------------
FOR /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
SET "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
SET "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
SET "datestamp=%YYYY%-%MM%-%DD%" & set "timestamp=%HH%%Min%%Sec%"
SET "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
SET log_file=%backup_logs%\%fullstamp%-backupscript.log
ECHO Writing to log file %log_file%...
ECHO ND Backup script 2017 >> %log_file%
ECHO Running as %username% >> %log_file%
ECHO Script started at %script_start% >> %log_file%
ECHO Log files location: %backup_logs% >> %log_file%
ECHO Backup drive selected: %backup_drive%:\ >> %log_file%
ECHO Backup selected: %backup_started% >> %log_file%
IF %path_created%==Y (
ECHO Backup directory %backup_path% was created at %path_create% >> %log_file%
)
IF %backup_logs_created%==Y (
ECHO Backup logs directory %backup_logs% was created at %backup_logs_create% >> %log_file%
)
IF %backup_started%==NONE (
ECHO Backup not started. >> %log_file%
) ELSE (
ECHO Backup started at %backup_start% >> %log_file%
ECHO Backup finished at %backup_complete% >> %log_file%
ECHO Backup source: %backup_src% >> %log_file%
ECHO Backup location: %backup_path% >> %log_file%
ECHO Robocopy logfile: %robocopy_logs% >> %log_file%
ECHO Robocopy command: "ROBOCOPY %backup_src% %backup_path% * /E /COPY:DAT /Z /R:3 /W:15 /LOG:%robocopy_logs%" >> %log_file%
IF %backup_success%==Y (
ECHO Backup was successful! >> %log_file%
) ELSE (
ECHO Backup failed or completed with errors. Please check the Robocopy log file. >> %log_file%
)
)
ECHO Script finished running at %fullstamp% >> %log_file%
ECHO ---------------------------------- >> %log_file%
ECHO ----------------------------------
ECHO Script started at %script_start%
ECHO Script finished at %fullstamp%
ECHO ---------------------------------
ECHO Would you like to restart this script?
SET /P script_restart_prompt= Y\[N]:
GOTO script_restart_process
:end_complete
PAUSE