<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-22121232</atom:id><lastBuildDate>Thu, 29 Aug 2024 15:49:39 +0000</lastBuildDate><category>.NET</category><category>Javascript</category><category>Umbraco</category><category>AJAX</category><category>Internet</category><category>DESIGN PATTERN</category><category>DEV TOOL</category><category>Entity Framework</category><category>LINQ</category><category>TDD</category><category>Unit Testing</category><category>Update Panel</category><title>Kurniawan Kurniawan Blogs</title><description></description><link>http://kkurni.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>91</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1494822796295046897</guid><pubDate>Wed, 19 Jul 2017 05:34:00 +0000</pubDate><atom:updated>2017-07-19T15:36:31.840+10:00</atom:updated><title>TreeSet / ConcurrentSortedList cannot be removed once the value changes</title><description>&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;&lt;span style="color: #cc7832;"&gt;// Check this out.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;&lt;span style="color: #cc7832;"&gt;class &lt;/span&gt;KK &lt;span style="color: #cc7832;"&gt;implements &lt;/span&gt;Comparable&amp;lt;KK&amp;gt; {
    &lt;span style="color: #cc7832;"&gt;public int &lt;/span&gt;&lt;span style="color: #9876aa;"&gt;value&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    public &lt;/span&gt;&lt;span style="color: #ffc66d;"&gt;KK&lt;/span&gt;(&lt;span style="color: #cc7832;"&gt;int &lt;/span&gt;value) {
        &lt;span style="color: #cc7832;"&gt;this&lt;/span&gt;.&lt;span style="color: #9876aa;"&gt;value &lt;/span&gt;= value&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;}

    &lt;span style="color: #bbb529;"&gt;@Override&lt;/span&gt;&lt;span style="color: #bbb529;"&gt; &lt;/span&gt;&lt;span style="color: #cc7832;"&gt;public int &lt;/span&gt;&lt;span style="color: #ffc66d;"&gt;compareTo&lt;/span&gt;(KK o) {
        &lt;span style="color: #cc7832;"&gt;return &lt;/span&gt;Integer.&lt;span style="font-style: italic;"&gt;compare&lt;/span&gt;(&lt;span style="color: #9876aa;"&gt;value&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;, &lt;/span&gt;o.&lt;span style="color: #9876aa;"&gt;value&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;    }
}

&lt;span style="color: #bbb529;"&gt;@Test&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;void &lt;/span&gt;&lt;span style="color: #ffc66d;"&gt;test_treeset&lt;/span&gt;() {
    SortedSet&amp;lt;KK&amp;gt; set = &lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;TreeSet&amp;lt;&amp;gt;()&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;    KK a = &lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;KK(&lt;span style="color: #6897bb;"&gt;5&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;    KK b = &lt;span style="color: #cc7832;"&gt;new &lt;/span&gt;KK(&lt;span style="color: #6897bb;"&gt;10&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;set.add(a)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;set.add(b)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;set.forEach(item -&amp;gt; System.&lt;span style="color: #9876aa; font-style: italic;"&gt;out&lt;/span&gt;.println(item.&lt;span style="color: #9876aa;"&gt;value&lt;/span&gt;))&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;&lt;span style="color: grey;"&gt;// change b to less than a -&amp;gt; this will not remove the value after b value changes.&lt;/span&gt;&lt;span style="color: grey;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;&lt;span style="color: grey;"&gt;    // because it guranteed log n, so it will not find it.&lt;/span&gt;&lt;span style="color: grey;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;    b.&lt;span style="color: #9876aa;"&gt;value &lt;/span&gt;= &lt;span style="color: #6897bb;"&gt;4&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;set.remove(b)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;
&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;System.&lt;span style="color: #9876aa; font-style: italic;"&gt;out&lt;/span&gt;.println(&lt;span style="color: #6a8759;"&gt;"After remove -&amp;gt; it will not remove value"&lt;/span&gt;)&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;&lt;span style="color: #cc7832;"&gt;    &lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-color: #2b2b2b; color: #a9b7c6; font-family: 'Menlo'; font-size: 10.5pt;"&gt;    set.forEach(item -&amp;gt; System.&lt;span style="color: #9876aa; font-style: italic;"&gt;out&lt;/span&gt;.println(item.&lt;span style="color: #9876aa;"&gt;value&lt;/span&gt;))&lt;span style="color: #cc7832;"&gt;;&lt;/span&gt;}&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2017/07/treeset-concurrentsortedlist-cannot-be.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1702299829254463686</guid><pubDate>Fri, 24 Jul 2015 03:23:00 +0000</pubDate><atom:updated>2015-07-24T13:23:23.650+10:00</atom:updated><title>My Quick Git Process</title><description>Create your own branch..&lt;br /&gt;
&lt;br /&gt;
commit your changes&lt;br /&gt;
&amp;nbsp; &lt;b&gt;git commit -m "..."&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
push changes to your backup&lt;br /&gt;
&amp;nbsp; &lt;b&gt;git push backup branch-name&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
modify your code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
commit with amend&lt;br /&gt;
&amp;nbsp; &lt;b&gt;git commit --amend&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
push your changes to remote again &lt;b&gt;with force&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp;git push backup branch-name -f&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
once finish your feature... and code review...&lt;br /&gt;
&lt;br /&gt;
merge back to master with 1 commit&lt;br /&gt;
&amp;nbsp;&lt;b&gt;git merge master&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2015/07/my-quick-git-process.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1131256130436740588</guid><pubDate>Wed, 04 Jun 2014 05:03:00 +0000</pubDate><atom:updated>2014-06-04T15:04:19.356+10:00</atom:updated><title>Using Reserve Proxy for your Single Page App to ovoid CORS</title><description>There are couple ways to eliminate CORS, but one of my favourite is to setup reserve proxy server.&lt;br /&gt;
&lt;br /&gt;
Here simplest way how to do it.&lt;br /&gt;
&lt;br /&gt;
1. Install ARR&lt;br /&gt;
&lt;a href="http://www.iis.net/learn/extensions/installing-application-request-routing-(arr)"&gt;http://www.iis.net/learn/extensions/installing-application-request-routing-(arr)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Enable Proxy&lt;br /&gt;
IIS &amp;gt; Select your server &amp;gt; Aplication Request Routing &amp;gt; Server Proxy Setting &amp;gt; Check Enable Proxy&lt;br /&gt;
&lt;br /&gt;
3. Add Url Rewrite inside your site web.config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;lt;rewrite&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;rules&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;rule name="Reverse Proxy to API" stopProcessing="true"&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;match url="^api/(.*)" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;action type="Rewrite" url="http://some.api/v1/{R:1}" /&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/rule&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;lt;/rules&amp;gt;&lt;br /&gt;
&amp;lt;/rewrite&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Done, now when you request /api in your site, it will automatically forward that to http://come.api/v1/&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/06/using-reserve-proxy-for-your-single.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-677742863746111247</guid><pubDate>Wed, 21 May 2014 05:56:00 +0000</pubDate><atom:updated>2014-05-21T16:02:23.306+10:00</atom:updated><title>angular scroll with animation for accordion mobile</title><description>Recently we want to have scroll animation which works with accordion in mobile.&lt;br /&gt;
angular-scroll has bugs where it only check the top position instead recheck this every time.&lt;br /&gt;
&lt;br /&gt;
If you have same issue, feel free to try this version.&lt;br /&gt;
&lt;a href="https://www.blogger.com/goog_195094758"&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href="https://github.com/kkurni/angular-scroll/"&gt;https://github.com/kkurni/angular-scroll/&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.blogger.com/goog_195094760"&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href="https://gist.github.com/kkurni/98e664941ac1c373a3ff"&gt;https://gist.github.com/kkurni/98e664941ac1c373a3ff&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Ps. Thanks to Matt for this.&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/angular-scroll-with-animation-for.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1552857907592092828</guid><pubDate>Tue, 13 May 2014 06:34:00 +0000</pubDate><atom:updated>2014-05-13T16:34:41.667+10:00</atom:updated><title>Improve your site click on mobile site</title><description>&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;disable user-scalable&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;pre style="background: #1e1e1e; color: gainsboro; font-family: Consolas; font-size: 13;"&gt;&lt;span style="color: grey;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;meta&lt;/span&gt;&amp;nbsp;&lt;span style="color: #9cdcfe;"&gt;name&lt;/span&gt;&lt;span style="color: #b4b4b4;"&gt;=&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;"viewport"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #9cdcfe;"&gt;content&lt;/span&gt;&lt;span style="color: #b4b4b4;"&gt;=&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;"width=device-width,&amp;nbsp;user-scalable=no"&lt;/span&gt;&amp;nbsp;&lt;span style="color: grey;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;check any css which has heavy performance such as *first-child&lt;/li&gt;
&lt;li&gt;create grouping by hide and show components, it will your less dom objects.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/improve-your-site-click-on-mobile-site.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-4568700625936007524</guid><pubDate>Fri, 09 May 2014 03:03:00 +0000</pubDate><atom:updated>2014-05-13T16:36:05.079+10:00</atom:updated><title>Debug your services call using fiddler</title><description>add this into your web.config 
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #1e1e1e; color: gainsboro; font-family: Consolas; font-size: 13;"&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;system.net&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;enabled&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;true&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;useDefaultCredentials&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;true&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;proxy&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;autoDetect&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;false&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;bypassonlocal&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;false&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;proxyaddress&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;http://127.0.0.1:6666&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #92caf4;"&gt;usesystemdefault&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: #c8c8c8;"&gt;false&lt;/span&gt;&lt;span style="color: grey;"&gt;"&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;proxy&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/span&gt;&lt;span style="color: #569cd6;"&gt;system.net&lt;/span&gt;&lt;span style="color: grey;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: grey;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/debug-your-services-call-using-fiddler.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-678367428345629758</guid><pubDate>Mon, 05 May 2014 07:46:00 +0000</pubDate><atom:updated>2014-05-05T17:46:58.817+10:00</atom:updated><title>Errorception with angularjs</title><description>Easy and simple fix to use errorception with anguljar js.&lt;br /&gt;
&lt;br /&gt;
Just add this code to handle error in angularjs.

&lt;script src="https://gist.github.com/kkurni/eeae51aab2a7b3554554.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/errorception-with-angularjs.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-2547261027392615747</guid><pubDate>Fri, 02 May 2014 07:15:00 +0000</pubDate><atom:updated>2014-05-02T17:15:47.207+10:00</atom:updated><title>WDC 2 QA</title><description>- u need put context when u learn math&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- web components, is it ready?&lt;/div&gt;&lt;div&gt;short answer would't use it now if u support ie 10&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;but its about the concept like using angular directives.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- high level or low level?&lt;/div&gt;&lt;div&gt;u need to know both&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- eduction should teach low or high?&lt;/div&gt;&lt;div&gt;should be low&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- are we gonna loosing commonality of languages?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- why not much women?&lt;/div&gt;&lt;div&gt;just said we want u..&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- isLogin is that good name?&lt;/div&gt;&lt;div&gt;if ur function name called and.. it doing too much.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-2-qa.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-7285687126505669951</guid><pubDate>Fri, 02 May 2014 06:21:00 +0000</pubDate><atom:updated>2014-05-02T16:21:23.815+10:00</atom:updated><title>WDC 2.9 the future of indieweb</title><description>independentday.org manifesto 2001&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;in the old days everyone have their own url instead of name.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2002 friendly silos arrived.&lt;/div&gt;&lt;div&gt;- sharing&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2006 - social network&lt;/div&gt;&lt;div&gt;why?&lt;/div&gt;&lt;div&gt;easy signup&lt;/div&gt;&lt;div&gt;ur friend friends&lt;/div&gt;&lt;div&gt;reading and posting (where u can comment)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2007 popularizes simplicity&lt;/div&gt;&lt;div&gt;extremely simple ui&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;2007 facebook f8 platform launch&lt;/div&gt;&lt;div&gt;2008 facebook connect&lt;/div&gt;&lt;div&gt;2014 facebook f8&amp;nbsp;&lt;/div&gt;&lt;div&gt;it reminds at as worker hive back to silos&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;geocities shutdown&lt;/div&gt;&lt;div&gt;upcoming shutdown&lt;/div&gt;&lt;div&gt;posterous shutdown&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;what went wrong in 2003?&lt;/div&gt;&lt;div&gt;peak independent web.&lt;/div&gt;&lt;div&gt;- atom vs rss ? arguing plumbing instead of UI&lt;/div&gt;&lt;div&gt;- trackback or pingback is spam&lt;/div&gt;&lt;div&gt;- pingback noise user experience. it was designed by backend&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;decline if personal sites&lt;/div&gt;&lt;div&gt;- distracted by format wars&lt;/div&gt;&lt;div&gt;- social net to connect to people&lt;/div&gt;&lt;div&gt;- silo ux evolved: twiter fb&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;distraction vs focus&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2008 social web foo camp - federation twitter and jaiku&lt;/div&gt;&lt;div&gt;but didnt happened&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;2010 federated social web summit&lt;/div&gt;&lt;div&gt;- too much talking not enough building&lt;/div&gt;&lt;div&gt;- architecture astronot. (abstraction)&lt;/div&gt;&lt;div&gt;- more talkers&lt;/div&gt;&lt;div&gt;- complacent complexity . eg oauth. salmon&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;i dont care about federation, i care abt mu content and my friend&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;2011 indiewebcamp.com&lt;/div&gt;&lt;div&gt;discusion&lt;/div&gt;&lt;div&gt;docs wiki&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- show dont tell&lt;/div&gt;&lt;div&gt;- creators only&lt;/div&gt;&lt;div&gt;- must have domain nane to attend&lt;/div&gt;&lt;div&gt;- use ur site as openid to signin to wiki&lt;/div&gt;&lt;div&gt;- rsvp on wiki&lt;/div&gt;&lt;div&gt;- creators may bring an apprentice&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;what we learn?&lt;/div&gt;&lt;div&gt;- no mailing list. instead irc archived&lt;/div&gt;&lt;div&gt;- simplicity&lt;/div&gt;&lt;div&gt;oauth =&amp;gt; indieauth&lt;/div&gt;&lt;div&gt;microformats2&lt;/div&gt;&lt;div&gt;pingback =&amp;gt; drop xml rpc just http (webmention)&lt;/div&gt;&lt;div&gt;easier pubs and consumers&lt;/div&gt;&lt;div&gt;user exp first&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;copy the best e.g copy from twitter ui into our web&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;2014 do we have a chance?&lt;/div&gt;&lt;div&gt;- peak silo ux -&amp;gt; fb like twitter&lt;/div&gt;&lt;div&gt;they stuck&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;* publish on his own site and itpublish &amp;nbsp;everywhere&lt;/div&gt;&lt;div&gt;distribution interactions&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;indieweb wants u.&lt;/div&gt;&lt;div&gt;to own ur data , permalinks abd ur identity online&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;irc #indiewebcamp&lt;/div&gt;&lt;div&gt;wiki indiewebcamp.com&lt;/div&gt;&lt;div&gt;build indieweb into ur site&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-29-future-of-indieweb.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1113799281409910072</guid><pubDate>Fri, 02 May 2014 04:56:00 +0000</pubDate><atom:updated>2014-05-02T14:56:37.854+10:00</atom:updated><title>WDC 2.8 ImProve ur ajax app</title><description>what is reliable service?&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;it is context dependend&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;reliable ajax service&lt;/div&gt;&lt;div&gt;99% time&lt;/div&gt;&lt;div&gt;doesnt get stuck&lt;/div&gt;&lt;div&gt;handle required number of request&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;but many fail&lt;/div&gt;&lt;div&gt;- bad input&lt;/div&gt;&lt;div&gt;- connectivity and timeout&lt;/div&gt;&lt;div&gt;- encoding&lt;/div&gt;&lt;div&gt;- server error&lt;/div&gt;&lt;div&gt;- client abort&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;clientside error&lt;/div&gt;&lt;div&gt;server error&lt;/div&gt;&lt;div&gt;error after processing&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;demo&lt;/div&gt;&lt;div&gt;error in client no one knows&lt;/div&gt;&lt;div&gt;solution&lt;/div&gt;&lt;div&gt;use window.onerror and handle the error&lt;/div&gt;&lt;div&gt;u can debug using print stack&lt;/div&gt;&lt;div&gt;angularjs errorhandler&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-- handle server handler&lt;/div&gt;&lt;div&gt;give info with error obj.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-- status code&lt;/div&gt;&lt;div&gt;avoid 404 coz u can't differntiate whether it hit ur server or not instead using error obj&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;use angularjs error interceptors&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;put notification if there is no internetconnection&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- offline storage&lt;/div&gt;&lt;div&gt;use firedb or couchdb&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;---&lt;/div&gt;&lt;div&gt;handle error is not only tech thing bust all decision maker need to get involved&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;increase reliable also increase complexity&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;summary&lt;/div&gt;&lt;div&gt;- log errors&lt;/div&gt;&lt;div&gt;- handle errors&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-28-improve-ur-ajax-app.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-6603548145609534504</guid><pubDate>Fri, 02 May 2014 04:38:00 +0000</pubDate><atom:updated>2014-05-02T14:38:20.652+10:00</atom:updated><title>WDC 2.7 streaming the web</title><description>stream flow and back pressure&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;do one thing and do it well&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;e.g file system give files but process can't cope with it process will give back pressure&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;rather than push... use pull when the process finish&lt;/div&gt;&lt;div&gt;nodestreams.com&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;do pull stream instead&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;it is addictive pattern&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-27-streaming-web.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-4672578266484997505</guid><pubDate>Fri, 02 May 2014 04:11:00 +0000</pubDate><atom:updated>2014-05-02T14:22:40.082+10:00</atom:updated><title>WDC 2.6 frontend security</title><description>--untrusted data&lt;div&gt;location &amp;amp; uirs&lt;/div&gt;&lt;div&gt;cookies&lt;/div&gt;&lt;div&gt;referrer&lt;/div&gt;&lt;div&gt;window name&lt;/div&gt;&lt;div&gt;indirect sources&lt;/div&gt;&lt;div&gt;other objs. always validate from event sources.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--sinks&lt;/div&gt;&lt;div&gt;-execution sink&lt;/div&gt;&lt;div&gt;eval() - click handler&lt;/div&gt;&lt;div&gt;-html elements sink&lt;/div&gt;&lt;div&gt;-location sink&lt;/div&gt;&lt;div&gt;window.location=input&lt;/div&gt;&lt;div&gt;if someone else to navigate u&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-control flow sink&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;solutions&lt;/div&gt;&lt;div&gt;- minimize attack surface&lt;/div&gt;&lt;div&gt;avoid convert string to script&lt;/div&gt;&lt;div&gt;eval,timeout, etc&lt;/div&gt;&lt;div&gt;avoid innerhtml where possjble&lt;/div&gt;&lt;div&gt;use .textContent, document.createElement&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- template approach&lt;/div&gt;&lt;div&gt;placeholder like angularjs&lt;/div&gt;&lt;div&gt;use bind instead of {{}}&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- html input?&lt;/div&gt;&lt;div&gt;dont write ur own sanitizer&lt;/div&gt;&lt;div&gt;but if u do&lt;/div&gt;&lt;div&gt;parse input (using document.createElement) instead regex&lt;/div&gt;&lt;div&gt;whitelist of dom nodes&lt;/div&gt;&lt;div&gt;keep only that it safe instead of blacklist&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- sanitizer&lt;/div&gt;&lt;div&gt;angular $sanitize&lt;/div&gt;&lt;div&gt;bleach.js&lt;/div&gt;&lt;div&gt;DomPurify&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;summary&lt;/div&gt;&lt;div&gt;avoid eval &amp;amp; innerHtml&lt;/div&gt;&lt;div&gt;use template language but be careful with attribhte&lt;/div&gt;&lt;div&gt;filter html input conservatively&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;do framework make things better?&lt;/div&gt;&lt;div&gt;domxss wiki&lt;/div&gt;&lt;div&gt;mustache security wiki&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;jquery?&amp;nbsp;&lt;/div&gt;&lt;div&gt;$(location.hash) is fixed but reintroduxe agajn&lt;/div&gt;&lt;div&gt;element.add(usercontent)&lt;/div&gt;&lt;div&gt;append after before html, etc&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;knockout?&amp;nbsp;&lt;/div&gt;&lt;div&gt;ko.applyBinding()&lt;/div&gt;&lt;div&gt;data-bind="click:.."&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;this won't be pickup by security analysis&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;angularjs?&lt;/div&gt;&lt;div&gt;{{expression}} in 1.1.5 will execute script&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;but it fixed now.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;in general frameworks add complexity so u need to understand&lt;/div&gt;&lt;div&gt;e.g web components&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;this is really easy to get wrong&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;but there is&amp;nbsp;&lt;/div&gt;&lt;div&gt;content security policy&lt;/div&gt;&lt;div&gt;whitelist of content sources&lt;/div&gt;&lt;div&gt;its a bit restrictive&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;angular is the best coz has csp mode&lt;/div&gt;&lt;div&gt;ng-csp&lt;/div&gt;&lt;div&gt;angular 1.2 is good&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;summary&lt;/div&gt;&lt;div&gt;- avoid innerhtml&lt;/div&gt;&lt;div&gt;- understand frameworks&lt;/div&gt;&lt;div&gt;- csp provide additional layer of protection&lt;/div&gt;&lt;div&gt;- csp solve script injection but not all problems like control flows&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-26-frontend-security.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-7833168741955981520</guid><pubDate>Fri, 02 May 2014 02:33:00 +0000</pubDate><atom:updated>2014-05-02T12:33:45.424+10:00</atom:updated><title>WDC 2.5 TLS?</title><description>-lesson from heartbleeding&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Tls complex protocol&lt;/div&gt;&lt;div&gt;many implementation&lt;/div&gt;&lt;div&gt;dangerous close to monoculturr&lt;/div&gt;&lt;div&gt;opensource is not magical&lt;/div&gt;&lt;div&gt;incident handling is reallt important&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;more tls, why?&lt;/div&gt;&lt;div&gt;coz cookies canbe expose without tls or mix tls&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;more encription is the good things&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;http/2 is for speed but firefox and chrome &amp;nbsp;over tls&lt;/div&gt;&lt;div&gt;to encourage every site to use tls&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;transparent tls, there is no https or lock but still negotioting tls&lt;/div&gt;&lt;div&gt;- but still debatable&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;everyone can issue certificate and ur browser trusted&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;what happenig now&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-http strict trnasport secuirty&lt;/div&gt;&lt;div&gt;http sts&lt;/div&gt;&lt;div&gt;only available for https&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- public key pin&lt;/div&gt;&lt;div&gt;- certificate transparancy&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;more speed&lt;/div&gt;&lt;div&gt;- chacha20 poly1305&lt;/div&gt;&lt;div&gt;new cyper for DjB which faster&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- Tls 1.3&lt;/div&gt;&lt;div&gt;encript the handshake&lt;/div&gt;&lt;div&gt;reduce handshake latency&lt;/div&gt;&lt;div&gt;improve crypto&lt;/div&gt;&lt;div&gt;start now end eoy&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;howmyssl.com&lt;/div&gt;&lt;div&gt;isTlsfasyet.com&lt;/div&gt;&lt;div&gt;bettercrypto.com&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-25-tls.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-375312183391864154</guid><pubDate>Fri, 02 May 2014 01:59:00 +0000</pubDate><atom:updated>2014-05-02T12:13:52.240+10:00</atom:updated><title>WDC 2.4 closures</title><description>&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-24-closures.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-1220954673638626142</guid><pubDate>Fri, 02 May 2014 01:57:00 +0000</pubDate><atom:updated>2014-05-02T11:59:36.043+10:00</atom:updated><title>WDC 2.3 ES6 Data strutures</title><description>ES6 data structure&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-object&lt;/div&gt;&lt;div&gt;{}&lt;/div&gt;&lt;div&gt;["key"] = test&lt;/div&gt;&lt;div&gt;is it data structure or inheritance?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-array&lt;/div&gt;&lt;div&gt;construct from "from" methid&lt;/div&gt;&lt;div&gt;Array.from()&lt;/div&gt;&lt;div&gt;push&lt;/div&gt;&lt;div&gt;slice&lt;/div&gt;&lt;div&gt;pop&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;new data structure&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- set&lt;/div&gt;&lt;div&gt;bucket of unique values&lt;/div&gt;&lt;div&gt;no duplicates&lt;/div&gt;&lt;div&gt;new Set()&lt;/div&gt;&lt;div&gt;.add();&lt;/div&gt;&lt;div&gt;.has()&lt;/div&gt;&lt;div&gt;.delete()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- maps (like dictionary) or relationship&lt;/div&gt;&lt;div&gt;new Maps)&lt;/div&gt;&lt;div&gt;.set(str,str)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- weakMap (map without memory leak)&lt;/div&gt;&lt;div&gt;similar to map&lt;/div&gt;&lt;div&gt;only obj that u can map&lt;/div&gt;&lt;div&gt;references as weakly held&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;e.g if using map which reference other obj. and we remove it. then there is memory leak&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;easy way to write not to not memory leak&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-weakSet (no memory leak set)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-iterators&lt;/div&gt;&lt;div&gt;array.entries()&lt;/div&gt;&lt;div&gt;iterator.next()&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;for(var [index,value] of array.entries){}&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;keys() values() are iterators&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;you can start using this by transfillers?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-23-when-u-have-hammer-all-problems.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-9046555987358510305</guid><pubDate>Fri, 02 May 2014 00:48:00 +0000</pubDate><atom:updated>2014-05-02T11:40:16.994+10:00</atom:updated><title>WDC 2.2 async javascript pattern</title><description>&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-22-async-javascript-pattern.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-5648303599195083470</guid><pubDate>Thu, 01 May 2014 23:57:00 +0000</pubDate><atom:updated>2014-05-02T10:11:56.651+10:00</atom:updated><title>WDC 2.1 Offline first</title><description>demo about todo list.&lt;div&gt;when the server off, it doesn't sync until the server on again.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;offline problem&lt;/div&gt;&lt;div&gt;-trust problem.&lt;/div&gt;&lt;div&gt;i want to be sure that my data is there when i need it.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;taking screenshot of your app. because u dont trust the app e.g map&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-always online architecture&lt;/div&gt;&lt;div&gt;as mob user i want to use app with doesn't require to be online.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- my data isn't with me.&lt;/div&gt;&lt;div&gt;let me have a copy on my device&lt;/div&gt;&lt;div&gt;*always accessible personal data&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;rss reader should have bew dara un them when u open.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;obviously important data store locally.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;smart offline maps.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;offline first challenge&lt;/div&gt;&lt;div&gt;- save vs sync&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;give signal red yellow green about connection instead of loading gif&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;-informing users about sync outcomes&lt;/div&gt;&lt;div&gt;e.g chat&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;award&lt;/div&gt;&lt;div&gt;- performance (zero latency)&lt;/div&gt;&lt;div&gt;- robust&lt;/div&gt;&lt;div&gt;- better experiences (save all time)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;is it worth it?&lt;/div&gt;&lt;div&gt;-more usage in mobile&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;we need to communicate better language to the user about offline first&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;check this link&lt;/div&gt;&lt;div&gt;http://hood.ie/#intro&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-21-offline-first.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-72413307661483496</guid><pubDate>Thu, 01 May 2014 13:55:00 +0000</pubDate><atom:updated>2014-05-01T23:56:21.027+10:00</atom:updated><title>WDC Conference 2014 Summary slides by KK</title><description>Enjoy my interactive slides for this conference&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://kkurni.github.io/slides-wdc-2014/"&gt;http://kkurni.github.io/slides-wdc-2014/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/wdc-conference-2014-summary-slides-by-kk.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-6991818144554066623</guid><pubDate>Thu, 01 May 2014 06:27:00 +0000</pubDate><atom:updated>2014-05-01T22:11:14.191+10:00</atom:updated><title>WDC 1.10 you dont know SVG</title><description>mostly the dont know svg&lt;br /&gt;
&lt;div&gt;
try to avoid it&lt;/div&gt;
&lt;div&gt;
change name - responsive graphics&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
snap.svg libraries&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
e.g make a accelorometer&lt;/div&gt;
&lt;div&gt;
flash make cpu 100 percent&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
the most powerful svg&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
- path&lt;/div&gt;
&lt;div&gt;
m50,50 move&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
l100 draw line&lt;/div&gt;
&lt;div&gt;
h500 draw horizontal&lt;/div&gt;
&lt;div&gt;
z close the path&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
the magic of &amp;lt;use&amp;gt; element&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
owesome is created a life copy of dom elements.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;circle ..&lt;/div&gt;
&lt;div&gt;
&amp;lt;use xlink:href..&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
groups&lt;/div&gt;
&lt;div&gt;
better than container&lt;/div&gt;
&lt;div&gt;
it will create for total shape&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
pattern&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
masking and cliping, animation already been there long time ago before css&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
the fun part when combining it togather&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
e.g pattern and mask&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
text in the path..&lt;/div&gt;
&lt;div&gt;
powerful feature but never implemented in real life.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
u can use css in svg&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
nested svg inside svg&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
transformation&lt;/div&gt;
&lt;div&gt;
css transformation is originated from svg&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
demo&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
multimeter using svg&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
summary&lt;/div&gt;
&lt;div&gt;
- stop being affraid with svg&lt;/div&gt;
&lt;div&gt;
- web already have svg and u have been ignoring svg for a while&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
svg vs canvas faster?&lt;/div&gt;
&lt;div&gt;
like knive vs sword., go check for it..&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
its all backup with dom level so if u create 100 balls running around, it will be slower because it has backup dom&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/web-direction-conf-day-110-you-dont.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-7007024603649512437</guid><pubDate>Thu, 01 May 2014 06:23:00 +0000</pubDate><atom:updated>2014-05-01T22:11:02.105+10:00</atom:updated><title>WDC 1.9 ecmascript 6 better js for the ambient webera</title><description>the ambient of computing era&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
- corporate - cobol, fortran&lt;/div&gt;
&lt;div&gt;
- personal - c++ family&lt;/div&gt;
&lt;div&gt;
- ambient - javascript&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
why js?&lt;/div&gt;
&lt;div&gt;
coz worse is better&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
- already there&lt;/div&gt;
&lt;div&gt;
- widest reach&lt;/div&gt;
&lt;div&gt;
- lowest risk&lt;/div&gt;
&lt;div&gt;
- write libs and apps once&lt;/div&gt;
&lt;div&gt;
- single knowledge and skillset&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
is it even possible to replace it?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
how does js evolved?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
invented in 10 days in may 1995&lt;/div&gt;
&lt;div&gt;
mocha- livescript- js&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
javascript cloned in microsoft ie3.0 jscript&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
standarization ecma scrjpt&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
called ecma becuse java is sun., js is microsoft&lt;/div&gt;
&lt;div&gt;
so use ecma for none owner naming&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-- ecmascript?&lt;/div&gt;
&lt;div&gt;
ecmascript is the standard that define javascript&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
not part of w3c&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
js implementation&lt;/div&gt;
&lt;div&gt;
- google v8&lt;/div&gt;
&lt;div&gt;
- mozila spidermonkey&lt;/div&gt;
&lt;div&gt;
- microsoft chakra&lt;/div&gt;
&lt;div&gt;
- webkit jscore&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
2009 ecmascript 5 :&lt;/div&gt;
&lt;div&gt;
use strict - json, object.create, etc&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
2008 javascript performance problem.&lt;/div&gt;
&lt;div&gt;
2013 performance improved&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2014 es6 almost done,&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
es6 improvement&lt;/div&gt;
&lt;div&gt;
- more concise syntax&lt;/div&gt;
&lt;div&gt;
modules and sandkng boxing&lt;/div&gt;
&lt;div&gt;
class declaration&lt;/div&gt;
&lt;div&gt;
control abstraction&lt;/div&gt;
&lt;div&gt;
array comprehensions&lt;/div&gt;
&lt;div&gt;
promises&lt;/div&gt;
&lt;div&gt;
string interpolations&lt;/div&gt;
&lt;div&gt;
subclasses&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
tc39 its not like this..&lt;/div&gt;
&lt;div&gt;
and not like this..&lt;/div&gt;
&lt;div&gt;
google, ms, fb, netflix, safarj, jquery, ebay, yahoo, ie, intels&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
ecma design challenges&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
the closure in loop problem&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
foreach() objcallback(x)&lt;/div&gt;
&lt;div&gt;
obj.callback(x)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
x will take the last.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
local scoping WTF&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
function(x,x)&lt;/div&gt;
&lt;div&gt;
var x&lt;/div&gt;
&lt;div&gt;
function x()&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
x()&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
so what x will be?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
why u need to worry about the edgecases?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
because it will work on the browser but not on other browser&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
how we fix?&lt;/div&gt;
&lt;div&gt;
closire in loop?&lt;/div&gt;
&lt;div&gt;
instead var using let&lt;/div&gt;
&lt;div&gt;
let p in x&lt;/div&gt;
&lt;div&gt;
let v = doSomethjbg (x,p)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
let will binding on scope variable&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
but want to avoid new let WTF&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
let x = 1&lt;/div&gt;
&lt;div&gt;
let x = 2&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
or&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
let x =&lt;/div&gt;
&lt;div&gt;
var x =&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
the solution, there will static error.&lt;/div&gt;
&lt;div&gt;
anybody shouldn't code this things.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
avoid inconsistent scoping WTF?&lt;/div&gt;
&lt;div&gt;
let x = 1&lt;/div&gt;
&lt;div&gt;
functionf ()&lt;/div&gt;
&lt;div&gt;
console log (x)&lt;/div&gt;
&lt;div&gt;
let x = 2&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
what will u get 1/ undefined / 2?&lt;/div&gt;
&lt;div&gt;
- never leaking scope.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
avoid bogus const&lt;/div&gt;
&lt;div&gt;
using const x = 3&lt;/div&gt;
&lt;div&gt;
will be an error&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-- but u need it in forward declaration&lt;/div&gt;
&lt;div&gt;
e.g mutual function&lt;/div&gt;
&lt;div&gt;
r1 = f(r2)&lt;/div&gt;
&lt;div&gt;
r2 = f(r1)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
error vased upon time of actual access&lt;/div&gt;
&lt;div&gt;
nor upon position in source code&lt;/div&gt;
&lt;div&gt;
must be intialize before&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
what abt block scope function?&lt;/div&gt;
&lt;div&gt;
function g()&lt;/div&gt;
&lt;div&gt;
g()&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
browser agree it will applied after it declared&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
but also disageee how to handle if g is not declare and call on the top or in the block or outside the block&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
unfortunately browser agree violate block scoping&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
summary&lt;/div&gt;
&lt;div&gt;
its real&lt;/div&gt;
&lt;div&gt;
will be the future soon&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/web-direction-conf-day-19-ecmascript-6.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-8153859996139075545</guid><pubDate>Thu, 01 May 2014 04:48:00 +0000</pubDate><atom:updated>2014-05-01T22:10:55.596+10:00</atom:updated><title>WDC 1.8 device Api</title><description>Small api which give device capabilities to browsers&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
work on chrome and firefox&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
where wild apis live?&lt;/div&gt;
&lt;div&gt;
- spec changes alot&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
highly change specs&lt;/div&gt;
&lt;div&gt;
- sensor api&lt;/div&gt;
&lt;div&gt;
- web nfc&lt;/div&gt;
&lt;div&gt;
- networj apis&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
sensor api?&lt;/div&gt;
&lt;div&gt;
temp, humidity, pressure&lt;/div&gt;
&lt;div&gt;
e.g content base on temperature&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
web nfc?&lt;/div&gt;
&lt;div&gt;
just in time capabilities&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
network api?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-- settle down&lt;/div&gt;
&lt;div&gt;
- proximity&lt;/div&gt;
&lt;div&gt;
- battery status&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
proximity?&lt;/div&gt;
&lt;div&gt;
device promixity how close to other device&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
user event - if there is user near,&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
batterie status api?&lt;/div&gt;
&lt;div&gt;
current energy state&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
-- stable&lt;/div&gt;
&lt;div&gt;
- vibration&lt;/div&gt;
&lt;div&gt;
- ambient light&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
vibration?&lt;/div&gt;
&lt;div&gt;
navigator.vibrate(msec)&lt;/div&gt;
&lt;div&gt;
e.g form if there is error.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
ambient light?&lt;/div&gt;
&lt;div&gt;
event obj- light&lt;/div&gt;
&lt;div&gt;
light level&lt;/div&gt;
&lt;div&gt;
e.g changing contract level at night or bright day&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
github.com/ajfisher/wdc&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/web-direction-conf-day-18-device-api.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-5960108894697154826</guid><pubDate>Thu, 01 May 2014 04:15:00 +0000</pubDate><atom:updated>2014-05-01T22:10:49.871+10:00</atom:updated><title>WDC 1.7 readable code</title><description>&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/webdirection-conf-day17-readable-code.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-2124899126046651082</guid><pubDate>Thu, 01 May 2014 03:44:00 +0000</pubDate><atom:updated>2014-05-01T22:10:41.334+10:00</atom:updated><title>WDC 1.6 controlling 3rd party scripts</title><description>types&lt;br /&gt;
&lt;div&gt;
- ads&lt;/div&gt;
&lt;div&gt;
- tracking&lt;/div&gt;
&lt;div&gt;
- social e.g discus, fb&lt;/div&gt;
&lt;div&gt;
- fonts&lt;/div&gt;
&lt;div&gt;
- libraries and framework&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
what the first #1 used 3rd script?&lt;/div&gt;
&lt;div&gt;
facebook.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
whats the issue?&lt;/div&gt;
&lt;div&gt;
performance&lt;/div&gt;
&lt;div&gt;
single point of failure&lt;/div&gt;
&lt;div&gt;
privacy&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
potential solutions?&lt;/div&gt;
&lt;div&gt;
safe snippet&lt;/div&gt;
&lt;div&gt;
caching and hosted libs&lt;/div&gt;
&lt;div&gt;
tools and initiatives&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
performance?&lt;/div&gt;
&lt;div&gt;
- slowdown ur homepage&lt;/div&gt;
&lt;div&gt;
the value u get must be greater than the performance hit u r taking&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
precription- the fastest is the better use look ads.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
e.g ymail vs gmail. ymail more ads&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
using no ads reduce 40%&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
single point of failure?&lt;/div&gt;
&lt;div&gt;
- will stops the function of page&lt;/div&gt;
&lt;div&gt;
script src=""&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
will block the page after this script&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
e.g&lt;/div&gt;
&lt;div&gt;
twitter widget wont work in china&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
useful tool&lt;/div&gt;
&lt;div&gt;
spof-o-matic&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
u can debug and illustrate spof&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
solution&lt;/div&gt;
&lt;div&gt;
- put the code in the buttom&lt;/div&gt;
&lt;div&gt;
- using async or defer (load after)&lt;/div&gt;
&lt;div&gt;
- or load it manually using httprequest async&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
prevention&lt;/div&gt;
&lt;div&gt;
* protect urself with the help of tools&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
caching ?&lt;/div&gt;
&lt;div&gt;
dont always rely on it.&lt;/div&gt;
&lt;div&gt;
cache the script less so it there is error only last shorter&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
hosting cdn?&lt;/div&gt;
&lt;div&gt;
instead refer to cdn jquery&lt;/div&gt;
&lt;div&gt;
use the script if cdn available then use cdn if not than use local scripts&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
whats the verdict?&lt;/div&gt;
&lt;div&gt;
- use ur own cdn.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
privacy?&lt;/div&gt;
&lt;div&gt;
e.g like button&lt;/div&gt;
&lt;div&gt;
what they dont tell u? track, visited ip,etc&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
privacy hero solutions&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue Light', HelveticaNeue-Light, helvetica, arial, sans-serif;"&gt;2 click solutions,(open search)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="font-family: 'Helvetica Neue Light', HelveticaNeue-Light, helvetica, arial, sans-serif;"&gt;- click enable like button &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
solutions&lt;/div&gt;
&lt;div&gt;
-google use asyn scripts&lt;/div&gt;
&lt;div&gt;
-jsmanners (rating for scripts)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
summary&lt;/div&gt;
&lt;div&gt;
* before copy paste scripts&lt;/div&gt;
&lt;div&gt;
- refuse no async&lt;/div&gt;
&lt;div&gt;
- put risk in sla (uptime,etc)&lt;/div&gt;
&lt;div&gt;
- review jsmanner&lt;/div&gt;
&lt;div&gt;
- ask for server side options&lt;/div&gt;
&lt;div&gt;
- evaluate tag managers&lt;/div&gt;
&lt;div&gt;
- investigate hosted libs (cdn)&lt;/div&gt;
&lt;div&gt;
- monitors3x (use monitoring tools)&lt;/div&gt;
&lt;div&gt;
- provide non blocking code samples and simple&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style="-webkit-text-size-adjust: auto; background-color: rgba(255, 255, 255, 0);"&gt;bitly.iy/&lt;/span&gt;3rdparty-code-14&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/web-direction-conf-day-16-controlling.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-2929258426307032950</guid><pubDate>Thu, 01 May 2014 03:40:00 +0000</pubDate><atom:updated>2014-05-01T18:52:07.315+10:00</atom:updated><title>bootstrap or not?</title><description>for backend dev or css newbee&lt;div&gt;- love it&lt;/div&gt;&lt;div&gt;- all there&lt;/div&gt;&lt;div&gt;- very quick to implement&lt;/div&gt;&lt;div&gt;- pick and choose component base&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;for experience front end&lt;/div&gt;&lt;div&gt;- hate it&lt;/div&gt;&lt;div&gt;- its use for prototype&lt;/div&gt;&lt;div&gt;- hate all sites looks the same&lt;/div&gt;&lt;div&gt;- harder when u want to build custom stuff coz u do overidding it.&lt;/div&gt;&lt;div&gt;- like working on cms instead of custom site&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&amp;nbsp;&lt;/div&gt;&lt;div&gt;other framework to look at 'suit css'&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/bootstrap-or-not.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-22121232.post-8495106104674210404</guid><pubDate>Thu, 01 May 2014 03:18:00 +0000</pubDate><atom:updated>2014-05-01T22:10:34.890+10:00</atom:updated><title>WDC 1 QA 1</title><description>when to use this new tecnologies?&lt;br /&gt;
&lt;div&gt;
can't do at work because need to support different browser&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
look for the standard and predict for the future.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
like to jump on earlier like css filter but it only low risk just presentation enhancement&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
how about flexbox? do u need to change implementation overtime&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
u can use solve with preprocessor to fallback&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;Copyleft by : Kurniawan Kurniawan
Email Address: kkurni@gmail.com&lt;/div&gt;</description><link>http://kkurni.blogspot.com/2014/05/webdirection-conf-day-1-qa-1_1.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item></channel></rss>