Electric Skateboard

Bill Of Materials

This assumes you already have a deck, some tools, and a way to charge the battery.

Total cost for this build was around $250 minus the charger, which gives you a battery and a motor that’s around double the capacity and power of the cheap stuff you can order online.

Yes I realize the pulley should be on the other side, but there is no way with this motor to make that happen because the shaft is too short and the mount only attaches properly on this side. It’s not ideal, but it works. Remember to tie your shoelaces tight. Or just buy the good motor from hobbyking for 3X the price.


More photos, video, and build guide coming soon.

Battery Holder $30, a bit pricey but holds everything almost perfectly.

Electric Motor $26 on sale

Single Motor Controller with Remote Control $33 on sale

Calibur Trucks $44, these are needed to get the mount to fit right

Battery $49 on sale. Biggest capacity I could find, hopefully not drawing too much current from it

Hobbyking eSK8 kit $40 on sale, nearly always sold out šŸ™

You’ll need a balance charger and leads for charging the battery, these are the ones I got:

XT60 Y cable one end goes into the battery, one into the controller board, and one hangs out the side to plug in the charger.

balance charger board with plug

You’ll need some kind of plug for the balance lead, this is easy enough.

balance lead extension cables You’ll want balance lead extension cables unless you make your own.

you also need a 4mm banana plug to female xt60, unless you change the end on the Y adapter. I had real trouble finding one on amazon, you might have to make your own.

ezlok nutserts

I think these are the shortest ones they have. You may have to epoxy glue them in depending on how hard your deck is, as screwing them in can be difficult in harder woods.

screws that fit the nutserts
These are really good screws and they are black.

Get an exacto knife for cutting plastic.

You’ll also want some blue locktite and a good set of sockets and allen keys.

More soon!

Get a full text dump of all safari cloud tabs from other devices like iphone, ipad, or other mac

The data is stored in ~/Library/Safari/CloudTabs.db which is an SQLite database that can be opened with the free tool DB Browser for SQLite

Once you have it opened you can dump out the URLS by going to the Browse Data tab, opening the cloud_tabs Table and copying out the URL column. 

If you use OneTab You can even copy out the title field as well, dump it in Excel, put the URL field in column A, a | in column B and the Title in column C

copy that to the clipboard, dump it into your favorite text editor, do a find and replace on the | and replace the tabs with spaces,

then copy the whole thing into OneTab.

dump your list in there and then you can open them all at once or browse at your leisure.

I found an Alfred Workflow that automates this and edited it to dump the output to a text file on my desktop that I can then open and import into OneTab.

The main thing I changed was to output to text instead of markdown, and the format of the outtext at the end. Thanks to kmarchand for the code.

outtext += '%s | %s\n' % (tab['URL'], tab['Title'])
outtext += '\n'

Now I can just open the file and dump it into OneTab. Next step will be working out how to automate that.

MAS and Director integration

doesn’t seem to work on just HTTP
Needs a host file or DNS to be done if using wildacrd cert.
Needs cert chain to be correct.
Can’t use a pfx cert on MAS even though you can on netscaler, so export the wildcard.pfx.ns cert off the netscaler and rename it to a .pem then import to MAS, which will then reboot.

Need to run the exe in C:\inetpub\wwwroot\Director\tools

Use the parameter /confignetscaler from command line.
add MAS FQDN and select secure.


If it doesn’t work you’ve probably got either SSL or DNS errors (or both!)

device registration error with server 2016 and Windows 10 0x801c001d10

It looks like there is a bug in Windows 10 / Server 2016 where it automatically tries to register as a device with Azure for some reason.
Not a lot of info out there on it.

It’s related to a scheduled task. If you disable the task, logins through Server 2016Ā and your Windows10 VDI will work again.

The Scheduled Task “Automatic-Device-Join” is located in: Task Scheduler Library\Microsoft\Windows\Workplace Join.

The task calls %SystemRoot%\System32\dsregcmd.exe.

The work-around is disable the task or configure the GPO Computer Configuration > Administrative Templates > Windows Components > Device Registration.

Help text from the GPO:
This setting lets you configure how domain joined computers become registered as devices. When you enable this setting, domain joined computers automatically and silently get registered as devices with Azure Active Directory. Note: Additional requirements may apply on certain Windows SKUs. Refer to Azure Active Directory Device Registration Overview. http://go.microsoft.com/fwlink/?LinkId=307136

Notes to self

When using pvs with ram cache overflow to disk, be sure to assign the disk a drive letter before running the imaging wizard. Failure to do so can cause a bluescreen.

When using a client configured netscaler make sure to check if Client IP is configured globally. This can really messĀ up routing if you’re not expecting it. You can turn it off per service.

If your login isn’t working or you get “cannot complete your request” message from StoreFront after logging in via the Netscaler, check to make sure you are in the correct AAA group. This should be your first troubleshooting step.


How to Update XenDesktop MCS Master Image for Dedicated and Pooled Machine Types using PowerShell SDK Console

Iā€™ve called Citrix Support about this exact issue several months ago and was told there isnā€™t a supported way to do it and I would have to create a new machine catalog.

It turns out that isnā€™t correct!

There is a fairly simple way point to a new snapshot with PowerShell.

You may need to stop any Provisioning Tasks and remove them. They can get stuck when they canā€™t find the snapshot.


Get-ProvTask -Active $True

To see if you have any active tasks on your provisioning scheme

If you do, run

Stop-ProvTask -TaskId UidGoesHere


Remove-ProvTask -TaskId UidGoesHere

After that you should be good to go with the commands from here http://support.citrix.com/article/CTX129205

Publish-ProvMasterVmImage -ProvisioningSchemeName "%provisioningSchemeName%" -MasterImageVM "%templatePSPath%"


Publish-ProvMasterVmImage -ProvisioningSchemeName win7_new ā€“masterimagevm XDHyp:\hostingunits\NEW\NEW-Win7.vm\existing.snapshot\Citrix_XD_win7- pooled.snapshot\Citrix_XD_win7-pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot

Hopefully this helps anyone that will inevitably run into this!

Full text of the CTX article below in case it disappears.


Complete the following procedure to update the master image on Dedicated or Pooled machine types using PowerShell SDK:

Note: Changes applied to the master image of a Dedicated Catalog takes effect only for the new machines created from the image. These changes are not applied to the existing machines in the Catalog.

  1. Modify the master Virtual Machine or new virtual machine with the required changes.
  2. Take a snapshot of the modified virtual machine.
  3. Start PowerShell on Delivery Controller (Controller).
  4. Run command Add-PSSnapIn citrix*.
  5. Run command Get-ProvScheme.

    This displays a list of Provisioning Scheme(s) from the XenDesktop site. Make a note of the MasterImageVM entry.


    ProvisioningSchemeUid      : 2a01126c-0352-41e0-9603-9118120e15c3
    ProvisioningSchemeName     : win7ded_anu
    MasterImageVM        : XDHyp:\HostingUnits\anu\Anu- Win7.vm\existing.snapshot\Citrix_XD_win7-pooled.snapshot\Citrix_XD_win7-pooled.snapshot\sp1.snapshot\248813.snapshot
    MasterImageVMDate          : 4/14/2011 6:01:21 PM
    IdentityPoolUid            : 1d227066-f5ee-41b9-8a99-753e9d060e42
    IdentityPoolName           : win7ded
    HostingUnitUid             : d534c437-6c65-4659-97db-d6b86534685b
    HostingUnitName            : anu
    VMMetadata                 : {A, A, E, A...}

    Note: This preceding information is also required for reverting to the previous image.

  1. Run the following command to display the list of snapshots on the virtual machine:

    Get-ChildItem -Recurse -Path ‘XDHyp:\hostingunits\%hostName%\%vmName%.vm’

    ExampleGet-ChildItem -Recurse -Path ‘XDHyp:\hostingunits\anu\Anu-Win7.vm

    Where,Ā hostname is anu and vmname is Anu-win7.


    PSPath         : Citrix.Host.Admin.V1\Citrix.Hypervisor::XDHyp:\hostingunits\anu\Anu- Win7.vm\existing.snapshot\Citrix_XD_win7-pooled.snapshot\Citrix_XD_win7- pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot
    PSParentPath  : Citrix.Host.Admin.V1\Citrix.Hypervisor::XDHyp:\hostingunits\anu\Anu-
    Win7.vm\existing.snapshot\Citrix_XD_win7-pooled.snapshot\Citrix_XD_win7- pooled.snapshot\sp1.snapshot\2505438.snapshot
    PSChildName   : afterupdate.snapshot
    ObjectPath     : /Anu-Win7.vm/existing.snapshot/Citrix_XD_win7-pooled.snapshot/Citrix_XD_win7-pooled.snapshot/sp1.snapshot/2505438.snapshot/afterupdate.snapshot
    FullPath       : XDHyp:\hostingunits\anu\Anu-Win7.vm\existing.snapshot\Citrix_XD_win7- pooled.snapshot\Citrix_XD_win7- pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot
    IsSymLink      : False
    AdditionalData : {}
  1. Run the following command to publish the details of the master virtual machine:

    Publish-ProvMasterVmImage -ProvisioningSchemeName “%provisioningSchemeName%” -MasterImageVM “%templatePSPath%”


    Publish-ProvMasterVmImage -ProvisioningSchemeName win7ded_anu ā€“masterimagevm XDHyp:\hostingunits\anu\Anu-Win7.vm\existing.snapshot\Citrix_XD_win7- pooled.snapshot\Citrix_XD_win7-pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot

    WhereĀ %provisioningSchemeName% is win7ded_anu and %templatePSPath% is XDHyp:\hostingunits\anu\Anu-Win7.vm\existing.snapshot\Citrix_XD_win7- pooled.snapshot\Citrix_XD_win7- pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot.

    The preceding command updates the master image and displays the result.


    TaskId                     : c6b5acf4-f950-428c-82a4-0150dab99945
    Active                     : False
    Host                       : XX-W2K8R2-DDC
    DateStarted                : 4/15/2011 5:01:44 PM
    Type                       : PublishImage
    Metadata                   : {}
    WorkflowStatus             : Completed
    ProvisioningSchemeUid      : 2a01126c-0352-41e0-9603-9118120e15c3
    ProvisioningSchemeName     : win7ded_anu
    MasterImage                : XDHyp:\HostingUnits\anu\Anu- Win7.vm\existing.snapshot\Citrix_XD_win7-pooled.snapshot\Citrix_XD
                                 _win7- pooled.snapshot\sp1.snapshot\2505438.snapshot\afterupdate.snapshot
    HostingUnitName            : anu
    HostingUnitUid             : d534c437-6c65-4659-97db-d6b86534685b
    ADIdentityPoolName         :
    ADIdentityPoolUid          : 1d227066-f5ee-41b9-8a99-753e9d060e42
    TaskState                  : Finished
    TaskStateInformation       :
    TaskProgress               : 100
    DiskSize                   : 24

    The following confirmation messageĀ appears in the Citrix Studio action pane:


Citrix XenApp/XenDesktop and MS SQL Compatibility recommendation

Looking at the XenDesktop 7.9 ISO they still havenā€™t included the Share Management Object library SharedManagementObjects installers from the SQL 2014 Feature Pack.
Given that the files are backwards compatible, I would recommend replacing them in your ISO/install folder for any future projects, as Iā€™m seeing a lot more clients using SQL Server 2014 these days, or calling it out in upcoming designs.
Files can be found here: https://www.microsoft.com/en-us/download/details.aspx?id=42295 grab both x86 and x64 (save to different locations as they have the same name).
This will give you support for SQL 2008R2 up to 2014.
If you use an incompatible version when creating the Farm, youā€™ll get an error similar to ā€œCannot write Property Collation. This Property is not available on SQL Server 7.0ā€.
More info here (http://support.citrix.com/article/CTX132438)