For my PPA, I wrote a patch to support Ubuntu’s appindicators, without which TrueCrypt is a lot harder to use on Ubuntu. I was updating the PPA this weekend for 14.10 and I took the opportunity to add bash completion as well. I recently discovered that the PPA is quite popular, which makes me happy.
Anyway, back to the point of this blog post. Mac OS X 10.10 (Yosemite) was recently released, and both TrueCrypt 7.1a and 7.2 are unable to install on it due to a version check. Instead of posting a new binary that people don’t trust, here are steps you can take to remove the installer check from your own binary. You need to know how to use the terminal to perform these steps.
The easy way is to first extract
TrueCrypt 7.1a.mpkg from
TrueCrypt 7.1a Mac OS X.dmg and then run this command in the terminal:
sed -i '' 's/<installation-check .*>//' 'TrueCrypt 7.1a.mpkg/Contents/distribution.dist'
Or, if you want to create a new dmg archive with this fix, you can follow these steps:
hdiutil convert 'TrueCrypt 7.1a Mac OS X.dmg' -format UDRW -o 'TrueCrypt 7.1a Mac OS X writable.dmg'
hdiutil attach 'TrueCrypt 7.1a Mac OS X writable.dmg'
sed -i '' 's/<installation-check .*>//' '/Volumes/TrueCrypt 7.1a/TrueCrypt 7.1a.mpkg/Contents/distribution.dist'
hdiutil detach '/Volumes/TrueCrypt 7.1a'
hdiutil convert 'TrueCrypt 7.1a Mac OS X writable.dmg' -format UDBZ -o 'TrueCrypt 7.1a Mac OS X Yosemite.dmg'
I hope this is useful to people.
The German magazine PC Welt featured ShutdownGuard in edition 5/2014. Compared to when AltDrag was featured in another german magazine back in 2012, this time there’s good chunk of text in the pages! My only complaint is that they didn’t put my name in there, but otherwise I’m very happy!
What magazine is next?
Yesterday Google Code Project Hosting shut down the ability for projects to add new downloads, just as they announced back in May. The reason they say, is because the “downloads have become a source of abuse”. I have no doubt they were having problems, but this move — basically killing Project Hosting instead of fixing it — shows that they really see no future in the product. I had some trouble with this back in March and a rather unpleasant experience trying to get Google to correct it.
It was perhaps no coincidence that Github less than two months later announced “releases”, finally making it possible to ship binaries to end users (they did have a downloads section for a while, which has since been removed). With this launch, Github is offering a lot more than Google has ever offered with Project Hosting.
Last weekend I spent some time to finally migrate my repositories over to Git and Github. All my repositories on Google were using Subversion, the first VCS that they offered (they now also offer Mercurial and Git). It has been clear for a while now that Git has won the DCVS fight, so this feels very familiar to the days when people were moving from CVS to Subversion.
Github suggests that you use svn2git to migrate from Subversion to Git. The only issue I had with this is that it is impossible to use it to migrate your Project Hosting-specific
/wiki directory, and I had a lot of trouble finding a good solution. Finally I stumbled over Google’s instructions on converting your repository from Subversion to Git. What I ended up using is a combination of the two.
Before we move on, I want to mention that you might want to import your
/wiki directory as a Github wiki, but in my opinion Github wikis are kinda sucky, as there is no good way to merge between forks. If you prefer this option, continue reading for a bit, but instead of merging your two Git repositories, just push one of them as your project repo and the other one as your wiki repo.
First, use svn2git to transfer everything except your
/wiki directory. Your
/trunk will become your master branch,
/branches will become their own branches and
/tags will automatically be tagged. Be sure to build your
~/.svn2git/authors file first, and always run svn2git with the verbose flags, since otherwise you might not see important conversion errors. If your branches and tags are not correctly converted, watch out for this bug.
svn2git -v http://altdrag.googlecode.com/svn/
Then, use “
git svn clone” to transfer your
/wiki directory to its own little git repo. Use
--no-metadata to get the commit messages in the same format as svn2git.
git svn clone http://altdrag.googlecode.com/svn/wiki altdrag.wiki --authors-file=$HOME/.svn2git/authors --no-metadata
Now, to combine your two repositories, you will create a “
git subtree” inside the repository that svn2git created. This will magically insert the wiki commits in the repository history, but inside a new /wiki directory.
git subtree add --prefix=wiki file:///home/recover/altdrag.wiki master
If you get an error running this command, you might have to run these commands first (Ubuntu):
sudo chmod +x /usr/share/doc/git/contrib/subtree/git-subtree.sh
sudo ln -s /usr/share/doc/git/contrib/subtree/git-subtree.sh /usr/lib/git-core/git-subtree
Now run “
git log” and verify that everything is Ok.
I also decided to rename my tags from the traditional “
altdrag-0.1” Subversion syntax to semantic versioning, commonly used with Git.
git tag v0.1 altdrag-0.1
git tag v0.2 altdrag-0.2
git tag -d altdrag-0.1 altdrag-0.2 ...
Now you should be all set to push your repository to Github. Create your repo on Github, then add it as a new remote and push everything.
git remote add origin firstname.lastname@example.org:stefansundin/altdrag.git
git push -u origin --all
git push --tags
Now all you have left to do is to move over your binaries to the release tags that were automatically created.
I will still have to go back to Google Project Hosting from time to time during this transition. I still have lots of issue reports on Project Hosting that I intend to resolve there. And when I release the next version, I have to transfer the feature that checks if a new version has been released to Github.
It feels good to finally move over to Github. Google Project Hosting was fun while it lasted, but I hereby pronounce it dead.
You sometimes follow a link to a YouTube video, but instead of watching a video, you are greeted by this familiar screen.
However, there is a trick to get a single frame from the video. The embed player fetches a single frame to display before you press the play button, and it is still available even though the video has been marked private. This is the url to it:
If the video was uploaded in 720p or higher, you can use
sddefault.jpg to get a higher quality image. From what I can tell, there is no
hddefault.jpg. The thumbnails displayed on YouTube are
Another issue that happens quite frequently is that sometimes videos in my playlists are marked private (usually music). Because YouTube removes the name of the track from my playlist, I have no idea what song it was, and that makes it really difficult to replace. I wish YouTube wouldn’t hide the track name in the playlist, it’s enough that the video is inaccessible.
When a video is blocked due to a copyright infringement, then YouTube sometimes displays part of the title. Not always, though.
If anyone has a consistent trick to get the video title when it’s private or has been deleted, please post in the comments.
I’ve been looking for a way to get notified on new YouTube Live events somehow. I’ve been subscribed to the GData feeds for YouTube Live Events since Coachella, but it hasn’t worked that well since it’s not meant to be used directly by a feed reader for humans.
So I decided to code a quick PHP script that converts the feeds to something that is readable in most feed readers, where the entries link directly to the YouTube watch page of the event. As the GData API has four different feeds,
recently_broadcasted, my script supports the same:
- youtube_live.php?id=featured (default)
I find it interesting that the Google I/O keynote has been scheduled already, which will be live in 10 days and 17 hours: watch?v=jpQFnqpETy0. I’ll be there, will you? Let me know. =)
Another interesting thing in Feedly is that the service associates feed articles (the feed link) with likes on social media networks, so you will instantly get a measure on how popular an event is from a glance.
The featured feed only lists the latest 15 events, while the other feeds list 25 events, so some events that have completed may not be updated since they didn’t fit in the results. To fix this a backend service needs to keep tabs on events and check the event’s individual feeds if they have been updated, and so on. But this is only a quick hack and that would be too much work.
I’ve also posted the code for the script as a Github Gist: stefansundin/5519170. Put any suggestions either in the comments here or on the gist.
I hope you guys like it!