Google Chrome Saved Passwords Lock

Google Chrome very helpfully remembers your passwords for website logins, and for that, I am grateful. I also like the feature in settings (manage saved passwords) where you can view your saved usernames and passwords. I do not like, however, that there is no lock on this utility – as my friends sometimes use my computer, and whilst I tend to lock my computer when leaving it, I wouldn’t if other people were in the room watching something on it. They could very easily view all of my passwords, without having to input any credentials.

I’ve had a quick look at the problem – to see if I could make a little solution. I found the passwords are encrypted and stored in the file “Login Data” under ”C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data\Default”  (Linux:  ~/.config/google-chrome/Default/Login\ Data ).

When in Windows…

Due to gaming demands and overall familiarity, I still use Windows as my main computer. What would have been a simple ‘chmod a-rw’ in Linux, turned out to be a lot more in Windows. Windows does have a permission altering command – icacls – but after spending too long trying to figure it out, I came up with a less elegant solution that works.

Lock the passwords script

Script is fairly self explanitory. Go to the folder (substitute in appropriate username), back up the old Login Data file, make a new one, and make it read only so Chrome doesn’t overwrite it.

cd “C:\Users\MaTT\AppData\Local\Google\Chrome\User Data\Default”

rename “Login Data” “Login Data-old”

echo.>”Login Data”

attrib +R “Login Data”

pause

 

Unlock the passwords script

Again very simple, change directory, remove the read-only attribute of the placeholder empty file, delete it, and restore the backup.

cd “C:\Users\MaTT\AppData\Local\Google\Chrome\User Data\Default”

attrib -R “Login Data”

DEL /F /S /Q /A “Login Data”

rename “Login Data-old” “Login Data”

pause

 

Saved these as .bat batch scripts, and they work, as long as Chrome isn’t running! Thats quite enough batch scripting for now..

Not very elegant, but I thought it was worth noting as I didn’t find any other solution out there on the interwebs (other than “don’t use the save password feature”). My idea was to have these both crafted into a little system tray program to toggle the lock on/off, however it is hindered somewhat by the fact Chrome cannot be running when you run either script (as it uses the Login Data file).

Kickstarter 02 – More Backed Projects

I have been having a fantastic time looking through projects that have been put on Kickstarter, and have started funding a fair few that pique my interest:

  • Tiny, fingertip sized Arduino!  - A really tiny Arduino with Bluetooth.
  • Lightpack -  a device that sits behind your computer screen / TV and displays colours relating to what’s being shown on the screen, resulting in a seemingly larger screen, and less strain on eyes. It also looks awesome.
  • Electronics Education Kit (arrived) – An electronics kit to teach kids some of the fundamental electronics concepts. Something I would love to see given to children in schools, along with Raspberry Pis. Electronics Education Kit
  • Stonehearth – A game similar to Minecraft, but from a further out perspective.
  • KeySmart – A minimalist keyring – all keys are stored in a Swiss-army knife fashion.
  • Windcatcher – One of my personal favourites. An air-bed that can be inflated with 4/5 breaths of air. No more. No electric pump/foot pump needed.
  • Omni – A project I didn’t actually fund to receive a device, but because it was a great idea – its a sort of bowl that you stand in and are strapped down to, so you can feel like you are walking whilst being stationary. Used for more realistic movement feelings in games.
  • Darkmatter – Another project I pledged only a small amount so that I could keep up with their development and see the product progress – its basically an Xbox 360 inserted into a large laptop looking device, complete with screen.
  • MotorPiTX – A ‘shield’ board to go onto of the Pi to easily control motors and servos!
  • Plug / Lima – Basically a NAS with an app, so you can access anything stored on a hard drive at home, as long as you have some internets. The device is pretty cool, and has a few extra features, but I eventually dialled my pledge down to a dollar to keep up with their updates, as I have no real need for it.
  • NFC Ring – Another favourite of mine that I can’t wait to receive! A ring that has NFC inside, allowing you to open NFC locks, unlock your phone and give other people information (settings/WiFi password/website URL) by tapping the private (back) or public (front of ring) to another device.
  • Pi Crust – Another Pi one! This time, a breakout board that makes it easier to connect to the I2C and SPI buses, connections that I have not yet played with but would like to start using!
  • Firebox Nano – The last favourite for now – a little fold-out wood-burning camping stove, check it out!
  • Project Bacon - A cookbook that uses bacon in everything! Well it can’t make my cooking any less adventurous..
  • Omate TrueSmart standalone Smartwatch – One that I found tonight, a smartwatch that does not need an Android/iPhone nearby to work – it runs its own very small version of Android 4.2, has a touch screen, microSIM and microSD slot… and a camera!!! I’m keeping tabs on it for now, as I am intrigued to see some more videos about using it and its features.  I do love my Pebble, but I am very interested to see what this TrueSmart standalone watch can provide..
  • Hex – A tiny, cost-effective quadcopter.
  • Easy-Macro Smartphone Lens – A little 4x magnification lens that straps onto any smartphone/tablet.

Pi Projects

Couple of ideas that I think are fantastic, but are a touch expensive for what they are.

  • Pi-Pan – Pan and tilt for the R Pi camera.
  • USB Power Adapter – A tiny UPS-like power switcher to allow a Pi/mobile phone to receive power from two sources.

 

Quiet Time

Sorry about the quiet period, I’ve been making the most of my time back at home after finishing my Internship at Google, and also have had a problem with updating WordPress. The problem turned out to be the disc that my site resides on, is full. After a couple of weeks of waiting, 000webhost appeared to fix the problem, I assume moving my site to a disc with free space, but neglected to also move my SQL databases with it, meaning that WordPress and Ministar Galactica broke. Combine this with a PHP error that I saw a few months ago here, but recently on the Aber-links site, which was fixed by the line “define(‘WP_MEMORY_LIMIT’, ’128M’);” to the wp-config.php file, which now overrides the default maximum PHP memory limit that my host sets.

A few quick notes:

Google

It is with much regret that I handed in my laptop and badge in Google London, as my year-long internship was over. I have had an amazing time, and am thoroughly grateful to the company for taking me on and providing me with so many opportunities to expand my knowledge in many fields from both computer maintenance and software engineering, to large scale computer fleet management and more. I have visited many offices around the world, met many techs and other employees, and made a lot of friends. It was sad to leave, but I hope to once again roam the floors of Google in the future.

Pi Cars

Pi Car 01 is still happily roaming, and his brother has just got a few upgrades (smaller breadboard, V2 black WiFi antenna like Pi Car 01 etc). I do hope to get a Raspberry Pi Camera to test out at some point .

Kickstarter

I have funded many many things, and successful projects are starting to arrive. A more in-depth post with pictures will follow, but in the meantime, check out kickstarter’s discover projects page – I would recommend the ‘Design‘ and the ‘Technology‘ sections.

Matt

Kickstarter

Kickstarter is a site where normal people with cool, new, innovative project ideas can easily get their name out there and receive publicity and funding to help get the project started. A great example of this is the Pebble smart watch – a watch with an e-ink display that can display many different watch faces, but for me most importantly, it displays new emails, texts and notifications on the watch face, saving the need to constantly check a vibrating phone. Needless to say, I have put in a preorder for one of these fantastic devices.

Another project I have funded is Lightpack – a device that connects to strips of LEDs that light up the wall behind your monitor(s). This increases the perceived size of the screen, and also brightens the atmosphere around the screen – making the light from it less harsh in dark conditions. Very excited to get this when it ships.

I feel very passionate about teaching children the real basics computer science – programming, making websites, electronics, as these have many real world applications and can help someone understand so much more about the world around them. I found a project that was aiming to create little electronics education kits for novices, including an assortment of components from sensors to motors and electro magnets and 555 timer chips. I would love to see this go into production, and possibly be adapted for school curriculums to perhaps compliment learning with the Raspberry Pi.

Interfacing between computers and the real world has always been an area that fascinates me, and the kickstarter project for a wireless Arduino that is the size of a finger tip. It can run on one AA battery, and I would love to work out how to use this in applications such as door opening sensors and other sensing around the house.

I have also seen some pretty cool non-tech projects such as a plant growing device with a fish bowl underneath, creating a little ecosystem where each would mainly live off each other, whilst allowing the plants to grow and produce fruit.

Happy kickstarting!

Matt

Raspberry Pi Endeavours 10 – lighttpd web server

The web page the controls the Pi Car lives on a little webserver running on the Pi, we use lighttpd.

sudo apt-get install lighttpd

This creates a www directory in /var/www with a default index file, which i renamed to make way for our web files. I also added in the cgi-bin full of scripts to control the GPIO pins, and used the linux command ‘chown’ to change the ownership of the directory cgi-bin to www-data.

Lighttpd Config

By default, apparently cgi-bin files should be located under ‘/usr/lib/cgi-bin’, so I told lighttpd’s config file (under /etc/lighttpd/lighttpd.conf) that my cgi-bin files were located in /var/www.

lighttpd.conf

server.modules = (
“mod_access”,
“mod_alias”,
“mod_compress”,
“mod_redirect”,
“mod_rewrite”,
“mod_cgi”
)

server.document-root = “/var/www”
server.upload-dirs = ( “/var/cache/lighttpd/uploads” )
server.errorlog = “/var/log/lighttpd/error.log”
server.pid-file = “/var/run/lighttpd.pid”
server.username = “www-data”
server.groupname = “www-data”
server.port = 8083
index-file.names = ( “index.php”, “index.html”, “index.lighttpd.html” )
url.access-deny = ( “~”, “.inc” )
static-file.exclude-extensions = ( “.php”, “.pl”, “.fcgi” )

compress.cache-dir = “/var/cache/lighttpd/compress/”
compress.filetype = ( “application/javascript”, “text/css”, “text/html”, “text/plain” )

# default listening port for IPv6 falls back to the IPv4 port
include_shell “/usr/share/lighttpd/use-ipv6.pl ” + server.port
include_shell “/usr/share/lighttpd/create-mime.assign.pl”
include_shell “/usr/share/lighttpd/include-conf-enabled.pl”

$HTTP["url"] =~ “/cgi-bin/” {
cgi.assign = ( “” => “” )
}

cgi.assign = (
“.cgi” => “”
)

 

I also ran the command ‘lighty-enable-mod cgi’ that the lighttpd home page instructed me to do, restarted the Pi, and then went to the Pi’s IP address, on the port that I had specified in lighttpd (8083 in this case). The Pi now drives! After changing two wires, the Pi now drives correctly, all thats left is to add the traction-reduction tape to the wheels, and it will be rolling.

 

Raspberry Pi Endeavors 9 – Software

As I get Raspberry Pi 02 ready, here is exactly how I set it up:

  1. Got the latest Raspbian image, and imaged my 8gb Sandisk Extreme SD card with it using Win 32 Disk Imager (as recommended on the Raspberry Pi Downloads page)
  2. Plugged everything into Pi, booted it up.
  3. In Raspi-config, set the overclock to medium – 900MHz.
  4. Set my time zone to London, set the password, enabled SSH, and set it to exapnd_rootfs (on next reboot).
  5. Rebooted
  6. Started an xwindows session, configured WiFi.
  7. Installed software vital to mjpg-streamer (I am unsure if mplayer and VLC are required, I am fairly sure they aren’t – however on previous attempts at getting Pi02 working, I had no luck, however I am fairly sure this was due to a Chrome plugin, see next post about this. See my explained bash history below for everything I did (minus the ls’s etc):
bash_history explained – the commands that I ran 

ping 8.8.8.8                 #Pinged Google to ensure internet connectivity

Update and Upgrade Pi software, then installed third party software. libjpeg8-dev and imagemagick are required for mjpg-streamer. Subversion (SVN) used to get the mjpg files. 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mplayer
sudo apt-get install vlc
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo reboot -n

Install mjpg-streamer
cd
mkdir Documents
cd Documents/
mkdir code
cd code/

wget http://lilnetwork.com/download/raspberrypi/mjpg-streamer.tar.gz (Thanks to this post for a different source of mjpg-streamer)
tar -xvzf mjpg-streamer.tar.gz
svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer
cd mjpg-streamer/
cd mjpg-streamer
sudo make
cd ../../
nano mjpg-start.sh
bash mjpg-start.sh           #See this post for mjpg-start.sh script, alter for your file directoy

chmod a+x mjph-start.sh     #forgot to do this at the time!
mkdir static
mv mjpg-start.sh static/
cd static/

Add  the cron job: ‘@reboot bash /home/pi/Documents/code/static/mjpg-start.sh’ 
crontab -e
pwd
sudo shutdown now

Removed the USB hub containing mouse, keyboard and webcam, plugged just the webcam into the Pi (as well as the WiFi adapter in the other port)

Now if you go to your IP address:port that you have set mjpg to use, you should see its homepage. This didn’t work for me this time, but going to the page where just the stream is viewed, worked fine for example: 192.168.0.18:8082/?action=stream

RasTrack

rastrack map of raspberry pi locations

www.rastrack.co.uk

On looking through the new raspi-config (after doing the update and upgrade to the Pi), I found a few new options – including the option to add your Pi’s location to RasTrack - a website where you can see where Pis live all over the world! Also saw the option to enable the Pi camera – hopefully being released soon.

Incognito Chrome

I have done this process a few times recently, with different set up steps trying to get a smooth webcam stream. I have gotten new SD cards, 1amp chargers, tried different webcams and WiFi dongles etc, all to the same laggy or non-existant webcam stream. Today I managed to get the Pi streaming, but after 10 seconds or so it would get more and more laggy until it froze completely. Looking at Chrome’s memory usage, I found it shot from 6mb to 500mb in that time, causing Chrome to lock up and the tab trying to crash. I have never seen this exact behaviour before, but opening the link in an incognito window works fine, leading me to think one of my plugins/extensions may be causing problems.

chrome memory

In an incognito window, the memory used by the page seems to increase from say 1 to 7mb, then straight back down to 1mb, every half a second, forever – which I assume is it loading the new photos, then disposing of old ones. Earlier in a normal window, it seemed to just accumulate more and more without ever throwing any away. Will try and look into why tomorrow, as well as trying to get Pi02 wired up and rolling!

Matt

 

Raspberry Pi Networking Files

More for my reference, as I keep forgetting the files – these are the files you need to edit when connecting to a network – which I have had to do lately when driving the car around work.

/etc/network/interfaces

In the interfaces file, I have set a static IP of 192.168.0.24

auto lo

iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface wlan0 inet static
address 192.168.0.24
netmask 255.255.255.0
gateway 192.168.0.1
wpa-ssid “NETWORK-NAME”
wpa-psk “NETWORK-KEY”

 

/etc/wpa_supplicant/wpa_supplicant.conf

In the wpa_supplicant.conf file, multiple networks settings can be specified, I added my work network in here too, but had to use the field ‘scan_ssid=1′ to indicate it was a hidden network, and put the network name and key in as normal. When you fill in the form to connect to a network in the WiFi Config application, it adds an entry here with your entered data – so a good place to look if you mistyped a value. After returning home, I found that my home network had ‘disabled=1′, and it wouldn’t automatically connect. Without that line, it connects automatically.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid=”NETWORK-NAME”
psk=”NETWORK-KEY”
proto=RSN
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP WEP104 WEP40
auth_alg=OPEN
}

 

Matt

Raspberry Pi Endeavors 8 – Headlights and New Interface

Finally got the 20,000 mcd (micro candles?) super bright white LEDs from eBay, and attached them to the solder board in two sets of 3 LEDs. I have wired these up to seperate GPIO pins for now, in case I want to control the left / right headlights separately - but might change this as I’m rapidly running out of GPIO pins.

Headlights on Pi Car

 

I have also got round to redesigning the UI, which previously was all stock HTML buttons, stock jquery slider etc. Designed a few buttons on Fireworks, got some JavaScript to make the hazard warning lights button flash when they are on using setInterval and setTimeout (similar to sleep();).

Updated UI

Updated UI, with headlights on

Matt

Raspberry Pi Endeavors 7 – Hardware Parts List

I started off this project wanting to use the Mr.Basic 4wd microcontroller chassis, but after 2 bad experiences with them having so much resistance that they couldn’t turn their wheels, moved to a slightly beefier 4 motor chassis.  I got both a clear and black acrylic set of these from eBay (China), and have found them both to be of a much higher quality.

Parts list for my project:

Raspberry Pi

Funnily enough, you will need a Raspberry Pi for this. Get one from RS electronics / Amazon / eBay etc. About £25

Raspberry Pi

Raspberry Pi case

This “Environmentally Shell Kit Box For Raspberry Pi” case from oig.buy on ebay is the same style as the clear chassis I got, and provides very easy access to all parts of the Pi whilst protecting the top and bottom. Around £3

Pi Case

“Environmentally Shell Kit Box For Raspberry Pi” – eBay

1A micro USB charging cable

Good for powering the Pi or recharging the mobile phone battery pack that powers the Pi. I picked some up on eBay for £4.50.

Micro USB Charger

 

Webcam

I picked up a couple of Logitech B910′s from Scan’s eBay store for £45 a pop, after using an old Microsoft lifecam, which worked fine, but the quality wasn’t so great, but you can pick them up for about £6.

Hello Kitty Webcam

The Hello Kitty webcam that Nick favoured

 

USB WiFi adapter

Eximax make great USB WiFi adapters that work natively on Mac and Linux (as well as Windows), and we found these to be awesome – as they just worked. It looks like Edimax recently just released a new black version, which I picked up for £15 on eBay. I also got a white, fairly new one that was a dongle plus antenna (all in one), and Nick used a white just antenna model, and all 3 models have been brilliant.

edimax USB wifi

 

12000 mAh mobile phone battery charger

I bought a couple of 12000 mAh mobile phone backup battery chargers to power my Pi when it goes mobile, and they last for somewhere near 8 hours. They are charged by a mini/micro USB cable, and output 1 and 2 amps over USB. Each cost around £17, and came with many little adapters to charge a variety of different phones, including micro USB for the Piberry Ras.

Mobile Charger

 

 

Electronic Components

4wd chassis

Around the £20 mark from China, I got 2 x 4WD, 4 motor chassis. [Clear one] [Black one]

Clear Chassis

Clear Chassis

Black Chassis

Black Chassis

Raspberry Pi Cobbler GPIO Super Start Kit from 4tronix_uk’s eBay store.

Including a huge breadboard, Adafruit cobbler cable and header, switches, resistors, LEDs and jumpers, the Cobbler Super Starter Kit was very useful starter kit full of essentials for messing around with the GPIO pins, and at £22, didn’t break the bank, and no soldering was required.

Cobbler starter kit

Raspberry Pi Cobbler

Including cable and header to extend the GPIO pins of the Pi to the breadboard, very good one made by Adafruit, although others are available such as this split one by Mallinson. I have one of each, but am yet to use the Mallinson one.

Mallinson connector

Mallinson GPIO Connector. Like Adafruit’s, but split at the end.

Breadboard

A 400 point breadboard is sufficient for the cobbler and motor chip.

 

Male to male jumper cables

I got a pack of 65 in my super starter kit, plus more from Maplin. Could make them yourself with bits of wire, but its handy to have the jumpers for quick prototyping.

 

LEDs and resistors

Handy for troubleshooting and emergency lights. I used some 20,000MCD super bright blue LEDs for my emergency lights, with 330 Ohm resistors, but they also seem fine without resistors, and a lot brighter. Waiting on some super bright whites for my headlights.

LEDs

 

L293D motor control chip

I just put the motor chip straight onto the breadboard, straddling the central divide.  They cost about £3 a pop, and one chip can control two separate (sets of) motors, at different speeds, if you have two pulse width modulation outputs on the device (for the Pi, you would have to do one in software).

L239D Chip

Red and black wire

Wire is always helpful with electronics.

8 AA battery holder

To provide power for the motors

8 AA battery holder

 

8 x rechargeable AA batteries

I already had a set of 2600 mAh ‘hama’ AA batteries (cells) and a charger that I got from 7dayshop many moons ago. I managed to find another very similar set on eBay for £13. These high capacity AA cells have kept my Pi driving on and off for a week now, and kept my Xbox 360 controller going for months of light use. Heavily recommend getting rechargeables and a charger – saves the environment and you buying tons of batteries.

Hama battery charger

Other Tools

Pretty handy to have:

  • Wire cutters
  • Wire strippers
  • Pliers
  • Screwdrivers
  • Tape/sticky velcro
  • Multimeter
  • Soldering Iron, solder, safety glasses etc

 

Raspberry Pi Endeavors 6 – Power!

Having only 6 AA batteries for the 4 motors wasn’t enough, and even with my super friction-reducing sellotape, the car struggled to turn on the spot, with 1 or 2 engines  normally stalling. A maximum of 9v was being provided for the 4 6v motors (connected in parallel), resulting in around 2 volts per motor (max) at a quick guess. I grabbed an 8 battery holder from Maplin, hooked this up and the car is much happier now – can turn on the spot well, and goes a bit faster too.

Hazard Lights on

Pi Car 01 with hazard warning lights flashing

As well as my emergency lighting system (ELS), I made a tiny script to simulate hazard warning lights, for when the car is just pulled over at the side of a room. The interface to control the vehicle is very simple – yet functional! When time allows, I will break out the CSS and get it looking a bit fancier.

Pi Car 01 Interface

Pi Car 01 Interface including view from the onboard camera looking out of its garage at the parking marks (sellotape on the floor) and a captivated audience

The two fields at the bottom show the JavaScript and the driving shell script reporting the key down (e.g LEFT), and the key up (all off). This is helpful for diagnosing issues such as when the off instruction arrives before the on one, and so the car starts driving and doesn’t stop. This may be fixable by getting the page to constantly tell the Pi that ‘up’ is held down, and then if the Pi notices an absence of these instructions, it will know to stop.

Matt