Dumping a node field as an array in Drupal 6

There are times in Drupal 6 when you need to see what’s actually sitting inside a node’s field – the raw structure, the keys, the values. The UI won’t show you that, and dpm() from Devel can be overkill if you just want a quick dump. The content_fields() function returns the field data as an array, and wrapping it in var_export() gives you a readable output you can paste into a debugger or log file. ...

11 September 2013 · 1 min · 128 words · Shafiq Alibhai

Drupal 7 Mobile Boilerplate Theme

Mobile web development in 2013 is a mess of browser quirks, viewport headaches, and CSS bugs that multiply with every platform you touch. I built the Mobile Boilerplate theme for Drupal 7 to stop reinventing the wheel every time I needed a mobile-ready starting point. It’s a collection of fixes, polyfills, and sensible defaults that handle the boring stuff so you can focus on building something that works. What’s in it The theme ships with a bunch of things you’d otherwise spend an afternoon Googling: ...

5 September 2013 · 2 min · 335 words · Shafiq Alibhai

Building an Online Temperature Monitoring System

I built this as a final year project — an embedded system that reads temperature from sensors, stores the data, and makes it available over a serial connection. Nothing fancy, but it was a useful exercise in getting hardware and software to talk to each other. You can download the project report. What it does The system reads temperature from external sensors, converts the analog signal to digital, logs the readings with timestamps, and exposes the data over a serial link so a PC can pull it. A 16x2 LCD shows the current state locally. ...

7 June 2013 · 4 min · 741 words · Shafiq Alibhai

Hiding a DataTables column without removing it from the DOM

Sometimes you want to hide a column in a DataTable but keep its data in the DOM – maybe you need it for export, for a tooltip, or for some other operation that happens after the table renders. Removing the column entirely means losing that data, which isn’t always an option. The fix is embarrassingly simple: CSS. The setup Add a class to the column you want to hide using the sClass option in your DataTables initialisation: ...

23 April 2013 · 1 min · 194 words · Shafiq Alibhai

eBay UK shipping services — a complete list from the API

<?xml version="1.0&#8243; encoding="UTF-8&#8243;?> <GeteBayDetailsResponse xmlns="urn:ebay:apis:eBLBaseComponents"> <Timestamp>2013-04-13T07:54:20.770Z</Timestamp> <Ack>Success</Ack> <Version>813</Version> <Build>E813\_INTL\_BUNDLED\_15816370\_R1</Build> <ShippingServiceDetails> <Description>Standard Int'l Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_SellersStandardInternationalRate</ShippingService> <ShippingServiceID>50301</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collect+ Tracked: drop at store-delivery to door</Description> <ShippingService>UK_CollectPlusTrakedDeliveryToDoor</ShippingService> <ShippingServiceID>330</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Airmail (Small Packets)</Description> <InternationalService>true</InternationalService> <ShippingService>UK_RoyalMailAirmailInternational</ShippingService> <ShippingServiceID>50302</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Hermes Tracked</Description> <ShippingService>UK_myHermesDoorToDoorService</ShippingService> <ShippingServiceID>322</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 1st Class</Description> <ShippingService>UK_RoyalMailFirstClassStandard</ShippingService> <ShippingServiceID>301</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 1st Class Standard Medium Parcel</Description> <ShippingService>UK_RoyalMailFirstClassStandardMediumParcel</ShippingService> <ShippingServiceID>332</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Airsure</Description> <InternationalService>true</InternationalService> <ShippingService>UK_RoyalMailAirsureInternational</ShippingService> <ShippingServiceID>50303</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 2nd Class</Description> <ShippingService>UK_RoyalMailSecondClassStandard</ShippingService> <ShippingServiceID>302</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Surface Mail</Description> <InternationalService>true</InternationalService> <ShippingService>UK_RoyalMailSurfaceMailInternational</ShippingService> <ShippingServiceID>50304</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 1st Class Signed For</Description> <ShippingService>UK_RoyalMailFirstClassRecorded</ShippingService> <ShippingServiceID>303</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 1st Class Recorded Medium Parcel</Description> <ShippingService>UK_RoyalMailFirstClassRecordedMediumParcel</ShippingService> <ShippingServiceID>333</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail 2nd Class Signed For</Description> <ShippingService>UK_RoyalMailSecondClassRecorded</ShippingService> <ShippingServiceID>304</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail International Signed-for</Description> <InternationalService>true</InternationalService> <ShippingService>UK_RoyalMailInternationalSignedFor</ShippingService> <ShippingServiceID>50305</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail HM Forces Mail</Description> <InternationalService>true</InternationalService> <ShippingService>UK_RoyalMailHMForcesMailInternational</ShippingService> <ShippingServiceID>50306</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Special Delivery</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_RoyalMailSpecialDelivery</ShippingService> <ShippingServiceID>305</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>0</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Tracked 48</Description> <ShippingService>UK_RoyalMailTracked</ShippingService> <ShippingServiceID>327</ShippingServiceID> <ShippingTimeMax>3</ShippingTimeMax> <ShippingTimeMin>2</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Special Delivery (TM) 1:00 pm</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_RoyalMailSpecialDeliveryNextDay</ShippingService> <ShippingServiceID>312</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Special Delivery (TM) 9:00 am</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_RoyalMailSpecialDelivery9am</ShippingService> <ShippingServiceID>313</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Tracked 24</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_RoyalMailNextDay</ShippingService> <ShippingServiceID>328</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce International Datapost</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceInternationalDatapost</ShippingService> <ShippingServiceID>50307</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Royal Mail Standard Parcels</Description> <ShippingService>UK_RoyalMailStandardParcel</ShippingService> <ShippingServiceID>306</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce 24</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_Parcelforce24</ShippingService> <ShippingServiceID>307</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Ireland 24</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceIreland24International</ShippingService> <ShippingServiceID>50308</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collect+ Tracked (Jiffy Bag up to 2Kg): drop at store – deliver to door</Description> <ShippingService>UK_CollectPlusTrackJiffyBag</ShippingService> <ShippingServiceID>324</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collect+ : drop at store-delivery to door</Description> <ShippingService>UK_CollectDropAtStoreDeliveryToDoor</ShippingService> <ShippingServiceID>323</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collect+ Tracked (Standard up to 5kg): drop at store – deliver to door</Description> <ShippingService>UK_CollectPlusTrackStandard</ShippingService> <ShippingServiceID>325</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collect+ Tracked (Heavy up to 10kg): drop at store – deliver to door</Description> <ShippingService>UK_CollectPlusTrackHeavy</ShippingService> <ShippingServiceID>326</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce 48</Description> <ShippingService>UK_Parcelforce48</ShippingService> <ShippingServiceID>308</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Euro 48</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceEuro48International</ShippingService> <ShippingServiceID>50309</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Global Express</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceIntlExpress</ShippingService> <ShippingServiceID>50316</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other 24 Hour Courier</Description> <ExpeditedService>true</ExpeditedService> <ShippingService>UK_OtherCourier24</ShippingService> <ShippingServiceID>314</ShippingServiceID> <ShippingTimeMax>1</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ONE_DAY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Global Priority</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceInternationalScheduled</ShippingService> <ShippingServiceID>50310</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Global Value</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceIntlValue</ShippingService> <ShippingServiceID>50317</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Parcelforce Global Economy (Not available for destinations in Europe)</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ParcelForceIntlEconomy</ShippingService> <ShippingServiceID>50318</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Economy Int'l Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_OtherCourierOrDeliveryInternational</ShippingService> <ShippingServiceID>50311</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other 48 Hour Courier</Description> <ShippingService>UK_OtherCourier48</ShippingService> <ShippingServiceID>315</ShippingServiceID> <ShippingTimeMax>2</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other Courier 3 days</Description> <ShippingService>UK_OtherCourier3Days</ShippingService> <ShippingServiceID>317</ShippingServiceID> <ShippingTimeMax>3</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DimensionsRequired>true</DimensionsRequired> <ValidForSellingFlow>true</ValidForSellingFlow> <ShippingCarrier>Other</ShippingCarrier> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other Courier 5 days</Description> <ShippingService>UK_OtherCourier5Days</ShippingService> <ShippingServiceID>318</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>0</ShippingTimeMin> <ServiceType>Flat</ServiceType> <DimensionsRequired>true</DimensionsRequired> <ValidForSellingFlow>true</ValidForSellingFlow> <ShippingCarrier>Other</ShippingCarrier> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other Courier</Description> <ShippingService>UK_OtherCourier</ShippingService> <ShippingServiceID>309</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Express Int'l Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_CollectInPersonInternational</ShippingService> <ShippingServiceID>50312</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>EXPEDITED</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other Courier 3-5 days</Description> <ShippingService>UK_SellersStandardRate</ShippingService> <ShippingServiceID>310</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>ECONOMY</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Collection in Person</Description> <ShippingService>UK_CollectInPerson</ShippingService> <ShippingServiceID>311</ShippingServiceID> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>PICKUP</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>International Tracked Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_IntlTrackedPostage</ShippingService> <ShippingServiceID>50319</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>2</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>EXPEDITED</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Economy Delivery from outside UK</Description> <ShippingService>UK_EconomyShippingFromOutside</ShippingService> <ShippingServiceID>319</ShippingServiceID> <ShippingTimeMax>22</ShippingTimeMax> <ShippingTimeMin>10</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Standard Delivery from outside UK with Royal Mail</Description> <ShippingService>StandardDeliveryfromOutsideUKwithRoyalMail</ShippingService> <ShippingServiceID>329</ShippingServiceID> <ShippingTimeMax>13</ShippingTimeMax> <ShippingTimeMin>7</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Standard Delivery from outside UK</Description> <ShippingService>UK_StandardShippingFromOutside</ShippingService> <ShippingServiceID>320</ShippingServiceID> <ShippingTimeMax>10</ShippingTimeMax> <ShippingTimeMin>4</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Express Delivery from outside UK</Description> <ShippingService>UK_ExpeditedShippingFromOutside</ShippingService> <ShippingServiceID>321</ShippingServiceID> <ShippingTimeMax>3</ShippingTimeMax> <ShippingTimeMin>1</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>FedEx International Economy</Description> <ShippingService>UK_FedExIntlEconomy</ShippingService> <ShippingServiceID>168</ShippingServiceID> <ShippingTimeMax>4</ShippingTimeMax> <ShippingTimeMin>3</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <SurchargeApplicable>true</SurchargeApplicable> <ShippingCarrier>FedEx</ShippingCarrier> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>TNT International Express</Description> <ShippingService>UK_TntIntlExp</ShippingService> <ShippingServiceID>170</ShippingServiceID> <ShippingTimeMax>3</ShippingTimeMax> <ShippingTimeMin>2</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <ShippingCarrier>Other</ShippingCarrier> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Tracked delivery from outside UK</Description> <ShippingService>UK_TrackedDeliveryFromAbroad</ShippingService> <ShippingServiceID>331</ShippingServiceID> <ShippingTimeMax>5</ShippingTimeMax> <ShippingTimeMin>2</ShippingTimeMin> <ServiceType>Flat</ServiceType> <ValidForSellingFlow>true</ValidForSellingFlow> <ShippingCarrier>Other</ShippingCarrier> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Promotional Postage Service</Description> <ShippingService>PromotionalShippingMethod</ShippingService> <ShippingServiceID>399</ShippingServiceID> <ServiceType>Flat</ServiceType> <ServiceType>Calculated</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>PROMOTIONAL</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Freight</Description> <ShippingService>Courier</ShippingService> <ShippingServiceID>316</ShippingServiceID> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>NONE</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Other Int'l Postage (see description)</Description> <InternationalService>true</InternationalService> <ShippingService>UK_OtherInternationalPostage</ShippingService> <ShippingServiceID>50315</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>OTHER</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Standard Int'l Flat Rate Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_StandardInternationalFlatRatePostage</ShippingService> <ShippingServiceID>50313</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>STANDARD</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Expedited Int'l Flat Rate Postage</Description> <InternationalService>true</InternationalService> <ShippingService>UK_ExpeditedInternationalFlatRatePostage</ShippingService> <ShippingServiceID>50314</ShippingServiceID> <ServiceType>Flat</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>EXPEDITED</ShippingCategory> </ShippingServiceDetails> <ShippingServiceDetails> <Description>Promotional Postage Service</Description> <InternationalService>true</InternationalService> <ShippingService>PromotionalShippingMethod</ShippingService> <ShippingServiceID>50399</ShippingServiceID> <ServiceType>Flat</ServiceType> <ServiceType>Calculated</ServiceType> <DetailVersion>74</DetailVersion> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> <ShippingCategory>PROMOTIONAL</ShippingCategory> </ShippingServiceDetails> <UpdateTime>2013-04-08T14:42:28.000Z</UpdateTime> </GeteBayDetailsResponse>

14 April 2013 · 5 min · 866 words · Shafiq Alibhai

BottomToolBar - a scrolling ticker for your website

I’ve been working on something called BottomToolBar. It’s a small piece of JavaScript that drops a scrolling bar into the bottom of your browser window – the kind you see on news channels, the one that runs along the bottom of the screen with headlines and images. I thought it might be useful for websites. How it works The bar sits at the bottom of the viewport, fixed in place, always on top of everything else. Content scrolls through it from right to left (or left to right, your call), separated by images – usually a logo or icon. It pulls text and images from a server, so you can update what it shows without touching the page itself. ...

6 April 2013 · 2 min · 323 words · Shafiq Alibhai

Generic Hardening - A Reference Guide

I put together this document as a reference for system hardening. It covers the basics – what hardening actually means, the formula for building a hardened system, and how virtualisation changes the picture. You can download the full guide as a Word document. What is System Hardening? Hardening is just the practice of making a system more resistant to attack. The guiding idea is least privilege: only what’s needed runs, only what’s needed is exposed. ...

12 January 2013 · 2 min · 379 words · Shafiq Alibhai

Juniper Hardening Procedure

DOWNLOAD - Juniper device hardening Introduction Rationale An out-of-box firewall implementation is not fully secure and needs to be hardened. This document details the various aspects of Juniper firewall security and standards implemented for securing Juniper firewalls. Purpose This document is to define a baseline security standard for the Juniper Firewall implementations by firewall administrators. Scope These security standards cover the Juniper Firewall Screen OS implementation. However, for some setups, this minimum requirement and some features of these standards may not be practical for implementation. For exceptions, the system administrators must document the reasons for not complying fully with these standards and request an exemption from the Security department. ...

3 December 2012 · 22 min · 4466 words · Shafiq Alibhai

Hardening Solaris Systems in Production

Hardening Solaris Systems in Production When you’re running enterprise workloads on Solaris — databases, application servers, web fronts — the gap between “it works” and “it’s secure” is a lot wider than most people expect. I spent a good chunk of time working through hardening procedures for a fleet of Solaris boxes, and what follows is the procedure we landed on. The scope covered four server types: database, web, application, and utility. Every one of them got the same four security layers, regardless of role. ...

1 December 2012 · 6 min · 1162 words · Shafiq Alibhai
Firefox OS Clock app running on Ubuntu with Firefox Marketplace in the background

Running Firefox OS apps on Ubuntu Linux

Mozilla announced Firefox OS back in 2011 under the codename Boot2Gecko, and since then the project has gone from a concept to something you can actually run on your desktop. I’ve been following it closely and finally got around to setting it up on my Ubuntu machine. Here’s how. What is Firefox OS? Firefox OS is Mozilla’s attempt at building a mobile operating system entirely from web standards. There’s no Java, no native SDK, no proprietary frameworks. The entire user interface – called Gaia – is built in HTML, CSS, and JavaScript. The rendering engine underneath is Gecko, the same one that powers Firefox. And at the bottom, it runs on a Linux kernel. ...

24 November 2012 · 5 min · 927 words · Shafiq Alibhai