Tag Archives: advice

Arduino Variable Types Explained

Here’s something for reference.
I can never find just quite the succinct reference to Arduino Variable types. Nowhere could i find a list of minimum and maximum values, the bits, and the memory used by each variable type.

Neither was there any clear definition of meaning of ‘unsigned’, which just means no plus or minus signs in this type – that is all numbers positive. This increases the highest number that can be stored in the same memory. (thank me in the comments).

Usage Variable type Bits Min value Max value Ram usage Comments
common boolean 8 TRUE FALSE 1 byte
common byte 8 0 255 1 byte
char 8 -128 127 1 byte  A single ‘character’ e.g. ‘a’ is a single char.  Represented by chr(65) or the binary: 01000001
word 16 0 65535 2 byte
common int 16 -32768 32767 2 byte
unsigned long 32 0 4,294,967,295 4 byte
common long 32 -2,147,483,648 2,147,483,647 4 byte
common float 32 -3.4028235E+38 3.4028235E+38 4 byte
The below types are only included for compatibility or further study.
redundant unsigned char 8 0 255  1 byte use byte instead
redundant unsigned int 16 0 65535  2 bytes use word instead
redundant double 32 -3.4028235E+38  3.4028235E+38  4 bytes use float instead
The below types are special types (see arduino.cc)
special string variable  1 byte + x An array of chars
(used for storing strings to modify)
special enum variable  N/A Like boolean but custom fixed set of values allowed instead of TRUE/FALSE.
special struct variable  N/A Public sub variables
(as if you’d made a public class)
special pointer  N/A I’ll be honest, I wasn’t sure the use of this one. Here for completeness though!
Source: https://learn.sparkfun.com/tutorials/data-types-in-arduino
Source: https://playground.arduino.cc/Code/DatatypePractices
Remark: “Unsigned” means no negative sign. This increases the range of positive numbers available.
Remark: Unsigned variables that exceed their capacity roll over back to zero. This could be useful to iterate through arrays of limited length

PPS If anyone can figure out how to properly format this table so it looks nice, with ‘center’ aligned text, please let me know wordpress was being frustrating!

(The formatting css is in the source, see the table tag)

Find Windows workstation logon script

This is a super quick tip from an online forum…
[Sevenforums.com: Where is the location for the windows logon script?]

If you’re looking for the location of the active logon script in a Windows domain network on a workstation, or just to figure out which logon script is being used for a workstation

TLDR; ‘Get to the point, where is the bleeding thing?!’:

To find the location of a user’s logon script, while logged in as the user, run the command:
net user “%USERNAME%” | find “Logon script”
or for a domain user,
net user “%USERNAME%” /domain | find “Logon script”

Standard location

The logon scripts themselves can be found on the network in the standard domain network share location:


Additionally, the commands:

net user “%USERNAME%” /domain


gpresult /r

Give interesting results for the current user and what Group policy rules are active for the currently logged in user/(machine?) respectively.

Obviously this is only relevant to windows computers in active directory with primary domain controller and group policy ordaining that each machine should run a logon script.


Search Terms:

Things i searched for in order to try and find this out:

  • find out what logon script a computer is using
  • find path of logon script from workstation
  • find path of logon script from workstation registry

(I couldn’t find the registry location as it turns out!)

If this post helped you, or you have additional tips, please leave them in the comments!

Excel tip – adding two numbers where one is text

Just a quick tip as i couldn’t quickly find the answer in google.

If you have two cells of data and you want to add them when one might have text instead of a number, use the SUM function.

For instance

Class Section 1
Section 2
Robots 10,000 1,000 =sum(B2:C2)
Humans 9,000,000,000 n/a =sum(B3:C3)
Plants n/a n/a =sum(B4:C4)

I also searched for: sum two values if isnumeric, excel add two numbers if text only include the non text and excel add two numbers if text.


Just a super-quick post here.

If you’re looking for addons or plugins for Microsoft Outlook to help you organize your emails and extend the functionality of Outlook

(note Outlook is very extensible, as with all Microsoft Office applications you can write Visual Basic code for Applications to hook into it’s functions. Absaloutely fantastic for hacking excel as I have been doing for the last few weeks – my work needs to invest in a proper database program for sure *sigh*)

You’d do no better than looking here

Snapfiles Outlook Add-ons



They have addons that are useful – and unlike most of the sites on i’ve found so far – up to date and compatible with recent versions (2003+) of Outlook.

Hope this helps folks!


Mythubuntu 12.04 and Radeon 9200

Hi all, I was having trouble installing Mythubuntu 12.04 on an old PC I had lying around.
Mythubuntu is based on Ubuntu 12.04 so if you’re struggling with the ATI Radeon 9200 on there these steps should help.

(Since I have a Hauppuage Nova-T 500 dual freeview pci card from old projects, and a 2tb drive from new ones, I wanted to see about recording some films!)

Basically, when booting it would come up with a garbled, black or blank screen.

If this happens during the livecd boot, preventing you from installing, when you see the logo:

Logo that appears when first booting ubuntu from livecd.

Logo that appears when first booting ubuntu from livecd.

Hit enter, and F6 for other options, select nomodeset, hit enter to enable then Escape and enter to boot.
If operating from a laptop, you might want to try noapic too.


In the latest grub setup – grub 2 – the boot menu is hidden, making it near impossible to access.
Might make it look pretty but is major frustrating for troubleshooting!
The script /boot/grub/grub.cfg it uses is supposed to boot in textmode if it has failed to boot, but this does not work.

The fix:

Note: you can login, type

sudo su

and then skip typing sudo with every command below (it gets quite annoying I know!)

  1. To access the grub bootmenu, hold down shift – after all your pc’s bios and add-on cards bios screens have disappeared and until it pops up – it takes a while to appear!
  2. To access the console – textmode, insert the word text and remove ‘splash quiet’ from the kernel options,
    also insert the word nomodeset
    then press F10 or Ctrl-C to boot with the new settings.
  3. Connect to the internet, if using Wired connection you may need to connect (hopefully you connected ok during the install)

    sudo nmcli -p con up id “Wired connection 1”

    If that doesn’t work check your wireless connections names with and edit the above command appropriately

    nmcli con

  4. Install xserver-xorg-video-ati

    sudo apt-get install xserver-xorg-video-ati

    (don’t freak out when you see ‘Removing Mythubuntu-desktop’ it seems to come right in the end.

  5. Create a new link for the X server
    (Not sure why this breaks after the upgrade but it won’t work without this step!!)

    sudo ln /usr/bin/Xorg /usr/bin/X

  6. Edit the default bootmenu script
    Add nomodeset to the default grub bootmenu

    sudo nano /etc/default/grub.cfg

    Change this line near the top:

    #”quiet splash”

    The # tells it to ignore this bit, it’s a backup so that we can make it quiet again later. You’ll notice text streaming by as the system boots instead of the cute (Myth) Ubuntu …. logo

    Ctrl-X to exit, type s and Return to save

  7. Update grub

    sudo update-grub

  8. Reboot and Revel in the shinyness

    sudo reboot

I actually ran this command to to start the windows manager, (and I haven’t tried rebooting yet, shhh)

sudo start lightdm

If you have any extra trouble, comment below, check the ubuntu forums and google.
I managed to work this out on my own as I couldn’t find the answer!


I also created a script to set the resolution of lightdm at boot, following the guide here:
LightDM Resolution

This did not work as when I started lightdm, the resolution was set higher than I’d set in lightdm, so I don’t think this was part of the fix.
Thankfully it was within my monitors capabilities. I think I set the output name wrong.
I need to figure out the display outputs are available but couldn’t query it from the command line without x running, which seems kinda silly.

Hope this has been helpful!

Go (wéiqí, igo, baduk, cờ vây) opening

I’ve been playing Go a bit of late, and a friend was taught this about openings, during a review of a game on KGS. Posting it here mainly so I remember for the future! 🙂

Teofrostus [2k]: when you're playing go, there's a nice checklist that you should go through during the opening 
Teofrostus [2k]: it goes something like this
Teofrostus [2k]: 1) Do I have any weak groups?
Teofrostus [2k]: 2) Does my opponent?
Teofrostus [2k]: 3) Are there any unapproached corners? [opponent corners before allied corners]
Teofrostus [2k]: 4) Are there any "big points" left?
Teofrostus [2k]: and you should respond to these in this order

Also worth noting:
Teofrostus [2k]:it's something that you should follow until you're like 3d

Prevent Adobe Acrobat Crashing Firefox

I’m using Adobe Acrobat (for compatibilities sake only, please post your favourite PDF program in the comments below!), but I’ve been rather annoyed recently at it having a tendency to hang Firefox if I tried to open more than one PDF file from the internet.

Simple fix/hack – make Firefox save PDF files rather than open them.

  1. Open Options (Tools \ Options in Windows and Edit \ Preferences in Linux)
  2. Open the Applications tab
  3. under ‘Adobe Acrobat Document’ change the value of the dropdown to ‘Save file’

Firefox Applications options tab. Vista I know!

  1. OK the change
  2. All done. Hopefully that’s one less annoying crash to worry about!

Ps get Session manager to save yourself loosing a window full of tabs or having to do a horribly manual procedure like recovering tabs from a accidentally closed Firefox window.

Help firefox wget and ssh shell script

I’m trying to create a script to allow me to command a remote server to download a file from firefox.

There are various reasons for this, mainly todo with connection speed.

What I have at the moment is:
terminator -x ssh user@site.com wget -qc -t 3 -o ~/wget_testlog ftp://anothersite.com/file.ext \\& \& &

I want it to kick off, ask for a password to login via ssh and then go away…
I would like to be able to set the location for the download to ~/www/files/

I was planning to place this script in /usr/bin and install it in firefox using the code/link provided on this blog: Wget from firefox

Can anyone complete my solution with the correct syntax, or provide a better solution (preferably KISS)?
I’m more of hacker than an expert IMO and I know when I’m out of my depth!


Sports headphones Review

I’ve been looking for a really good set of headphones to use while doing extreme sports (Bocking) which has got to be the best test of how well the headphones stay in your ear!

I’ve tested a few different sets headphones designed specifically for sports (jogging) and ones that are not (in ear/noise isolating silicon ones.
Here’s a short review with ratings 1-5 (where 5 is best) in various categories. Scroll to the bottom to find out the overall winner!

Sennheiser Mx55 ((£15 from HMV)
Comfort 4 (can get a bit unconfortable after a few hours in)
Sound 5 (excellent sound quality)
Volume 4 (Not as loud as i’d expected, but also doesn’t leave my ears ringing after listening with my player on full volume)
Quality 4 (the snap on interchangeable covers designed to let you bling it up a bit are pointless and come off too easily. I’ve superglued one already, but at this price, who’s complaining?!)
Hold/fit 5 (they stayed in for hours while i bounced around, amazing!)

EDIT: Superglue the rubber bits on too, they fall off in pocket!

Skullcandy in ear
Comfort 4 (pretty comfortable until i took them out then found my ear holes were quite sore)
Sound 3 (good, but lacking something, and no matter of EQ tweaking could give me that…too crisp)
Volume 5 (ear blisteringly loud :()
Quality 2 (poor, the metal mesh on one of them fell off after about a week, and then the speaker on that side got kind of bent in and the volume halved)
Hold/fit 2 (fall out often, not suitable for jogging/sports)

Sony Active MDR-AS20J Ear Clip Sports Headphones ~£12
now it’s been a little while since i used these headphones so forgive me if i’m a little less specific. These have got to be my second favourite since the Sennheiser MX55.
They disappeared a while back and I can’t seem to find them anymore 🙁 lol.
Comfort 4
Sound 4
Quality 5 (survived being chucked into my bag with various implements until they disappeared)
Volume 4 (not as good as the in ear ones obviously, but louder than the MX55’s)
Hold/Fit 4 (the stay on, but its a bit fiddly to get them on)

Sennheiser CXII300 In ear noise isolating ~£30
These were quite expensive for me, but sounded greate and lasted ages. The hold while Bocking wasn’t too bad (it helped taping the cable to my neck with a plaster to prevent tugging).
I killed them by accidentally snagging the cable on a street sign and turning round. The cable separated at the connector.
Comfort 3 (got a bit uncomfortable after an hour or so)
Sound 5
Quality 4 (good, rubbery cable didn’t seem to kink and was easily wrapped but the rubber cable ends on the buds slid down after a good few months of kicking around in the bag)
Volume 5
Fit/hold 4 (not best suited to sports, the cable always caught on my clothes and dragged them out of my ears. Better fit than the skull candy though.)

My recommendation? Get the Sennheiser MX55. Great hold and sound quality for an amazing price. I don’t miss the volume, my hearing seems to be improving now (i think a volume rating of 5 is excessive!!).

The in ear/noise isolating ones especially the sennheiser were pretty good, but i quite like being able to have some sound from the surroundings. Even though the hold was pretty impressive for something not secured to your ear, the cable always won and ended up yoinking them out of my ears.

Edit: added comment to Senheiser Mx 55 section.

Haymarket Metro Station, Newcastle

Fore note: Garreth has gone up to Newcastle to study Building Services (foundation) at Northumbria University.
This has to be the most random and unrelated note (i won’t call it a blog, it’s not worthy of that).

Tonight after chowing down on a awesome kofte kebab from Get Stuffed (Newcastle fast food 😉 ) and feeling much better from having some sugar in my veins I was in a chatty mood. Here is the information I gathered!

Guy with guitar, looks like a student, sitting on a chilly step eating a kebab:
Newcastle Student Union hold a Open Mic night every monday!
(Finally some real music!)
There’s a Jazz club that also hosts real music, there’s a guy who hands out leaflets for it during the day near the church.
He’s a fresher.

Builder on St Mary’s street, by the church:
Turns out tonight they are removing the cabins located literally right next to the church. They’ve just completed the new Haymarket Metro station after a 2 year build. Coincidentally, he mentioned off the cuff that they had to use 125ft drilled piles!
Phew! It’s coincidental cos that’s what I was studying today in my Building Construction lecture with Kevin Elliot.

So they drilled 120ft (presumably couldn’t use displacement piles cos it’d disrupt all the buildings nearby, and the underground!), put steel in and poured concrete.

Mr Builder said they had to be really careful with the positioning of the piles or they’d have gone bankrupt – after all the client is not going to be too happy if you drill into the tube you’re building a station for!

It’s strange how you can reinforce your learning with random late night chats with builders! I’d recommend anybody studying built environment courses give it a try 😉

Now about that darn assignment :'(

Btw I have some half decent posts in draft too (Web 3.0, firefox addons), if only I had the motivations to finish them!