<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
 <title type="text">λk.(k blog): Posts tagged 'random'</title>
 <link rel="self" href="https://www.williamjbowman.com/feeds/random.atom.xml" />
 <link href="https://www.williamjbowman.com/tags/random.html" />
 <id>urn:https-www-williamjbowman-com:-tags-random-html</id>
 <updated>2015-09-07T23:38:40Z</updated>
 <entry>
  <title type="text">IFTTT and Facebook</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2015/09/07/ifttt-and-facebook/" />
  <id>urn:https-www-williamjbowman-com:-blog-2015-09-07-ifttt-and-facebook</id>
  <published>2015-09-07T23:38:40Z</published>
  <updated>2015-09-07T23:38:40Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;p&gt;TLDR: Follow me on Twitter if you want to see me share stuff.&lt;/p&gt;

&lt;p&gt;For the last &lt;code&gt;n&lt;/code&gt; months, I have been using &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt; to mirror my Twitter account to my Facebook account. I am going to stop doing this because neither Facebook nor &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt; support what I need to make this sensible.&lt;/p&gt;

&lt;p&gt;I started using &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt; because, while I maintain a Facebook account and connect with several people exclusively through Facebook, I primarily use Twitter. Twitter is easier to use for me, partly because posts are shorter and I manage my time carefully, and partly because &lt;a href="https://www.bitlbee.org/"&gt;bitlbee&lt;/a&gt; gives me an interface that matches my natural environment. Unfortunately, Facebook is not great at the same sorts of things that Twitter is.&lt;/p&gt;

&lt;p&gt;Twitter automagically supports links and pictures that you tweet, linking and embedding them as appropriate depending on your client. Twitter supports a much more active stream of thoughts. Twitter makes it absurdly easily to share other peoples&amp;rsquo; thoughts with attribution, i.e., retweets. Twitter has course-grained privacy, and the usual workflow for having private and non-private tweets is via multiple accounts, which Twitter clients support.&lt;/p&gt;

&lt;p&gt;On the other hand, Facebook requires you to explicitly tell it what to do. If you post a link, but do not claim it is a link, Facebook will merely hyperlink the URL rather than embed the link. Facebook supports longer posts but fewer of them. Facebook seems to encourage sharing your own thoughts. Although it does support sharing, it is not nearly as simple, and is easy to remove to original attribution (presumable for privacy of the original author). Facebook supports fine-grained privacy of individual posts, but this too requires more interaction, i.e., explicitly telling Facebook what to do.&lt;/p&gt;

&lt;p&gt;I setup &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt; to simply mirror my tweets to Facebook, sharing them only with friends. However, I want some tweets to be public, and some to be friend-only. I want links and pictures to be automagically embedded. I want &lt;em&gt;my&lt;/em&gt; tweets to appear without attribution, and retweets to appear with attribution. I only want some tweets to be mirrored.&lt;/p&gt;

&lt;p&gt;While &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt; has some support for some of this, for instance, using hashtags to denote which tweets should be thought of as links and the link embedded, it does not support everything that I want. Part of this is on Facebook for not being automagical, but I think this is probably a feature for Facebook since too much automagic is not appealing to many users. I, however, like automagic.&lt;/p&gt;

&lt;p&gt;So, I am turning off &lt;a href="https://www.ifttt.com/"&gt;IFTTT&lt;/a&gt;, and my Facebook posts will all but disappear. If you care about my random day-to-day thoughts, follow me on Twitter instead. All my Facebook messages go to &lt;a href="https://www.bitlbee.org/"&gt;bitlbee&lt;/a&gt; though, so I am still accessible through that.&lt;/p&gt;</content></entry>
 <entry>
  <title type="text">A much lower cellphone bill</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2015/07/13/a-much-lower-cellphone-bill/" />
  <id>urn:https-www-williamjbowman-com:-blog-2015-07-13-a-much-lower-cellphone-bill</id>
  <published>2015-07-14T01:13:02Z</published>
  <updated>2015-07-14T01:13:02Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;p&gt;My monthly cellphone bill averages less than $10 per month. I have a smartphone. I have data, texting, and voice, and I use them. Let me tell you how I achieve such a low bill.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: I will get a credit if you sign-up through my referral link, but so will you.&lt;/p&gt;
&lt;!-- more--&gt;

&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;

&lt;p&gt;I sacrifice a little bit of convenience for a dramatically lower bill. First, I don&amp;rsquo;t have a contract. I pay based on my usage. Second, I route all of my texting and voice through the internet, and completely disable the standard text and voice services from the cell service provider. Instead, I route both through my data plan. This means I never pay for using text or voice, I pay only for data usage. Lastly, I am nearly always connected to wifi, and I keep 4G disabled normally. This prevents me from using data much at all, keeping my data usage low.&lt;/p&gt;

&lt;p&gt;I gain some conveniences a normal cell service doesn&amp;rsquo;t provide. I can make and receive calls and text for free while overseas as long as I&amp;rsquo;m on wifi. I have a spam filter for voice and texts, so I haven&amp;rsquo;t received a telemarketing call in ages. I can respond to texts from my computer or my phone, whichever is most convenient. My voicemails are transcribed so I can read them, when the machine learning algorithm does a good job.&lt;/p&gt;

&lt;p&gt;I accomplish all this via a combination of &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; and &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="ting"&gt;Ting&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; is my cell service provider. They use the Sprint network. They do not have contracts; instead they provide a tiered pay-per-use service. They do not have any hidden fees. Their customer service has been exceptional in my experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; also provides remarkable control over your devices. The following features are provided by default for no extra charge. You can setup call-forwarding per device. You can setup alerts and/or automatically disable services when you approach a certain usage. For instance, you can get an email and autoamtically disable data on your device&amp;mdash;until manually re-enabled&amp;mdash;just before your usage reaches the next tier. You can even disabled services such as incoming/outgoing voice, text, or data per device. You can change how your number is displayed in outgoing calls.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; device is setup to allow incoming and outgoing data, outgoing phone calls (for emergencies), and nothing else. I have an alert setup to notify me and disable data when I approach the second tier. I have never gone beyond the first tier usage, which costs $3 for up to 100MB of data in a month.&lt;/p&gt;

&lt;h2 id="google-voice"&gt;Google Voice&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt; serves my phone number. &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt; will provide a new number for free in your choice of area code, or allow you to port your existing number for a one-time fee for $20. &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt; will allow you to setup call forwarding to multiple other phone numbers, or none. It allows you to make VOIP calls, and send and receive texts via Google Hangouts. It comes with a spam filter for voice and texts, which works as well as Gmail&amp;rsquo;s spam filter in my experience. It includes a voicemail transcription feature, and can email you the transcribed voicemail or send it to Google Hangouts, or both.&lt;/p&gt;

&lt;p&gt;My &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt; setup sends texts, calls, and voicemails to Google Hangouts, which is installed on my iPhone. I never use the built-in texting or phone call features. I do not forward calls or texts to any other number.&lt;/p&gt;

&lt;h2 id="a-simple-how-to"&gt;A simple how-to&lt;/h2&gt;

&lt;p&gt;To move to &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; + &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt;, first you need a phone capable of being used on the Sprint network. You can use an unlocked iPhone, or many Android devices. On their website, &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; has a &lt;a href="https://ting.com/byod" title="Ting Devices"&gt;list&lt;/a&gt; of devices that are compatible with their network, and the option to purchase a used or refurbished device through a third-party vendor.&lt;/p&gt;

&lt;p&gt;Next, register for and port your existing number to &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt;. This may take some time. Opt-in to texting and voice through Google Hangouts, instead of through the out-dated Google Voice app. You may need to put some money on the account before it will allow outgoing calls. Calls within the US are free and you can refund the balance at anytime.&lt;/p&gt;

&lt;p&gt;Then, sign up for &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; using your device. If you follow my referral link, you may get a $25 credit. Allow them to assign you a new number. If you follow my setup, you won&amp;rsquo;t use this number.&lt;/p&gt;

&lt;p&gt;On your &lt;a href="https://zfl16e28t96.ting.com/" title="Ting Referral Link"&gt;Ting&lt;/a&gt; device, disable texts completely and disable incoming voice. Consider setting up some alerts for your data usage. Change your the outgoing number displayed by your phone to you &lt;a href="https://www.google.com/voice/" title="Google Voice"&gt;Google Voice&lt;/a&gt; number.&lt;/p&gt;

&lt;p&gt;Now install and setup Google Hangouts on your phone. Give it a test run.&lt;/p&gt;

&lt;p&gt;Finally, leave your phone in airplane mode with wifi enabled. If you&amp;rsquo;re not near wifi and need to use data, disable airplane mode temporarily, but remember to enable it again when you are done.&lt;/p&gt;</content></entry>
 <entry>
  <title type="text">Writing About Writing</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2015/06/19/writing-about-writing/" />
  <id>urn:https-www-williamjbowman-com:-blog-2015-06-19-writing-about-writing</id>
  <published>2015-06-19T20:11:06Z</published>
  <updated>2015-06-19T20:11:06Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;p&gt;I need to write more.&lt;/p&gt;

&lt;p&gt;In order to practice writing clearly and concisely,&lt;/p&gt;

&lt;p&gt;to organize my thoughts,&lt;/p&gt;

&lt;p&gt;to let small thoughts grow,&lt;/p&gt;

&lt;p&gt;to store my thoughts in a less imperfect storage medium,&lt;/p&gt;

&lt;p&gt;I need to write more.&lt;/p&gt;

&lt;p&gt;And so begins a weekly&lt;sup&gt;&lt;a href="#2015-06-19-writing-about-writing-footnote-1-definition" name="2015-06-19-writing-about-writing-footnote-1-return"&gt;1&lt;/a&gt;&lt;/sup&gt; Rambling.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;&lt;sup&gt;&lt;a href="#2015-06-19-writing-about-writing-footnote-1-definition" name="2015-06-19-writing-about-writing-footnote-1-return"&gt;1&lt;/a&gt;&lt;/sup&gt; hopefully.&lt;/p&gt;

&lt;div class="footnotes"&gt;
 &lt;ol&gt;&lt;/ol&gt;&lt;/div&gt;</content></entry>
 <entry>
  <title type="text">I accidently the NY Times pay-wall</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2012/03/11/i-accidently-the-ny-times-pay-wall/" />
  <id>urn:https-www-williamjbowman-com:-blog-2012-03-11-i-accidently-the-ny-times-pay-wall</id>
  <published>2012-03-11T23:22:59Z</published>
  <updated>2012-03-11T23:22:59Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;p&gt;A friend posted a link to a NY Times article the other day, and I stumbled upon a way to get behind their pay-wall. I thought I&amp;rsquo;d share:&lt;/p&gt;

&lt;ol&gt;
 &lt;li&gt;
  &lt;p&gt;Install NoScript.&lt;/p&gt;&lt;/li&gt;
 &lt;li&gt;
  &lt;p&gt;Go to &lt;a href="http://www.nytimes.com/"&gt;NY Times&lt;/a&gt; and leave everything blocked.&lt;/p&gt;&lt;/li&gt;
 &lt;li&gt;
  &lt;p&gt;Click &lt;a href="https://www.nytimes.com/pages/todayspaper/index.html"&gt;Today&amp;rsquo;s Paper&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
 &lt;li&gt;
  &lt;p&gt;Open a arbitrary article.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;

&lt;p&gt;Now it seems you can click through any NY Times link, as I was able to click through the posted link.&lt;/p&gt;</content></entry>
 <entry>
  <title type="text">ARRGG Haskell</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2011/11/05/arrgg-haskell/" />
  <id>urn:https-www-williamjbowman-com:-blog-2011-11-05-arrgg-haskell</id>
  <published>2011-11-06T02:57:25Z</published>
  <updated>2011-11-06T02:57:25Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;p&gt;I&amp;rsquo;ve been doing a lot of Haskell programming lately. At first, I really liked it.&lt;/p&gt;
&lt;!-- more--&gt;

&lt;p&gt;Well, I like the syntax. Everything is automagically curried, making the syntax for partial application very nice. The syntax for creating records and algebraic data types is great. List comprehension is better than any other language I&amp;rsquo;ve used. Stream syntax is natural.&lt;/p&gt;

&lt;p&gt;But the more I use it the more I dislike it. Laziness was cool at first. The more code I write in Haskell, however, the more laziness is becoming a problem. In one project I&amp;rsquo;m working on, everything is in a monad, partially because I need strictness (partially because I need threads, state, and continuations). I&amp;rsquo;m working on Accelerate, and to deal with laziness, they sprinkle in force, seq, !, and Delayed type classes just about everywhere. It&amp;rsquo;s necessary as the embedded language is meant for GPU and other parallel programming, where laziness is a problem.&lt;/p&gt;

&lt;p&gt;More irritating than the language itself is the system. Cabal, the package manager (similar to Perl&amp;rsquo;s CPAN), is terrible. It can&amp;rsquo;t uninstall anything, for one. It seems to fail at dependency resolution half the time, installing the wrong versions or just failing with &amp;lsquo;unsatisfied dependency&amp;rsquo; leaving me to install the dependency myself. This would be less irritating if I didn&amp;rsquo;t need to install multiple version of every package, due to my next point.&lt;/p&gt;

&lt;p&gt;Backward compatibility. In fact, compatibility, in general. Packages for 6.12 don&amp;rsquo;t work with Haskell 7.0, and packages for 7.0 don&amp;rsquo;t work for 6.12, or 7.2. Nothing is compatible with anything! There are usually multiple versions of each package in the repository, but cabal just goes right on installing the most recent version. This is made worse by every other library requiring a difference version of some dependency, so I need to install and manage multiple incompatible version of numerous libraries. And cabal does a miserable job of helping.&lt;/p&gt;

&lt;p&gt;Now, let me compare to me compare to my work-flow in Scheme (my current favorite language). I download any libraries I need, and manually stick them in ~/lib/scheme, which I tell Chez to search for any libraries I need. If they aren&amp;rsquo;t libraries, find, I manually (load ""). Not as handy as cabal install package, but, it also means if I need multiple versions, I can rename/manually specify the versions. More importantly, Scheme is has standard, that most schemers follow, so I never need multiple versions of anything, and all the libraries and implementations are pretty much compatible.&lt;/p&gt;

&lt;p&gt;Now, in Scheme, I don&amp;rsquo;t have laziness, or nice syntax for curried/partial application, streams, records, or ADTs. But, I have macros, which let me extend the syntax arbitrarily, so if I really want them, I can add them. And laziness is easier to encode than get rid of, so if I want laziness, I can add that too.&lt;/p&gt;

&lt;p&gt;What&amp;rsquo;s my point? Well, I guess: ARRGG HASKELL, I&amp;rsquo;m going back to Scheme.&lt;/p&gt;</content></entry>
 <entry>
  <title type="text">Hello World!</title>
  <link rel="alternate" href="https://www.williamjbowman.com/blog/2011/09/30/hello-world/" />
  <id>urn:https-www-williamjbowman-com:-blog-2011-09-30-hello-world</id>
  <published>2011-09-30T07:31:36Z</published>
  <updated>2011-09-30T07:31:36Z</updated>
  <author>
   <name>William J. Bowman</name></author>
  <content type="html">
&lt;div class="brush: scheme"&gt;
 &lt;pre&gt;&lt;code&gt;(define hello-world
      (lambda ()
        (display "Hello, World!")))&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content></entry></feed>