<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>ics &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/ics/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Mon, 30 Dec 2024 07:27:31 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>ics &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[Add .ics events to your main Google Calendar]]></title>
		<link>https://shkspr.mobi/blog/2020/12/add-ics-events-to-your-main-google-calendar/</link>
					<comments>https://shkspr.mobi/blog/2020/12/add-ics-events-to-your-main-google-calendar/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Wed, 30 Dec 2020 12:21:07 +0000</pubDate>
				<category><![CDATA[/etc/]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ics]]></category>
		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=37645</guid>

					<description><![CDATA[Google Calendar is one of the cornerstones of G-Suite. Sadly Google don&#039;t dedicate enough resources to develop into its full potential.  Other than a new icon and forced Google Meet integration, it hasn&#039;t had many improvements recently.  Leaving it to the community to pick up the pieces.  Here&#039;s how to get an external calendar integrated with your internal calendar.  Why is this useful?  I&#039;m…]]></description>
										<content:encoded><![CDATA[<p>Google Calendar is one of the cornerstones of G-Suite. Sadly Google don't dedicate enough resources to develop into its full potential.  Other than a new icon and forced Google Meet integration, it hasn't had many improvements recently.  Leaving it to the community to pick up the pieces.</p>

<p>Here's how to get an <em>external</em> calendar integrated with your <em>internal</em> calendar.</p>

<h2 id="why-is-this-useful"><a href="https://shkspr.mobi/blog/2020/12/add-ics-events-to-your-main-google-calendar/#why-is-this-useful">Why is this useful?</a></h2>

<p>I'm starting a university course soon. They give me an <code>.ics</code> calendar feed of all my upcoming classes, lectures, and exams.  I want those to appear in my work calendar so that my colleagues don't try to book meetings when I'm meant to be learning.</p>

<p>I <em>could</em> copy over each event manually. But that's tedious, and doesn't reflect any changes that occur to the original event.</p>

<h2 id="gas-ics-sync"><a href="https://shkspr.mobi/blog/2020/12/add-ics-events-to-your-main-google-calendar/#gas-ics-sync">GAS-ICS-Sync</a></h2>

<p>There's a brilliant open source script called <a href="https://github.com/derekantrican/GAS-ICS-Sync">GAS-ICS-Sync</a>. It takes an <code>.ics</code> feed and copies the events over to your main calendar. It checks for updates every 15 minutes - unlike G-Suite which checks once per day.</p>

<p>It takes a little bit of configuration to get right, the main action takes place from line 19 onward.  This is what you want it to look like:</p>

<pre><code class="language-javascript">var sourceCalendars = [
   // The ics/ical urls that you want to get events from along with their target calendars (list a new row for each mapping of ICS url to Google Calendar)
   // For instance: ["https://www.calendarlabs.com/ical-calendar/ics/76/US_Holidays.ics", "US Holidays"]
  ["https://example.com/feed.ics", "YOUR.EMAIL.ADDRESS@gmail.com"]
];
</code></pre>

<p>Put your feed in there, and <em>your own</em> email address. If you use something like "My Events" then you'll end up with a separate calendar - rather than syncing the events to your main calendar.</p>

<p>Google <em>could</em> just add a checkbox on <code>.ics</code> import which says "copy events to my calendar" but I guess they'd rather sit in their chairs and spin round all day.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=37645&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/12/add-ics-events-to-your-main-google-calendar/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Button, button, who's got the button?]]></title>
		<link>https://shkspr.mobi/blog/2012/06/button-button-whos-got-the-button/</link>
					<comments>https://shkspr.mobi/blog/2012/06/button-button-whos-got-the-button/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Mon, 04 Jun 2012 08:43:36 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[icons]]></category>
		<category><![CDATA[ics]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ui]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=5809</guid>

					<description><![CDATA[I love Android, I really do. I&#039;m chuffed to bits with the Galaxy Nexus I won recently. I&#039;ve had a dozen Android phones before that - stretching all the way back to the HTC Magic.  But it&#039;s getting obvious that Android has a serious design problem - even with the gorgeous new &#34;Holo&#34; theme for ICS.  The issue is one of consistency.  Users have limited cognitive surplus and often rely on muscle…]]></description>
										<content:encoded><![CDATA[<p>I love Android, I really do. I'm chuffed to bits with the Galaxy Nexus I won recently. I've had a dozen Android phones before that - stretching all the way back to the HTC Magic.</p>

<p>But it's getting obvious that Android has a serious design problem - even with the gorgeous new "Holo" theme for ICS.</p>

<p>The issue is one of consistency.  Users have limited cognitive surplus and often rely on muscle memory to perform tasks. So anything which forces applications to behave in a similar way is often highly appreciated.</p>

<p>One thing which is bugging me about the Galaxy Nexus and ICS is the placement of the "Menu" button.  This button is used to open up a program's options, or access its functions.  It always used to be a physical key on the device - now it has become virtual.</p>

<p>A virtual key isn't of itself a huge problem - but the placement of it is.</p>

<p>In some apps it appears at the top of the screen, in others it's on the bottom, and on some the button appears in the virtual button bar.  Take a look at these examples:</p>

<p></p><div id="attachment_5800" style="width: 178px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-5800" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/wpid-Screenshot_2012-06-03-21-41-00-168x300.jpg" alt="ICS button screenshot Twitter" title="ICS button screenshot Twitter" class="size-medium wp-image-5800"><p id="caption-attachment-5800" class="wp-caption-text">In Twitter, the menu button is on the virtual button bar</p></div><p></p>

<p></p><div id="attachment_5801" style="width: 178px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-5801" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/wpid-Screenshot_2012-06-03-21-40-36-168x300.jpg" alt="ICS button screenshot browser" title="ICS button screenshot browser" width="168" height="300" class="size-medium wp-image-5801"><p id="caption-attachment-5801" class="wp-caption-text">In the browser, the menu button is on the top.</p></div><p></p>

<p></p><div id="attachment_5802" style="width: 178px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-5802" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/wpid-Screenshot_2012-06-03-21-40-26-168x300.jpg" alt="Android ICS button Gmail" title="Android ICS button Gmail" width="168" height="300" class="size-medium wp-image-5802"><p id="caption-attachment-5802" class="wp-caption-text">In Gmail, the menu button is at the bottom of the screen, but not on the virtual bar.</p></div><p></p>

<p></p><div id="attachment_5826" style="width: 178px" class="wp-caption aligncenter"><a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-25.png"><img aria-describedby="caption-attachment-5826" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-25-168x300.png" alt="Android ICS SMS button" title="Android ICS SMS button" width="168" height="300" class="size-medium wp-image-5826"><p id="caption-attachment-5826" class="wp-caption-text">In the stock SMS app, the menu button starts at the bottom...</p></a></div><p></p><a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-25.png">

<p></p></a><div id="attachment_5825" style="width: 178px" class="wp-caption aligncenter"><a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-25.png"></a><a href="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-19.png"><img aria-describedby="caption-attachment-5825" src="https://shkspr.mobi/blog/wp-content/uploads/2012/06/Screenshot_2012-06-04-09-00-19-168x300.png" alt="Android ICS SMS button 2" title="Android ICS SMS button 2" width="168" height="300" class="size-medium wp-image-5825"></a><p id="caption-attachment-5825" class="wp-caption-text">...but then jumps to the top!</p></div><p></p>

<p>So every time you go in to an app, you have to search for the menu button and remember where it is for that app for that particular context.</p>

<p>What a total annoyance. You can't just remember once and get used to it - you have to check on every single screen of every single app.  No reliance on muscle memory is possible. All very frustrating.</p>

<p>Now, Android isn't alone in this. I remember the last time I used iOS being frustrated with the number of different ways there were to delete an item in stock apps. Sometimes there was an icon (although rarely the same one), sometime you had to swipe, sometime you had to tap-and-hold.</p>

<p>It's a symptom of a lack of strict guidelines.  I've worked on a project where - due to no one person being in charge of UI - we ended up with <em>six</em> different icons to represent delete - one of which was identical to the "close window" button!</p>

<p>It's one of those tiny little stumbling blocks which gradually builds up into the user resenting the interface. This is the sort of mistake that professionals in the UI / UX field should not be making.</p>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=5809&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2012/06/button-button-whos-got-the-button/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Connecting Samsung ICS to Ubuntu using MTP]]></title>
		<link>https://shkspr.mobi/blog/2012/01/connecting-samsung-ics-to-ubuntu-using-mtp/</link>
					<comments>https://shkspr.mobi/blog/2012/01/connecting-samsung-ics-to-ubuntu-using-mtp/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 03 Jan 2012 15:45:42 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[ics]]></category>
		<category><![CDATA[mtp]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=5132</guid>

					<description><![CDATA[(These notes are mostly for my own benefit).  Android is moving away from USB Mass Storage.  You will no longer be able to plug in a USB cable and have your Android show up as a USB disk.  There are some good technical reasons for this, but it is a pain if you want to copy some files to your phone.  The new system - MTP - isn&#039;t automagically detected in Ubuntu.  This is something which is likely…]]></description>
										<content:encoded><![CDATA[<p>(These notes are mostly for my own benefit).</p>

<p>Android is moving away from USB Mass Storage.  You will no longer be able to plug in a USB cable and have your Android show up as a USB disk.  There are some <a href="http://www.engadget.com/2011/11/21/ice-cream-sandwich-supports-usb-mass-storage-after-all-galaxy-n/">good technical reasons</a> for this, but it is a pain if you want to copy some files to your phone.  The new system - MTP - isn't automagically detected in Ubuntu.  This is something which is likely to be fixed in later versions of Ubuntu - but for now you'll have to hack around it.</p>

<p>The crazy cats at <a href="http://www.omgubuntu.co.uk/2011/12/how-to-connect-your-android-ice-cream-sandwich-phone-to-ubuntu-for-file-access/">omgUbuntu have a tutorial</a> which I have adapted for the Samasung Galaxy S (running <a href="http://forum.xda-developers.com/showthread.php?t=1363593">ICS from teamhacksung</a>).</p>

<p>First, install the MTP tools.</p>

<pre>sudo apt-get install mtp-tools mtpfs</pre>

<p>Connect the phone to the computer using USB.</p>

<p>To check that MTP is installed and working, run the command</p>

<pre>mtp-detect</pre>

<p>You should see a spool of text as MTP detects the phone.</p>

<p>To create the rules which allow Ubuntu to detect the phone, create a new rule file like so:</p>

<pre>sudo nano /etc/udev/rules.d/51-android.rules</pre>

<p>Add in this line of text</p>

<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666"</pre>

<p>If you're using a different device, run this command to get the correct idVendor and idProduct:</p>

<pre>mtp-detect | grep idVendor
mtp-detect | grep idProduct</pre>

<p>We'll need to restart udev so it can pick up the new rule.</p>

<pre>sudo service udev restart</pre>

<p>Then create a directory in your filesystem which you can use to access your phone.</p>

<pre>sudo mkdir /media/GalaxyS
sudo chmod a+rwx /media/GalaxyS
</pre>

<p>Now we need to add ourselves to fuse.</p>

<pre>sudo adduser YOURUSERNAME fuse
sudo nano /etc/fuse.conf</pre>

<p>The last line probably reads</p>

<pre>#user_allow_other</pre>

<p>Remove the "#" so you're left with:</p>

<pre>user_allow_other</pre>

<p>Save the file.</p>

<p>We're going to create two commands "android-connect" and "android-disconnect".  When run, these will allow you to connect to your phone, then safely disconnect.</p>

<pre>echo "alias android-connect="mtpfs -o allow_other /media/GalaxyS"" &gt;&gt; ~/.bashrc
echo "alias android-disconnect="fusermount -u /media/GalaxyS"" &gt;&gt; ~/.bashrc
source ~/.bashrc
</pre>

<p>Restart the computer.  Make sure the phone is connected via USB.  Open a terminal and run</p>

<pre>android-connect</pre>

<p>Open your file manager and go to "/media/GalaxyS"
<img src="https://shkspr.mobi/blog/wp-content/uploads/2012/01/ICS-MTP.png" alt="ICS MTP" title="ICS MTP" width="190" height="413" class="aligncenter size-full wp-image-5136"></p>

<p>Once you're done, disconnect the device by running</p>

<pre>android-disconnect</pre>
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=5132&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2012/01/connecting-samsung-ics-to-ubuntu-using-mtp/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
	</channel>
</rss>
