Profile

Cover photo
Jeffrey Chan
53 followers|12,098 views
AboutPostsPhotosVideos

Stream

Jeffrey Chan

commented on a video on YouTube.
Shared publicly  - 
 
Mo and Selma sound like they have military background. There's a distinct character: disdain for journalists, forceful tone, sharp glances, rigid hand gestures.
1
Add a comment...

Jeffrey Chan

Shared publicly  - 
 
 
Got a working version of a chrome and firefox extension I'm developing to bring the sublime text command palette to the web browser. At the moment it adds all of your bookmarks and links on the current page to the palette. You can bring up the palette with a short keycombo and then start typing.

Never leave the keyboard for the mouse!
1
Add a comment...

Jeffrey Chan

Shared publicly  - 
 
A chance to win OmniFocus, OmniOutliner, OmniGraffle and OmniPlan for free. Sweepstake ends Mar 26
1
Add a comment...

Jeffrey Chan

Shared publicly  - 
 
Pundit talking out of their asses again.

People spewing these nonsense are applying the iOS business model to the Mac model. But that's just plain stupid. 

1. The pro market is the butter and butter of the Mac ecosystem. Ableton Live, Final Cut Pro, Adobe CS. Switching CPU architecture potentially triggers a mass migration of Pro users. Especially the web developers. Most servers are Intel, if Mac switch CPU architecture, they can't compiled code on their laptop anymore. VM will then have to do full x86 emulation and it be dog slow. You can also kiss the whole enterprise adaption goodbye. Few business executives will buy a Mac anymore once you take away BootCamp and they can't run Windows as an option anymore. 

2. iOS SKUs uses all but 2 ARM chip SKUs. On the Mac, a chip maker will have to provide CPUs of various different clock rates, performance and power consumption levels. Manufacturing these different CPU configs divide production volume for each SKU and drastically increases manufacturing cost for these chips.

3. And that was the WHOLE DAMN POINT of switching to intel in the first place: to exploit Intel's huge volume in chip shipments so to keep the cost of the CPU part low.  Even when Apple is only ordering 100,000 units of 2.7GHz Quad-core Core i7, Intel is also making millions of them for other OEMs, that's what keep prices down for Apple. Making 100,000 units of A50 for Apple pretty much require Apple contracting their own fab just to make them, it'll cost at least double the Intel counterparts.

4. Apple's been down that road before. The PowerPC chips Apple used were largely designed by Apple (IBM has their own PPC design for their workstations), contract fabs to make PPC that have no other markets other that inside the Macs. Not only manufacturing cost went up steadily, Intel time and again were able to refine smaller and smaller feature size (nm) before PPC did. At the end of PPC era, they were about 2-3 generations behind in nm, and still cost 50-100% more.

5. iOS devices are consumer devices sold by the millions in the first week. A MacBook or iMac of a particular SKU might reach a million in one year. The economy of scale is vasty different.

People who retell these BS don't have the first clue about the cost-volume relationship of CPU manufacturing. They just blindly assumes that if Apple manufactures their own chips for the Mac, it'll cost less for them. 

It's the opposite. Apple had already done it BEFORE. that's why they switched. If you read the original switch announcement, Apple specifically says that, the reason for the switch is exactly because Apple can buy CPUs that Intel is already shipping in huge volume so they are keep cost down.

None of these pundits had a Mac before the switch. They have no damn idea how painful that is to developers and users. They think it's just another "business decisions". Guess that's why they're pundits rather than running companies.
1
Add a comment...
In his circles
116 people
Have him in circles
53 people
Byron Fericks's profile photo
Frank  Übermensch's profile photo
Wing Lee's profile photo
Anthony Chan's profile photo
Hugh Hall's profile photo

Jeffrey Chan

Shared publicly  - 
 
 
Todo.txt Chrome App/Extension Postmortem-like thing

Problem: I use Todo.txt all the time to help me get things done but I wanted to use it from Chrome OS.

Solution: Make my own Chrome app for Todo.txt.

Instead of going a Wunderlist type of presentation, I decided to stay true to the original Todo.txt CLI version and create an emulated terminal(adapted example from HTML5Rocks). Besides modals to confirm deletion of tasks and select files, everything can done on the command line. 

You can check out the code here: https://github.com/jwill/todotxt-chrome

Current Features:
- Basic file syncing using filepicker.io
- Add tasks
- Remove tasks
- Mark As Completed
- List tasks
- Limited search capabilities
- Archive
- Lately plugin

Screenshots of app attached.

TODO: 
Security policy stuff
Sorting of tasks by priority
Full text search
Apply color to prioritized tasks
Implementing other core commands (p, depri, etc)

Technical Details:

I started shortly after I bought a new ARM Samsung Chromebook in December 2012 and it was originally planned as a Chrome packaged app. The new Chrome Packaged App spec supports OAuth2.0 fairly well but OAuth 1.0a isn’t so fun. The official Todo.txt clients use Dropbox for file storage. Unfortunately, it uses OAuth 1.0. 

I was eventually about to get file download working but none of the js OAuth wanted to work with file upload. Next, I decided to test out filepicker.io as its marketing says it’s easier to integrate.

One of the nits with using Filepicker.io with a packaged app is that the JavaScript library injects an iframe to do communications. This is expressly against the content security policy (CSP) listed below which restricts embedded iframes. 

frame-src 'self' data: chrome-extension-resource:;

Running the filepicker script in a sandboxed page allowed me to progress a little further but still failed due to CSP. Extensions don’t have that restriction so I decided to temporarily change it to a Chrome extension that surfaces a new tab. Luckily, I wasn’t using any app-specific APIs besides chrome.runtime as an entry-point so moving it to an extension was just a matter of designating a browserAction and swapping out a couple lines of code.

Filepicker.io

Once the CSP issues were settled, it was a breeze to setup Filepicker.io. When you select a file to use with your app, filepicker.io uploads it to S3 and creates a URL for it. Any writes to that file will generally propagate back to the original source. So if I decided to move my todo files to Google Drive, I would need new URLs but I could use the same API calls. 

The URLs that filepicker.io generates are public. They seem to be reasonably randomized but if I were doing a production app, I’d make sure I set up some security policies (which filepicker.io does support) to prevent unauthorized access. It should be noted that Dropbox is well supported in the extension space.

Yeoman

Yeoman was helpful in generating JS from all the CoffeeScript code and the server command that could watch for changes was clutch. 

Looking back, I'm glad that I kept the Chrome Packaged App features siloed so that it was easy to port to an extension. Once Dropbox gets their act together, I can make it a full packaged app again.
1
Add a comment...

Jeffrey Chan

Shared publicly  - 
 
Alternative voting system: the Schulze method - used by Wikimedia, Debian, Ubuntu, Gentoo http://buff.ly/RFnX9e
1
Add a comment...
People
In his circles
116 people
Have him in circles
53 people
Byron Fericks's profile photo
Frank  Übermensch's profile photo
Wing Lee's profile photo
Anthony Chan's profile photo
Hugh Hall's profile photo
Links
Contributor to
Basic Information
Gender
Male
Apps with Google+ Sign-in