All posts by matt

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