<?xml version="1.0" encoding="UTF-8"?><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>Taiwan Archives - ClickedyClick</title>
	<atom:link href="https://gergely.imreh.net/blog/category/life/tw/feed/" rel="self" type="application/rss+xml" />
	<link>https://gergely.imreh.net/blog/category/life/tw/</link>
	<description>Life in real, complex and digital.</description>
	<lastBuildDate>Thu, 04 Aug 2022 03:52:37 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>A personal finance data pipeline project</title>
		<link>https://gergely.imreh.net/blog/2022/08/a-personal-finance-data-pipeline-project/</link>
					<comments>https://gergely.imreh.net/blog/2022/08/a-personal-finance-data-pipeline-project/#respond</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Thu, 04 Aug 2022 03:45:58 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[bigquery]]></category>
		<category><![CDATA[gcp]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=2691</guid>

					<description><![CDATA[<p>If your bank updates you through password-protected PDFs in emails and you are a programmer, you make some finance data extract lemonade.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2022/08/a-personal-finance-data-pipeline-project/">A personal finance data pipeline project</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I had received a (family) project brief recently. In Taiwan many credit/debit cards have various promotions and deal, and many of them depend on one&#8217;s monthly spending, for example &#8220;below X <a href="https://en.wikipedia.org/wiki/New_Taiwan_dollar">NTD</a> spending each month, get Y% cashback&#8221;. People also have a lot of different cards, so playing these off each other can be nice pocket change, but have to keep an eye on whether where one is compared to the max limit (X). So the project comes from here: easy/easier tracking of where one specific card&#8217;s spending is within the monthly period. That doesn&#8217;t sound too difficult, right? Except the options for these are: </p>



<ol class="wp-block-list"><li>A banking website with CAPTCHAs and no programmatic access</li><li>An email received each day with an password-protected PDF containing the last day&#8217;s transactions in a table</li></ol>



<p class="wp-block-paragraph">Neither of these are fully appetizing to tackle, but both are similar to bits that I do at #dayjob, but 2. was a bit closer to what I&#8217;ve been doing recently, so that&#8217;s where I landed. That is:</p>



<ul class="wp-block-list"><li>Forward the received email (the email provider does it)</li><li>Receive it in some compute environment</li><li>Decrypt the PDF</li><li>Extract the transaction data table</li><li>Clean and process the tabular data</li><li>Put raw in some data warehouse</li><li>Transform data to get the right aggregation</li><li>&#8230;</li><li>Literally profit?</li></ul>



<p class="wp-block-paragraph">I was surprised how quick this actually worked out in the end (if &#8220;half a weekend&#8221; is quick), and indeed this can be a first piece of a &#8220;personal finance data warehouse&#8221;.</p>



<span id="more-2691"></span>



<h2 class="wp-block-heading">Technical implementation</h2>



<p class="wp-block-paragraph">I wanted to have the final setup run in &#8220;The Cloud&#8221;, as that&#8217;s one less thing to worry about. The most obvious arrangement, based on past experiences was combing <a href="https://docs.aws.amazon.com/ses/latest/dg/Welcome.html">AWS Simple Email Service</a> (SES) to receive an email, and a <a href="https://aws.amazon.com/lambda/">Lambda</a> to run serverless processing. On the data warehouse side the real obvious choice is <a href="https://cloud.google.com/bigquery/">GCP&#8217;s BigQuery</a>, however, so I looked into what would be a similar arrangement for the processing pieces if I want to put everything into a single cloud provider.</p>



<p class="wp-block-paragraph">After some docs diving the most natural arrangement on GCP seemed to be quite different: an <a href="https://cloud.google.com/appengine/">App Engine</a> deployment with <a href="https://cloud.google.com/appengine/docs/standard/python3/services/mail">Mail API </a>enabled. This gives a receiving domain name (@[Cloud-Project-ID].appspotmail.com) , and every email sent there is just passed to the server that is running in App Engine. This seemed pretty simple! App Engine also has a free tier, though that comes with pretty small memory limits, which features in this story too.</p>



<p class="wp-block-paragraph">The final result of the server part is <a href="https://github.com/imrehg/finance-extract/">shared on GitHub</a>, and should be easy to reuse or extend.</p>



<h3 class="wp-block-heading">PDF processing</h3>



<p class="wp-block-paragraph">Getting the attachments out of the email was pretty straightforward with the Mail API, so the first heavier task was opening the encrypted PDF and getting the table out of it. Opening PDFs are quite common, but the table extraction was a bit of a journey.</p>



<h4 class="wp-block-heading">False try</h4>



<p class="wp-block-paragraph">First I was searching around (as anyone else does) for someone else&#8217;s rundown of the options, <a href="https://www.geeksforgeeks.org/how-to-extract-pdf-tables-in-python/">as an example</a>. From there I honed in on <a href="https://pikepdf.readthedocs.io/en/latest/">pikepdf</a> to open the password-protected files, an <a href="https://tabula-py.readthedocs.io/en/latest/">tabula-py</a> which seemed handy to extract tables right into <a href="https://pandas.pydata.org/">Pandas</a> DataFrames. One subtlety was that tabula-py is just a wrapper around <a href="https://github.com/tabulapdf/tabula-java">tabula-java</a> to do the extraction, and needs a Java environment installed. The free tier of App Engine uses their <a href="https://cloud.google.com/appengine/docs/standard/">standard</a> environment where all I have is my code and &#8220;requirements.txt&#8221; to install my python dependencies, so it&#8217;s obvious how would I get Java into the deployment correctly.</p>



<p class="wp-block-paragraph">Enter the scene <a href="https://github.com/jyksnw/install-jdk">install-jdk</a> which can install the Java environment at runtime. That was sufficiently crazy hack to actually work, and <a href="https://github.com/imrehg/finance-extract/blob/19fa754b72b39aac246bf385e2ebeff7cf35b1ad/main.py#L14-L28">it did work</a>. Or so it seemed, since the data was processed and showing up in BigQuery, when I&#8217;ve sent test emails into the system.</p>



<p class="wp-block-paragraph">Upon closer inspection, though, there were loads of duplicate lines. Between signing off in the evening, and checking it in the morning, I had bunches of them, and were still coming in&#8230;</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="609" height="307" src="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/duplicated-data-extraction.png" alt="BigQuery view of duplicated data" class="wp-image-2705" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/duplicated-data-extraction.png 609w, https://gergely.imreh.net/blog/wp-content/uploads/2022/08/duplicated-data-extraction-500x252.png 500w" sizes="(max-width: 609px) 100vw, 609px" /><figcaption>Sometimes duplicated data sneaks in from software issues</figcaption></figure>



<p class="wp-block-paragraph">I should have checked the logs earlier, because once dig in, there were bunches of &#8220;server errors&#8221; listed that didn&#8217;t connect to any programming errors that I might have made, rather than (here comes the epiphany) instances being killed for being out of memory / blowing their memory budget (of 256MB for the free tier). Thus what happened is:</p>



<ul class="wp-block-list"><li>the Java run of tabula was just using too much memory while processing the PDFs</li><li>it finished processing and like loaded the data but it takes a bit of time</li><li>GCP catches up and kills the instance while that is still going on, and reports to the Mail API that the email <em>hasn&#8217;t been</em> properly handled (server error during that process)</li><li>Whatever is handling the incoming email queue in GCP will just just keep the data and retries later</li><li>The cycle repeats&#8230;</li></ul>



<p class="wp-block-paragraph">This didn&#8217;t seem very helpful and the repeat emails were piling up in whatever (opaque, to me) system GCP has, so needed a quick replace of tabulate with something lighter&#8230;</p>



<h4 class="wp-block-heading">Worse is better and actually good</h4>



<p class="wp-block-paragraph">Going down the list of recommended libraries, next I looked at <a href="https://camelot-py.readthedocs.io/en/master/">camelot-py</a> which looks great, but needs <a href="https://opencv.org/">OpenCV</a> on the machine to do its work, so back to the &#8220;how to install OS packages on Standard AppEngine?&#8221; question. For some extra inspiration I was looking at <a href="https://github.com/camelot-dev/camelot/wiki/Comparison-with-other-PDF-Table-Extraction-libraries-and-tools">camelot&#8217;s comparison with other similar tools page</a> and it was a bit disappointing (though not surprising) that pretty much every other library is &#8220;worse&#8221; on various PDFs compared to camelot. Just for kicks I did try some out, and <a href="https://pypi.org/project/pdfplumber/">pdfplumber</a> actually delivered:</p>



<ul class="wp-block-list"><li>it does actually work on the example PDFs I had from previous bank emails</li><li>nothing else beside pip install</li><li>it can actually handle decrypting the PDF as well, so helper libraries can be dropped</li><li>the extracted data is in Python tables, but it&#8217;s just an extra line to get DataFrames, so no sweat</li><li>The extracted data was actually better quality than tabula&#8217;s, so had to do fewer cleanup steps!</li></ul>



<p class="wp-block-paragraph">This was a pure win, and indeed it&#8217;s worth looking stuff that works with the data at hand, not ignoring the edge cases, but also not overly emphasizing being able to do &#8220;everything&#8221; when there&#8217;s a clear target of what &#8220;thing&#8221; needs to work. (Potential technical debt considered too).</p>



<h3 class="wp-block-heading">Data transformations and visibility</h3>



<p class="wp-block-paragraph">Now the data sits in BigQuery properly:</p>



<figure class="wp-block-image size-full"><img decoding="async" width="667" height="330" src="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/bigquery-finance-data.png" alt="BigQuery financial data table" class="wp-image-2708" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/bigquery-finance-data.png 667w, https://gergely.imreh.net/blog/wp-content/uploads/2022/08/bigquery-finance-data-500x247.png 500w" sizes="(max-width: 667px) 100vw, 667px" /><figcaption>Actual data in the works.</figcaption></figure>



<p class="wp-block-paragraph">The raw transaction data loaded into BigQuery was the first step, but still need to answer the question: in this billing period, how much have I spent?</p>



<p class="wp-block-paragraph">Not being a data analyst (or not yet?:), this took a bit of figuring out. As other novices share their bit of &#8220;clever code&#8221; when it&#8217;s actually trivial to the experts, I&#8217;m sharing here the bit of SQL queries in a similar &#8220;that was fun to figure out, wasn&#8217;t it?&#8221; way. I&#8217;m sure it can be much improved, but it&#8217;s a good reminder for myself as well.</p>



<p class="wp-block-paragraph">Given that my billing period starts on the 23rd of the month, get the aggregated value of transactions for each billing period: </p>



<pre title="monthly-aggregation.sql" class="wp-block-code has-small-font-size"><code lang="sql" class="language-sql">WITH
  Aggregated AS (
  SELECT
    DATE(TransactionDate, 'Asia/Taipei') AS day,
    TransactionAmountNTD
  FROM
    `personal-data-warehouse.finance.huanan` ),
  calendar AS (
  SELECT
    day,
    -- Find the last day before the new interval
    DATE_SUB(
      DATE_ADD(
        day,
        INTERVAL 1 Month),
      INTERVAL 1 DAY
    ) AS endday
  FROM
    UNNEST (
      GENERATE_DATE_ARRAY(
        -- Start date in the past before any data,
        -- on the right day of the month for
        -- the billing cycle.
        '2022-05-23', 
        CURRENT_DATE('Asia/Taipei'),
        INTERVAL 1 Month
      )
    ) AS day
) SELECT
  SUM(TransactionAmountNTD) AS `MonthlyTransactions`,
  COUNT(*) AS `TransactionCount`,
  EXTRACT(Year FROM c.day) AS `Year`,
  EXTRACT(Month FROM c.day) AS `Month`,
  FORMAT('%d-%02d', EXTRACT(Year
    FROM
      c.day), EXTRACT(Month
    FROM
      c.day)
  ) AS `Interval`
FROM
  calendar AS c
JOIN
  Aggregated AS a
ON
  a.day BETWEEN c.day AND c.endday
GROUP BY
  c.day</code></pre>



<p class="wp-block-paragraph">Good stuff on the date array and joining with a &#8220;between&#8221; statement, those are the main TIL. They also already came up at #dayjob, which was very satisfying.</p>



<p class="wp-block-paragraph">From here the data I surface in a connected <a href="https://cloud.google.com/bigquery/docs/connected-sheets">Google Sheet</a> which is pretty practical, though leaves the &#8220;being notified when I approach/reach X&#8221; out, but that&#8217;s fine for now.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="874" height="445" src="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/google-sheet-connected-to-bigquery.png" alt="" class="wp-image-2709" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/google-sheet-connected-to-bigquery.png 874w, https://gergely.imreh.net/blog/wp-content/uploads/2022/08/google-sheet-connected-to-bigquery-500x255.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2022/08/google-sheet-connected-to-bigquery-768x391.png 768w" sizes="(max-width: 874px) 100vw, 874px" /><figcaption>Connected tables view in Sheets</figcaption></figure>



<h3 class="wp-block-heading">Testing and getting to &#8220;production&#8221;</h3>



<p class="wp-block-paragraph">One good thing about personal projects is that I can make them as &#8220;good&#8221; as I want to (or as &#8220;bad&#8221;, of course), which usually results in an unhealthy amount of tweaking, trying out various best practices to see if they work, and so on. Here I really wanted to get the system well tested, for example, which turned out to take <em>loads more time</em> than actually writing the original service. Actually, there&#8217;s nothing surprising about that for software engineering professionals, but still can catch people off-guard.</p>



<p class="wp-block-paragraph">Here the tricky parts came from two areas: <a href="https://fastapi.tiangolo.com/">FastAPI</a> settings and cloud service integrations.</p>



<p class="wp-block-paragraph">The former is always a bit of an issue, depending on how the code uses the settings (whether things can be patched well at testing time), but here I also used a trick for the server to pull the PDF decryption key from <a href="https://cloud.google.com/secret-manager">Secret Manager</a>, so I don&#8217;t have to deploy environment files, nor keep settings like that in version control, etc&#8230; But this meant a trickier flow of getting the FastAPI testing client up in a way that it worked without it talking to the cloud backends (and stalling, and failing&#8230;). Nothing that some good mocking cannot solve (says the person with hindsight).</p>



<p class="wp-block-paragraph">For the cloud services part it meant mocking BigQuery connections, so that the test can actually pretend to &#8220;receive&#8221; an email all the way looking at the &#8220;database&#8221; and see the right information being there. Under the hood I&#8217;m using <a href="https://googleapis.dev/python/pandas-gbq/latest/index.html">pandas-gbq</a>, and thus it was interesting to look under the hood <a href="https://github.com/googleapis/python-bigquery-pandas/blob/685d1c39f709a58a9bf59fb1cec9474d3e3c03c0/tests/unit/conftest.py">for their tests</a>, borrowing some of them. Took a bit more time, but that&#8217;s working pretty well now. Still need to do some extra bits and pieces to do cover more of the workflow, but I&#8217;m already more confident about things working. Also, all this will be very useful on other projects that are interacting with BigQuery in any way (not just through Pandas).</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="618" height="404" src="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/test-run-goodness.png" alt="" class="wp-image-2707" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2022/08/test-run-goodness.png 618w, https://gergely.imreh.net/blog/wp-content/uploads/2022/08/test-run-goodness-500x327.png 500w" sizes="auto, (max-width: 618px) 100vw, 618px" /><figcaption>A test run that&#8217;s nice</figcaption></figure>



<p class="wp-block-paragraph">Big evergreen lesson on testing: <strong>you have to write your code to be testable</strong>. Lots of code out there is not even not tested, but it&#8217;s even extremely difficult to actually test. This needs remembering in every development. Also, <strong>test writing never really stops</strong>, there&#8217;s always more thing to test for. And finally, can always try more advanced testing, such as using automated test case generation (e.g with <a href="https://hypothesis.readthedocs.io/en/latest/">hypothesis</a>), and fuzz testing (e.g. with <a href="https://gitlab.com/gitlab-org/security-products/analyzers/fuzzers/pythonfuzz">pythonfuzz</a>). The next frontier, right after I&#8217;ve implemented the currently skipped tests. And finally, remember that code coverage is not case coverage, so the goals should be maximizing the latter, while the former is just a potential proxy for it.</p>



<h2 class="wp-block-heading">Future outlook</h2>



<p class="wp-block-paragraph">It would be nice to take this idea of financial data analysis further and add some actual dashboard (say deploying <a href="https://superset.apache.org/">Superset</a> somewhere which is excellent for this). It would help to get more information into the system as well, though, currently it&#8217;s very sparse. That would mean adding other financial sources, maybe if finding an API in the end, or doing a bit of &#8220;pragmatic execution&#8221; and do a CAPTCHA bypass (since I quickly checked that my credit card provider&#8217;s CAPTCHA is completely readable by <a href="https://tesseract-ocr.github.io/tessdoc/Home.html">Tesseract</a>, for example, so I <em>could</em> likely scrape things there if I really wanted.</p>



<p class="wp-block-paragraph">I&#8217;m not holding my breath for having something like UK&#8217;s <a href="https://www.openbanking.org.uk/about-us/">Open Banking</a> here which enables apps like <a href="https://emma-app.com/">Emma</a> so all this is accessible for people who don&#8217;t want to code. But where&#8217;s the fun in that (for me)? :) (In fact there&#8217;s a lot of fun in open access APIs, so this would be the real way of doing it&#8230;)</p>



<p class="wp-block-paragraph">Finally, it&#8217;s good to remember how easy it is to corrupt &#8220;production&#8221; data sets, but also with the right tools (like snapshots), some of that pressure can be less. There are always bugs, the question is how to mitigate their effect.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2022/08/a-personal-finance-data-pipeline-project/">A personal finance data pipeline project</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2022/08/a-personal-finance-data-pipeline-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Taiwan Citizen Digital Certificate</title>
		<link>https://gergely.imreh.net/blog/2016/05/taiwan-citizen-digital-certificate/</link>
					<comments>https://gergely.imreh.net/blog/2016/05/taiwan-citizen-digital-certificate/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Thu, 26 May 2016 09:44:41 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[computer security]]></category>
		<category><![CDATA[MOICA]]></category>
		<category><![CDATA[smart card]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=2295</guid>

					<description><![CDATA[<p>Now that foreigners can apply for a Taiwanese Citizen Digital Certificate (MOICA) card, here's how that process worked, with all the gory details.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2016/05/taiwan-citizen-digital-certificate/">Taiwan Citizen Digital Certificate</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Taiwan has a very interesting attitude towards technology (for better or <a href="https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/">worse</a>), and it is fun to try out anything new that comes up here (for a certain definition of &#8220;fun&#8221;). When the news hit late last month, that the <a href="http://www.taipeitimes.com/News/taiwan/archives/2016/04/26/2003644867">National Immigration Agency opens Internet ID application to foreign residents</a>, I was there to get mine as soon as it was available. The &#8220;Internet ID&#8221; refers to a &#8220;Citizen Digital Certificate&#8221;, also called <a href="http://moica.nat.gov.tw/">MOICA</a>, a smart card that supposed to make a lot of services available through a web browser or other government-produced software (e.g. filing taxes online). For Taiwanese citizens MOICA seems to be available at least since 2003 (according to the <a href="http://www.taipeitimes.com/News/taiwan/archives/2003/11/19/2003076416">news report</a> I&#8217;ve managed to dig up), but this is the first time it available for us foreigners living here.</p>
<p>In this rather graphic post I try to summarize the process of getting a MOICA card as a foreigner in Taiwan, setting it up, and some (opinionated) lessons to learn from it.</p>
<h2>The Process</h2>
<p>The process of getting and setting up the card is outlined in this leaflet that I&#8217;ve picked up.</p>
<p><figure id="attachment_2304" aria-describedby="caption-attachment-2304" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_English.jpg"><img loading="lazy" decoding="async" class="wp-image-2304 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_English-727x1024.jpg" alt="MOICA Application English" width="604" height="851" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_English-727x1024.jpg 727w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_English-355x500.jpg 355w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_English-768x1082.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2304" class="wp-caption-text">Click to see large scan. Wow.</figcaption></figure></p>
<p>Though &#8211; not surprisingly &#8211; in practice everything is a lot more complicated than these 8 bulletpoints.</p>
<p><span id="more-2295"></span></p>
<p>There&#8217;s also a Chinese version of this leaflet, just for the record.</p>
<p><figure id="attachment_2305" aria-describedby="caption-attachment-2305" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_Chinese.jpg"><img loading="lazy" decoding="async" class="size-large wp-image-2305" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_Chinese-728x1024.jpg" alt="Chinese language version of the application info. Click to see the full version." width="604" height="850" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_Chinese-728x1024.jpg 728w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_Chinese-356x500.jpg 356w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Application_Chinese-768x1080.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2305" class="wp-caption-text">Chinese language version of the application info. Click to see the full version.</figcaption></figure></p>
<h3>Registration</h3>
<p>As it is included in the <a href="https://www.immigration.gov.tw/ct.asp?xItem=1313716&amp;ctNode=29991&amp;mp=2">National Immigration Agency&#8217;s (NIA) own announcement</a>, the process is kicked off by visiting one of the service centers (<a href="https://www.immigration.gov.tw/ct.asp?xItem=1092844&amp;ctNode=32289&amp;mp=2">here&#8217;s a list</a>, but people generally know which center they belong to, they have to), and requesting the card. Even though I was applying (in the Taipei center) on one of the first days when it was available, there was no surprise or difficulty. Picked up a number, the at the counter forms were filled out for me all digitally, and then got a receipt like this (sensitive info blacked out here):</p>
<p><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Receipt.jpg"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-2308" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Receipt-1024x709.jpg" alt="MOICA Receipt" width="604" height="418" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Receipt-1024x709.jpg 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Receipt-500x346.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Receipt-768x532.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a></p>
<p>It included my application number, name, email, phone number, and a registration code (the last blacked out line) which was needed for the online payment. This is because, for some reason, the bill cannot be settled at the time of the application, but needed to be done online.</p>
<h3>Payment</h3>
<p>The card is only sent out to me after the online payment, and if no cash is received in 14 days, the application is cancelled. Thus I wanted to settle things very quickly. Originally I thought, based on the info I&#8217;ve received at the NIA that I will receive an email or other electronic communication with further info on how to pay. Instead, for the next 2-3 days I got a daily nudge message that I need to pay, but no information on <em>how</em>.</p>
<p><figure id="attachment_2320" aria-describedby="caption-attachment-2320" style="width: 600px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2320" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_SMS_Request.png" alt="SMS nudge to pay for my MOICA application" width="600" height="700" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_SMS_Request.png 600w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_SMS_Request-429x500.png 429w" sizes="auto, (max-width: 600px) 100vw, 600px" /><figcaption id="caption-attachment-2320" class="wp-caption-text">SMS nudge to pay for my MOICA application</figcaption></figure></p>
<p>Visiting the <a href="http://moica.nat.gov.tw/other/">MOICA website for foreigners (&#8220;aliens&#8221;)</a> does not make me smarter, it looks like this below, with a couple of options on the side, but no &#8220;PAY HERE&#8221; or similar.</p>
<p><figure id="attachment_2309" aria-describedby="caption-attachment-2309" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2.png"><img loading="lazy" decoding="async" class="wp-image-2309 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2-1024x640.png" alt="MOICA Site" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site2.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2309" class="wp-caption-text">MOICA website greeting screen</figcaption></figure></p>
<p>After one and a half weeks the time was running out for the application, so gave in and called the <a href="tel:0800-080-117">0800-080-117</a> number from the message for help. They did help: see the funny looking Chinese-only banner with two cartoon figures? Have to click that, and then go onto this Chinese-only interface to continue.</p>
<p><figure id="attachment_2310" aria-describedby="caption-attachment-2310" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3.png"><img loading="lazy" decoding="async" class="wp-image-2310 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3-1024x640.png" alt="MOICA Site 3" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site3.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2310" class="wp-caption-text">The &#8220;helper kids&#8221; page</figcaption></figure></p>
<p>Using the code from the receipt and logging in, there was an online payment interface. I really should have taken a screenshot, but so taken aback by it, that I forgot. It&#8217;s a HTTPS page (for a change), with big (Chinese-only) announcement that &#8220;because the site uses SSL your data is completely safe and nothing to worry about&#8221;, plus Chrome giving me a big security warning that the website&#8217;s SSL settings are vulnerable. Who do you trust in this situation? Rhetorical question: of course Chrome but still pay the government&#8230;</p>
<p>At least their messaging service works a lot better than their website, within seconds I got dual language notification that the credit card payment went through fine.</p>
<p><figure id="attachment_2321" aria-describedby="caption-attachment-2321" style="width: 600px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-2321" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Confirmation.png" alt="Confirmation message" width="600" height="480" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Confirmation.png 600w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Confirmation-500x400.png 500w" sizes="auto, (max-width: 600px) 100vw, 600px" /><figcaption id="caption-attachment-2321" class="wp-caption-text">Confirmation message</figcaption></figure></p>
<p>There&#8217;s not much to do after this, but wait till the postman arrives with the card.</p>
<h3>Card Activation</h3>
<p>The card arrived with two page of instructions, sticked in the middle, highlighting the security features of the card.</p>
<p><figure id="attachment_2322" aria-describedby="caption-attachment-2322" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page1.jpg"><img loading="lazy" decoding="async" class="wp-image-2322 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page1-718x1024.jpg" alt="The card was sticked on the middle of this page of instructions" width="604" height="861" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page1-718x1024.jpg 718w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page1-351x500.jpg 351w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page1-768x1095.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2322" class="wp-caption-text">The card was sticked on the middle of this page of instructions (click for full size)</figcaption></figure></p>
<p>On a side note, not sure how all these visual security features (which likely serve paper bills well) help with computer security, since the only important part of that card is the chip inside, but I digress.</p>
<p>The minimum system requirements are Windows XP SP3 and IE 6.0. I&#8217;m using <a href="https://www.archlinux.org">Linux</a>, but fortunately have an XP in <a href="https://www.virtualbox.org/">VirtualBox</a>, and Internet Explorer on it, so might just work. The instructions said to go to the MOICA website again, and activate the card there. Except, there was no activation-related menu there at all, and the instructions remain tight-lipped. I was hoping that the back-side of the instructions, that are in Chinese, will contain some clues, though it turns out that they are even less useful, if that&#8217;s possible.</p>
<p><figure id="attachment_2323" aria-describedby="caption-attachment-2323" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page2.jpg"><img loading="lazy" decoding="async" class="wp-image-2323 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page2-720x1024.jpg" alt="The back page of the instructions with more info and Chinese (click for full size)" width="604" height="859" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page2-720x1024.jpg 720w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page2-351x500.jpg 351w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Instructions_Page2-768x1093.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2323" class="wp-caption-text">The back page of the instructions with more info and Chinese (click for full size)</figcaption></figure></p>
<p>It&#8217;s time for another phone call to the 0800 number, and turns out that the &#8220;helper kids&#8221; are the ones we need again. Clicking that Chinese-only banner on the otherwise dual-language website brings up the page that I used earlier, but now instead of logging in, have to click the last menu point on the left, saying <strong>憑證IC卡開卡</strong>. That takes me back to a page that looks very similar to the original MOICA page &#8211; except the menu is full. Indeed, the first page only contains &#8220;<strong>Commonly Used Functions</strong>&#8221; in the menu and have to do this extra trip to get a complete list of available &#8220;<strong>Certificate Procedure</strong>&#8220;[sic].</p>
<p><figure id="attachment_2311" aria-describedby="caption-attachment-2311" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4.png"><img loading="lazy" decoding="async" class="wp-image-2311 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4-1024x640.png" alt="MOICA activation interface" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site4.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2311" class="wp-caption-text">MOICA activation interface (click for full size)</figcaption></figure></p>
<p>Here the activation can begin in earnest. First steps are:</p>
<ul>
<li>the site prompting for the install of half-a-dozen plugins,</li>
<li>there&#8217;s an external program for the card reader smart card functions called HiCOS (get it from the <a href="http://moica.nat.gov.tw/other/download_1.html">download page</a>)</li>
<li>besides the card reader&#8217;s own drivers (I have an <a href="http://www.easyatm.com.tw/product/goods.php?gid=40">EasyATM Pocket Reader 111</a>, seem to work well both in Linux and Windows)</li>
<li>and a &#8220;gcms-plugin&#8221; linked from the activation page, what this does is unclear to me.</li>
</ul>
<p>Most of these are also outlined (in Chinese) on <a href="http://moica.nat.gov.tw/ShowCardInfo.html">one of the helper pages</a>.</p>
<p>I did all this, loaded the card data (取得資料), filled out the page&#8217;s form, and submitted (the 開卡 button, &#8220;enable card&#8221;), but the process just hung there for about 5 minutes without any result. Tried more times that I probably should have&#8230;</p>
<p>One difficulty is that the page asks to &#8220;enter&#8221; subscriber code, and &#8220;set&#8221; PIN code: I didn&#8217;t know any subscriber code (probably meaning &#8220;username&#8221;), and &#8220;enter&#8221; is not &#8220;set&#8221; but who knows how the translations work on these sites?</p>
<p>On the page there was a link to help if things don&#8217;t work, which takes us to the <a href="http://blog.xuite.net/my_moica/blog/244925043">MOICA blog</a>, lo and behold:</p>
<p><figure id="attachment_2313" aria-describedby="caption-attachment-2313" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1.png"><img loading="lazy" decoding="async" class="wp-image-2313 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1-1024x640.png" alt="MOICA help blog help article header (continues below on the page)" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog1.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2313" class="wp-caption-text">MOICA help blog help article header (continues below on the page)</figcaption></figure></p>
<p>This doesn&#8217;t strike me with a lot of confidence. Not just that it&#8217;s all in Chinese, the post is more than a year old, the color scheme is going crazy, and basically doesn&#8217;t contain any new info. Mainly it&#8217;s about using an external site (together with advertisements) for an important information like this.</p>
<p>Further down the page there was <a href="http://blog.xuite.net/my_moica/blog/245596698">another link to even more help</a> on this blog to how to set things up for the MOICA site to work with the smart card reader.</p>
<p><figure id="attachment_2314" aria-describedby="caption-attachment-2314" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2.png"><img loading="lazy" decoding="async" class="size-large wp-image-2314" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2-1024x640.png" alt="MOICA card activation tech setup info on the blog" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Blog2.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2314" class="wp-caption-text"><a href="http://blog.xuite.net/my_moica/blog/245596698">MOICA card activation tech setup info</a> on the blog</figcaption></figure></p>
<p>The info is in Chinese, but more or less says this:</p>
<ul>
<li>Enable compatibility mode in IE for moica.nat.gov.tw and  61.60.9.42,</li>
<li>In Internet Options / Security / Trusted Sites / Sites disable &#8220;require server verification (https:) for all sites in this zone&#8221;, and add moica.nat.gov.tw and  61.60.9.42 to the trusted sites</li>
<li>Internet Options / Security / Trusted Sites / Custom Level enable everything releated to ActiveX (in my opinion, set to &#8220;Prompt&#8221; instead of &#8220;Enable&#8221; whenever possible)</li>
<li>Clear cookies and browser data and try afresh</li>
</ul>
<p>This is pretty horrifying again, but what to do, have to make that card work somehow. The IP in that list is actually the IP where the form is served, within an <a href="https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe">iframe</a> on the MOICA site&#8230; No security, open everything if you want to use the card.</p>
<p>The final comment on the page says, that if the activation form still hangs, then something is still not set up correctly. Of course my form was still hanging, but I was quite confident, that I haven&#8217;t missed any part of the setup. It&#8217;s time change strategy: to put myself into the shoes of the developer of a system like this. Imagining it as someone is making a site to technical specs only but not for usability, I was questioning what functions I might need. Looking through the menu, there is a &#8220;How to change subscriber code&#8221; page &#8211; and it does not ask for existing subscriber code, only other information! So it is more like resetting a forgotten code/password, this might be what I need!</p>
<p><figure id="attachment_2312" aria-describedby="caption-attachment-2312" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5.png"><img loading="lazy" decoding="async" class="size-large wp-image-2312" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5-1024x640.png" alt="Changing &quot;subscriber code&quot; (click for full size)" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Site5.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2312" class="wp-caption-text">Changing &#8220;subscriber code&#8221; (click for full size)</figcaption></figure></p>
<p>On that page I&#8217;ve added my <a href="https://en.wikipedia.org/wiki/Resident_Certificate">Alien Residency Certificate</a> number, date of birth, and my MOICA card&#8217;s number as requested, and got a brand new subscriber code.</p>
<p>Putting this new subscriber code into the activation page, setting a PIN and finished in a second like a charm: <strong>Success</strong>! The activation was also verified by going on the <a href="http://moica.nat.gov.tw/other/Query.html">Certificate Query</a> page (using the 64-digit certificate serial number from the Activation page that can load the card data):</p>
<p><figure id="attachment_2325" aria-describedby="caption-attachment-2325" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card.png"><img loading="lazy" decoding="async" class="size-large wp-image-2325" src="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card-1024x640.png" alt="MOICA card is activated (click for full size)" width="604" height="378" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card-1024x640.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card-500x313.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card-768x480.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2016/05/MOICA_Active_Card.png 1280w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2325" class="wp-caption-text">MOICA card is activated (click for full size)</figcaption></figure></p>
<p>The lesson seem to be, unless I&#8217;ve missed something, that a subscriber code needs to be created first (not mentioned in the help), and the activation page hangs on all kinds of issues such as missing/wrong subscriber number as well, not just when the technical setup is incorrect.</p>
<p>Now what can I use this card for? I&#8217;ve seen some articles saying that there are 3000 different services to be used with, but I guess that&#8217;s only sort of correct. The <a href="http://moica.nat.gov.tw/en/faq.html">FAQ</a> says:</p>
<blockquote><p>[&#8230;] electronic highway drivers services, tax filing, internet application system of the Labor Insurance Bureau, electronic gateway of the Land Administration, household registration internet applications, ChungHwa Telecom mobile phone (citywide) query, company online application system of the Ministry of Economic Affairs, public safety inspection system for buildings, internet customs clearance system for air cargoes, 1988 tax information instant messaging, and so on.</p></blockquote>
<p>Foreigners cannot do tax filing for the 2015 tax year (just being filed now till the end of this month), but should be good from next year (I&#8217;m using my stock trading file-based certificate so I&#8217;m good to file online anyways). Other uses I guess need some exploration.</p>
<h2>Endnotes</h2>
<h3>Tech</h3>
<p>I haven&#8217;t really used smart cards for anything so far, the only other one is the <a href="https://en.wikipedia.org/wiki/Healthcare_in_Taiwan#Healthcare_reform">National Health Insurance card</a> earlier this month, that was a tiny bit more straightforward, and sort of immediately useful.</p>
<p>Under Linux I can use <a href="http://ludovic.rousseau.free.fr/softwares/pcsc-tools/">pcsc-tools</a> and the CCID hardware driver for my reader to get some info about the card&#8217;s hardware, for what it&#8217;s worth:</p>
<pre class="lang:default decode:true" title="pcsc_scan output for the MOICA card">Thu May 26 15:23:24 2016
Reader 0: Generic USB2.0-CRW [Smart Card Reader Interface] (20070818000000000) 00 00
  Card state: Card inserted, 
  ATR: 3B B8 13 00 81 31 FA 52 43 48 54 4D 4F 49 43 41 A5

ATR: 3B B8 13 00 81 31 FA 52 43 48 54 4D 4F 49 43 41 A5
+ TS = 3B --&gt; Direct Convention
+ T0 = B8, Y(1): 1011, K: 8 (historical bytes)
  TA(1) = 13 --&gt; Fi=372, Di=4, 93 cycles/ETU
    43010 bits/s at 4 MHz, fMax for Fi = 5 MHz =&gt; 53763 bits/s
  TB(1) = 00 --&gt; VPP is not electrically connected
  TD(1) = 81 --&gt; Y(i+1) = 1000, Protocol T = 1 
-----
  TD(2) = 31 --&gt; Y(i+1) = 0011, Protocol T = 1 
-----
  TA(3) = FA --&gt; IFSC: 250
  TB(3) = 52 --&gt; Block Waiting Integer: 5 - Character Waiting Integer: 2
+ Historical bytes: 43 48 54 4D 4F 49 43 41
  Category indicator byte: 43 (proprietary format)
+ TCK = A5 (correct checksum)

Possibly identified card (using /home/user/.cache/smartcard_list.txt):
3B B8 13 00 81 31 FA 52 43 48 54 4D 4F 49 43 41 A5
	citizen digital certificate (PKI)
	http://moica.nat.gov.tw/</pre>
<p>Regarding the websites and web services in general I see more issues than good sides:</p>
<p><strong>Chinese and English</strong> are used in a very strange way. English translation is often uninformative (at best, misleading at worst), or missing. Sometimes resetting a form changes all the labels into Chinese, the relevant FAQs are often in Chinese&#8230;. All this wouldn&#8217;t be a problem, if it wasn&#8217;t advertised to be usable in English too. So far it&#8217;s about a 20% solution. Getting people to translate, doing consistent writing, not having text in images (so copy-paste translation can work as a last resort), and just thinking about the users in general would go a long way.</p>
<p>Paper documentation and blog that contains <strong>help and advice is out of date and incomplete</strong>. The website has changed since the screenshots, IE has changed since the screenshots, not all steps are described, some technical info is not presented in enough detail to make it work easily. This is again I think an issue of low manpower for maintenance and people not putting themselves into the user&#8217;s shoes when writing documentation (that&#8217;s a common issue in all tech).</p>
<p>The site&#8217;s front page showing <strong>Commonly Used Functions only</strong>, and no apparent way to see all functions. That&#8217;s just a big usability issue (people needing to call to use the website), that should come up if they check what people call them about. So I guess there&#8217;s no monitoring and review of support calls or no feedback to the site design.</p>
<p>A big no-no is <strong>not having SSL enabled everywhere</strong>, it would be so easy to do. Chunghwa Telecom that they used for some of the smart card software development is the local Certificate Authority and the government has its own too, can&#8217;t imagine why there isn&#8217;t security set up. There&#8217;s even <a href="https://letsencrypt.org/">Let&#8217;s Encrypt</a> for last resort now, so no excuses. Those pages that have SSL setup seems to be done by people who are not familiar with it, or not maintaining it properly. It&#8217;s a big misconception that &#8220;if HTTPS is in the URL, then the communication is secure&#8221;. In the public sector good sysadmins don&#8217;t fall for this, so the government and public sector need to step up their efforts. Staying with this immature security thinking will just lead to more issues (such as the <a href="http://www.taipeitimes.com/News/taiwan/archives/2016/05/25/2003647087">just hacked Chungwa Post</a>).</p>
<p>Using <strong>IP address-only designation and iframes</strong> for the smart card functions is also baffles my mind. I cannot imagine legitimate technical reasons for that, would be happy to hear if anyone knows one. Right now it looks like an alpha-quality software.</p>
<p>Relying on <strong>ActiveX</strong> for all these functions obviously is the result of the age of the project but it is definitely not future proof. Win 10 and the <a href="https://blogs.windows.com/msedgedev/2015/05/06/a-break-from-the-past-part-2-saying-goodbye-to-activex-vbscript-attachevent/">latest IE drops ActiveX</a> as well, so there are no up-to-date systems that could use this smart card functionality. How many people will keep an XP around just to use the government websites? (The answer is probably not many and still more than should be).</p>
<h3>Alternatives</h3>
<p>With all this technical background, I really feel that this is a dead-end solution, which might work for a while still but has no future. To have a future, it needs to break from ActiveX, and go cross-platform too. Probably would need to break from the smart card format as well (at least as it is now). I&#8217;m in no way an expert in this area, these are some ideas based on my experience so far.</p>
<p>If trying to keep such certificate-based services around, then there has to be some serious research put into either how to use smart cards better (maybe based on <a href="https://github.com/OpenSC/OpenSC">OpenSC</a>?), or change hardware. I&#8217;m thinking something like <a href="https://www.yubico.com/products/yubikey-hardware/yubikey4/">Yubikey</a> could be an interesting model, especially with it&#8217;s <a href="https://www.yubico.com/why-yubico/for-individuals/computer-login/yubikey-neo-and-piv/">Personal Identity Verification PIV support</a>. Probably PIV and the related standards (that I have very tiny idea about so far) would be a viable path to look at.</p>
<p>Another alternative comes to my mind thinking about how bank logins work in some countries, using a Two-Factor Authentication (2FA) device that generates a one-time password for logging in. I see the model of this good in the sense of not having any hardware attached to the computer so it&#8217;s by default cross-platform and much less setup. Of course 2FA alone is surely not enough (eg. if electronic signature functions are used with MOICA), but the current model also just seem to be a 2FA (the factors are the card and the pin) login for the services. Maybe a mixed model, with simplicity in mind would be a good path.</p>
<h3>Future</h3>
<p>The idea of MOICA is fundamentally good, and pretty much inevitable in one form or another. The main thing would be thinking over the use cases and user experience a lot better. It is an interesting project, to a level that I almost wish I could work on this: technology development, QA, user &amp; system testing, project development consulting, security enhancement, evaluation&#8230; It is unlikely to happen, so I really-really hope the Taiwan government (ie. the relevant ministries) have a decent sized and quality team working on this. Otherwise&#8230;. disaster and/or becoming irrelevant is also pretty much inevitable, only question is time.</p>
<p>Would love to hear if anyone else goes through this process and what do they use your cards for?</p>
<p>The post <a href="https://gergely.imreh.net/blog/2016/05/taiwan-citizen-digital-certificate/">Taiwan Citizen Digital Certificate</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2016/05/taiwan-citizen-digital-certificate/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>Taiwan WWII Map Overlays</title>
		<link>https://gergely.imreh.net/blog/2015/11/taiwan-wwii-map-overlays/</link>
					<comments>https://gergely.imreh.net/blog/2015/11/taiwan-wwii-map-overlays/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Mon, 02 Nov 2015 13:47:43 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[WWII]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=2102</guid>

					<description><![CDATA[<p>A while ago I came across the Formosa (Taiwan) City Plans, U.S. Army Map Service, 1944-1945 collection, in the Perry-Castañeda Library Map Collection of the University of Texas in Austin. I&#8217;m a sucker for maps, enjoy learning about history a lot, and I have a lot of interest in my current home, Taiwan &#8211; so you can call this a [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/11/taiwan-wwii-map-overlays/">Taiwan WWII Map Overlays</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>A while ago I came across the <a href="https://www.lib.utexas.edu/maps/ams/formosa_city_plans/">Formosa (Taiwan) City Plans, U.S. Army Map Service, 1944-1945 collection</a>, in the <a href="https://www.lib.utexas.edu/maps/">Perry-Castañeda Library Map Collection</a> of the University of Texas in Austin. I&#8217;m a sucker for maps, enjoy learning about history a lot, and I have a lot of interest in my current home, Taiwan &#8211; so you can call this a magic mix of cool stuff.</p>
<p>There are 26 maps in the collection, made by the US Army by flying over different parts of the island, and mostly I guess stitching together aerial photographs. The maps themselves were not that easy check in an image viewer, since there&#8217;s no context, zoom is clumsy, and have no idea where about half the places should be located. Instead, I thought it would be great to have them as an overlay on top of current maps and satellite imagery on Google Maps.</p>
<p>The result is <a href="https://imrehg.github.io/taiwanmap/">Taiwan City Maps overlays</a>, which does exactly that. <em>Feel free to click the link and explore right now!</em> In the rest of this post, I try to first show how that page was made, and also some history lessons I gained by making it.</p>
<p><span id="more-2102"></span></p>
<h2>How it was made</h2>
<p>The <a href="https://developers.google.com/maps/documentation/javascript/examples/groundoverlay-simple">Google Maps Ground Overlay API</a> does exactly what I needed, so can&#8217;t claim much (almost any) innovation in the page, though I stumbled on it after a few other &#8220;Overlays&#8221;, as Google Maps has a couple, all working slightly differently.</p>
<p>Ground Overlay basically takes the following parameters:</p>
<ul>
<li>the map&#8217;s center,</li>
<li>zoom level,</li>
<li>an image,</li>
<li>the image&#8217;s N/E/W/S bounds in geographical coordinates.</li>
<li>whether to show satellite or maps view underneath</li>
</ul>
<p>Even cooler, the opacity of the image can be adjusted, so the overlay and the base layer can be viewed together much easier!</p>
<p>In that list above, the trickiest part is of course figuring out the boundaries of the image &#8211; basically the way to overlay them &#8211; for multiple reasons. First, all the maps have borders with information, titles, legend, and so on. Here below is the Taipei city plan from 1944. I can&#8217;t really tell where the corner of the image should be geographically, if there&#8217;s nothing to compare to.</p>
<p><figure id="attachment_2109" aria-describedby="caption-attachment-2109" style="width: 600px" class="wp-caption aligncenter"><a href="https://imrehg.github.io/taiwanmap/maps/txu-oclc-6565483.jpg"><img loading="lazy" decoding="async" class="wp-image-2109 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/Taipei_Small-min.jpg" alt="Taipei / Taihoku city plan" width="600" height="490" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/Taipei_Small-min.jpg 600w, https://gergely.imreh.net/blog/wp-content/uploads/2015/11/Taipei_Small-min-500x408.jpg 500w" sizes="auto, (max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-2109" class="wp-caption-text">Taipei / Taihoku city plan</figcaption></figure></p>
<p>Then there&#8217;s also the problem of things have changed in the last ~70 years, so a lot of things are different on the maps, if I want to match them up. Lastly, the maps are not perfectly accurate either, they are stitched from multiple photographs of unknown quality.</p>
<p>Been trying to match the maps by hand for a while, and codings some tools to make that process easier &#8211; but it didn&#8217;t really get easier. I needed to get to get around all these issues, and have a reasonable, objectively good fit. Objectivity is a key, and math helps with that. What I ended up with doing a linear fit of geographical and image coordinates.</p>
<ul>
<li>look for landmarks that are reasonably the same back then and now</li>
<li>note their geographical coordinates, and their pixel coordinates on the image</li>
<li>note the image size</li>
<li>finally: run a linear fit that gives back the geographical coordinates of the image edges that would best match the landmark data in both sources</li>
</ul>
<p>In really ugly Python it would be something like this:</p>
<pre class="lang:python">import numpy as np

# # For example the contents of "taoyuanfit.csv":
# # Landmark data: image vertical/horizontal (px), latitude/longitude
# 1677,2861,24.991962,121.322634
# 1597,524,24.992282,121.304856
# 2385,1348,24.986873,121.311122
# 764,1342,24.998116,121.311411
datafile = "taoyuanfit.csv"
points = np.loadtxt(datafile, delimiter=",", comments="#")
imgwidth, imgheight = 3975, 3209

# Points on the image, scaled to range 0 to 1
px, py = points[:, 1]/imgwidth, (imgheight-points[:, 0])/imgheight
# Points on the map
gx, gy = points[:, 3], points[:, 2]
# Do the fitting
lx, ly = np.polyfit(px, gx, 1), np.polyfit(py, gy, 1)

# Fitting parameters give map boundaries, results in this case
west = lx[1]          # 121.300983
east = lx[1] + lx[0]  # 121.331141
north = ly[1]+ly[0]   #  25.003429
south = ly[1]         #  24.981204
</pre>
<p>This is now pretty objective, and then quality of the overlay depends on the quality of the landmarks I find, and the maps that they are on.</p>
<p>The best landmarks I could turn up were notable roundabouts like below&#8230;</p>
<p><figure id="attachment_2103" aria-describedby="caption-attachment-2103" style="width: 600px" class="wp-caption aligncenter"><a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Tainan#lat=22.992571&amp;lng=120.205386&amp;z=17"><img loading="lazy" decoding="async" class="wp-image-2103 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/map_roundabout.gif" alt="Matching roundabouts (Tainan)" width="600" height="400" /></a><figcaption id="caption-attachment-2103" class="wp-caption-text">Matching roundabouts (Tainan, click to go to this section on the map)</figcaption></figure></p>
<p>&#8230; and recognizable streets and intersections, like below&#8230;</p>
<p><figure id="attachment_2104" aria-describedby="caption-attachment-2104" style="width: 600px" class="wp-caption aligncenter"><a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taichung#lat=24.140336&amp;lng=120.680156&amp;z=17"><img loading="lazy" decoding="async" class="wp-image-2104 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/map_streets.gif" alt="Matching recognizable streets (Taichung)" width="600" height="400" /></a><figcaption id="caption-attachment-2104" class="wp-caption-text">Matching recognizable streets (Taichung, click to go to this section on the map)</figcaption></figure></p>
<p>&#8230; but not too small and not too large streets. Large streets have fewer recognizable locations (unless some notable mid-sized street is intersecting with it), and small streets are usually not placed too carefully on the map, so can&#8217;t really trust their positions.</p>
<p>What I couldn&#8217;t trust, though: rivers (they changed a lot), bridges (usually can&#8217;t tell if they are the same bridge in both era, or a new one built close to the no longer there old one, as it is a common practice), coastlines, lakes, large structures.</p>
<p>The minimal number of landmarks needed for a fit (ideally) is just two, and surprisingly, there were a couple maps where I could get along with about three. In most cases, though, I needed at least 4-6 landmarks, and there were some I needed to discard for overall better quality of fit. Some maps show pretty good accuracy, while others (such as e.g. <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Kaohsiung">Kaohsiung</a>) are quite poor &#8211; compared to today&#8217;s satellite pictures, of course. It&#8217;s all enjoyable, though.</p>
<p>Then added a few more functions to the page, such as changing the opacity, being able to link to the exact location and zoom level I&#8217;m looking at, and some page-load animation (the maps are in the range of 4-10MB, not that quick to load).</p>
<p>The source code for the site is <a href="https://github.com/imrehg/taiwanmap">on Github</a>, and pull requests are accepted, naturally.</p>
<h2>History lessons learned</h2>
<p>I was very interested to note the things that have changed, and things that haven&#8217;t in the decades passed.</p>
<h3>Things that mostly stayed the same</h3>
<p><strong>Schools</strong> are usually at the same location, even stayed the same type (e.g. girls&#8217; high school staying that <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Changhua#lat=24.081851&amp;lng=120.544232&amp;z=17">in Changhua</a>).</p>
<p><strong>Airports</strong> are usually at the same location (duh!), though usually greatly expanded, while the old runways can be matched to the new ones (<a href="http://localhost:8000/taiwanmap.html?location=Hsinchu#lat=24.819385&amp;lng=120.946305&amp;z=15">like in Hsinchu</a>).</p>
<p><strong>Train stations</strong>, of course, although tracks might change, or entire stations disappear (like <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Beigang#lat=23.567516&amp;lng=120.296347&amp;z=17">in Beigang</a> or <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Hualien#lat=23.973977&amp;lng=121.611590&amp;z=17">in Hualien</a>).</p>
<p><strong>Military installations</strong>, which surprised me, can stay the same, looks like the KMT troops just took over the Japanese posts and continued to use them. Some turned into schools, or could disappear too.</p>
<p>Many <strong>roundabouts</strong>, <strong>outlines of city blocks</strong> (like the <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taipei#lat=25.035710&amp;lng=121.520802&amp;z=16">CKS Memorial Hall now</a>, or <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Yilan#lat=24.757393&amp;lng=121.753820&amp;z=16">Yilan&#8217;s city outline</a>), <strong>mountains</strong>, also stayed mostly the same.</p>
<h3>Things that changed a lot</h3>
<p><strong>City areas</strong> changed enormously (duh!), just look at the capital, <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taipei">Taipei</a>, the west side stayed mostly the same but built in about twice/three times as big area on the east. Most other cities grown just like that, as it&#8217;s very clear for example <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taitung">for Taitung</a>. It&#8217;s no wonder, 5.8 million people on the island in 1940, while above 23 million by now (<a href="https://en.wikipedia.org/wiki/Demographics_of_Taiwan#Population_census">according to Wikipedia</a>). This also brings the changes of a lot of <strong>streets and roads</strong>.</p>
<p>Water is definitely very changeable. <strong>Rivers</strong> got diverted a lot, most notably on the <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taipei#lat=25.071025&amp;lng=121.566421&amp;z=14">east side of Taipei </a>(near Neihu and Songshan districts) the Keelung river was straightened up, but the roads can still mirror the old path. Other rivers (or channels?) got covered up, and now only live on as roads &#8211; though I guess they might still flow under our feet (just like <a href="https://en.wikipedia.org/wiki/Fleet_Street">Fleet Street</a>)? Some more dramatic change is an entire <strong>missing island</strong> <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Danshui#lat=25.165905&amp;lng=121.438357&amp;z=16">in Danshui</a>, I wonder what happened to it? <strong>Lakes</strong> change too, mostly I guess due to development around them (<a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Zuoying#lat=22.684229&amp;lng=120.296463&amp;z=15">like in Zuoying</a>). The <strong>sea shore</strong> is different for the many cities, as probably they were developed and also the shallows were naturally filled by the rivers (<a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Hsinchu#lat=24.816249&amp;lng=120.923389&amp;z=15">like in Hsinchu</a> and <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Tainan#lat=22.998689&amp;lng=120.199147&amp;z=14">in Tainan</a>). Harbors don&#8217;t stay the same either (<a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Penghu">like in Penghu</a>).</p>
<p>Some landmarks such as <strong>shrines</strong> have changed too. The most notable I could find so far is in Taipei / Yuanshan, where the current <a href="https://en.wikipedia.org/wiki/Grand_Hotel_(Taipei)">Grand Hotel / 圓山大飯店</a> replaced a shrine in 1952 (yellow rooftop on the left below), while the <a href="https://en.wikipedia.org/wiki/National_Revolutionary_Martyrs%27_Shrine">Taipei Martyrs&#8217; Shrine</a> seems to be built on the site of another previous shrine in 1969 (yellow rooftop and cross-shaped grounds on the right below). On the map there&#8217;s another temple-complex looking structure in between them, that&#8217;s now the <a href="https://www.americanclub.org.tw/">Taipei American Club</a> and the <a href="https://en.wikipedia.org/wiki/International_Community_Radio_Taipei">International Community Radio Taipei (ICRT)</a>.</p>
<p><figure id="attachment_2140" aria-describedby="caption-attachment-2140" style="width: 600px" class="wp-caption aligncenter"><a href="http://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taipei#lat=25.079136&amp;lng=121.528545&amp;z=17"><img loading="lazy" decoding="async" class="wp-image-2140 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/map_shrine.gif" alt="Map Shrines" width="600" height="400" /></a><figcaption id="caption-attachment-2140" class="wp-caption-text">Grand Hotel replacing a shrine (yellow rooftop on the left), while shrine becomes a Taipei Martyrs&#8217; Shrine (yellow roof and cross-shaped ground on the right). In the centre, now the Taipei American Club and the ICRT radio station (click to go to this section on the map)</figcaption></figure></p>
<p><strong>Race courses</strong> disappeared too &#8211; together with the cavalry, I guess (like <a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Tainan#lat=22.992773&amp;lng=120.232814&amp;z=16">in Tainan</a>).</p>
<p>I&#8217;m sure there are a bunch of other things too, it will take some time to discover and understand things&#8230;</p>
<h3>Other notes</h3>
<p>The <strong>legends</strong> and information on the maps was pretty interesting. For example here&#8217;s the coverage map for Taipei / Taihoku, showing what aerial maps they stitched together, and when were the flights that took the photos:</p>
<p><figure id="attachment_2115" aria-describedby="caption-attachment-2115" style="width: 464px" class="wp-caption aligncenter"><a href="https://imrehg.github.io/taiwanmap/taiwanmap.html?location=Taipei#lat=25.018566&amp;lng=121.560241&amp;z=16"><img loading="lazy" decoding="async" class="wp-image-2115 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/11/Taipei_Coverage_1944-min.jpg" alt="Taipei aerial photo coverage" width="464" height="469" /></a><figcaption id="caption-attachment-2115" class="wp-caption-text">Taipei aerial photo coverage</figcaption></figure></p>
<p>The Internet also taught me a few things, such as <a href="https://www.reddit.com/r/taiwan/comments/3o2vwh/taiwanese_city_maps_in_wwii_and_now/cvu2wml">this very insightful comment on Reddit</a> that traced back the Chinese / Japanese <strong>city names</strong> of these maps.</p>
<p>I was also amazed by how detailed information the Americans had about the <strong>functions of the buildings</strong> &#8211; down to the type of factories, the type schools the buildings were. I would not be surprised if the maps were supplemented by some real intelligence from the ground. Especially likely as the big cities had so much more such details than the smaller locations (where there might not be more than a few likely military installations noted). I wonder if there&#8217;s any good source to learn about this &#8211; about American intelligence behind enemy lines in the Pacific theatre of WWII.</p>
<h2>To the Future</h2>
<p>Now that everything kinda works, I think I&#8217;ll spend more time looking at the maps instead of working with them, try to learn more.</p>
<p>Hosting this project on Github is definitely pretty easy and convenient, though I start to see that their speed is not necessarily very good for big assets like the map images. Could add Cloudfront very easily to speed things up, just I don&#8217;t necessarily want to pay for that extra speed just yet. :P</p>
<p>To be able to show the loading animation I currently need to use jQuery to preload the image, then rely on the browser caching to <em>not</em> to download the image for the second time when the image is attached to the map object to create the overlay. It works pretty well&#8230; except in the Facebook Android app&#8217;s built in browser &#8211; that happily ignores caching and downloads the image twice (ouch). Would be awesome to figure out how can I get directly from the Google Map API when it finished downloading the image.</p>
<p>Might revisit a couple of the maps to see if I can improve the fit, though really just a couple of them, most are totally fine for their quality. Should also add the Japanese writing of the city names for more authenticity and discoverability.</p>
<p>And in the meantime, <a href="http://imrehg.github.io/taiwanmap/">keep checking the map</a>, and any comment or feedback is appreciated! A big thanks to the <a href="http://www.lib.utexas.edu/">University of Texas Libraries </a>and the <a href="http://www.lib.utexas.edu/maps/">Perry-Castañeda Library Map Collection</a> for the <a href="http://www.lib.utexas.edu/usage_statement.html">public domain maps</a>!</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/11/taiwan-wwii-map-overlays/">Taiwan WWII Map Overlays</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/11/taiwan-wwii-map-overlays/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
			</item>
		<item>
		<title>Taiwan Bank SSL Continuous Monitoring</title>
		<link>https://gergely.imreh.net/blog/2015/04/twbankssl-continuous-monitoring/</link>
					<comments>https://gergely.imreh.net/blog/2015/04/twbankssl-continuous-monitoring/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Mon, 06 Apr 2015 06:21:27 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[online banking]]></category>
		<category><![CDATA[online security]]></category>
		<category><![CDATA[open source software]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1951</guid>

					<description><![CDATA[<p>My previous post, titled SSL status of Taiwanese banks: a sad affair sparked a lot of visits and lot of discussion, clearly touching on something important. It was great to bring to light how well (or badly, in this case) these organizations are doing, as internet security should be one of their key focus. Many of [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/04/twbankssl-continuous-monitoring/">Taiwan Bank SSL Continuous Monitoring</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>My previous post, titled <a title="SSL status of Taiwanese banks: a sad affair" href="https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/">SSL status of Taiwanese banks: a sad affair</a> sparked a lot of visits and lot of discussion, clearly touching on something important. It was great to bring to light how well (or badly, in this case) these organizations are doing, as internet security should be one of their key focus.</p>
<p>Many of the organizations improved their setup since then, and it became quite troublesome to manually check each bank and each change, update the table and so on. It&#8217;s also good to have not just a snapshot in time, but a continuous record of how they were doing.</p>
<p>Thus I&#8217;ve hacked together some monitoring scripts, put the results online, and here&#8217;s the <a title="Taiwan Financial Institute SSL Status" href="https://gergely.imreh.net/twbankssl/">Taiwan Financial Institute SSL Status</a> page.</p>
<p><figure id="attachment_1952" aria-describedby="caption-attachment-1952" style="width: 550px" class="wp-caption aligncenter"><a href="/twbankssl/"><img loading="lazy" decoding="async" class="wp-image-1952 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/04/TaiwanBankSSL-1024x599.png" alt="TaiwanBankSSL" width="550" height="322" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/04/TaiwanBankSSL-1024x599.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/04/TaiwanBankSSL-500x292.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/04/TaiwanBankSSL-768x449.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/04/TaiwanBankSSL.png 1233w" sizes="auto, (max-width: 550px) 100vw, 550px" /></a><figcaption id="caption-attachment-1952" class="wp-caption-text">Click to check the current results</figcaption></figure></p>
<p>Page features include:</p>
<ul>
<li>Automatically run once a day</li>
<li>Highlighting issues, showing grade evolution</li>
<li><a href="https://gergely.imreh.net/twbankssl/twbankssl.xml">RSS feed of grade changes</a></li>
<li>Automatic tweeting of daily status and changes as <a title="twbankssl on Twitter" href="https://twitter.com/twbankssl">@twbankssl</a></li>
</ul>
<p>This is quite a bit more than &#8220;minimal features&#8221;, but wanted to make something that is actually useful.<br />
<span id="more-1951"></span></p>
<h2>Notes on the tech</h2>
<p>In a nutshell:</p>
<ul>
<li>to run the SSL Test queries, I&#8217;m using <a title="ssllabs-scan on Github" href="https://github.com/ssllabs/ssllabs-scan">ssllabs-scan</a>, a official program written in Go to do just that.</li>
<li>scrapting is parallelized and managed by a Python script.</li>
<li>the results are parsed and output JSON, RSS, tweets are generated by another Python script.</li>
<li>the site displays the results as a single-page app, pulling in the results through the generated JSON file.</li>
<li>the grade sparklines are using an external library.</li>
</ul>
<p>All the code is <a title="twbankssl on Github" href="https://github.com/imrehg/twbankssl">open source on Github</a>. Tried to make it reusable for people wanting to monitor any other sets of sites (eg. other countries&#8217; banks, government institutions, own sites), though I did not completely succeed. There are hard-wired parts that could use a rewrite, but can be a starting point for any other project for sure. By the way, patches / pull requests are welcome if you see something could be improved!</p>
<h2>Future</h2>
<p>I hope to leave the scripts and page running for a while to see whether it actually works autonomously, whether it&#8217;s useful for anyone, and as a tool to push for change for these financial institutions. Will also try to connect to people here in Taiwan who can make that change happen faster.</p>
<p>Some code rewrite and expanding the documentation is also inevitable &#8211; once my current coffee high has been metabolized. :)</p>
<p>What do you think? How would you use this data, or how you&#8217;d improve on the service?</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/04/twbankssl-continuous-monitoring/">Taiwan Bank SSL Continuous Monitoring</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/04/twbankssl-continuous-monitoring/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>SSL status of Taiwanese banks: a sad affair</title>
		<link>https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/</link>
					<comments>https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Sat, 14 Mar 2015 14:43:59 +0000</pubDate>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[online banking]]></category>
		<category><![CDATA[online security]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[webmaster]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1876</guid>

					<description><![CDATA[<p>Today there was a story on Hacker News, how someone tweeting a screenshot of a bank&#8217;s SSL certificate got harassed by the bank in Greece. This got me thinking about the status of the banks here in Taiwan, especially how this place is so wired and online now. So I took a list of taiwanese banks and [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/">SSL status of Taiwanese banks: a sad affair</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Today there was <a title="Bank harrasses user because he tweeted screenshot of their SSL certificate" href="https://news.ycombinator.com/item?id=9197903">a story on Hacker News</a>, how someone tweeting a screenshot of a bank&#8217;s SSL certificate <a title="web bank security" href="http://ebalaskas.gr/blog/2015/03/13/web-bank-security/">got harassed by the bank</a> in Greece. This got me thinking about the status of the banks here in Taiwan, especially how this place is so wired and online now. So I took <a href="http://www.startabusinessintaiwan.tw/additional-resources/54-money-banking-and-finance/75-list-of-taiwanese-bank-codes">a list of taiwanese banks</a> and run each of their sites through the <a href="https://www.ssllabs.com/ssltest/">SSL Test</a>. From past experiences I haven&#8217;t had my hopes up, but boy is the result ugly&#8230;</p>
<p><figure id="attachment_1915" aria-describedby="caption-attachment-1915" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1915 size-medium" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/03/SSLTest_F-500x183.png" alt="SSLTest_F" width="500" height="183" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/03/SSLTest_F-500x183.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/03/SSLTest_F-768x281.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/03/SSLTest_F.png 794w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption id="caption-attachment-1915" class="wp-caption-text">The usual result of this exercise</figcaption></figure></p>
<h2>SSL Test Overview</h2>
<p>I had a list of 43 banks, and for a quick overview I took into account a few key features only. The first is whether there are any active vulnerabilities against the site according to the test (these were mostly <a href="http://en.wikipedia.org/wiki/CRIME">CRIME</a>, <a href="http://en.wikipedia.org/wiki/FREAK">FREAK</a>, and <a href="http://en.wikipedia.org/wiki/POODLE">POODLE</a> attacks). The second is whether <a href="http://en.wikipedia.org/wiki/RC4">RC4</a> encryption was enabled, as it is <a href="https://tools.ietf.org/html/rfc7465">now prohibited</a>, and having it on is an automatic <a href="http://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard">Payment Card Industry Data Security (PCI)</a> compliance failure, according to <a href="https://news.ycombinator.com/item?id=9198493">one of the commenters</a>. Other various warnings are mentioned when something really stands out, they are not crucial but more nice to have (though I&#8217;d contend that <a href="https://www.eff.org/deeplinks/2014/04/why-web-needs-perfect-forward-secrecy">Forward Secrecy</a> and <a href="http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a> is more than &#8220;nice&#8221; for anything financial).</p>
<p><strong>Edit:</strong> Since publishing this post, there&#8217;s a brand new <a title="Attacks Only Get Better: Password Recovery Attacks Against RC4 in TLS" href="http://www.isg.rhul.ac.uk/tls/RC4mustdie.html">password recovery attack against RC4</a>, so it&#8217;s even more urgent to switch it off.</p>
<p><span id="more-1876"></span></p>
<h2>Test Outcome</h2>
<p>The only A rating was for Deutsche Bank, which uses its global site for all regional sections too, so not that surprising that it was better than average. The rest of it in a nutshell:</p>
<ul>
<li>22 out 43 banks (51%) got an F,</li>
<li>2 of them did not have SSL (though no online banking either, fortunately),</li>
<li>1 SSL enabled site couldn&#8217;t be tested somehow, possibly because of redirections</li>
<li>Only 4 of them (9%) disabled RC4, the rest of it (91%) is vulnerable to password recovery attacks,</li>
<li>24 of them (56%) are vulnerable to common attacks, 5 (11%) to multiple different attacks (besides RC4), <a title="Alert (TA14-290A): SSL 3.0 Protocol Vulnerability and POODLE Attack" href="https://www.us-cert.gov/ncas/alerts/TA14-290A">POODLE</a> being the most common</li>
<li>There was one site where the general corporate website&#8217;s HTTPS was better configured (B) than the e-banking (F)&#8230;</li>
<li>Handling redirects and subdomains is generally very confusing for banks</li>
<li>Most banks have multiple subdomains for different services (&#8220;bank site&#8221;, &#8220;e-banking&#8221;, and &#8220;web ATM&#8221; are the three most common)</li>
<li>Of the 4 banks I have account at, there&#8217;s one B and three F-rated (not naming names)</li>
</ul>
<p>The raw overall data and test links follow (with an outlook afterwards). Usually I&#8217;ve linked to the e-bank pages of banks, unless I couldn&#8217;t see it or was the same domain as their corporate site.</p>
<p><strong>Update (2015-03-19):</strong> Some banks started to fix their systems, noticed changes will be added to the bottom of this post!</p>
<p><strong>Update (2015-03-25):</strong> Instead of keeping up with the changes manually, made a page for automatic status tests. It&#8217;s still in development but you can check it here: <a href="https://gergely.imreh.net/twbankssl/">Taiwan Financial Institutes SSL Tests</a>.</p>
<p><h2 id="tablepress-1-name" class="tablepress-table-name tablepress-table-name-id-1">Taiwanese Bank SSL Test Results</h2>
<span id="tablepress-1-description" class="tablepress-table-description tablepress-table-description-id-1">Data as of  2015-03-24</span>

<table id="tablepress-1" class="tablepress tablepress-id-1" aria-labelledby="tablepress-1-name" aria-describedby="tablepress-1-description">
<thead>
<tr class="row-1">
	<th class="column-1">Bank</th><th class="column-2">SSL Test Result</th><th class="column-3">RC4 blocked</th><th class="column-4">Attacks</th><th class="column-5">Comments</th>
</tr>
</thead>
<tbody class="row-striping row-hover">
<tr class="row-2">
	<td class="column-1"><a href="https://abtweb.agribank.com.tw">Agricultural Bank of Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=abtweb.agribank.com.tw&amp;latest">X</a></td><td class="column-3">n/a</td><td class="column-4">n/a</td><td class="column-5">Can't run test due to redirect settings (?)</td>
</tr>
<tr class="row-3">
	<td class="column-1"><a href="https://anz.tw/">ANZ Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=anz.tw&amp;latest">F</a> (main),<br />
<a href="https://www.ssllabs.com/ssltest/analyze.html?d=twcardsonline.anz.com&amp;latest">B</a> (was F) (credit card)</td><td class="column-3">X</td><td class="column-4">POODLE, <a href="https://community.qualys.com/blogs/securitylabs/2009/11/05/ssl-and-tls-authentication-gap-vulnerability-discovered?_ga=1.243676997.1314924344.1426306478">MitM</a></td><td class="column-5">For the credit card management it's RC4, but otherwise good</td>
</tr>
<tr class="row-4">
	<td class="column-1"><a href="https://promo.bankofamerica.com/tw/">Bank of America</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=promo.bankofamerica.com&amp;latest">B</a></td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5">No e-banking</td>
</tr>
<tr class="row-5">
	<td class="column-1"><a href="http://www.hkbea.com.tw/html/en/index.html">Bank of East Asia</a></td><td class="column-2">X</td><td class="column-3">n/a</td><td class="column-4">n/a</td><td class="column-5">No SSL version of site</td>
</tr>
<tr class="row-6">
	<td class="column-1"><a href="https://www.bok.com.tw/welcome">Bank of Kaohsiung</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=bok.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-7">
	<td class="column-1"><a href="https://netbank.bop.com.tw">Bank of Panshin</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=netbank.bop.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-8">
	<td class="column-1"><a href="https://www.bankoftaipei.com.tw/">Bank of Taipei</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=bankoftaipei.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">FREAK</td><td class="column-5"></td>
</tr>
<tr class="row-9">
	<td class="column-1"><a href="https://ebank.bot.com.tw/">Bank of Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.bot.com.tw&amp;latest">A-</a> (was F)</td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-10">
	<td class="column-1"><a href="https://atm.sinopac.com">Bank SinoPac</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=atm.sinopac.com&amp;latest">C</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-11">
	<td class="column-1"><a href="https://www.mybank.com.tw/">Cathay United Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=mybank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-12">
	<td class="column-1"><a href="https://www.chb.com.tw/">Chang Hwa Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=chb.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">FREAK, POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-13">
	<td class="column-1"><a href="https://www.cdibank.com">China Development Industrial Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=cdibank.com&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5">HTTPS page tries to load unsafe scripts</td>
</tr>
<tr class="row-14">
	<td class="column-1"><a href="https://www.ctbcbank.com/">Chinatrust Commercial Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ctbcbank.com&amp;latest">B</a> (was F)</td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-15">
	<td class="column-1"><a href="https://webatm.post.gov.tw">Chunghwa Post (Post Office)</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=webatm.post.gov.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-16">
	<td class="column-1"><a href="https://webatm.citibank.com.tw/">Citibank Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=webatm.citibank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-17">
	<td class="column-1"><a href="https://www.kgibank.com/">Cosmos Bank (KGI)</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=kgibank.com&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-18">
	<td class="column-1"><a href="https://ebank.cotabank.com.tw/">COTA Commercial Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.cotabank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-19">
	<td class="column-1"><a href="https://internet-banking.dbs.com.tw/">DBS Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=internet-banking.dbs.com.tw&amp;latest">C</a></td><td class="column-3">Y</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-20">
	<td class="column-1"><a href="https://www.db.com/taiwan/">Deutsche Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=db.com&amp;latest">A</a></td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5">Only warning is not using SHA2</td>
</tr>
<tr class="row-21">
	<td class="column-1"><a href="https://ebank.esunbank.com.tw/">E.Sun Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.esunbank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-22">
	<td class="column-1"><a href="https://webatm.entiebank.com.tw/entieatm/">EnTie Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=webatm.entiebank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-23">
	<td class="column-1"><a href="https://www.feib.com.tw/">Far Eastern International Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=feib.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-24">
	<td class="column-1"><a href="https://www.firstbank.com.tw/">First Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=firstbank.com.tw&amp;latest">B</a> (corp),<br />
<a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.firstbank.com.tw&amp;latest">F</a> (ibank),<br />
<a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.firstbank.com.tw&amp;latest">F</a> (ebank)</td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5">ebanking settings are weaker than general corporate sites?</td>
</tr>
<tr class="row-25">
	<td class="column-1"><a href="https://ebank.taipeifubon.com.tw/">Fubon Financial</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.taipeifubon.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-26">
	<td class="column-1"><a href="https://www.hsbc.com.tw/">HSBC Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=hsbc.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5">No secure renegotiation, SSL3</td>
</tr>
<tr class="row-27">
	<td class="column-1"><a href="https://ibank.hncb.com.tw/">Hua Nan Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.hncb.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-28">
	<td class="column-1"><a href="https://webatm.hwataibank.com.tw">Hwatai Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=webatm.hwataibank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-29">
	<td class="column-1"><a href="https://netbank.jihsunbank.com.tw/">JihSun Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=netbank.jihsunbank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-30">
	<td class="column-1"><a href="https://netbank.ktb.com.tw/MyKTBank/index.jsp">King's Town Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=eatm.ktb.com.tw&amp;latest">F</a> (e-ATM),<br />
<a href="https://www.ssllabs.com/ssltest/analyze.html?d=netbank.ktb.com.tw&amp;latest">F</a> (e-bank)</td><td class="column-3">X</td><td class="column-4">CRIME, FREAK, POODLE, Diffie-Hellman</td><td class="column-5">the horror...</td>
</tr>
<tr class="row-31">
	<td class="column-1"><a href="https://www.landbank.com.tw/">Land Bank of Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=landbank.com.tw&amp;latest">C</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-32">
	<td class="column-1"><a href="https://ebank.megabank.com.tw/">Mega International Commercial Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.megabank.com.tw&amp;latest">A-</a></td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-33">
	<td class="column-1"><a href="http://www.metrobank.com.tw">Metrobank</a></td><td class="column-2">X</td><td class="column-3">n/a</td><td class="column-4"></td><td class="column-5">no SSL</td>
</tr>
<tr class="row-34">
	<td class="column-1"><a href="https://ibank.scsb.com.tw/">Shanghai Commercial and Savings Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.scsb.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-35">
	<td class="column-1"><a href="https://ibank.skbank.com.tw/skatm/">Shin Kong Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.skbank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-36">
	<td class="column-1"><a href="https://ebank.standardchartered.com.tw/HIB/servlet/HttpDispatcher/Login/prompt?newTxRequest=true&amp;locale=zh_TW">Standard Chartered</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.standardchartered.com.tw&amp;latest">B</a></td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-37">
	<td class="column-1"><a href="https://www.esunnybank.com.tw">Sunny Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=esunnybank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">FREAK, POODLE, Diffie-Hellman</td><td class="column-5"></td>
</tr>
<tr class="row-38">
	<td class="column-1"><a href="https://ibank.tcbbank.com.tw/">Taichung Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.tcbbank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-39">
	<td class="column-1"><a href="https://www.taishinbank.com.tw/">Taishin International Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=taishinbank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-40">
	<td class="column-1"><a href="https://portal.tbb.com.tw/">Taiwan Business Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=portal.tbb.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-41">
	<td class="column-1"><a href="https://www.tcb-bank.com.tw">Taiwan Cooperative Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=tcb-bank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-42">
	<td class="column-1"><a href="https://ibank.tcbank.com.tw/">TC Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ibank.tcbank.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-43">
	<td class="column-1"><a href="https://mybank.ubot.com.tw/">Union Bank of Taiwan</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=mybank.ubot.com.tw&amp;latest">F</a></td><td class="column-3">X</td><td class="column-4">FREAK, POODLE</td><td class="column-5"></td>
</tr>
<tr class="row-44">
	<td class="column-1"><a href="https://ebank.yuantabank.com.tw/">Yuanta Bank</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=ebank.yuantabank.com.tw&amp;latest">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
<tr class="row-45">
	<td class="column-1"><a href="https://inquiry.nccc.com.tw/html/text/index.html">National Credit Card Center</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=inquiry.nccc.com.tw">B</a></td><td class="column-3">X</td><td class="column-4">-</td><td class="column-5">they should definitely do better</td>
</tr>
<tr class="row-46">
	<td class="column-1"><a href="https://www.fisc.com.tw/">Financial Information Service (FISC)</a></td><td class="column-2"><a href="https://www.ssllabs.com/ssltest/analyze.html?d=fisc.com.tw&amp;latest">A-</a></td><td class="column-3">Y</td><td class="column-4">-</td><td class="column-5"></td>
</tr>
</tbody>
</table>
<!-- #tablepress-1 from cache --></p>
<h2>What&#8217;s next?</h2>
<p>Financial fraud in Taiwan is pretty prevalent, though it&#8217;s usually the &#8220;old fashioned&#8221; phone scam type. On the other hand, people here seem to be very lucrative target of groups based in China and Philippines. While I don&#8217;t know about the latter, the former likely has black hat teams with a lot more computer savvy than most users here (or anywhere else). It would be very-very good to fix up these systems.</p>
<p>Since these banks don&#8217;t seem to be on Twitter in general (except maybe the international ones), would be good to look up the local tech contacts, and bring the problem to their attention. One thing that makes me optimistic about it on the long term, is that Taiwan has a lot of computer savvy and outspoken activists. Will try to reach out to them, and use the local talent (and local ways) to approach this. Also, local administration (ie. city government) seems to be more powerful here, and we have a quite techy and driven <a href="http://en.wikipedia.org/wiki/Ko_Wen-je">new mayor</a> in Taipei city. Putting pressure on the banks through them is not inconceivable.</p>
<p>I like it a lot where technology is going over here (many days I feel like being in a science fiction), and hope to make it work out well by keeping an eye on the practical implementations such as this.</p>
<p>If you find any problems in the dataset above (or any updates as sites are fixed:), please let me know!</p>
<h2>Updates</h2>
<ul>
<li><strong>2015-03-19</strong>: <a href="https://www.ctbcbank.com/">Chinatrust</a> fixed their POODLE vulnerability, improving their score from F to B! Hope they&#8217;ll fix RC4 next.</li>
<li><strong>2015-03-19</strong>: <a href="https://ebank.bot.com.tw/">Bank of Taiwan</a> went from F to A-, the first Taiwan-based bank to achieve an A!</li>
<li><strong>2015-03-23:</strong> The <a href="https://twcardsonline.anz.com">ANZ Credit Card site</a> went from F to B as well, which is pretty good, even if their corporate site remains F.</li>
<li><strong>2015-03-24:</strong> <a href="https://ebank.megabank.com.tw/">Mega Bank</a> went from B to A- by disabling RC4.</li>
</ul>
<p>The post <a href="https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/">SSL status of Taiwanese banks: a sad affair</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/03/ssl-status-of-taiwanese-banks/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Make the most of solar power</title>
		<link>https://gergely.imreh.net/blog/2013/11/solar-power/</link>
					<comments>https://gergely.imreh.net/blog/2013/11/solar-power/#respond</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Fri, 01 Nov 2013 07:22:22 +0000</pubDate>
				<category><![CDATA[Maker]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[renewable energy]]></category>
		<category><![CDATA[smartphone]]></category>
		<category><![CDATA[solar power]]></category>
		<category><![CDATA[USB]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1629</guid>

					<description><![CDATA[<p>The write-up of my renewable energy project at the Taipei Hackerspace using 2 Kickstarter projects, some electronics, soldering, and lots of sunshine.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/11/solar-power/">Make the most of solar power</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>It didn&#8217;t take the arrival of a horrendous electricity bill to the <a title="Taipei Hackerspace" href="http://tpehack.no-ip.biz">Taipei Hackerspace</a> to start thinking about reducing my electricity footprint. In the last half a year there were two solar power projects on Kickstarter that I signed up for: the <a title="Solar Pocket Factory Kickstarter page" href="http://forums.techguy.org/hardware/996231-micro-mini-retractable-usb-mouse.html">Solar Pocket Factory</a> (SPF), and the <a title="Foldable USB Solar Cell Kickstarter page" href="http://www.kickstarter.com/projects/browndoggadgets/folding-usb-solar-cell">Foldable USB Solar Cell</a> (FUSC). Generally there&#8217;s a lot of sunshine here in Taiwan (when we don&#8217;t have <a title="Barometric recording of Typhoon Soulik" href="https://gergely.imreh.net/blog/2013/07/typhoon-soulik/">a typhoon</a>), and even if I cannot power my laptops from it, could certainly try to power my smartphone&#8230;</p>
<p>It turned out that I needed both Kickstarter projects to make one good device.</p>
<p>The Foldable USB Solar Cell looks awesome and not bad at 7W and 5W (the two pieces I have). The voltage output doesn&#8217;t seem to be very stable, or has strange behaviour as it doesn&#8217;t charge my attached phone when there&#8217;s too much direct sunshine. Thus I cannot really use this directly with devices.</p>
<p>The tiny solar panels in the Solar Pocket Factory are very fragile and I couldn&#8217;t really make them into an actual working cell yet. On the other hand, it came with a 2000mAh battery and a circuit called Li-Po Rider Pro, by <a title="Seeed Studio website" href="http://www.seeedstudio.com/depot/">Seeed Studio</a>. This circuit us solar cell or USB input to charge a battery , plus have a good output circuit to charge a USB device either from the battery when there&#8217;s no sunshine or from the input when there is.</p>
<p>Putting together the Foldable USB Solar Cell and the Li-Po Rider Pro, we have something that kicks arse indeed! Since I only have one circuit and Seeed doesn&#8217;t seem to sell it separately, I thought I could improve on things if I use both solar</p>
<h2>USB adapter for parallel panels</h2>
<p>The easiest idea I could come up with is creating a USB adapter to connect the panels in parallel (thus practically summing them up as current sources).</p>
<p><figure id="attachment_1638" aria-describedby="caption-attachment-1638" style="width: 493px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1638" alt="USB connector wiring, from the Tech Support Guy forums" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/USB_wiring.jpg" width="493" height="321" /><figcaption id="caption-attachment-1638" class="wp-caption-text">USB connector wiring, from the <a href="http://forums.techguy.org/hardware/996231-micro-mini-retractable-usb-mouse.html">Tech Support Guy forums</a></figcaption></figure></p>
<p>This plan needs two male USB A connectors (the &#8220;cable&#8221; type on the picture) to plug into the panels, and one female USB A (the &#8220;device&#8221; type) to provide the single output. Then female VCC pin is wired to both male VCC pins, and the GND pin similarly to the GND pins. The D-/D+ pins are not in use in this case.</p>
<p><figure id="attachment_1630" aria-describedby="caption-attachment-1630" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1630" alt="Parts on the working desk" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar1.jpg" width="500" height="375" /><figcaption id="caption-attachment-1630" class="wp-caption-text">Part for the solar panel connector. One female and two male</figcaption></figure></p>
<p>The connectors came in as $0.40 each, the wire I don&#8217;t remember but probably a few cents. I fortunately had both black and red to use with the GND and VCC. Things are better colour coded.</p>
<p><figure id="attachment_1631" aria-describedby="caption-attachment-1631" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1631" alt="Soldering together the middle two pins, and hook the ones on the side with wires (here the black wire for the Ground line)" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar2.jpg" width="500" height="375" /><figcaption id="caption-attachment-1631" class="wp-caption-text">Soldering together the middle two pins, and hook the ones on the side with wires (here the black wire for the Ground line)</figcaption></figure></p>
<p>First the middle two pins of a male and a female connector is soldered together, just to provide mechanical support. The end of the cable is stripped and hooked around the touching pins (the GND pins on this picture). The two pins + wire is then soldered together, with enough solder to stay, but not that much that the other pins could touch.</p>
<p><figure id="attachment_1632" aria-describedby="caption-attachment-1632" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1632" alt="Finished soldering, a bit too much solder, but at least it holds" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar3.jpg" width="500" height="375" /><figcaption id="caption-attachment-1632" class="wp-caption-text">Finished soldering, a bit too much solder, but at least it holds</figcaption></figure></p>
<p>Did the same thing for the VCC pins + red wire. Finally added some more solder to the central pins. It was pretty stable like this, though I guess it would be better to have some sort of external housing for it or another way to increase the mechanical rigidity of the connection.</p>
<p><figure id="attachment_1633" aria-describedby="caption-attachment-1633" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1633" alt="The extension cord to the extra male connector" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar4.jpg" width="500" height="375" /><figcaption id="caption-attachment-1633" class="wp-caption-text">The extension cord to the extra male connector</figcaption></figure></p>
<p>Finally the other connector is soldered, making sure that the right pins are connected (the same as the other male USB). The connectors are then wrapped in a bit of duck tape for some rough insulation. These parts will be outside, both in sun and rain, nothing much can break, but better not test whether I&#8217;m right about this particular point&#8230;</p>
<p><figure id="attachment_1634" aria-describedby="caption-attachment-1634" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1634" alt="Cover and plug into the secondary solar panel" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar5.jpg" width="500" height="375" /><figcaption id="caption-attachment-1634" class="wp-caption-text">Cover and plug into the secondary solar panel</figcaption></figure></p>
<p>Plugged into the secondary (5W) solar panel, and into the primary (7W) one as well. Duck taped everything down onto the roof well enough that they are not blown away too easily (though I&#8217;d better check on them in a bit, the wind is howling just now outside).</p>
<p><figure id="attachment_1635" aria-describedby="caption-attachment-1635" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1635" alt="Primary solar panel with the adaptors" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar6.jpg" width="500" height="375" /><figcaption id="caption-attachment-1635" class="wp-caption-text">Primary solar panel with the adaptors</figcaption></figure></p>
<p>As an aside, the duck tape doesn&#8217;t seem to like the sunshine. It sticks its sticky parts on everything, that part doesn&#8217;t seem to spell fun for the future.</p>
<h2>Ready to charge</h2>
<p>When everything is connected, the panels will get pretty good sunshine for the bigger part of the day. I don&#8217;t think they reach max capacity, because the angle is never ideal, but from the practical point of view, they get enough sunshine to max out the attached 2000mAh battery between device charges.</p>
<p><figure id="attachment_1636" aria-describedby="caption-attachment-1636" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1636" alt="Hold the panels down, plenty on sunshine (at least this afternoon" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar7.jpg" width="500" height="375" /><figcaption id="caption-attachment-1636" class="wp-caption-text">Hold the panels down, plenty on sunshine (at least this afternoon</figcaption></figure></p>
<p>The Li-Po Rider Pro circuit is under the roof, so it doesn&#8217;t get any rain (at least I hope!), and has a little ledge to charge a phone safely as well.</p>
<p><figure id="attachment_1637" aria-describedby="caption-attachment-1637" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1637" alt="solar8" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/11/solar8.jpg" width="500" height="375" /><figcaption id="caption-attachment-1637" class="wp-caption-text">Charging circuit and filling up my phone</figcaption></figure></p>
<p>Since all the devices were pretty much full when I checked in the Hackerspace after I finished this setup, the test whether combination of the two solar panels does indeed increase the power is not foolproof. Otherwise I would have charged a device from a low battery level to a bit higher with one panel, then later switch to two panels and see the different slope of the batter charge versus time. Normally at high charge levels (90%+) the slope is varied by the charging circuit (to preserve the lithium battery&#8217;s life), thus that level is not really good to test the difference between the single / dual panel situations.</p>
<p>One thing does suggest, though that the plan worked. Before this modification, charging a phone discharged the Li-Po Rider Pro&#8217;s own battery (there&#8217;s a touch switch on the circuit to get an approximate charge level, indicated by the lighting up of 0 to 4 LEDs on an LED bar), even in full sunshine. This time it seems that both the phone and the storage battery is charged up, indicating larger incoming power than before. I will check it again next time, though (the Nexus 7 tablet we have will be great for that, it has much larger internal battery than my HTC Butterfly phone)</p>
<h2>Possible improvements</h2>
<p>There are a few things I could improve on the setup, focusing on usability.</p>
<p>I hope to get a longer USB cable to reach from the roof to inside the Hackerspace, and set up a charging station within the room. This way people don&#8217;t have to keep their devices out of reach while charging, and there&#8217;s no chance of being ruined by a sudden rain.</p>
<p>I hope to get a larger capacity Li-Po battery. 5-10.000mAh could be good, then it would likely have enough power all the time to keep charging people&#8217;s devices, and not standing idle being full when not charging something, while easily emptied by a single device.</p>
<p>The roof also has plenty of more space, so getting a bunch of other panels, combined with the first two upgrades, would make it really beneficial. These foldable panels would be better portable, and keeping them in one place feels a sort of waste.</p>
<p>Ultimately it would be awesome if I could have a purely solar-powered phone. Because it would mean some money saved, but also, and mostly, because I can.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/11/solar-power/">Make the most of solar power</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2013/11/solar-power/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>First sale of an ebook I helped to publish</title>
		<link>https://gergely.imreh.net/blog/2013/09/first-sale-of-an-ebook/</link>
					<comments>https://gergely.imreh.net/blog/2013/09/first-sale-of-an-ebook/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Tue, 10 Sep 2013 07:33:32 +0000</pubDate>
				<category><![CDATA[Startups]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[ebook]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1600</guid>

					<description><![CDATA[<p>Learning from rejection and the strange behaviour of people while helping a friend to publish his ebook.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/09/first-sale-of-an-ebook/">First sale of an ebook I helped to publish</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Recently I was helping a friend to publish the ebook version of his paper book, called <a title="Leanpub book page" href="https://leanpub.com/startabusinessintaiwan">How to Start a Business in Taiwan</a>. About 50% the reason was that I like the book and hoped to get into more people&#8217;s hands, and 50% I wanted to see what is it like getting an ebook out the door and bought by people.</p>
<p>Just a while ago, it had its first sale (hopefully the first of many:). *champagne!*</p>
<p><figure id="attachment_1601" aria-describedby="caption-attachment-1601" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1601" alt="How to Start a Business in Taiwan on Kindle" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/09/startuptaipeikindle.jpg" width="500" height="333" /><figcaption id="caption-attachment-1601" class="wp-caption-text">How to Start a Business in Taiwan on Kindle</figcaption></figure></p>
<p>I guess it is a very humbling experience that it took some 5 days of promotion effort to make that sale. That is even before I count how much time I have spent converting the Word doc into Markdown, and tweak the looks. The technical details to that I have written up in a <a title="Preparing the e-book" href="http://startabusinessintaiwan.tw/blog/377-writingebook">guest blog post</a> on the books website.</p>
<p>The marketing side is still under development, and the numbers are too low to draw a lot of conclusions from. The most surprising thing to me is how many people actually click the &#8220;buy this book&#8221; link and then they don&#8217;t follow through. Then also the half a dozen people who I followed up on earlier discussion to tell them about the ebook version, they say &#8220;ah, it&#8217;s awesome, I&#8217;ll go get it, I&#8217;ve been waiting for it&#8221; &#8211; then nothing happens.</p>
<p>Of course, there can be a lot of reasons for this, here are some of my guesses:</p>
<ul>
<li>The website UX does not work well for them (ie. the are put off by the process)</li>
<li>People don&#8217;t know/like Leanpub</li>
<li>People are lazy</li>
<li>The price is too high</li>
<li>The sales copy is bad, so people don&#8217;t think a business book can worth that much for them (ie. price is perceived to be too high)</li>
<li>Spreading the word at the wrong places, thus wrong audience</li>
</ul>
<p>&#8230; and probably a hundred other reason that I wouldn&#8217;t think of &#8211; or 171, since the book&#8217;s page had that many unique visitors in the last few days who left empty handed. I wonder what would be a natural next step to improve on this conversion rate.</p>
<p>It was a very fun thing to do, though, and got me psyched up to get <a title="My Leanpub author page" href="https://leanpub.com/u/imrehg">my two idea-stage books</a> going. And about ebook publishing in general, will definitely try to get more people onboard who have writing tendencies.</p>
<p>Also, this invaluable learning, as I&#8217;m setting up my startup now, a good reminder that people will not easily/often buy into my &#8220;awesome&#8221; idea, will have to work cleverer on that. Rejection therapy in its earnest.</p>
<p>(Disclaimer: I have no financial interest in the book,  ie. I won&#8217;t get any of the sales, which makes things even nicer. I received one original paper copy last spring to review and edit.)</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/09/first-sale-of-an-ebook/">First sale of an ebook I helped to publish</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2013/09/first-sale-of-an-ebook/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Taiwan&#8217;s Open Hardware movement gets a boost</title>
		<link>https://gergely.imreh.net/blog/2013/08/open-hardware/</link>
					<comments>https://gergely.imreh.net/blog/2013/08/open-hardware/#respond</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Sun, 11 Aug 2013 03:09:08 +0000</pubDate>
				<category><![CDATA[Maker]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[open hardware]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1582</guid>

					<description><![CDATA[<p>I was invited to an Open Hardware event to give a talk introducing the Taipei Hackerspace, and met a bunch of really innovative and interesting people.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/08/open-hardware/">Taiwan&#8217;s Open Hardware movement gets a boost</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I sure felt different yesterday morning waiting for my turn to give my 30 minutes talk, but in retrospect I&#8217;m really glad to have been invited to the Boost Open Source Hardware Movement event, organized by the <a title="CTIMES home page" href="http://www.ctimes.com.tw/">CTIMES</a> magazine over here in Taiwan. It was the second time try, after <a title="Barometric recording of Typhoon Soulik" href="https://gergely.imreh.net/blog/2013/07/typhoon-soulik/">Typhoon Soulik</a> cancelled the original event.</p>
<p><figure id="attachment_1584" aria-describedby="caption-attachment-1584" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1584" alt="CTIMES personnel introducing the Boost Open Source Hardware Movement event " src="https://gergely.imreh.net/blog/wp-content/uploads/2013/08/oshw_start.jpg" width="500" height="333" /><figcaption id="caption-attachment-1584" class="wp-caption-text">Kicking off the event early Saturday morning</figcaption></figure></p>
<p>There were 8 speakers scheduled from different companies and background: <a title="RS Components" href="http://uk.rs-online.com/">RS Components</a>, <a title="ViaTech" href="http://www.via.com.tw/en/index.jsp">Via</a>, <a title="Broadcom" href="http://www.broadcom.com/">Broadcom</a>, <a title="Motoduino homepage" href="http://www.motoduino.com/">Motoduino</a>, <a title="TMI Holding homepage" href="http://tmi.vc/">TMI Holding</a>&#8230;. and me from Taipei Hackerspace. First I was wondering how do I fit in there, and maybe my talk *was* out of place a bit. Most talks were in Chinese so I could grasp only basic stuff from them, although the slides helped &#8211; most people made slides following the &#8220;slides are my notes&#8221; style, which is not my style, but was welcome this time. It was also great to see seasoned speakers like Richard from Via, and Lucas from TMI giving fun (and informative!) talks.</p>
<p>I did feel I&#8217;m in the right company, though. Open Source Hardware is becoming more and more of my focus &#8211; or maybe I&#8217;m just realizing it now that what I do is called such. Part of the audience were industry professionals and part enthusiastic hobbyists &amp; students, and I had some great chat in the breaks with both kind of people.</p>
<p>I heard about the National Science Fair here (what? I got to check that out!), and how much interesting work people do with interactive hardware and elementary/high school kids. There is waaaay more going on that I can imagine, and there&#8217;s a lot more potential to tap into.</p>
<p>Had a chance to gather some industry experience too. Naren from Broadcom, who was responsible for getting <a title="Raspberry Pi homepage" href="http://www.raspberrypi.org/">Raspberry Pi</a> into production was telling the story how they were expecting only 10,000 orders altogether and got 350,000 on the first day (sold 1.8 million to date), so they had to scramble an entire new supply chain. Thought that came to me was that maybe that&#8217;s one of the biggest value of  <a title="Kickstarter" href="http://kickstarter.com/">Kickstarter</a>/<a title="Indiegogo" href="http://www.indiegogo.com/">Indiegogo</a> is to be able to get an order of magnitude estimate of the demand.</p>
<p>Also heard about Via&#8217;s experience in pursuing new design and materials with their <a title="APC homepage" href="http://apc.io/">APC platform</a> (such as using paper for housing), and interacting with their community. Heard a lot from RS Components how they are building tools for their community, and building the community itself. The demo was fought with technical difficulties (first rule of presenting is not to assume a working/fast internet connection), but it was inspiring nonetheless, and gave me some big (and difficult) ideas for my project: have to see if there&#8217;s any good community for scientific/laboratory electronics and hardware building, and if there isn&#8217;t then build one.</p>
<p><figure id="attachment_1585" aria-describedby="caption-attachment-1585" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1585" alt="View of the room during the break time" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/08/oshw_gopro.jpg" width="500" height="375" /><figcaption id="caption-attachment-1585" class="wp-caption-text">Break time between the talks, everyone&#8217;s scrambling for chat and cakes</figcaption></figure></p>
<p>One of my favorite part in these events though to meet friends&#8217; friends. This time was no exception, even if there was too little time to talk, I left with quite a few people in mind who I will need to contact soon, because they are doing something awesome and connected to my area of interest, either in hardware or in startups. This is one reason I&#8217;m trying to be really generous with my time and making introductions between people who I recon would hit it off well: I was the recepient of that so many times that I got to give back too.</p>
<h3>My talk</h3>
<p>I was scheduled in the middle of the afternoon just before tea break, and I was one of two people who used English for their talk (out of the 8 speakers). I was more nervous</p>
<p><iframe loading="lazy" title="Hackerspaces from around the world to Taiwan" width="580" height="326" src="https://www.youtube.com/embed/8ut4QAeVINg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>I&#8217;ve uploaded the <a title="Slideshare slides for Hackerspaces from around the world to Taiwan" href="http://www.slideshare.net/imrehg/hackerspaces-from-around-the-world-to-taiwan">slides used for the talk</a> in advance as well, so now it&#8217;s all out in the open.</p>
<p>My favorite part writing this talk was probably the attempt to summarize the philosophy and values of the maker movement, in a way that would inspire others. Some bits:</p>
<ul>
<li>Don&#8217;t accept crappy &#8211; everything can be changed and improved upon.</li>
<li>Aim for collaborative creation. Celebrate the weird. Don&#8217;t mock.</li>
<li>Do and then share the results for everyone to learn from it.</li>
<li>For things to happen, you have to show up. Don&#8217;t wait for someone else to start, build up and inner motivation</li>
<li>Everyone&#8217;s values are different, a &#8216;space is often a different canvas for everyone.</li>
</ul>
<p>So far the feedback I got about the talk is that I should have mentioned the projects people were working on in the &#8216;space, and upcoming events. That would have made a better ending for sure, and I had an extra 5 minutes or so to do that. Definitely going to emphasize the practical aspect next time.</p>
<p>Another thing I noticed listening to (a bit of) the video is that I need to use much less &#8220;ehm&#8221; and &#8220;ahm&#8221;&#8230; I certainly don&#8217;t remember using any, and consciously trying to avoid it in my talks in the recent years, I guess I need to listen more carefully (and prepare better).</p>
<p>Any more suggestions? What else wasn&#8217;t good? Bring it on, I want to become better at this.</p>
<p>More about the Taipei Hackerspace is on the <a title="Taipei Hackerspace mailing list" href="https://groups.google.com/forum/#!forum/taipeihackerspace">mailing list</a>, which is open for everyone to sign up, ask questions, show their projects, and hear more about what&#8217;s up.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/08/open-hardware/">Taiwan&#8217;s Open Hardware movement gets a boost</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2013/08/open-hardware/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Barometric recording of Typhoon Soulik</title>
		<link>https://gergely.imreh.net/blog/2013/07/typhoon-soulik/</link>
					<comments>https://gergely.imreh.net/blog/2013/07/typhoon-soulik/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Sun, 14 Jul 2013 01:47:44 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[environment]]></category>
		<category><![CDATA[hackerspace]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[taipei]]></category>
		<category><![CDATA[typhoon]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1489</guid>

					<description><![CDATA[<p>I got a barometric pressure sensor just in time for Typhoon Soulik. Recorded it's passing and synced it up with satellite imagery for better understanding typhoons.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/07/typhoon-soulik/">Barometric recording of Typhoon Soulik</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>It all started a few weeks ago with <a title="Sparkfun Electronics" href="https://www.sparkfun.com/">Sparkfun</a> having &#8220;20%-off&#8221; day, when I got myself (among other things) a <a title="Barometric Pressure Sensor - BMP085 Breakout" href="https://www.sparkfun.com/products/11282">BMP085 barometric pressure sensor</a>. When it arrived, I have soldered some pins on it, and set it up with an <a title="Arduino Nano homepage" href="http://arduino.cc/en/Main/ArduinoBoardNano">Arduino Nano</a>, to have the readings off it easily.</p>
<p><figure id="attachment_1490" aria-describedby="caption-attachment-1490" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1490" alt="View of the circuit" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/07/bmp085.jpg" width="500" height="394" /><figcaption id="caption-attachment-1490" class="wp-caption-text">BMP085 barometric pressure sensor breakout board from Sparkfun</figcaption></figure></p>
<p>Originally all I wanted is just some laid back pressure recording, so maybe I can use that to predict the weather a bit. &#8220;Pressure falls: bad weather comes, pressure rises: things will clear up&#8221;. I was recording for about a week, and nothing really noteworthy came out of that.</p>
<p>Then it was the news, that the year&#8217;s first typhoon is on the way to Taiwan, and it was supposed to be a big one. Obvious that I will try to record the barometric pressure pattern of its passing, but wanted to make it more interesting and informative. More visual than just the timeseries plot of pressures.</p>
<p>The J<a title="JMA Tropical Cyclone page " href="http://www.jma.go.jp/en/typh/">apanese Meteorological Agency</a> (JMA) is a good place to watch for information about typhoons. They list path prediction, typhoon properties like strength, wind speeds, and central pressure, have satellite imagery. Putting these together, two days before the typhoon arrived, I set up a script to download the satellite imagery as it became available.</p>
<p><figure id="attachment_1502" aria-describedby="caption-attachment-1502" style="width: 493px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1502" alt="Satellite picture of Typhoon Soulik and location of Taiwan on 2013-07-12 morning" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/07/youarehere.jpg" width="493" height="500" /><figcaption id="caption-attachment-1502" class="wp-caption-text">The morning before the typhoon arrived</figcaption></figure></p>
<p>The JMA publishes usually 2 satellite images in an hour for our North Western Quadrant (at :00 and :30), one of them covers the whole area, the other covers just the top 80% or so, leaving a dark band on the bottom. Nevertheless, matching up the pressure reading with the satellite pictures would be a good little project for this time.</p>
<p>Friday came, the government gave the afternoon off, though it turned out no landfall happened till everyone supposed to be off anyways, just a bit of on-and-off rain. People stocked up on convenience store food (I now have a good supply of instant noodles:) and water, taped over their glass windows, take in their plants and BBQ equipment from outside &#8211; well, those who have planned.</p>
<p>Around 10pm the big rain has arrived, <a title="Typhoon rain by Soulik" href="http://youtu.be/eS0LjVJU11I">here&#8217;s a video of how it looked from my window</a>. Went to sleep later, and got woken up around 3:30am by the rain having changed into pretty darn big wind. Here&#8217;s <a title="The windy part of the Typhoon Soulik" href="http://youtu.be/fNr4np10R0k">another video of the violent part of the typhoon</a> that time in the morning, that doesn&#8217;t even really do it justice. The houses around here are pretty tall, and I wonder if they have protected from the wind, or been artificial canyons channeling it. Some things got broken, though not as much as I expected &#8211; which is a very good thing.</p>
<p>In the meantime by the power of the Internet I have checked out the pressure reading, how is it going a few miles away in the <a title="Taipei Hackerspace in Google Maps" href="https://plus.google.com/100224637045566967774/about?hl=en">Taipei Hackerspace</a>, where I have left the barometric pressure sensor (the geolocation is <a title="Recording location: Taipei Hackerspace" href="https://maps.google.com/maps?q=25.052993,121.516981">25.052993,121.516981</a>)</p>
<p>Here&#8217;s the entire recording of the approximately 2 days of typhoon. It was pretty okay weather in the start and end of the plot.</p>
<p><figure id="attachment_1492" aria-describedby="caption-attachment-1492" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-1492" alt="Plot of pressure readings" src="https://gergely.imreh.net/blog/wp-content/uploads/2013/07/barolog.png" width="500" height="385" /><figcaption id="caption-attachment-1492" class="wp-caption-text">Pressure reading during the passing of Typhoon Soulik, recorded at the Taipei Hackerspace</figcaption></figure></p>
<p>The readings have been corrected to sea level (from about 20m height, where the Taipei Hackerspace is), should be good within 1hPa or less.</p>
<p>The the pressure was indeed dropping like a rock, and the dip on the graph coincided with the most violent wind that woke me up. According the JMA, the central area of the typhoon had pressures down to 950hPa, which means that core must have passed pretty close to here, having readings below 958hPa, though probably not directly, as it didn&#8217;t stay down there for long.</p>
<p>I made a video syncing up the pressure reading and the satellite picture. The red dot on the video marks the recording location. (Watching it in full screen and HD makes it clearer.)</p>
<p><iframe loading="lazy" title="Typhoon Soulik" width="580" height="326" src="https://www.youtube.com/embed/cROepeX6NmY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>I would wonder what was the flat part in the readings while the typhoon was leaving. Maybe sign of changing direction, by the look of it.</p>
<p>Either way, this was fun to do, and I am glad that only a few people got hurt here, much fewer then even during the less powerful typhoons. Maybe getting people scared a little (like with this &#8220;super typhoon&#8221; stuff that went on) helps them keep safe? Just don&#8217;t use it too often.</p>
<h4>Extra material</h4>
<p>I put almost all <a title="Scripts and data in Gist" href="https://gist.github.com/imrehg/5992831">material used here into a gist</a>: the satellite imagery download script, the plotting, the movie frame generation, the movie generation script, and the complete barometric recording. Because this last part is pretty big (5Mb), Github truncated the rest of the scripts. I guess it&#8217;s okay to check check it out. Will add the Arduino sketch to read the sensor and the logging script later.</p>
<p>The satellite imagery weighs about 60Mb, so don&#8217;t put it online, but if anyone wants them, let me know.</p>
<p>Keep safe!</p>
<p>The post <a href="https://gergely.imreh.net/blog/2013/07/typhoon-soulik/">Barometric recording of Typhoon Soulik</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2013/07/typhoon-soulik/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Hack+Taiwan</title>
		<link>https://gergely.imreh.net/blog/2012/04/hacktaiwan/</link>
					<comments>https://gergely.imreh.net/blog/2012/04/hacktaiwan/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Tue, 24 Apr 2012 07:05:42 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Taiwan]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[wciw]]></category>
		<guid isPermaLink="false">http://gergely.imreh.net/blog/?p=836</guid>

					<description><![CDATA[<p>Set up Hack+Taiwan, a hackathon for the World Creativity and Innovation Week. Regardless its small scale, it was seemed quite successful, all the participants learning some new stuff that are very relevant to them.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2012/04/hacktaiwan/">Hack+Taiwan</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The <a title="World Creativity and Innovation Week" href="http://www.creativityday.org/About.html" target="_blank">World Creativity and Innovation week (WCIW)</a> goes on every year April 15-21 (set to coincide with Leonardo da Vinci&#8217;s birthday). This year we were making some events in Taiwan as well, first about creativity: <a title="Create @ Public" href="http://gergely.imreh.net/blog/2012/04/create-public/" target="_blank">Create @ Public</a>, and another one a week later for innovation: Hack+Taiwan, a <a title="Hackathon definition on Wikipedia" href="http://en.wikipedia.org/wiki/Hackathon" target="_blank">hackathon</a>.</p>
<p>Of the two events, this one was the trickier to do. For Create@Public, all I had to do is pack a lot of stationery and start making stuff myself. For a hackathon, there&#8217;s much more preparation to do. Fortunately, I had some great mentors to get things going, <a title="James Hill About Me" href="http://about.me/jameshilltaiwan" target="_blank">James</a> of <a title="StartupDigest Taipei" href="http://startupdigest.com/taipei/" target="_blank">Startup Digest Taipei</a> and <a title="Volker Heistermann on FB" href="https://www.facebook.com/volker.heistermann" target="_blank">Volker</a> from <a title="Yushan Ventures" href="http://yushanventures.com/" target="_blank">Yushan Ventures</a>. They have a lot of experience pulling off great events, and I was glad to hear their advice. I was surprised that in less than 2 weeks something like this could be put together, even under not totally favorable circumstances.</p>
<p>First had to find a place to host it, and preferably with zero budget. Looking at who do I know, ended up at <a title="appWorks" href="http://appworks.tw/" target="_blank">appWorks</a>, a startup accelerator, whose founder, <a title="Jamie Lin" href="http://mrjamie.cc/" target="_blank">Jamie</a> is indeed a hacker at heart, so wasn&#8217;t actually that bad to convince him to give us some space on a weekend day. Even got one of their teams working there, <a title="Fandora" href="http://fandora.tw/" target="_blank">Fandora</a>, to help us.</p>
<p>That&#8217;s a good first step, now have to get some people to participate. I set up the <a title="Hack+Taiwan blog" href="http://hacktaiwan.github.com/" target="_blank">Hack+Taiwan blog</a> (on <a title="Octopress blogging platform" href="http://octopress.org/" target="_blank">Octopress</a>, just trying something new, that was an &#8220;interesting&#8221; experience as well), the <a title="Hack+Taiwan event on Facebook" href="https://www.facebook.com/events/382147041825676/" target="_blank">event</a>, a sign up sheet and started to spread the word. It all went well, until one week before the event it turned out that the <a title="OSDC.TW" href="http://osdc.tw/" target="_blank">Open Source Developers&#8217; Conference</a> has a hackathon pretty much the same day &amp; time as I planned. That freaked me out a little, and after asking around, I got many different advice: cancel so not to compete with them, cancel to take a rest, and give it my best try nonetheless. Of course the craziest option won, so started to spread the word even more, trying to invite mentors, getting catering, figuring out how the day should work and so on.</p>
<h2>Let&#8217;s get to it</h2>
<p>Since people don&#8217;t like to fill out sign up sheets, and Facebook event &#8220;join&#8221; is so easy, I had absolutely no idea how many people will come. It was just winging it, I knew I&#8217;ll be there and a couple of people who were helping me, but that&#8217;s all so far.</p>
<p><figure id="attachment_838" aria-describedby="caption-attachment-838" style="width: 400px" class="wp-caption aligncenter"><a href="http://gergely.imreh.net/blog/2012/04/hacktaiwan/hacktaiwanlogo/" rel="attachment wp-att-838"><img loading="lazy" decoding="async" class="size-medium wp-image-838" title="Hack+Taiwan logo" src="http://gergely.imreh.net/blog/wp-content/uploads/2012/04/hacktaiwanlogo-400x266.jpg" alt="Hack+Taiwan logo posted on the day" width="400" height="266" /></a><figcaption id="caption-attachment-838" class="wp-caption-text">Hack+Taiwan logo</figcaption></figure></p>
<p>I ordered breakfast for 30 (from <a title="Magic Bagel" href="http://magicbagel.com.tw/contact.htm" target="_blank">Magic Bagels</a>), and let&#8217;s see what happens. Around 9am, the advertised start time, people started to come, first a couple, then some more, and around 10 o&#8217;clock there were almost a dozen people. That&#8217;s not bad at all, even considering that a third of that was mentors and other organizers, but they took part just the same. Since most people didn&#8217;t bring any ideas (some even didn&#8217;t bring a laptop, now that I don&#8217;t understand), had to get them to come up with some stuff on the spot. It took a little pushing, some ideas were so specific and pretty much the same they are working on their normal time, but fortunately there were some interesting ones. In about half an hour we had 3 teams working on three completely different. In the afternoon there were even more people who dropped by for some time, and got another project working.</p>
<p><figure id="attachment_837" aria-describedby="caption-attachment-837" style="width: 400px" class="wp-caption aligncenter"><a href="http://gergely.imreh.net/blog/2012/04/hacktaiwan/androidhack/" rel="attachment wp-att-837"><img loading="lazy" decoding="async" class="size-medium wp-image-837" title="Arduino hack" src="http://gergely.imreh.net/blog/wp-content/uploads/2012/04/androidhack-400x266.jpg" alt="Arduino hacking" width="400" height="266" /></a><figcaption id="caption-attachment-837" class="wp-caption-text">Making an Arduino piano</figcaption></figure></p>
<h3>The projects we had:</h3>
<ul>
<li>Mobile reminder app + website</li>
<li>Android programming (the team had to leave before demo time)</li>
<li>Visualization of the Taiwanese power grid for monitoring and supervision</li>
<li>Arduino piano</li>
</ul>
<div>These are all very different, and fortunately all was pushing the participants a little bit. The first team was mostly mentors, or from different startups working at appWorks, and they haven&#8217;t worked together before. It&#8217;s a good way to improve collaboration. The second team wanted to try Android out, maybe I should have talked to them more (having done <a title="StartupBus rolling again" href="http://gergely.imreh.net/blog/2012/03/startupbus-rolling-again/" target="_blank">one app</a> at my time), otherwise they looked pretty lost for most of the time, hope they will carry on. The third team I gave some advice, but not sure if that actually took them on a sidetrack, it should be a very useful project if done, and has a lot of potential apparently for the local utilities companies. The last one, a one person team, was making some really cool stuff in a very short time and even with broken and sparse equipment. Not sure if she was really challenged by the task, it looked quite effortless.</div>
<p>At 5:30pm we had a demo time, everyone showing off what they made, people switched to speaking Chinese since I was the only foreigner around, so I got to train a little better next time to be able to follow tings. I could see their demos, though, and it&#8217;s so impressive how far people got in pretty much 6 and half hours&#8230;.</p>
<p>Here&#8217;s the <a title="Hack+Taiwan photos" href="https://plus.google.com/photos/116948925972911973649/albums/5734267784489398881" target="_blank">photo album</a> of what went down. I&#8217;ve also taken a timelapse image series of the event, been planning to make a video of it&#8230;.and then successfully overwritten all the photos with a bad command of ffmpeg. That&#8217;s my way.</p>
<h2>Lessons learned</h2>
<ul>
<li>Coming up with ideas is hard</li>
<li>It is still possible to come up with ideas. Look for issues that kept bugging you for a while, and do something about those</li>
<li>Everyone gets out different thing from these events</li>
<li>Don&#8217;t force things, everything will work out anyway</li>
<li>Don&#8217;t have to overplan, before one establishes their name in the community as good organizer, it is usually more likely to overestimate how many people will come to an event</li>
<li>Everyone loves bagels and cake (okay, that&#8217;s not new lesson)</li>
<li>Unless there are enough people, don&#8217;t have to focus the topic of a hackathon, see whatever people come up with. More difficult brainstorming, but better chances of success</li>
<li>Don&#8217;t drink too much coffee &#8211; I couldn&#8217;t get much done from the shakes</li>
</ul>
<p>I really liked the feedback I had from the participants, and also from other people: there were some who were just working in the background on their own stuff, and when we finished they came and asked what was it, because they&#8217;d like to take part next time. That&#8217;s the spirit! And we might just do that, for example at the end of the summer. In the meantime, I will try to focus on earning back my own hacker badge.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2012/04/hacktaiwan/">Hack+Taiwan</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2012/04/hacktaiwan/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 27/53 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: gergely.imreh.net @ 2026-08-16 20:15:02 by W3 Total Cache
-->