Category: Technology

RIP Instagram, oops Pixsta.

I was an avid Instagram user. This is set to change in June due to an update to their platform policy for developers. A number of endpoints are being turned off, and all apps have to go through a submission and approval process to avoid being relegated to a sandbox mode.

It’s no surprise that I spend a lot of time near a PC. As there isn’t an official Instagram client for PC, a while back I started using an app called Instagrille. More recently it became Pixsta. pixsta

Without Pixsta I won’t be notified of new posts in my feed. I wont see those posts, and I wont interact with them. Perusing my feed on my phone is irritating at best: the promoted posts (that may or may not be at the root of the API changes) are poorly targeted and irrelevant. I can honestly say I’ve never clicked on one. The move to a Facebook-esque algorithmic feed was also a poorly conceived idea: a chronological feed makes a lot more sense rather than a popularity contest among the users I follow.

No doubt the official line is that the API changes will prevent spammers and scammers plaguing the service as they currently do. I doubt it will.

Whatever the reason, Instagram just became a whole lot less relevant to me. Much the same way Twitter did when they bought Tweetdeck, removed features from it and eventually made it a web app; or the way Facebook did when the killed SocialFixer, swapped to algorithmic feeds and turn on notifications from friends by default.

Perhaps Instagram will continue unscathed by the loss of the developer ecosystem, but in any case… RIP Pixsta. It was good while it lasted.

{lang: 'en-GB'}

Couple Ties the Knot at Zelda-Themed Wedding

nXpPPrVw

HONESDALE, Pa. —  Gamers will appreciate this Pennsylvania couple for tying the knot with a video game-themed wedding.

Robert Piazza and Christa Slayton walked down the aisle Sunday at a Game Stop dressed as characters from The Legend of Zelda video game.

Piazza dressed as the character Link and his bride was Princess Zelda.

The couple met at the store during a Mario Kart tournament. Then, in October of last year Piazza proposed.

The gaming theme continued at the reception, where guests competed in a Super Smash Brothers tournament.

 

http://www.abc22now.com/news/top-stories/stories/Couple-Ties-the-Knot-at-Zelda-Themed-Wedding-135944.shtml

{lang: 'en-GB'}

Annoying notifications from Twitter on mobile

Lately I have been receiving a lot of annoying notifications from Twitter on my phone. Primarily from @twibbon Try as I might, I couldn’t work out how to turn them off. Even disabling notifications for the Twitter app entirely didn’t stop them.

Luckily Mashable came to the rescue this morning with this post:

http://mashable.com/2014/05/24/stop-annoying-twitter-notifications/

 

{lang: 'en-GB'}

The Plight of Social Fixer

A few weeks ago the Social Fixer Facebook Page disappeared without warning. This caused a fair amount of confusion and distress to Social Fixer’s author Matt Kruse. He subsequently managed to communicate with a human being at Facebook, which led to the publishing of the following blog post:

http://socialfixer.com/blog/2013/10/05/facebook-requires-social-fixer-browser-extension-to-remove-key-features/

They are correct in saying that Social Fixer breaches section 3.11 of the Rights and Responsibilities, since it changes the appearance and rendering. It’s worth noting that so does a Screen Reader, yet there has been no veiled threat of legal action against the visually impaired. This phrase is also sufficiently vague as to include any new web browser release that includes tweaks to the rendering engine. Case in point would be Opera’s recent move to the Webkit code base.

They are also correct in saying that Social Fixer breaches 1.3 of the Platform Policies, by circumventing limitations in the platform.

I disagree that browser extensions on shared computers may cause inadvertent problems for some users. If you’re not using separate user accounts on a shared computer, you kind of deserve the problems you are going to face. From a security standpoint it is a foolish thing to do.

It is true that not all extension authors have honourable intentions, and that the code is not always kept up to date. There have been times in the past when even Social Fixer has struggled to keep up with the rapid changes being made by Facebook.

Sadly the truth is likely to be that Social Fixer represents a hit to Facebook’s bottom line. As Matt Kruse explains in his post:  it’s likely to be more about Social Fixer interfering with Facebook’s ability to control what you see and justify charging for “promoted” posts.

Personally I feel that the “crippling” of Social Fixer will make Facebook much less palatable for me. I have no interest in the promoted posts, nor do I click on the adverts, nor do I want to know that John Doe plays Candy Crush Saga. Perhaps I am in the minority.
As a developer I can understand Facebook’s need to protect their bottom line, but surely there must be a better way to go about it. At the end of the day it is their platform, and they get to control who does what on it, but alienating indie developers is not going to be profitable in the long run.

{lang: 'en-GB'}

Unexpected value from nativeGetEnabledTags: 0

If you happen to be developing for android using Eclipse and the ADT Plugin, you may notice that the output from Logcat rapidly fills up with the expression “Unexpected value from nativeGetEnabledTags: 0”. This happens on my development machine with Juno and ADK version 22.

Googling for an answer reveals that it is caused by the version of the ADK, and failing a fix by Google, the best you can hope for is to filter the output of Logcat. This is easily achieved by entering the regex:

^(?!.*(nativeGetEnabledTags)).*$

into the filter box.

Kudos to Hendrik on StackOverflow for this tip: http://stackoverflow.com/questions/13416142/unexpected-value-from-nativegetenabledtags-0

{lang: 'en-GB'}

Hide My Ass! and Kubuntu

Hide My Ass! provide an excellent VPN service, which is handy for streaming Netflix in countries other than the USA (not that I condone such an activity). In case you’re wondering why people would want to do that – the USA version of Netflix has a much larger and more contemporary catalogue.

As per most software companies they provide a GUI for Windows. Kubuntu users (and Linux users in general) have the option of manually setting up the VPN connections in NetworkManager, or using an executable shell script. The former option is a bit laborious, and the latter has failed to work for me until this morning.

As per the instructions, I made sure that I had openvpn-2.1 and curl installed (Kubuntu 12.04 uses openvpn-2.2).

sudo apt-get install openvpn curl

Then I downloaded and extracted the shell script, gave it a chmod and moved it to /usr/local/bin. For the lazier amongst you it looks a lot like this:

wget https://vpn.hidemyass.com/hma-vpn-linux-cli.zip
unzip hma-vpn-linux-cli.zip
chmod +x hma-vpn.sh
sudo mv hma-vpn.sh /usr/local/bin

So far so good, but executing hma-vpn.sh “Los Angeles” produces a “TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)” message. Perhaps ipchains is blocking the connection. The manpage for openvpn says that it uses port 1194 and also recommends altering the chain for the tunnel interface.

sudo iptables -A INPUT -i tun+ -j ACCEPT
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 1194 -j ACCEPT

That changes the ipchains for now. A reboot will cause the changes to be lost so we need to save and restore the chains. To save the chains we execute:
sudo sh -c "iptables-save > /etc/iptables.rules"

Kubuntu 12.04 (and I think all version since 9) use NetworkManager. So we need to restore the chains via NetworkManager. Run the following command:

kdesudo kate /etc/NetworkManager/dispatcher.d/01firewall

(If you’re hardcore you can edit it from the command line using vi)

Then add the following code:

if [ -x /usr/bin/logger ]; then
        LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler"
else
        LOGGER=echo
fi
case "$2" in
        up)
                if [ ! -r /etc/iptables.rules ]; then
                        ${LOGGER} "No iptables rules exist to restore."
                        return
                fi
                if [ ! -x /sbin/iptables-restore ]; then
                        ${LOGGER} "No program exists to restore iptables rules."
                        return
                fi
                ${LOGGER} "Restoring iptables rules"
                /sbin/iptables-restore -c < /etc/iptables.rules                 ;;         down)                 if [ ! -x /sbin/iptables-save ]; then                         ${LOGGER} "No program exists to save iptables rules."                         return                 fi                 ${LOGGER} "Saving iptables rules."                 /sbin/iptables-save -c > /etc/iptables.rules
                ;;
        *)
                ;;
esac

Ok. Now we get a new error message: “TLS Error: client->client or server->server connection attempted”. This message is a bit confusing,  but the solution is an easy one. It just involves adding “-p tcp” to the invocation of hma-vpn.sh. We now invoke it as:

hma-vpn.sh -p tcp "Los Angeles"

It asks for your HMA! username and password, and after a bit of negotiating, you’re surfing via Los Angeles.

Hooray!

Ubuntu reference on ipchains can be found here:

https://help.ubuntu.com/community/IptablesHowTo

You can sign up for Hide My Ass! using this link (and it gives me a little bit of commission):

http://hidemyass.com/vpn/r10785

{lang: 'en-GB'}

Compro Videomate C100 and Kubuntu 12.04

Long story. I bought a Compro Videomate C100 because it was cheap and I understood it would work under v4l. That was six months  ago and I’ve only just got it to work.

To see what was happening, I ran grep on the output from dmesg to find references to saa7134.

matthewa@alexandria:~$ dmesg | grep -i "saa7134"
[   11.584348] saa7134 0000:04:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[   11.584352] saa7134[0]: found at 0000:04:01.0, rev: 1, irq: 16, latency: 64, mmio: 0xfebffc00
[   11.584358] saa7134[0]: subsystem: 185b:c900, board: Compro Videomate DVB-T300 [card=70,autodetected]
[   11.584412] saa7134[0]: board init: gpio is 400000
[   11.632861] input: saa7134 IR (Compro Videomate DV as /devices/pci0000:00/0000:00:1e.0/0000:04:01.0/rc/rc0/input4
[   11.633226] rc0: saa7134 IR (Compro Videomate DV as /devices/pci0000:00/0000:00:1e.0/0000:04:01.0/rc/rc0
[   11.784007] saa7134[0]: i2c eeprom 00: 5b 18 00 c9 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
[   11.784016] saa7134[0]: i2c eeprom 10: 00 ff 86 0f ff 20 ff ff ff ff ff ff ff ff ff ff
[   11.784024] saa7134[0]: i2c eeprom 20: 01 40 01 02 02 03 01 03 08 ff 00 89 ff ff ff ff
[   11.784032] saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784040] saa7134[0]: i2c eeprom 40: ff da 00 ff 86 ff ff ff ff ff ff ff 5a ff 03 17
[   11.784047] saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff cb
[   11.784055] saa7134[0]: i2c eeprom 60: 34 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784063] saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784071] saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784079] saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784087] saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784095] saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784102] saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784110] saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784118] saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   11.784126] saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   12.830402] saa7134[0]: registered device video0 [v4l2]
[   12.830449] saa7134[0]: registered device vbi0
[   13.338092] saa7134[0]/dvb: frontend initialization failed
[   13.338686] saa7134 ALSA driver for DMA sound loaded
[   13.338710] saa7134[0]/alsa: saa7134[0] at 0xfebffc00 irq 16 registered as card -2

This shows that Kubuntu is detecting the card, but wrongly as a DVB-T300. From CARDLIST.saa7134, card 19 looks like a safer bet. This is easily remedied and only involves creating a configuration file.
kdesudo kate /etc/modprobe.d/saa7134.conf

options saa7134 card=19 tuner=54
install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa

After the change the outptu from dmesg shows that the card is now being correctly detected.

matthewa@alexandria:~$ dmesg | grep -i "saa7134"
[   17.388103] saa7134 0000:04:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[   17.388108] saa7134[0]: found at 0000:04:01.0, rev: 1, irq: 16, latency: 64, mmio: 0xfebffc00
[   17.388114] saa7134[0]: subsystem: 185b:c900, board: Compro VideoMate TV [card=19,insmod option]
[   17.388129] saa7134[0]: board init: gpio is 400000
[   17.540010] saa7134[0]: i2c eeprom 00: 5b 18 00 c9 54 20 1c 00 43 43 a9 1c 55 d2 b2 92
[   17.540026] saa7134[0]: i2c eeprom 10: 00 ff 86 0f ff 20 ff ff ff ff ff ff ff ff ff ff
[   17.540041] saa7134[0]: i2c eeprom 20: 01 40 01 02 02 03 01 03 08 ff 00 89 ff ff ff ff
[   17.540056] saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540070] saa7134[0]: i2c eeprom 40: ff da 00 ff 86 ff ff ff ff ff ff ff 5a ff 03 17
[   17.540085] saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff cb
[   17.540099] saa7134[0]: i2c eeprom 60: 34 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540114] saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540128] saa7134[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540143] saa7134[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540158] saa7134[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540172] saa7134[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540187] saa7134[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540206] saa7134[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540214] saa7134[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.540222] saa7134[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   17.543424] saa7134[0]: registered device video1 [v4l2]
[   17.543476] saa7134[0]: registered device vbi0
[   17.545825] saa7134 ALSA driver for DMA sound loaded
[   17.545851] saa7134[0]/alsa: saa7134[0] at 0xfebffc00 irq 16 registered as card -2

VLC can now open the card as /dev/video1 and use the alsa sound card line-in for sound.

Details of the Compro Videomate C100 are here:

http://www.comprousa.com/en/product/c100/c100.html

A few helpful pointers (and the full card and tuner list) are here:

http://www.techsupportteam.org/forum/linux-alternative-os/5417-saa7134-pci-tv-tuner-cards-linux.html

 

{lang: 'en-GB'}

Windows 8 Guest Network Adapter in VMWare Workstation

Recently I decided to avail myself of the “upgrade for £24.99” offer and upgrade a copy of Windows XP to Windows 8. Much prefering to run Windows in an VM on Linux, noting that only the VMWare SCSI disk was a problem I pushed ahead with the upgrade. After changing the scsi to ide in the vmx file, I booted into Windows 8 only to find that the VMWare network adapter wasn’t detected and installed.

Thinking that perhaps it was the fact that I am running Workstation 8.04, I downloaded and installed the 9.x series of VMWare Tools from the website. Still no joy.

Vaguely remembering that VMWare can emulate more than one type of NIC, I had a quick Google, and found the following page: http://sanbarrow.com/vmx/vmx-network-advanced.html

One more quick edit of the vmx file to add :
ethernet0.virtualDev = "e1000"
and hey presto we now have a fully functioning NIC in the Windows 8 guest.

{lang: 'en-GB'}

WebGL, Firefox and Ubuntu 12.04

WebGL is rather cool (as is Ubuntu 12.04 and Firefox). Recently I followed the instructions at http://www.ubuntugeek.com/howto-enable-webgl-on-firefox-4.html, only to find that
/usr/lib/libOSMesa.so.6
does not exist on my KUbuntu box after I sudo apt-get install libosmesa6.

In an attempt to try to find libOSMesa, I decided to install the release deb from https://launchpad.net/ubuntu/precise/i386/libosmesa6/8.0.3+8.0.2-0ubuntu3.2. This puts libOSMesa at
/usr/lib/i386-linux-gnu/libOSMesa.so.6

{lang: 'en-GB'}

InformIT #17DaysofGiveaways

InformIT is giving away prizes every
weekday in July beginning Monday, July 9. Every day we’ll be giving away our
daily prize to three lucky winners.Each day
you have four opportunities to enter:1. Be an
InformIT fan on Facebook2. Follow
us @InformIT on Twitter

3. Retweet
InformIT’s daily twitter post containing “#17daysofgiveaways” and a link to the
Giveaway blog post

4. Post a
link to the Giveaway on your personal blog

We hope
you’re looking forward to our themed weeks. Here are the prizes!

Web Development Week

July 9: Core HTML5
Canvas
by David Geary

July 10: Joomla! Programming
by Mark Dexter and Louis Landry

July 11: $25
Amazon gift card

July 12: Programming
in CoffeeScript
by Mark Bates

July 13: HTML5
Developer’s Cookbook
by Chuck Hudson and Tom Leadbetter

Software Engineering Week

July 16: R2D2
iPad case

July 17: Java
Application Architecture: Modularity Patterns with Examples Using OSGi
by
Kirk Knoernschild

July 18: Disciplined
Agile Delivery: A Practitioner’s Guide to Agile Software Delivery in the
Enterprise
by Scott W. Ambler and Mark Lines

July 19: Geek
Bookends

July 20: Elemental
Design Patterns
by Jason McC. Smith

Mobile Programming Week

July 23: PhoneGap
Essentials: Building Cross-Platform Mobile Apps
by John M. Wargo

July 24: Bookshelf
iPhone case

July 25: Android Wireless
Application Development Volume I: Android Essentials, 3rd Edition
by Lauren
Darcey and Shane Conder

July 26: Sams Teach
Yourself Windows Phone 7 Application Development in 24 Hours
by Scott
Dorman, Kevin Wolf, Nikita Polyakov, and Joe Healy

July 27: $25
Amazon gift card

Microsoft Week

July 30: ASP.NET
Dynamic Data Unleashed
by Oleg Sych and Randy Patterson

July 31: System Center
2012 Configuration Manager (SCCM) Unleashed
by Kerrie Meyler, Byron Holt,
Marcus Oh, and Greg Ramsey

More details on the official blog post at http://www.informit.com/blogs/blog.aspx?uk=17DaysofGiveaways-Here-are-the-prizes.

{lang: 'en-GB'}

WordPress Themes