Softcore software development
It's all about the cycles
  • Home
  • About

hugs Category

Blackberry Bold 9780 and Content Protection

hugs Comments Off

A few weeks ago I purchased a Blackberry Bold 9780 and switched to WIND mobile from Rogers Pay as you Go. A process which did not go nearly as smoothly as I had hoped. My Blackberry has also caused some problems, one of those relating to BBM.

Every once in a while, instead of a message I got the dreaded phrase “<Content Protection is Enabled>”. Not only was the Internet entirely unhelpful, but so was Blackberry. I have read somewhere it had to do with encryption, but no reason as to why.

Today after it reared its ugly head again. This time however, I noticed that the message occurred when my phone was locked. On a new lead, I Googled “blackberry messenger password lock content protection” and found a useless blackberry article. I figured I might as well try “Content Protection” on the BlackBerry site and hit this gem:

Content protection is designed to encrypt your BlackBerry® device data. When content protection is turned on, your device uses a private key to encrypt data as it is stored on the device, including data that your device receives when it is locked. Your device decrypts data as you access it.

You can set content protection to include or exclude your contacts. If you turn on content protection for contacts and you receive a call when the device is locked, the caller name does not appear on the screen.

When you lock your device, an open lock indicator appears in the device status section of the screen to indicate that your device is deleting a copy of the private key from the temporary device memory. A lock indicator appears when the device has deleted the key.

This makes sense. When your phone is password locked, the private key is removed. I don’t know whether Blackberry uses a symmetrical or asymmetrical key. If the former, than the message is in limbo until it is written somewhere (which it cannot do with the private key). Makes sense if it’s the latter, which means the message is written but cannot be viewed until password is entered. This is stupid however, as message preview has no issue showing you the message. It seems that BBM does not go back and decrypt the message once the password has been entered.


August 21st, 2011 |

Tags: blackberry, stupid, UX




Movies

hugs Comments Off

This has been my movie decision flowchart for the past while:

Movie buying decision flowchart

Right now, I own a total of 1 movie that I made an exception to this chart. I apply this to games and movies as well. Though, I have a lack of games so another exception was made on Christmas :)

While entertainment isn’t a big enough sacrifice to be worth complaining about (first-world problems), I wonder whether refusing to buy something that is only available on DRM can justify pirating it since the creators won’t be seeing your money anyways. And personally, the amount of garbage put into most DVD movies (FBI warnings, trailers that you cannot skip, more threats of impending lawsuits) is almost tempting enough to download it just to stick it to the man.

I do rent movies. Most or all of them have DRM, so I might not be making a difference at all :(


December 29th, 2010 |

Tags: activism, drm




Beatport wav converter

hugs Comments Off

A while ago, I began purchasing music off of beatport. Unfortunately they do not offer FLAC downloads, so I pay the extra dollar to download wav files. The downside is that I have to manually enter metadata. This is painful, so I created a quick python script using their almost invisible api that does it all for me (the wav files must have kept their original filenames, because the numbers in front represent the track id).


November 13th, 2010 |

Tags: beatport, python




Update

hugs Comments Off

I have been suspiciously absent from my blog, even though I don’t blog very much. Truthfully, I have been getting a lot of nothing done. Socially, the experiment is a failure, as I haven’t been able to make new friends. Relationship with my ex is still in a wild state of flux (we almost went a whole month without a fight!), and I have gone completely AWOL on any contributing to AMO.

On the positive notes, I have and continue to learn more about cryptography even though I haven’t finished (hell, you can say I barely started) reading the Handbook of Applied Cryptography which is a fascinating book that is low level. I have finished, and testing, a working implementation of SHA-1 and MD5 hash. It’s for a slightly bigger project that I had in mind.

My work is going very well. Since being assigned Tester/Release Manager (it’s not quite as involved as Mozilla release manager, believe me) I have been learning about NSIS installers and C++ testing frameworks, which is always fun and exciting and strange.

Moving on, I hope to have a working implementation of AES in March, even though I am mathematically challenged and will have no practical solution for it (it will be a solution without a problem). There are still several bugs assigned to me in Remora that I plan on finishing. I will still need to make a actual effort to get socially involved. I still have two goals that really should have started in January that includes:

  • Getting my gun licence
  • Going to the gym

My work will also be evolving soon to tackle our next release of the SmartSwipe. Totally not sure how much to give away, but it’s a tight deadline.

Ah, it feels good to reflect back on the last few months and have a plan for the future.


February 26th, 2010 |



Destination Regina

hugs, personal 1 Comment »

Yesterday, I accepted an offer to work at NetSecure Technologies which is a company based in Regina doing Firefox extension and C# work (mainly the former. I never worked with the latter, and they are aware of that). This also means I have to relocate to a city who I know nothing about. In fact, I will likely be a typical snobby Torontoian for the year contract that it is for.

Unfortunately I will be leaving my current employer PPX. Good people. But I am excited about my new job responsibilities, and think it will be a better fit for me.


October 26th, 2009 |

Tags: microblog, personal, regina, toronto




Protected: Whazzup!?

hugs Comments Off

This post is password protected. To view it please enter your password below:



October 3rd, 2009 |



Google Maps and geolocation

hugs, programming, Web Comments Off

I was first made aware of the fact that maps.google.com now uses geolocation by sdwilsh, which is new in Firefox 3.5. But when I loaded maps, I was surprised to see that it didn’t work when I visited the site. And I was using something even more recent than Firefox 3.5, Minefield. Surely, it has geolocation, so what is going on?

The reason maps doesn’t support Minefield is because of *drumrolls* … browser sniffing. Developers… no wait… GOOGLE web developers, I thought we moved on?

The actual bit of code is here unminimized and tidied up ;

function isBrowserGeolocationSupported(){
    if (window.navigator &&
        navigator.userAgent.search("Firefox") != -1 &&
        navigator.geolocation)
        return true;
    if (window.navigator &&
        navigator.userAgent.search("Chrome") != -1)
        return Number(String(/Chrome\/[0-9]+/.exec(navigator.userAgent)).substr(7))>=2;
    var gearsFactory=null;

The hell? Ok, so I understand they do a bit of browser sniffing because it looks like Chrome had a old/broken implementation of geolocation. But I wish there was a more graceful way of doing this (maybe something like navigator.geolocation.version < 1). One that didn't break every application that may implement geolocation that isn't named Firefox. Because, those exist too.


July 10th, 2009 |

Tags: browser compatibility, google chrome, Web




Oh Windows

hugs Comments Off

You are an endless source of joy in my otherwise frustrating Linux life.
Microsoft Windows Operating System has encountered a problem and needs to close.


February 11th, 2009 |

Tags: microsoft, windows error




Uncovering the underlying metadata

hugs, Web Comments Off

A few weeks ago, I wanted to do some C++ Mozilla coding to make sure I wasn’t going soft. But I didn’t really know what to do. I left it for a bit until I found something weird about the HTML5 spec – there was a method of testing whether metadata has been loaded, but no way to expose the metadata (eg. song title, artist, album, etc) to the user such as through page info.

I think this will be useful. As media starts being embedded into the web browser, it would make sense to start exposing this to the user. I know there have been a few instances where I was listening to something on the radio, but there was little hint of what the song was called (I usually tried to remember a few lyrics and did a Google search. Mixed success).

I brought this up in the whatwg irc channel, and apparently this is being considered for the next version of the spec. Which is understandable, because the server can always display the metadata. But often, media may not be central to the website. For example, background music.

I started look at the Audio/Video backend stuff that moz uses. It got confusing real quick (it doesn’t help that the audio code itself is completely empty). Plus I was in a hurry. So I decided to implement it as an extension.

It was a lovely experience. I had a few problems, including finding out that audio/video wasn’t actually being saved to the cache (bug 469446). It was checked-in like 2 days after I found it out. Also, I hate string very much. The string guide helped, but it is still awful. And I made firefox crash a few times because I’m a nsCOMPtr n00b.

Right now, this extension is working only with ogg vorbis files. Which is stupid because <audio /> is rarely used anywhere, and if it is used, only with certain conditions (wikimedia commons uses the audio tag, but not really. Apparently, the video/audio tags start automatically downloading the media even if it isn’t under autoplay. This is a mess if you have dozens of audio tags in one page. bug 464272). It is so rarely used, that I had to create a audio demo page for testing purposes.

Using it is very simple. Right-clicking on a audio tag brings up the context menu. I decided to use the context menu over Page Info because the media tab of the Page info dialog is very much geared towards images, and that code has to be changed in the firefox source (it’s not easy/pretty to overlay).

audio context menu

Which brings up the audio’s metadata

audio properties

While a lot of metadata is displayed, some isn’t. For example, iTunes has support for cover art as a COVERART header. While you can put that in vorbis, it should be noted that it isn’t widely supported. So I decided to put in only the standard headers for now.

This is dealing with C++ code. Which is much more dangerous than javascript code because NS_ERROR_OMGWTF doesn’t appear in your error console when I try to free an uninitialized pointer. I made basic checks so hopefully nothing bad will happen. But I didn’t do extensive checking in case we have a bad ogg file or something.

Well, to be fair to me, I always save the function’s return value. I just didn’t check whether it passed nor did anything about it. And this won’t just crash at any time. It’ll crash if you try to load the metadata (I’m very nice like that).

The name of the extension is saraswati, named after the hindu God of music and knowledge (really, a Google search helped out a lot here). Please enjoy! (Linux x86, x86-64 and Windows x86 only right now)


January 22nd, 2009 |

Tags: audio, bug, extension, html5, seneca, sleep




NSILHNFHDwxyz

hugs, personal Comments Off

This has sorta turned out to be a mashup of NSID. But because I started mid-November, it’s

No Shaving In the Last Half of November and First Half of December. wxyz for the more obtuse title name.

I wasn’t sure when I started. At the very latest, it was November 14th. So yesterday marked the 31st day, and today is the day I can shave it off :) Happy New Years!
It wasn’t easy, and I hate the end result. But I enjoy the not shaving for 31 days part.

I’m covering up my beard here. I wouldn’t look too bad with some facial hair :
In deep thought

A comparison :
Me vs. Waluigi

UPDATE : I originally wrote this mid-December, but kept it in draft until the beginning of January so not to spoil the other participants and for them to get all jealous. Thanks to one of my bank statements, I figured out I most likely started on the 19th, not the 14th. So I shaved 5 days too early. fail


January 4th, 2009 |

Tags: nsid, personal, shaving




Previous Entries
  • Categories

    • addons
    • beatport5
    • hugs
    • Living
    • personal
    • programming
    • Uncategorized
    • Web
  • Recent Posts

    • A breakdown of building Firefox
    • Waking up your computer at a certain time
    • Image prefetching
    • Sharing a django project
    • Flash, Silverlight, and the future of the web
  • Tags

    "open source" activism audio beatport browser compatibility bug chrome editor extension fennec google chrome house html5 hugs ie intern jquery json konqueror lazy microblog microsoft mozilla music nsid opera personal prism python regina ria safari security seneca shaving shoes sleep svg tinderbox tip toronto UX Web wildon windows error
  • Archives

    • January 2012
    • December 2011
    • November 2011
    • October 2011
    • September 2011
    • August 2011
    • June 2011
    • January 2011
    • December 2010
    • November 2010
    • October 2010
    • July 2010
    • May 2010
    • February 2010
    • December 2009
    • November 2009
    • October 2009
    • August 2009
    • July 2009
    • February 2009
    • January 2009
    • November 2008
    • October 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
RSS XHTML CSS Log in
Copyright © 2012 Softcore software development All Rights Reserved
Wp Theme by i Software Reviews
Proudly Powered by Wordpress