Technorama
An omnibus of tech posts by a Futurologist on
software development primarily.
Friday, 26 September 2008
T-Mobile G1 (Google Android) mobile phone
Good to see the
T-Mobile G1 announced. I wanted to get an
OpenMoko phone, but the lack of camera (and MMS?) means one of my most common uses is ruled out. Great that HTC who make the G1 have gone with a modern keyboard design like I
proposed a while ago too :)
Tigra from nVidia looks good, hope to see some actual models out in the future.
Labels: Android, GNU-Linux, Google, Mobile
Sunday, 3 February 2008
When will Microsoft open up their OS to customisation?
One way Microsoft could improve their strategy is to offer users and PC sellers choices in the way the OS is setup, what components are installed and what browser, Wordprocesor is setup as default etc. Even more useful things like what UI is default and the ability to run a different desktop such as Gnome or KDE. It would give Microsoft another chance to compete with the flexibility that a GNU+Linux PC seller has. The EU Competition Commissioner Neelie Kroes may even force them to open up their OS to vendor customisation when they loose the Opera case..? It would save them market in the short-term.. so let's hope they don't read this!
Labels: Europe, GNU-Linux, Microsoft
Saturday, 2 February 2008
ASUS Eee and
OLPC now have a competitor, from Canadian company
InkMedia with their
Unique laptop running
Ubuntu. It is a different in that it runs everything from ROM, and data is saved to an external USB stick which prevents any viruses getting into the system when nothing is connected.
Labels: Future, GNU-Linux, Laptops
Tuesday, 29 January 2008
3D on the web (VRML, X3D and COLLADA)
3D on the web is one area that is still absent, I'd like to see that change over the next couple of years, especially as the tech has been around since the 90s. We've got the open format
VMRL and
X3D, which via the script tag support Javascript code. There is the Sony Computer Entertainment COLLADA format which is now maintained by the Khronos Group.
So to pull it all together browsers really need to add native support for these formats. While their are "plugins" such as the excellent
OpenVRML that is still just a plugin, and not an integrated component of the browser like SVG or HTML. Perhaps someone at an innovative net business would be what's needed now to get things rolling.
Labels: Firefox, GNU-Linux, Tech, Web
Security updates from day1 with Kubuntu
I thought GNU+Linux was meant to be more secure than Apple and Microsoft's offerings.. you'd be fooled by the number of security updates needed on a clean Kubuntu 7.10 install. Everything from printing (CUPS), e2fsprogs, ghostscript, libflac, libpng, libxfont, mysql-common, openssh-common, openssl, perl, pidgin, samba and xserver-xorg-core need updating! already! at least they have fixed all these flaws since last September.. but why were there so many in the first place?
Labels: GNU-Linux
Thursday, 24 January 2008
Kubuntu 7.10 Japanese environment disappointment
Just installed Kubuntu 7.10 on a 16GB Corsair I bought. A few problems came up in the boot after install, notably although I'd got it to manually install GRUB on my /dev/sdb drive (which GRUB c confusingly calls hd1), when Kubuntu booted it could not find the partition mapped as the root (hd1,0).. this it turns out is because the numbering changes depending on what was booted.. and as I selected USB boot from BIOS menu.. my /dev/sdb translated into being hd0. I change the root line in GRUB's edit mode to be hd(0,1) and it successfully booted though!
When I logged in, I noticed that although I had done a Japanese install (completely translated as Japanese during the install etc too), KDE was still in US English, and Japanese input did not even work! (Shift+Space is the usual combo to change into Japanese input). Alas, I've not figured out what is wrong with the install, and when I tried to get help online with Konversation that actually crashed:
#6 0xb71f09a3 in QGArray::duplicate () from /usr/lib/libqt-mt.so.3
#7 0xb6e28a33 in QMemArray
::duplicate () from /usr/lib/libqt-mt.so.3
#8 0xb6e28a70 in QCString::operator= () from /usr/lib/libqt-mt.so.3
#9 0xb72070ea in QLocalePrivate::systemLocaleName ()
from /usr/lib/libqt-mt.so.3
#10 0xb72071a2 in QLocale::system () from /usr/lib/libqt-mt.so.3
the rest of the back-trace was missing.. as Ubuntu still doesn't ship or automatically download symbols when it gets crashes..
Performance is a bit sluggish off this USBstick unfortunately, so I'm going to give try a differnet approach of just having the /boot on the USB stick, and then use an external drive for /, /home and swap!!Labels: GNU-Linux, Ubuntu
Friday, 18 January 2008
GRUB not ready for public use
Most GNU+Linux OSs now come with only GRUB available as part of the setup. So after the last
incident with Ubuntu breaking my laptop MBR, I decided to approach it differently. I found a USB stick which I could use as my "boot" drive, I created the ext3 /boot partition on it, and installed GRUB onto hd3 as part of the install (which I am guessing correlates with /dev/sdc, although that was not explained anywhere in Ubuntu).
So when I rebooted and expected it to work.. the GRUB screen appeared, with my menu choices. However.. none of them worked, not even my "Microsoft Windows" one, which should have surely just been hooked into the MBR or Bootsector of my C drive (sda/hd0)!? The Kubuntu menu items just said kernel not found.
What is really odd is that GRUB is so anti-user-friendliness. It says "Error 17" whatever that means, could they really not have included a few words to explain the problem? I typed "help" and was presented with some commands, but no interactive help, I don't know what order to specify root/boot/chainload?? etc, and I could not even view the available discs/partitions that were available!
GRUB is sorely missing a simple menu which lets users select drive (MBR) or a partition (Bootsector) from which to load. I have to say I am disappointed it is so poor currently.
After formatting as FAT32 my /dev/sdc2 partition, my USB stick no longer even has a working GRUB menu, so I'm presuming it wasn't storing its data on the /boot partition afterall..!?
Looked at "grub-floppy", it is just a warning saying it doesn't work and maintainers need to fix it. So that option is not available either now.
Labels: GNU-Linux
Thursday, 17 January 2008
Open platform GNU+Linux beat Microsoft
The open hardware platform that is the x86, SATA, DDR2, PCI-X etc is the reason GNU+Linux will win in the end. Microsoft do not control the platform like Apple do with their Digital Restrictions Chip, so they are destined to ultimately loose control of the software market.
Labels: GNU-Linux
Wednesday, 16 January 2008
Apple Mac OS X software refunds
Apple's new "
Air" laptop looks sweet! ..but they're not selling it with a GNU+Linux install yet.. :( So looks like I would need to buy a standard model, then disagree with the software license terms and return that part of a refund. The Apple
Mac OS X License terms seem to allow for a refund in the following ways:
- "IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO NOT USE THE SOFTWARE AND (IF APPLICABLE) RETURN THE APPLE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT FOR A REFUND OR, IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY, CLICK “DISAGREE/DECLINE”."
- "Apple warrants the media on which the Apple Software is recorded and delivered by Apple to be free from defects in materials and workmanship under normal use for a period of ninety (90) days from the date of original retail purchase. Your exclusive remedy under this Section shall be, at Apple’s option, a refund of the purchase price of the product containing the Apple Software or replacement of the Apple Software which is returned to Apple or an Apple authorized representative with a copy of the receipt."
I wonder if they would try and get around it by only giving me a £1 refund or something for the OS software? After all it didn't cost them more than £1 to copy the install CD as it didn't take anything from the original version of the disc.
Check out this
Air review, it rightly points out that the
Sony X505 is also good, and it even has about 500g mass less than Apple's Cyclops beast with only one USB port!
Labels: Apple, GNU-Linux
Thursday, 20 December 2007
Discpace of used by sub-dirs
There are often times when I wish Konqueror or the MS-Windows equivalent could display a column for discspace used by sub-dirs. Unfortunately its necessary to check each directory manually, when really I just want to track back from my ~/ to see where all the used up space is!
Labels: Future, GNU-Linux
Sunday, 9 December 2007
Install and restart in Firefox
It is interesting to see that Firefox suffers the same problems that MS-Windows does. Every time an extension is installed it says it is necessary to restart before changes will take effect. Why can't they apply on the fly like most GNU-Linux desktop applications?
What is worse that Firefox's offer to Restart doesn't actually work, I installed Filterset.G Updater on the latest 2.0.0.11 (what's with the silly numbering?) and clicked "Restart" when it offered, and when it restarted it hadn't really restarted, as Filterset.G hadn't run its first-run functions to download the advert block list! I had to close it, and manually restart to get it to download the advert block list.
..so come on Firefox developers, catch up!
Labels: Firefox, Future, GNU-Linux
Monday, 12 November 2007
Check (fsck) your GNU-Linux filesystems! (ext2/ext3 & FAT)
I've had so many hard drives fail over the years that I'm sadly accustomed to running these checks on my drives to test them, and I even now run on new/replacement drives because I get faulty drives that have probably been dropped by the courier a couple of times a year as well. My longest serving drive is only around 3 years old ! Just purchased a 4GB M2 card for my Sony Ericsson K800i, that had errors straight out of the box!
New drives
For a new drive, it's fine to run a destructive test, which writes patterns of data and does a through "soak" test (this may take over 24hrs on a 350GB drive though):
# badblocks -b 4096 -c 512 -s -v -w /dev/sdxx
^ This tests 512 blocks (4096 bytes each) at a time, which means the process takes an order of magnitude less time than the defaults. The -w flag makes it write the pattters 0xaa, 0x55, 0xff, 0x00 over every block of the drive, read it back and compare. -s and -v gets the program to display information while it is running so we know where it is up to.
Drives with valid data
If you're like me, and you need to also check filesystems with valid data that you can't overwrite you need to do a safe read-only check of each block. Unfortunately no distros come with a a ram root disc which includes the utils necessary to do these checks, so you'll need to boot up from a Live disc, either Knoppix, or a standard Ubuntu disc will do. Run these commands on the drive:
# badblocks -b 4096 -c 512 -s -v -n /dev/sdxx
Also, you can display the blocks which are reserved as bad on an ext2/ext3 filesystem with the command:
dumpe2fs -b /dev/sda3
Memory cards
Old style DOS filesystems are still around on some memory cards (they've not reached the hard-coded limits of FAT32 yet!). So if like me, you've got a Sony Ericsson K800i, plug in the USB cable and run these commands to do an interactive check, which also scans for bad sectors:
# umount /dev/sdd1
# fsck.vfat -rtvV /dev/sdd1
Mount count checks
Make sure your mount-counts are set to something reasonable, if you reboot 3 times a day set it higher, but if you only boot twice a month it might be worth having the max-mount-counts set to 1 with the -c option. Stagger your different drives with different counts (primes eh!?) to avoid overlap. So 2,3,7,11,13,17,19,23,29 etc
Set a time interval with the tune2fs -i command.
Recover a problematic partition with dd_rescue
Got a failed drive that you want to recover files from? Sometimes it's not possible to mount them, so the trick is to copy it to a new drive with dd_rescue. I would have said use "dd", with a line like:
dd if=/dev/sda of=/dev/sdb bs=512, but even with conv=noerror it actually skips sectors in the output it can't read, so your new partition will have all the remaining sectors bunched up, and thus the file inode chains won't work! dd can be used with conv=noerror, sync but you also need to get the ibs set correctly and the man page is poor. So simplest is to use
dd_rescue (or GNU ddrescue, or myrescue):
# dd_rescue /dev/sdxx_in /dev/sdxx_out
It just uses zero for sectors it can't read. Then you can run recovery tools on the new copy you made, without damaging the faulty drive further. There are various tricks like actually writing the data back to the same drive, which will cause the drive to remap the sectors (you all understand engineering tracks and that all drives ship with a certain number of mapped out bad sectors using spare sector pool right?).. which may allow you to mount the faulty drive directly.
Feature wish list
fsck.vfat should include a % complete indicator which updates as it progresses, so we know its still working! When your drives reach the mount count they have a display in that mode, so could go the same, like this:
|====================............|*
fsck.vfat provide a way to view the bad blocks on a drive.
fsck.ext3 should provide a way to get the list of bad blocks out of the drive. (Currently we have to run dumpe2fs)
dumpe2fs is actually a very useful util, for developers mostly though. (and bad blocks check as above)
tune2fs lets us set the mount count, which forces a check when the system reboots (why can't distros also run other checks in this read-only mounted state?) Set the mount count with -C 4096 to force a check on the next boot (as that number is higher than the max-mount-counts)
e2image useful for dumping the filesystem to a file for analysis purposes. debugfs is an interactive filesystem debugger.
Tips
Give your partitions a name with the tune2fs -L command, to make it simpler to identify your drives. You can also do this when creating your partitions by passing the name to: mke2fs -L (GNU+Linux distributions still aren't setting meaningful names like "boot", "root" and "home" as partition labels, doh!). The e2label /dev/sda1 Root_FS command achieves the same result as using tune2fs.
Check the name of your partition by calling: dumpe2fs -h /dev/sdxx
You can also name your Swap partition, first disable swap, then setup a new swap file in it with the name:
# swapoff /dev/sdb1
# mkswap -L SWAP_DRV /dev/sdb1
You can list the labels of your partitions by using the "blkid" shell command too! As fdisk -l only gives the partition types.
Never had success reading S.M.A.R.T. from GNU+Linux, always didn't support my drives.
smartctrl is part of that live disc, so you may be lucky if you try. (I'm informed the atausb driver mgiht support S.M.A.R.T. although my drive uses ata_piix driver)
Finally, be really careful when using these commands, as you could destroy your data! If you ever need it, you can force the kernel to sync and remount all filesystems read-only by pressing Ctrl + Alt + SysRq + s, followed by Ctrl + Alt + SysRq + u. Then do Ctrl + Alt + SysRq + b to reboot the system.
Labels: file-systems, GNU-Linux
Sunday, 11 November 2007
Poor SMART support on SATA and GNU-Linux
Of my two SATA drives (Seagate and Samsung) and one external USB2 (Western Digital) all bought within the last 12 months, none support the SMART standard according to GNU-Linux's nifty
smartctr util. It's areas like this where the OS is lacking, and Windows tools seem to manage to monitor devices ok, so perhaps this is a Linux kernel issue? Whatever the underlying cause is.. vendors need to get together with distros and other stakeholders and resolve the issue!
Labels: GNU-Linux
Saturday, 10 November 2007
Master Boot Record (MBR) fix for laptop ubuntu broke!
Kubuntu installer
killed my dell laptop the other day. As Dell still don't include any
diagnostic tools in the firmware I was stuck. The C drive on this laptop had been setup by Dell with MS-Windows XP, but I couldn't even use the MS recovery console as it only allows access to the C Drive after entering the administrator password.. and as you all know, Dell don't setup an administrator account/password any more. Dell diagnostic tools are installed on the hard-drive.. which could not be booted..! Clever eh Dell?
As I had the Kubuntu live install CD I booted up that again. For some reason they have not included typical recovery commands on the CD though. I could have used the LILO command to write a working MBR back to the drive with this command:
/sbin/lilo -M - write a Master Boot Record on a device
I found a better fix from some kind sole on ##windows IRC channel. Install the "
mbr" package, and then run the command:
install-mbr /dev/sdaWhich will write a default MBR similar to the one LILO produces I expect, which will boot the first active partition. Of cause this only works if you can setup a network connection, and get access to the ubuntu repositories to issue apt-get install mbr. Why not include these as standard ubuntu guys? Especially when the installer is breaking Dell laptops like mine!
Backup your boot sector
You can back up your bootsector, and then restore it should you need to.
To backup the whole MBR and partition table run:
dd if=/dev/sda of=backup_mbr.dat bs=512 count=1
Of that 512 bytes, only the first 448 bytes is the boot code, the remaining 64 bytes is the partition table of the drive.
To just restore the MBR boot bytes run:
dd if=backup_mbr.dat of=/dev/sda bs=1 count=448
My
MBR backup could be useful to someone.
Be very careful running these commands, as you could make your boot problems worse!
Also there is a great package called
Smart Boot Manager on sourceforge, it's got it's own little boot menu (
screengrab) and gives a choice of which partition to boot from. Developer is looking for a new maintainer, so get in touch with him if you're interested!
Labels: GNU-Linux
Thursday, 8 November 2007
Ubuntu killed my laptop!
Ran up the Kubuntu 7.10 Live CD and started the install last night. It detected my external USB2 drive I wanted to use (sdb), and let me leave my my Windows C drive alone (sda). It took over the whole of sdb, creating about 6 partitions, why so many? not necessary to use the extended partition IMHO.
Then the installer offered to install the boot loader grub, so I went along with it. Little did I know this would break the system. The Installer displayed no warning about this potential hazard like it should have, at the least.
While it was formatting the drives I clicked the "Skip" button as I had already formatted the drive, so it only really needed the (empty) directory structures writing etc.. that was the installer's first fault, as the UI locked up, and the windows became corrupted. The "ubiquity" process was still taking up 95% of my CPU, so I assumed all was well under the hood, but after after 2 hours waiting, and no activity I rebooted the laptop to see what the damage was.
When the laptop started, with or without the USB2 external drive in I got this ominous display:
=====================
GRUB Loading stage1.5
GRUB loading please wait...
Error 5
_
=========
So when Kubuntu knew it was an external drive (it had given it that name!) did it install the grub knowing the stage1.5 would be inaccessible because the usb kernel drivers had not yet been loaded?
Quite a few visible bugs, even the Wireless connection wizard gets stuck displaying "Unknown", the workaround is to manually select the Wireless connection *again* to get it to complete the connection.
Konqueror displays a multitude of accented characters in little boxes all over the browser window from time to time.
The installer seems to have other issues as well:
Nov 7 19:49:42 ubuntu ubiquity: /proc/misc: No entry for device-mapper found
Nov 7 19:49:42 ubuntu ubiquity:
Nov 7 19:49:42 ubuntu ubiquity: Is device-mapper driver missing from kernel?
Nov 7 19:49:42 ubuntu ubiquity:
Nov 7 19:49:42 ubuntu ubiquity: Failure to communicate with kernel
..and why is it doing this before asking me!?
Nov 7 19:50:25 ubuntu ntfsresize: ntfsresize v1.13.1 (libntfs 9:0:0)
Nov 7 19:50:25 ubuntu ntfsresize: Device name : /dev/sda2
Nov 7 19:50:25 ubuntu ntfsresize: NTFS volume version: 3.1
Nov 7 19:50:25 ubuntu ntfsresize: Cluster size : 4096 bytes
Nov 7 19:50:25 ubuntu ntfsresize: Current volume size: 56696852992
Sometimes it feels almost like we are going backwards with GNU-Linux distros!
Labels: GNU-Linux
Sunday, 4 November 2007
Guesthouse provides Linux wireless config!
I have to say, this was a first for me,
Clifton Guest house in Maidenhead provided me with a wireless connection sheet with Linux (and MS-Windows) instructions on it! Interestingly they missed Mac details out, a signal of the way things are going!?
Labels: GNU-Linux, UK
Tuesday, 2 October 2007
Java shoddyness in 2007
It's that time of year again, time to see if Java has improved enough to be usable. Facebook has a nifty image uploader applet written in Java. So I clicked through the Ubuntu updates to pickup Java Runtime Environment to give it a whirl.
All ok so far, but when I reload Firefox and login to Facebook I get this popup:

This would be expected if I was running in Japanese, but I'm not! This bug was present back in 2001 when I tried Java then. It is ignoring my LC_MESSAGES=en_GB.UTF-8 and erroneously picking up on my Japanese input setting (LC_CTYPE=ja_JP.UTF-8). Anyway... I clicked though, as I knew that [はい (Y)] means yes.
Then the directory of images pops up I notice that I can scroll down with my mouse wheel, but not up! and likewise I can click the down arrow on the directory window, but if I click the up arrow nothing! So need to keep dragging the slider up instead.
After painstakingly selecting all my images I click upload, and.... nothing happens.. a little upload popup appears and still nothing... its locked up, and its even crashed Firefox. Task watcher offers to Terminate it as its crashed, then I discover the Java VM crash log in my Home directory:
"An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0xAAD65FF5
Function=XFreeFontSet+0x15
Library=/usr/lib/libX11.so.6"
A quick disassemble later and we see the PC is resting on the line after a call:
0001afe0
:
1afe0: 55 push %ebp
1afe1: 89 e5 mov %esp,%ebp
1afe3: 53 push %ebx
1afe4: 83 ec 04 sub $0x4,%esp
1afe7: 8b 45 0c mov 0xc(%ebp),%eax
1afea: e8 78 63 ff ff call 11367 <_xvidtovisual@plt+0xe3>
1afef: 81 c3 19 c2 0a 00 add $0xac219,%ebx
Had a look and Blackdown Java site is down, and Sun's site has no email address to file this info. Looks like Java's not going to be usable for another year then.. They really need automated crash reporting with an email address we can pass feedback to them, so they don't remain where they are now.
Labels: GNU-Linux, Java
Sunday, 23 September 2007
Interesting article in the Guardian,
Ignoring open source is costing us dear. Not making the most of these opportunities for cost savings does seem mad, spend the money savned on the front line services politicians keep talking about!. Hope the UK and Europe will consider adopting more Open Source/Free Software apps... what's good for Google, Amazon, Malmaison and Alfresco should at least be considered !
Labels: GNU-Linux, Politics, UK
Saturday, 22 September 2007
When I filed this Mozilla
MailNews bug back in 2002 I never expected it would have been outstanding for so long. net users like me are often keen to contribute where we can to Free Software and Open Source projects, and the developers encourage us to help out where we can, so I was happy to file the bug info... It's a great feeling when you file a bug report, get an email back from a developer an hour later, and within a few days a discussion, and patch fixing the issue has been committed to the software for the next release.
Unfortunately it doesn't always work like this, and my Mozilla bug reports (I've still got
loads outstanding at present) have largely never been touched by the hand of a developer -- which kind of makes we wonder if my time was well spent back in 2002? .. and raises the wider question of if developers should solicit bug reports and community involvement when there aren't the QA and developer resources to deal with that influx of requested bug reports? I think a little more upfront info would let people decide if they want to spend time contributing to something which may be never looked at, when they could be contributing their time to a project which will really make the most of the bug reports (KDE, GCC and Binutils projects spring to mind).
It's odd to think that even MS fixed IE6 and released IE7 before my bug reports got tackled. Can Mozilla Foundation really lead and beat Microsoft in the browser market when their ability to tackle bugs is so stunted? I expected more, bit of a disappointment when they fall short of what other projects achieve. Maybe it's time for a different development approach, passing on to the next generation the control of the Mozilla code-base.
This is probably one of the problems with the Free Software/Open Source bazaar development model. What gets attention is what is worthy of attention in the eyes of the developer, not a project manager who can maintain broad focus on the whole software package. Which means QA and bug triaging often get left by the way side, as they're not interesting or important enough to developers who don't have enough time as it is.
The real solution is for business backers to pay to fill in the gaps I believe, providing developers to work on documentation, and QA staff to test and triage bug reports. Distributions do this a little, but not to the extent we really need, they're largely just packagers and testing their own distros. I wonder how many companies relying on Firefox and Thunderbird have contributed coders or subsistence funds to either of those projects? At least
this bug I reported to Mozilla got fixed. See this OpenOffice bug I reported on
Launchpad too, got closed and never passed up to OpenOffice, which kind of defeats the purpose of Launchpad!
Labels: FreeSoftware, GNU-Linux, Mozilla
Saturday, 8 September 2007
GNU/Linux needs to get on the environmental bandwagon
One area where GNU/Linux could really gain so much free publicity and market-share is by getting on top of the environmental "bandwagon". In the news is this
Carbon-neutral PC running Vista. Interesting quote:
"PC World has attracted some criticism for its decision to base the desktop around Microsoft's Vista operating system which has been labelled by some industry watchers as the company's most power-hungry operating system ever."
FSF is linking up with environmental groups. Switching to free software would knock another £50 or so off the price, so come on PC World, don't cost consumers more by including Vista! ;)
Labels: GNU-Linux, Humanity
Archives
February 2003
March 2003
April 2003
August 2004
September 2004
December 2004
May 2005
June 2005
December 2006
January 2007
February 2007
March 2007
April 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
October 2008
November 2008
December 2008
January 2009
February 2009
March 2009
April 2009
September 2009
November 2009
December 2009
January 2010
April 2010
September 2010
October 2010
November 2010
December 2010
January 2011
February 2011
March 2011
April 2011
May 2011
June 2011
July 2011
August 2011
September 2011
October 2011
November 2011
December 2011
January 2012
February 2012
March 2012
April 2012
May 2012
June 2012
July 2012
October 2012
December 2012
March 2013
May 2013
August 2013
September 2013
October 2013
November 2013
March 2014
May 2014
June 2014
July 2014
September 2014
October 2014
December 2014
January 2015
February 2015
March 2015
April 2015
May 2015
June 2015
July 2015
August 2015
September 2015
October 2015
November 2015
December 2015
March 2016
April 2016
May 2016
July 2016
August 2016
September 2016
October 2016
November 2016
December 2016
January 2017
February 2017
March 2017
April 2017
May 2017
June 2017
July 2017
August 2017
September 2017
November 2017
March 2018
April 2018
May 2018
June 2018
August 2018
October 2018
December 2018
January 2019
March 2019
May 2019
August 2019
September 2019
March 2020
April 2020
May 2020
September 2020
October 2020
February 2022
June 2022
July 2022
October 2022
December 2022
February 2023
April 2023
September 2023
October 2023
May 2024
June 2024
July 2024
July 2025

Subscribe to Posts [Atom]