├── .gitignore ├── 2016-01.md ├── 2016-02.md ├── 2016-03.md ├── 2016-04.md ├── 2016-05.md ├── 2016-06.md ├── 2016-07.md ├── 2016-08.md ├── 2016-09.md ├── 2016-10.md ├── 2016-11.md ├── 2017-02.md ├── 2017-03.md ├── 2017-05.md ├── 2017-07.md ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── app ├── assets │ ├── images │ │ └── .keep │ ├── javascripts │ │ └── application.js │ └── stylesheets │ │ └── application.css ├── controllers │ ├── application_controller.rb │ ├── article_controller.rb │ ├── concerns │ │ └── .keep │ └── welcome_controller.rb ├── helpers │ ├── application_helper.rb │ ├── data_helper.rb │ └── git_helper.rb ├── mailers │ └── .keep ├── models │ ├── .keep │ └── concerns │ │ └── .keep └── views │ ├── layouts │ └── application.html.erb │ └── welcome │ └── index.html.erb ├── bin ├── bundle ├── rails ├── rake └── setup ├── config.ru ├── config ├── application.rb ├── boot.rb ├── database.yml ├── environment.rb ├── environments │ ├── development.rb │ ├── production.rb │ └── test.rb ├── initializers │ ├── assets.rb │ ├── backtrace_silencers.rb │ ├── cookies_serializer.rb │ ├── filter_parameter_logging.rb │ ├── inflections.rb │ ├── mime_types.rb │ ├── session_store.rb │ └── wrap_parameters.rb ├── locales │ └── en.yml ├── routes.rb └── secrets.yml ├── db └── seeds.rb ├── lib ├── assets │ └── .keep └── tasks │ └── .keep ├── log └── .keep ├── public ├── 404.html ├── 422.html ├── 500.html ├── favicon.ico └── robots.txt ├── test ├── controllers │ └── .keep ├── fixtures │ └── .keep ├── helpers │ └── .keep ├── integration │ └── .keep ├── mailers │ └── .keep ├── models │ └── .keep └── test_helper.rb └── vendor └── assets ├── javascripts └── .keep └── stylesheets └── .keep /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files for more about ignoring files. 2 | # 3 | # If you find yourself ignoring temporary files generated by your text editor 4 | # or operating system, you probably want to add a global ignore instead: 5 | # git config --global core.excludesfile '~/.gitignore_global' 6 | 7 | # Ignore bundler config. 8 | /.bundle 9 | 10 | # Ignore the default SQLite database. 11 | /db/*.sqlite3 12 | /db/*.sqlite3-journal 13 | 14 | # Ignore all logfiles and tempfiles. 15 | /log/* 16 | !/log/.keep 17 | /tmp 18 | *.rbc 19 | capybara-*.html 20 | .rspec 21 | /log 22 | /tmp 23 | /public/system 24 | /coverage/ 25 | /spec/tmp 26 | **.orig 27 | rerun.txt 28 | pickle-email-*.html 29 | 30 | # TODO Comment out these rules if you are OK with secrets being uploaded to the repo 31 | config/initializers/secret_token.rb 32 | config/secrets.yml 33 | 34 | ## Environment normalisation: 35 | /vendor/bundle 36 | 37 | # these should all be checked in to normalise the environment: 38 | # Gemfile.lock, .ruby-version, .ruby-gemset 39 | 40 | # unless supporting rvm < 1.11.0 or doing something fancy, ignore this: 41 | .rvmrc 42 | 43 | # if using bower-rails ignore default bower_components path bower.json files 44 | /vendor/assets/bower_components 45 | *.bowerrc 46 | bower.json 47 | 48 | # Ignore pow environment settings 49 | .powenv 50 | 51 | *.swp 52 | .swp 53 | .gitignore.swp 54 | *.lock 55 | -------------------------------------------------------------------------------- /2016-01.md: -------------------------------------------------------------------------------- 1 | ### (todo) 2 | + [Android Application Performance — Step 2: Compute](https://medium.com/@elifbon/android-application-performance-step-2-compute-1ceb582a46f5#.j9eoede0v) 3 | + [Android Application Performance — Step 3: Memory](https://medium.com/@elifbon/android-application-performance-step-3-memory-e490ae6406b8#.owt3c6xz3) 4 | + [Android Application Performance— Step 4: Battery](https://medium.com/@elifbon/android-application-performance-step-4-battery-b1f88d096b1e#.aajnkpq0g) 5 | 6 | ### 2016-01-31 7 | + [The React Styling Problem](https://medium.com/@thejameskyle/the-react-styling-problem-68440beceddf#.thca0joan) 8 | + [The React on Rails Doctrine](https://medium.com/@railsonmaui/the-react-on-rails-doctrine-3c59a778c724#.f00jgcoaa) 9 | + [Top 25 Android Apps](https://medium.com/hacker-daily/top-25-android-apps-aa014a647772#.ojo9k844p) 10 | 11 | ### 2016-01-30 12 | + [Building Your Second React.js App](https://medium.com/learning-new-stuff/building-your-second-react-js-app-eb66924b3774#.uu15mvyo2) 13 | 14 | ### 2016-01-27 15 | + [RxJava as event bus, the right way](https://medium.com/@diolor/rxjava-as-event-bus-the-right-way-10a36bdd49ba#.xqvfer3mb) 16 | + [Building Your First React.js App](https://medium.com/learning-new-stuff/building-your-first-react-js-app-d53b0c98dc#.hjsu05j2y) 17 | 18 | ### 2016-01-26 19 | + [Simplify Complex View Hierarchies](https://medium.com/google-developers/simplify-complex-view-hierarchies-5d358618b06f#.o3tjm42vb) 20 | + [Draw What You See! … and clip the #e11 out of the rest.](https://medium.com/google-developers/draw-what-you-see-and-clip-the-e11-out-of-the-rest-6df58c47873e#.kpfvhixcp) 21 | + [let me tell you how you should build your gradle structure](https://medium.com/mobiwise-blog/let-me-tell-you-how-you-should-build-your-gradle-structure-f13e368e00a4#.fq0p1a71m) 22 | 23 | ### 2016-01-25 24 | + [How to Learn ES6](https://medium.com/javascript-scene/how-to-learn-es6-47d9a1ac2620#.rwi8aeik1) 25 | + [Learn React.JS in 8 Minutes](https://medium.com/learning-new-stuff/learn-react-js-in-7-min-92a1ef023003#.8v3we4yhx) 26 | 27 | ### 2016-01-19 28 | + [React Native Project Setup for large projects](https://medium.com/@sikavica/react-native-project-setup-for-large-projects-9a3acbd92903#.wo420zjne) 29 | 30 | ### 2016-01-18 31 | + [How to make HTTP calls on Android with Retrofit 2](https://medium.com/@shelajev/how-to-make-http-calls-on-android-with-retrofit-2-cfc4a67c6254#.i0shz8n66) 32 | + [Using an EventBus in Android Pt 1: Why an EventBus?](https://medium.com/@cainwong/using-an-eventbus-in-android-pt-1-why-an-eventbus-c2c9cdff41d7#.r75by66lg) 33 | + [Reactjs Skeleton — with gulp and browserify 34 | ](https://medium.com/front-end-hacking/reactjs-skeleton-with-gulp-and-browserify-85cec815017e#.9m781pkm1) 35 | + [Android Application Architecture](https://medium.com/ribot-labs/android-application-architecture-8b6e34acda65#.ew8zwebr0) 36 | + [Avoid Android App from crashing by following simple steps](https://blog.handyapps.in/let-s-not-crash-the-app-let-s-make-the-good-one-55cd01e30b29#.wids6qu1i) 37 | 38 | ### 2016-01-17 39 | + [MVP Architecture in Android Development](https://medium.com/@kenjuwagatsuma/mvp-architecture-in-android-development-3d63cc32707a#.pi3473vop) 40 | + [React Properties](https://medium.com/react-tutorials/react-properties-ef11cd55caa0#.q10n1f563) 41 | + [React State 42 | ](https://medium.com/react-tutorials/react-state-14a6d4f736f5#.o2mcrkmc0) 43 | 44 | ### 2016-01-15 45 | + [A mobile, desktop and website App with the same code](https://medium.com/@benoitvallon/a-mobile-desktop-and-website-app-with-the-same-code-dc84ef7677ee#.yo885u966) 46 | + [Why should we use RxJava on Android 47 | ](https://medium.com/@lpereira/why-should-we-use-rxjava-on-android-c9066087c56c#.73bml5yly) 48 | + [React-native Android -Network state change listener](https://medium.com/@First350/react-native-android-network-state-change-listener-c08194131964#.h47iud2cb) 49 | 50 | ### 2016-01-14 51 | + [React Components](https://medium.com/react-tutorials/react-components-828c397e3dc8#.7ukneilin) 52 | 53 | ### 2016-01-13 54 | + [Why you should be doing Functional Reactive Programming](https://medium.com/@cesarmcferreira/why-you-should-be-doing-functional-reactive-programming-858bd9bb8001#.vme27zy6c) 55 | + [Party tricks with RxJava, RxAndroid & Retrolambda](https://medium.com/swlh/party-tricks-with-rxjava-rxandroid-retrolambda-1b06ed7cd29c#.x0qdkg9yu) 56 | + [Retrolambda on Android](https://medium.com/android-news/retrolambda-on-android-191cc8151f85#.npfinq8x9) 57 | 58 | ### 2016-01-12 59 | + [A cure for relative requires in React Native 60 | ](https://medium.com/@grabbou/a-cure-for-relative-requires-in-react-native-2b263cecf0f6#.ngzb5coae) 61 | + [React Native Android Custom Module](https://medium.com/@awesomejerry/react-native-android-custom-module-819bd712bff5#.7ign20dty) 62 | 63 | ### 2016-01-11 64 | + [Static fields in Application class](https://medium.com/@MAFI8919/static-fields-in-application-class-def29d227331#.gmthrouz9) 65 | + [Configuring Android Studio](https://medium.com/google-developer-experts/configuring-android-studio-4aa4f54f1153?source=reading_list---ts4u_top_posts_from_tags------3) 66 | + [Launch an Android app from the web and cleanly fallback to web](https://medium.com/@paul_kinlan/launch-an-android-app-from-the-web-and-cleanly-fallback-to-web-1543b911e5aa#.7z5xxzt1z) 67 | + [How we’ll build apps in three years](https://medium.com/hacker-daily/how-we-ll-build-apps-in-three-years-c88bb7cddc52#.o7127zh2s) 68 | 69 | ### 2016-01-10 70 | + **性能优化篇一**[Android Application Performance — Step 1: Rendering](https://medium.com/@elifbon/android-application-performance-step-1-rendering-ba820653ad3#.a0avmlwyg) 71 | + [ADB over WiFi](https://medium.com/@hamen/adb-over-wifi-8d7869cc72e8#.rpg4lmab9) 72 | 73 | ### 2016-01-08 74 | + [Material Design- Benefits of using material Design](https://blog.handyapps.in/material-design-benefits-of-using-material-design-3b33309dfe71#.wpe1ka9u0) 75 | + [Quickly capturing screen recordings from an Android device](https://medium.com/@paul_kinlan/quickly-capturing-screen-recordings-from-an-android-device-3627a405e248#.o3y26qlo3) 76 | + [Converting Animated GIFs to AnimationDrawables](https://medium.com/@tushar.acharya/converting-animated-gifs-to-animationdrawables-c6594084d7ad#.k3lo382hl) 77 | 78 | ### 2016-01-07 79 | + [Exploring Meaningful Motion on Android 80 | ](https://medium.com/ribot-labs/exploring-meaningful-motion-on-android-1cd95a4bc61d#.vu4ds4dqk) 项目地址: [code](https://github.com/hitherejoe/animate) 81 | + [Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion](https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsdkversion-a098a0341ebd#.udqe1qmpu) 82 | + [Creating custom Text Selection actions with ACTION_PROCESS_TEXT](https://medium.com/google-developers/custom-text-selection-actions-with-action-process-text-191f792d2999?linkId=20000023#.95afyno4t) 83 | -------------------------------------------------------------------------------- /2016-02.md: -------------------------------------------------------------------------------- 1 | ### 2016-02-29
2 | + [Rich text battle: TextView vs WebView](http://www.hidroh.com/2016/02/27/richtext-textview-versus-webview/)
3 | 4 | ### 2016-02-28
5 | + [Giving better code reviews — Medium](https://medium.com/@mrjoelkemp/giving-better-code-reviews-16109e0fdd36#.53nz0p1wn)
6 | 7 | ### 2016-02-27
8 | + [How React is transforming the web and mobile development — Medium](https://medium.com/@shwetapal/how-react-is-transforming-the-web-and-mobile-development-e44789444548#.eiptl693e)
9 | 10 | ### 2016-02-26
11 | + [miquelbeltran/java-dagger-example: Extremely simple example showing how to use Dagger 2.0 on Java](https://github.com/miquelbeltran/java-dagger-example)
12 | + [Dagger ‡ A fast dependency injector for Android and Java.](http://google.github.io/dagger/users-guide.html)
13 | + [Understanding Dagger 2 — Medium](https://medium.com/@Miqubel/understanding-dagger-2-367ff1bd184f#.rpgz3ilcf)
14 | 15 | ### 2016-02-25
16 | + [AppCompat v23.2 — Age of the vectors — Medium](https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88#.c4qzlhp10)
17 | 18 | ### 2016-02-24
19 | + [chiuki/android-test-demo: Android testing with Dagger 2, Espresso 2 and Mockito](https://github.com/chiuki/android-test-demo)
20 | + [Square Island: Dagger 2 + Espresso 2 + Mockito](http://blog.sqisland.com/2015/04/dagger-2-espresso-2-mockito.html)
21 | 22 | ### 2016-02-23
23 | + [6 tips to speed up your Gradle build — Medium](https://medium.com/@shelajev/6-tips-to-speed-up-your-gradle-build-3d98791d3df9#.u8ucht8vr)
24 | 25 | ### 2016-02-22
26 | + [Understanding git for real by exploring the .git directory — Medium](https://medium.com/@pierreda/understanding-git-for-real-by-exploring-the-git-directory-1e079c15b807#.6o76f0mrx)
27 | + [Dependency Injection with Dagger 2 · codepath/android_guides Wiki](https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2)
28 | 29 | ### 2016-02-21
30 | + [Applying meaningful motion on Android — Medium](https://medium.com/@andremion/applying-meaningful-motion-on-android-a271a873bd78#.z5mbdbgbp)
31 | + [Android Studio: Layout preview — David Developer — Medium](https://medium.com/david-developer/android-studio-layout-preview-ef713c3cd77b#.2slqatttb)
32 | + [CheckedTextView does not save its state. — Android Dev — Medium](https://medium.com/android-dev/checkedtextview-does-not-save-its-state-43903ab19de#.o335g3sp2)
33 | 34 | ### 2016-02-20
35 | + [gk5885/dagger-android-sample: A small, simple Android application that uses Dagger 2.](https://github.com/gk5885/dagger-android-sample)
36 | + [DAGGER 2 - A New Type of dependency injection - YouTube](https://www.youtube.com/watch?v=oK_XtfXPkqw)
37 | + [Tasting Dagger 2 on Android | Fernando Cejas](http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/)
38 | 39 | ### 2016-02-19
40 | + [7 Effective and Golden Rules for Android Application Development. — Medium](https://medium.com/@twistfuture/7-effective-and-golden-rules-for-android-application-development-2312c0bbf63f#.f3tf80ikx)
41 | + [Design Patterns: Abstract Factory — Software Engineering 101 — Medium](https://medium.com/software-engineering-101/design-patterns-abstract-factory-39a22985bdbf#.ekf9kk198)
42 | + [Intercepting everything with CoordinatorLayout Behaviors — Google Developers — Medium](https://medium.com/google-developers/intercepting-everything-with-coordinatorlayout-behaviors-8c6adc140c26#.zowaqbjbv)
43 | + [Splash Screens the Right Way | Big Nerd Ranch](https://www.bignerdranch.com/blog/splash-screens-the-right-way/)
44 | 45 | ### 2016-02-18
46 | + [Why would I want to fitsSystemWindows? — Google Developers — Medium](https://medium.com/google-developers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec#.7h5i86y2f)
47 | + [Layouts, Attributes, and you — Medium](https://medium.com/@ianhlake/layouts-attributes-and-you-9e5a4b4fe32c#.ezx3pehzy)
48 | + [Intercepting everything with CoordinatorLayout Behaviors — Google Developers — Medium](https://medium.com/google-developers/intercepting-everything-with-coordinatorlayout-behaviors-8c6adc140c26#.zowaqbjbv)
49 | 50 | ### 2016-02-16
51 | + [Building Android Apps — 30 things that experience made me learn the hard way — Medium](https://medium.com/@cesarmcferreira/building-android-apps-30-things-that-experience-made-me-learn-the-hard-way-313680430bf9#.ap507vht9)
52 | + [If you like Material design then try to materialize smth! — Android & Tech — Medium](https://medium.com/android-news/if-you-like-material-design-then-try-to-materialize-smth-13ddea87a775#.ymfke4s22)
53 | + [A detailed guide on developing Android apps using the Clean Architecture pattern — Medium](https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029#.e1qja6tn3)
54 | 55 | ### 2016-02-04
56 | + [A detailed guide on developing Android apps using the Clean Architecture pattern — Medium](https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029#.w77g1348s)
57 | + [A detailed guide on developing Android apps using the Clean Architecture pattern — Medium](https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029#.w77g1348s)
58 | + [10 things didn’t know about Android’s Service component — Medium](https://medium.com/@workingkills/10-things-didn-t-know-about-android-s-service-component-a2880b74b2b3#.dq8vu85h7)
59 | + [Tasting Dagger 2 on Android | Fernando Cejas](http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/)
60 | + [Clean Code in Android Development resources — Medium](https://medium.com/@nicolausyes/clean-code-in-android-development-resources-20de95ec74f8#.aylv69ies)
61 | 62 | ### 2016-02-03
63 | + [MVVM on Android: What You Need to Know](http://willowtreeapps.com/blog/mvvm-on-android-what-you-need-to-know/)
64 | + [The Mayans Lost Guide to RxJava on Android // Speaker Deck](https://speakerdeck.com/android10/the-mayans-lost-guide-to-rxjava-on-android)
65 | + [It is about philosophy: culture of a good programmer // Speaker Deck](https://speakerdeck.com/android10/it-is-about-philosophy-culture-of-a-good-programmer)
66 | + [Java Practices -> Package by feature, not layer](http://www.javapractices.com/topic/TopicAction.do?Id=205)
67 | + [Architecting Android…The evolution | Fernando Cejas](http://fernandocejas.com/2015/07/18/architecting-android-the-evolution/)
68 | + [Architecting Android…The clean way? | Fernando Cejas](http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/)
69 | 70 | ### 2016-02-02
71 | + [Clean Code in Android Development resources — Medium](https://medium.com/@nicolausyes/clean-code-in-android-development-resources-20de95ec74f8#.ese1irszw)
72 | 73 | ### 2016-02-01
74 | + [Which Context should I use in Android?](https://medium.com/@ali.muzaffar/which-context-should-i-use-in-android-e3133d00772c#.n5t9xra7u) 75 | 76 | -------------------------------------------------------------------------------- /2016-03.md: -------------------------------------------------------------------------------- 1 | ### 2016-03-31
2 | + [Dagger 2 and Base Classes — Generics and Presenter injection — Medium](https://medium.com/@patrykpoborca/dagger-2-and-base-classes-generics-and-presenter-injection-7d82053080c#.vec03i3vz)
3 | 4 | ### 2016-03-30
5 | + [Bash Shell常用快捷键 · hokein/Wiki Wiki](https://github.com/hokein/Wiki/wiki/Bash-Shell%E5%B8%B8%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE)
6 | 7 | ### 2016-03-28
8 | + [Obtaining Names of Method Parameters (The Java™ Tutorials > The Reflection API > Members)](https://docs.oracle.com/javase/tutorial/reflect/member/methodparameterreflection.html)
9 | + [Linux Shell 文本处理工具 | 程序员的资料库](http://codecloud.net/linux-shell-text-tools-7206.html)
10 | 11 | ### 2016-03-27
12 | + [Java 8 Stream on Android — Medium](https://medium.com/@nicopasso/java-8-stream-on-android-c629e4237d5f#.knrk615sm)
13 | 14 | ### 2016-03-26
15 | + [Java 动态代理作用是什么? - 知乎](https://www.zhihu.com/question/20794107)
16 | 17 | ### 2016-03-25
18 | + [simple library publishing with Gradle](http://zserge.com/blog/gradle-maven-publish.html)
19 | 20 | ### 2016-03-24
21 | + [Java Reflection - Dynamic Proxies](http://tutorials.jenkov.com/java-reflection/dynamic-proxies.html)
22 | + [Pagination with RecyclerView — Medium](https://medium.com/@etiennelawlor/pagination-with-recyclerview-1cb7e66a502b#.1bgdqt7ur)
23 | + [Android Library 创建与发布指南 - 简书](http://www.jianshu.com/p/6c6a0619b819)
24 | 25 | ### 2016-03-23
26 | + [Flux Architecture on Android · Luis Valle](http://lgvalle.xyz/2015/08/04/flux-architecture/)
27 | + [AndroidFlux项目一览-Flux架构的Android移植 - 简书](http://www.jianshu.com/p/896ce1a8e4ed)
28 | 29 | ### 2016-03-22
30 | + [Writing a Web Crawler | The Bastards Book of Ruby](http://ruby.bastardsbook.com/chapters/web-crawling/)
31 | + [Parsing HTML with Nokogiri | The Bastards Book of Ruby](http://ruby.bastardsbook.com/chapters/html-parsing/)
32 | 33 | ### 2016-03-21
34 | + [19. crontab 定时任务 — Linux Tools Quick Tutorial](http://linuxtools-rst.readthedocs.org/zh_CN/latest/tool/crontab.html)
35 | + [Redis 命令参考 — Redis 命令参考](http://redisdoc.com/)
36 | 37 | ### 2016-03-19
38 | + [Deploy your code with Capistrano  •  Beanstalk Guides](http://guides.beanstalkapp.com/deployments/deploy-with-capistrano.html)
39 | 40 | ### 2016-03-18
41 | + [How To Deploy a Rails App with Unicorn and Nginx on Ubuntu 14.04 | DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-unicorn-and-nginx-on-ubuntu-14-04)
42 | 43 | ### 2016-03-17
44 | + [capistrano半自动部署rails程序 - 简书](http://www.jianshu.com/p/3417c69a824a)
45 | + [Best Gitter channels for: Android Developers — Android & Tech — Medium](https://medium.com/android-news/best-gitter-channels-for-android-developers-fa9c786a20a#.qrqaa1521)
46 | 47 | ### 2016-03-16
48 | + [RxJava — One Observable, Multiple Subscribers, Same Data — Medium](https://medium.com/@p.tournaris/rxjava-one-observable-multiple-subscribers-7bf497646675#.cvpch28zh)
49 | 50 | ### 2016-03-15
51 | + [Modeling my presentation layer - Christian Panadero](http://panavtec.me/modeling-presentation-layer/)
52 | + [The Ruby Toolbox - Know Your Options!](https://www.ruby-toolbox.com/)
53 | + [推荐 Ruby Gem 列表 - Wiki » Ruby China](https://ruby-china.org/wiki/gems)
54 | 55 | ### 2016-03-14
56 | + [Android Event Handlers — Medium](https://medium.com/@charlesdrews/android-event-handlers-f3681a3c3d8a#.4v7qxaz9f)
57 | 58 | ### 2016-03-13
59 | + [Getting Started with Nokogiri](https://blog.engineyard.com/2010/getting-started-with-nokogiri)
60 | 61 | ### 2016-03-12
62 | + [Finding the best image loading library for Android: Glide! — Medium](https://medium.com/@StenSuitsev/finding-the-best-image-loading-library-for-android-glide-babb450a36b9#.791pcaa6t)
63 | 64 | ### 2016-03-11
65 | + [Dependency injection with Dagger 2 — Producers — Medium](https://medium.com/@froger_mcs/dependency-injection-with-dagger-2-producers-c424ddc60ba3#.pf3sxerex)
66 | + [用Flux架构搭建Android项目ui架构这些事 - 简书](http://www.jianshu.com/p/4b755df66a97)
67 | + [hooopo/direct_web_spider: A direct web spider framworks for Ruby](https://github.com/hooopo/direct_web_spider)
68 | + [sparklemotion/mechanize: Mechanize is a ruby library that makes automated web interaction easy.](https://github.com/sparklemotion/mechanize)
69 | 70 | ### 2016-03-10
71 | + [skimarxall/RxFlux: RxFlux is a small framework in order to follow Flux design pattern with RxJava functionalities](https://github.com/skimarxall/RxFlux)
72 | + [从开发者角度解析 Android N 新特性!](http://gank.io/post/56e0b83c67765963436fcb94)
73 | + [nbarishok/RxMvpAndroid at mvp_experiment: Sample to show how MVP, Clean Architecture and RxJava can help you in building Android App.](https://github.com/nbarishok/RxMvpAndroid/tree/mvp_experiment)
74 | + [On communication between V and P in Android-MVP — Medium](https://medium.com/@nbarishok/on-communication-between-v-and-p-in-android-mvp-16caf773e1a5#.1inrqke6o)
75 | + [Architecting Android with Data Binding and MVVM in mind — COBE Mobile — Medium](https://medium.com/cobe-mobile/architecting-android-with-data-binding-and-mvvm-in-mind-8874bbec0b0d#.in0gmo6sp)
76 | 77 | ### 2016-03-09
78 | + [【译文】RxAndroid and Kotlin (Part1) - 简书](http://www.jianshu.com/p/5a730187c8ff)
79 | 80 | ### 2016-03-08
81 | + [rajaraodv/react-redux-blog: A sample React Redux CRUD app](https://github.com/rajaraodv/react-redux-blog)
82 | + [A Guide For Building A React Redux CRUD App — Medium](https://medium.com/@rajaraodv/a-guide-for-building-a-react-redux-crud-app-7fe0b8943d0f#.33xa21ugv)
83 | + [reactjs/react-tutorial: Code from the React tutorial.](https://github.com/reactjs/react-tutorial)
84 | 85 | ### 2016-03-07
86 | + [4 questions about HandlerThreads — Medium](https://medium.com/@ali.muzaffar/have-you-read-my-article-on-using-concurrency-to-improve-performance-9bc8420e247#.np2o1gog4)
87 | 88 | ### 2016-03-05
89 | + [Simple Ripple + Reveal + Elevation tutorial](http://trickyandroid.com/simple-ripple-reveal-elevation-tutorial/)
90 | 91 | ### 2016-03-04
92 | + [frogermcs/AndroidDevMetrics: Performance metrics library for Android development (includes dagger2metrics)](https://github.com/frogermcs/androiddevmetrics)
93 | + [AndroidDevMetrics — app performance metrics for Android development — Medium](https://medium.com/@froger_mcs/androiddevmetrics-app-performance-metrics-for-android-development-eb854dfd9712#.rucgtjs4i)
94 | 95 | ### 2016-03-03
96 | + [Java, Ruby, and Go, Oh My! — Free Code Camp — Medium](https://medium.freecodecamp.com/java-ruby-and-go-oh-my-6b5577ba2bc2#.5n6x84tuq)
97 | + [frogermcs/GithubClient: Example of Github API client implemented on top of Dagger 2 DI framework.](https://github.com/frogermcs/GithubClient)
98 | + [Dependency injection with Dagger 2 - Custom scopes – froger_mcs dev blog – Coding with love {❤️}](http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/)
99 | 100 | ### 2016-03-02
101 | + [petehunt/react-howto at 6f09237b19773764a1fc35becf03b767548491ff: Your guide to the (sometimes overwhelming!) React ecosystem.](https://github.com/petehunt/react-howto/tree/6f09237b19773764a1fc35becf03b767548491ff)
102 | + [Component (Dagger (Parent) 2.1-SNAPSHOT API)](http://google.github.io/dagger/api/latest/dagger/Component.html)
103 | 104 | ### 2016-03-01
105 | + [lgvalle/android-flux-todo-app: Example of how to implement an Android TODO App using Facebook Flux Architecture](https://github.com/lgvalle/android-flux-todo-app)
106 | + [Android App 架构 “Flux” - 简书](http://www.jianshu.com/p/918719151e72)
107 | + [曾经用过的几种Android”架构“ - 简书](http://www.jianshu.com/p/e7b6ff1bc360)
108 | + [DBinding权威使用指南 - 作业部落 Cmd Markdown 编辑阅读器](https://www.zybuluo.com/shark0017/note/256112)
109 | 110 | -------------------------------------------------------------------------------- /2016-04.md: -------------------------------------------------------------------------------- 1 | ### 2016-04-28
2 | + [suan/vim-instant-markdown: Instant Markdown previews from VIm!](https://github.com/suan/vim-instant-markdown)
3 | + [alswl/octopress-category-list: Tag cloud plugin for Octopress](https://github.com/alswl/octopress-category-list)
4 | 5 | ### 2016-04-27
6 | + [me115/design_patterns: 图说设计模式](https://github.com/me115/design_patterns)
7 | + [ECMAScript 6入门](http://es6.ruanyifeng.com/)
8 | 9 | ### 2016-04-26
10 | + [Octopress Plugins - Usage & Examples - Octopress](http://octopress.org/docs/plugins/)
11 | + [Liquid for Designers · Shopify/liquid Wiki](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers)
12 | + [Octopress Pagination](https://gist.github.com/vassilis/3418476)
13 | + [Variables - Jekyll • Simple, blog-aware, static sites](http://jekyllrb.com/docs/variables/)
14 | + [Liquid for Designers · Shopify/liquid Wiki](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers)
15 | 16 | ### 2016-04-25
17 | + [为 Octopress 添加多说评论系统 - Havee's Space](http://havee.me/internet/2013-02/add-duoshuo-commemt-system-into-octopress.html#comments)
18 | 19 | ### 2016-04-24
20 | + [翻译:nginx入门指引(一) - 编程世界是无尽的荒野 - SegmentFault](https://segmentfault.com/a/1190000002990165)
21 | + [EC2 & Mina & Octopress Deploy.rb](https://gist.github.com/japellerano/9670540)
22 | 23 | ### 2016-04-23
24 | + [octothemes/octopress-chinese: Octopress in simplified Chinese locale.](https://github.com/octothemes/octopress-chinese)
25 | + [Getting Started with Octopress](http://webdesign.tutsplus.com/tutorials/getting-started-with-octopress--webdesign-11442)
26 | 27 | ### 2016-04-22
28 | + [Background Jobs with Resque - Jumpstart Lab Curriculum](http://tutorials.jumpstartlab.com/topics/performance/background_jobs.html)
29 | 30 | ### 2016-04-21
31 | + [Setting Up and Rendering Markdown and Code Highlighting with Ruby on Rails | The Crentist](http://thecrentist.com/setting-up-rendering-markdown-highlighting-ruby-on-rails/)
32 | + [Syntax Highlighting in Ruby on Rails — Blog by Marcin Szczepaniak —](http://crabonature.pl/posts/17-syntax-highlighting-in-ruby-on-rails)
33 | + [Markdown in Ruby on Rails — Blog by Marcin Szczepaniak —](http://crabonature.pl/posts/16-markdown-in-ruby-on-rails)
34 | + [Rouge](http://rouge.jneen.net/)
35 | + [RxMarbles: Interactive diagrams of Rx Observables](http://rxmarbles.com/)
36 | + [How to append text to a file with Ruby | alvinalexander.com](http://alvinalexander.com/blog/post/ruby/example-how-append-text-to-file-ruby)
37 | + [octopress/octopress: Octopress 3.0 – Jekyll's Ferrari](https://github.com/octopress/octopress)
38 | + [3rd Party Octopress Themes · imathis/octopress Wiki](https://github.com/imathis/octopress/wiki/3rd-Party-Octopress-Themes)
39 | + [Octopress themes and plugins | OctopressThemes](http://octopressthemes.com/#)
40 | 41 | ### 2016-04-20
42 | + [How to append text to a file with Ruby | alvinalexander.com](http://alvinalexander.com/blog/post/ruby/example-how-append-text-to-file-ruby)
43 | + [Learn Git Branching](http://pcottle.github.io/learnGitBranching/)
44 | + [Home · google/agera Wiki](https://github.com/google/agera/wiki)
45 | 46 | ### 2016-04-18
47 | + [RxJava 与 Retrofit 结合的最佳实践](http://gank.io/post/56e80c2c677659311bed9841)
48 | 49 | ### 2016-04-17
50 | + [android10/frodo: Android Library for Logging RxJava Observables and Subscribers.](https://github.com/android10/frodo)
51 | 52 | ### 2016-04-15
53 | + [Sequence diagrams with VIM and PlantUML | zbz5.net](http://www.zbz5.net/sequence-diagrams-vim-and-plantuml)
54 | + [Debugging RxJava on Android – Fernando Cejas](http://fernandocejas.com/2015/11/05/debugging-rxjava-on-android/)
55 | 56 | ### 2016-04-13
57 | + [给 JavaScript 初心者的 ES2015 实战](http://gank.io/post/564151c1f1df1210001c9161)
58 | 59 | ### 2016-04-12
60 | + [Instrumentation Testing with Dagger, Mockito, and Espresso](http://engineering.circle.com/instrumentation-testing-with-dagger-mockito-and-espresso/)
61 | + [[TUT] How to run Robolectric JUnit tests in Android Studio | Blundell](http://blog.blundellapps.co.uk/how-to-run-robolectric-junit-tests-in-android-studio/)
62 | 63 | ### 2016-04-11
64 | + [ariejan de vroom](https://ariejan.net/2010/06/10/cherry-picking-specific-commits-from-another-branch/)
65 | 66 | ### 2016-04-09
67 | + [JetBrains/ideavim: Vim emulation plug-in for IDEs based on the IntelliJ platform.](https://github.com/JetBrains/ideavim)
68 | 69 | ### 2016-04-08
70 | + [Dagger 2 Dependency Injection for Android Developers — Medium](https://medium.com/@methodsignature/dagger-2-dependency-injection-for-android-developers-51d60e7397e6#.gke5cmi7z)
71 | 72 | ### 2016-04-06
73 | + [workarounds/bundler: Type safe way to pass bundles, intents and arguments in android](https://github.com/workarounds/bundler)
74 | + [Jake Wharton:用 Retrofit 2.0 简化 HTTP 请求 - Realm is a mobile database: a replacement for SQLite & Core Data](https://realm.io/cn/news/droidcon-jake-wharton-simple-http-retrofit-2/)
75 | + [Top 10 JavaScript Articles from Last Month. — Mybridge for Professionals — Medium](https://medium.mybridge.co/top-10-javascript-articles-from-last-month-a4ea71a5dc48#.4cfbpdlzc)
76 | 77 | ### 2016-04-05
78 | + [Java遍历HashMap并修改(remove) | Dumbee](http://dumbee.net/archives/41)
79 | + [Stay/PullRecycler: recyclerview](https://github.com/Stay/PullRecycler)
80 | 81 | ### 2016-04-04
82 | + [使用Gradle发布项目到JCenter仓库 | Rocko's blog](http://rocko.xyz/2015/02/02/%E4%BD%BF%E7%94%A8Gradle%E5%8F%91%E5%B8%83%E9%A1%B9%E7%9B%AE%E5%88%B0JCenter%E4%BB%93%E5%BA%93/)
83 | + [Patterns in a Rails Gemfile | Brandon Hilkert](http://brandonhilkert.com/blog/patterns-in-a-rails-gemfile/)
84 | 85 | ### 2016-04-03
86 | + [Selector最佳实践 - 作业部落 Cmd Markdown 编辑阅读器](https://www.zybuluo.com/shark0017/note/333443)
87 | + [Java 8 in Android N Preview — Medium](https://medium.com/@sergii/java-8-in-android-n-preview-76184e2ab7ad#.1q6sdu9e1)
88 | + [javan/whenever: Cron jobs in Ruby](https://github.com/javan/whenever)
89 | + [Automated Tasks with Cron and Rake - Jumpstart Lab Curriculum](http://tutorials.jumpstartlab.com/topics/systems/automation.html)
90 | 91 | ### 2016-04-02
92 | + [How to Display (List) All Jobs in Cron / Crontab | Liquid Web Knowledge Base](http://www.liquidweb.com/kb/how-to-display-list-all-jobs-in-cron-crontab/)
93 | + [How to check if a cron job ran | Benjamin Cane](http://bencane.com/2011/11/02/did-my-cronjob-run/)
94 | 95 | ### 2016-04-01
96 | + [2016年JavaScript技术栈展望_javaScript 教程_w3cplus](http://www.w3cplus.com/javascript/state-of-the-art-javascript-in-2016.html)
97 | 98 | -------------------------------------------------------------------------------- /2016-05.md: -------------------------------------------------------------------------------- 1 | ### 2016-05-28
2 | + [Deco - React Native IDE](https://www.decosoftware.com/download)
3 | 4 | ### 2016-05-27
5 | + [Endless Scrolling with AdapterViews · codepath/android_guides Wiki](https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews)
6 | + [trello/RxLifecycle: Lifecycle handling APIs for Android apps using RxJava](https://github.com/trello/RxLifecycle)
7 | 8 | ### 2016-05-26
9 | + [探究 LayoutInflater setFactory](https://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650820263&idx=1&sn=f7cbcf70570decc064fa5f05531e2c5d&scene=0&key=f5c31ae61525f82e78df81d830e55d9a76720e4f91ee3e6543440de517ecd7671367875a9e7f4a7e5ae93e23f5f0f0da&ascene=0&uin=NDIxMTU4Njgw&devicetype=iMac+MacBookPro11%2C2+OSX+OSX+10.11.4+build(15E65)&version=11020201&pass_ticket=hS6rInXZXsnw%2FCbKo3ESI2FvKh2KVrPK9DklL%2Bq9Y%2Bp0cVbnpnjnJsXY4nO43uXp)
10 | 11 | ### 2016-05-25
12 | + [gson/UserGuide.md at master · google/gson](https://github.com/google/gson/blob/master/UserGuide.md)
13 | + [Vim | Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim)
14 | 15 | ### 2016-05-23
16 | + [Codementor | Instant 1:1 Help from Expert Developers](https://www.codementor.io/)
17 | + [Gazler/githug: Git your game on!](https://github.com/Gazler/githug)
18 | + [ubiratansoares/rxassertions: Nice AssertJ assertions for RxJava](https://github.com/ubiratansoares/rxassertions)
19 | 20 | ### 2016-05-20
21 | + [Loading data from multiple sources with RxJava](http://blog.danlew.net/2015/06/22/loading-data-from-multiple-sources-with-rxjava/)
22 | + [Eloquent JavaScript](http://eloquentjavascript.net/)
23 | + [Observable Operators - Reactive Framework (Rx) Wiki](http://rxwiki.wikidot.com/observable-operators)
24 | + [Getting Started | Nuclide](https://nuclide.io/docs/quick-start/getting-started/)
25 | 26 | ### 2016-05-19
27 | + [Dependency injection with Dagger 2 - the API – froger_mcs dev blog – Coding with love {❤️}](http://frogermcs.github.io/dependency-injection-with-dagger-2-the-api/)
28 | + [简介 | ECMAScript 6入门](https://wohugb.gitbooks.io/ecmascript-6/content/docs/intro.html)
29 | + [es6features/README.md at master · lukehoban/es6features](https://github.com/lukehoban/es6features/blob/master/README.md)
30 | 31 | ### 2016-05-17
32 | + [Android Studio Tips Of the Day - Roundup #2](http://www.developerphil.com/android-studio-tips-of-the-day-roundup-2/)
33 | 34 | ### 2016-05-11
35 | + [Introduction | Learn Javascript](https://gitbookio.gitbooks.io/javascript/content/)
36 | + [JS函数式编程指南 - GitBook](https://www.gitbook.com/book/llh911001/mostly-adequate-guide-chinese/details)
37 | + [shiraji/permissions-dispatcher-plugin: IntelliJ plugin for supporting PermissionsDispatcher](https://github.com/shiraji/permissions-dispatcher-plugin)
38 | + [Permissionsdispatcher by hotchemi](http://hotchemi.github.io/PermissionsDispatcher/)
39 | 40 | ### 2016-05-10
41 | + [raycoarana/tesela: Tesela simplifies dealing with background threads and UI work in Model-View-Presenter](https://github.com/raycoarana/tesela)
42 | 43 | ### 2016-05-09
44 | + [hvisser / android-apt — Bitbucket](https://bitbucket.org/hvisser/android-apt)
45 | + [auto/README.md at master · google/auto](https://github.com/google/auto/blob/master/service%2FREADME.md)
46 | + [square/javapoet: A Java API for generating .java source files.](https://github.com/square/javapoet)
47 | 48 | ### 2016-05-08
49 | + [打造一个 Android 的注解库 - Gemini @ SegmentFault - SegmentFault](https://segmentfault.com/a/1190000002785541)
50 | + [Java SE 7 Java Annotation Processing Tool (APT)-related APIs and Developer Guides](http://docs.oracle.com/javase/7/docs/technotes/guides/apt/)
51 | + [Annotation 示例、概念及作用、分类、自定义、解析,并对几个 Android 开源库 Annotation 原理进行简析](http://www.trinea.cn/android/java-annotation-android-open-source-analysis/)
52 | + [Annotation实战【自定义AbstractProcessor】 - 小文字 - 博客园](http://www.cnblogs.com/avenwu/p/4173899.html)
53 | + [Instant Run: How Does it Work?! — Google Developers — Medium](https://medium.com/google-developers/instant-run-how-does-it-work-294a1633367f#.ekv4g6czq)
54 | + [00ec454/Ask: Android runtime permission make easy](https://github.com/00ec454/Ask)
55 | 56 | ### 2016-05-07
57 | + [mzule/ActivityRouter: Router activities.](https://github.com/mzule/ActivityRouter)
58 | + [Butter Knife](http://jakewharton.github.io/butterknife/)
59 | 60 | ### 2016-05-03
61 | + [Retrofit 2 — Simple Error Handling](https://futurestud.io/blog/retrofit-2-simple-error-handling)
62 | + [yuxingxin/RxJava-Essentials-CN: RxJava Essentials 中文翻译版 仅供交流学习使用,严禁商业用途](https://github.com/yuxingxin/RxJava-Essentials-CN)
63 | 64 | -------------------------------------------------------------------------------- /2016-06.md: -------------------------------------------------------------------------------- 1 | ### 2016-06-30
2 | + [Instagram + Android: Four Years Later — Instagram Engineering](https://engineering.instagram.com/instagram-android-four-years-later-927c166b0201#.e49xbe9ha)
3 | 4 | ### 2016-06-29
5 | + [Uploading Files With Secure Copy (SCP) | Web Development | George Mason University](http://webdev.gmu.edu/uploading-files-with-secure-copy-scp/)
6 | 7 | ### 2016-06-17
8 | + [How To Install Ruby on Rails on CentOS 6 with RVM | DigitalOcean](https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm)
9 | + [Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude and Zypper - Part 9](http://www.tecmint.com/linux-package-management/)
10 | + [20 Practical Examples of RPM Commands in Linux](http://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/)
11 | 12 | ### 2016-06-16
13 | + [tbruyelle/RxPermissions: Android runtime permissions powered by RxJava](https://github.com/tbruyelle/RxPermissions)
14 | 15 | ### 2016-06-15
16 | + [The Real Best Practices to Save/Restore Activity's and Fragment's state. (StatedFragment is now deprecated) :: The Cheese Factory](https://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en)
17 | + [RxMarbles: Interactive diagrams of Rx Observables](http://rxmarbles.com/)
18 | 19 | ### 2016-06-12
20 | + [Android 扫描二维码的实现(简化zxing) - Gemini @ SegmentFault - SegmentFault](https://segmentfault.com/a/1190000003945592)
21 | 22 | ### 2016-06-07
23 | + [The AspectJTM Programming Guide](https://eclipse.org/aspectj/doc/released/progguide/index.html)
24 | + [AspectJ and Eclipse Programming](http://andrewclement.blogspot.com/)
25 | 26 | ### 2016-06-06
27 | + [tpope/vim-fugitive: fugitive.vim: a Git wrapper so awesome, it should be illegal](https://github.com/tpope/vim-fugitive)
28 | + [tmhedberg/SimpylFold: No-BS Python code folding for Vim](https://github.com/tmhedberg/SimpylFold)
29 | + [Vim与Python真乃天作之合| 编程派 | Coding Python](http://codingpy.com/article/vim-and-python-match-in-heaven/)
30 | + [你也用Vim写Java代码? - enalix - SegmentFault](https://segmentfault.com/a/1190000005642590)
31 | + [开发必读丨老司机乱谈编辑器之神——vim](https://mp.weixin.qq.com/s?__biz=MzAxMzYyNDkyNA==&mid=402307832&idx=1&sn=1dfcbb0ac9c02a064ae42f68dbb98ef3&scene=0&key=710a5d99946419d9881763c1d00761dd6cb1f38e0d4d7d4566eab5a82508c14505784eab00c0db22ebe630095d3aa0f9&ascene=0&uin=ODU2NjQ0ODgx&devicetype=iMac+MacBookPro12%2C1+OSX+OSX+10.11.3+build(15D21)&version=11020201&pass_ticket=CMI0LVk9rFrnWJaJpsVatU8ttg%2Fhhop%2Bt9KxgD%2FfTbg40kIbgU4par4UHnuWR52P)
32 | 33 | ### 2016-06-05
34 | + [Getting Started with Redux - Course by @dan_abramov @eggheadio](https://egghead.io/courses/getting-started-with-redux)
35 | + [Getting Started with Redux - Course by @dan_abramov @eggheadio](https://egghead.io/courses/getting-started-with-redux)
36 | + [22 Amazing open source React projects — Mybridge for Professionals](https://medium.mybridge.co/22-amazing-open-source-react-projects-cb8230ec719f#.cz5hscdrg)
37 | 38 | ### 2016-06-04
39 | + [A quick introduction to React — Startup Rocket](https://articles.startuprocket.com/a-quick-introduction-to-react-e083fb2bebf2#.usguh2zhz)
40 | + [luin/medis: Medis is a beautiful, easy-to-use Mac database management application for Redis.](https://github.com/luin/medis)
41 | + [Android Aspect Oriented Programming // Speaker Deck](https://speakerdeck.com/android10/android-aspect-oriented-programming)
42 | 43 | ### 2016-06-03
44 | + [appcompat v21: material design for pre-Lollipop devices! · Chris Banes](https://chris.banes.me/2014/10/17/appcompat-v21/)
45 | + [DEMYSTIFYING RXJAVA SUBSCRIBERS on Vimeo](https://vimeo.com/144812843)
46 | + [Demystifying RxJava Subscribers (Øredev 2015) // Speaker Deck](https://speakerdeck.com/jakewharton/demystifying-rxjava-subscribers-oredev-2015)
47 | + [AutoValue Extensions (Square NYC, March 2016) // Speaker Deck](https://speakerdeck.com/jakewharton/autovalue-extensions-square-nyc-march-2016)
48 | 49 | ### 2016-06-02
50 | + [RxJava | CodePath Android Cliffnotes](http://guides.codepath.com/android/RxJava#avoiding-memory-leaks)
51 | 52 | ### 2016-06-01
53 | + [square/dagger-intellij-plugin: An IntelliJ IDEA plugin for Dagger which provides insight into how injections and providers are used.](https://github.com/square/dagger-intellij-plugin)
54 | + [kgmyshin/eventbus3-intellij-plugin](https://github.com/kgmyshin/eventbus3-intellij-plugin)
55 | + [[翻译]关于Vertical-Align你需要知道的事情 - 弗里得木 - SegmentFault](https://segmentfault.com/a/1190000002668492)
56 | 57 | -------------------------------------------------------------------------------- /2016-07.md: -------------------------------------------------------------------------------- 1 | ### 2016-07-26
2 | + [ECMAScript 6 扫盲 | 小胡子哥的个人网站](http://www.barretlee.com/blog/2016/07/09/a-kickstarter-guide-to-writing-es6/)
3 | 4 | ### 2016-07-25
5 | + [Create Apps with No Configuration | React](https://facebook.github.io/react/blog/2016/07/22/create-apps-with-no-configuration.html)
6 | + [React App](http://localhost:3000/)
7 | 8 | ### 2016-07-20
9 | + [RxJava 教程第二部分:事件流基础之 创建事件流 - 云在千峰](http://blog.chengyunfeng.com/?p=959)
10 | + [RxJava 教程第一部分:入门之 生命周期管理 - 云在千峰](http://blog.chengyunfeng.com/?p=954)
11 | + [RxJava 教程第一部分:入门之 关键的类 - 云在千峰](http://blog.chengyunfeng.com/?p=948)
12 | 13 | ### 2016-07-18
14 | + [RxJava 教程第四部分:并发 之数据流发射太快如何办 - 云在千峰](http://blog.chengyunfeng.com/?p=981)
15 | + [SSL/TLS协议运行机制的概述 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html)
16 | 17 | ### 2016-07-05
18 | + [Linux文件远程拷贝命令scp的使用](https://mp.weixin.qq.com/s?__biz=MzI4MDEwNzAzNg==&mid=2649443523&idx=1&sn=5d703e6fef0b3663b5a4478c32fe45eb&scene=0&key=77421cf58af4a653d41594a5a8462300159a4c001822e7044563c3dc9de486f1d272d2804faf0eb2876082c67639bb37&ascene=0&uin=MjQ4MzEzMDQ0Mw%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11+build(15A284)&version=11020201&pass_ticket=R6REXYW6pBsbIMHmYlBkhbmv2JT6guoCSlHn%2BTgmILq%2BMg%2Bicnqi34F4k9nbalSJ)
19 | 20 | ### 2016-07-02
21 | + [Top 10 Mobile Design Articles for the Past Month. (v.June) — Mybridge for Professionals](https://medium.mybridge.co/top-10-mobile-design-articles-for-the-past-month-v-june-c071376e2828#.i217591dg)
22 | 23 | ### 2016-07-01
24 | + [Instagram + Android: Four Years Later — Instagram Engineering](https://engineering.instagram.com/instagram-android-four-years-later-927c166b0201#.dw9tcv3vc)
25 | 26 | -------------------------------------------------------------------------------- /2016-08.md: -------------------------------------------------------------------------------- 1 | ### 2016-08-31
2 | + [从 __proto__ prototype 说起](http://varnull.cn/cong-__proto__-prototype-shuo-qi/)
3 | 4 | ### 2016-08-30
5 | + [Robolectric介绍 - 磁针石 的个人空间 - 开源中国社区](http://my.oschina.net/u/1433482/blog/630344)
6 | 7 | ### 2016-08-28
8 | + [译:编辑器之战: Vim的复仇 - 今日头条(TouTiao.com)](http://toutiao.com/a6322423873547632897/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
9 | 10 | ### 2016-08-26
11 | + [Disciple.Ding Blog](http://discipled.daoapp.io/#/posts/es2015)
12 | 13 | ### 2016-08-24
14 | + [yangyangwithgnu/use_vim_as_ide: use vim as IDE](https://github.com/yangyangwithgnu/use_vim_as_ide)
15 | + [99%的人都理解错了HTTP中GET与POST的区别](https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4&key=cf237d7ae24775e84233995a5e341e5ba0731f22358cf69be2c2fb9920cf061b9fe8c0ce350a6ebeb16b7cf538d930aa&ascene=0&uin=MjQ4MzEzMDQ0Mw%3D%3D&devicetype=iMac+MacBookPro11%2C4+OSX+OSX+10.11+build(15A284)&version=12000006&nettype=WIFI&fontScale=100&pass_ticket=IobJOL2u2DGQAb%2Bp5%2FlRjmsGlRs%2FKg8CSCz6tjGCgNc54BT9%2FScW65CIP0VwT9rv)
16 | + [关于MultiDex方案的一点研究与思考 - 简书](http://www.jianshu.com/p/33f22b21ef1e)
17 | + [[译]Android Application启动流程分析 - 简书](http://www.jianshu.com/p/a5532ecc8377)
18 | + [二维码的基础原理是什么? | 草料二维码技术博客](http://cli.im/news/10601)
19 | + [二维码的生成细节和原理 | 酷 壳 - CoolShell.cn](http://coolshell.cn/articles/10590.html)
20 | 21 | ### 2016-08-23
22 | + [JavaScript 中的相等性判断 - JavaScript | MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness)
23 | 24 | ### 2016-08-21
25 | + [Vim Cheat Sheet - English](http://vim.rtorr.com/)
26 | 27 | ### 2016-08-19
28 | + [](https://www.google.com/_/chrome/newtab?espv=2&ie=UTF-8)
29 | + [5.2 代码回滚:Reset、Checkout、Revert的选择 · geeeeeeeeek/git-recipes Wiki](https://github.com/geeeeeeeeek/git-recipes/wiki/5.2-%E4%BB%A3%E7%A0%81%E5%9B%9E%E6%BB%9A%EF%BC%9AReset%E3%80%81Checkout%E3%80%81Revert%E7%9A%84%E9%80%89%E6%8B%A9)
30 | 31 | ### 2016-08-18
32 | + [Junit 3 vs Junit 4 Comparison](http://www.asjava.com/junit/junit-3-vs-junit-4-comparison/)
33 | + [](https://ece.uwaterloo.ca/~cmoreno/ece250/2012-02-01--hash_tables.pdf)
34 | + [Wang/Jenkins Hash算法 – d0evi1的博客](http://d0evi1.com/wang-jenkins-hash/)
35 | + [Java HashMap 源码解析终极版](http://www.woaitqs.cc/program/2015/04/14/read-source-code-about-hashmap)
36 | + [My WorkdaySingle-word Wang/Jenkins Hash in ConcurrentHashMap - My Workday](http://www.goworkday.com/2010/03/19/single-word-wangjenkins-hash-concurrenthashmap/)
37 | + [按位与、或、异或等运算方法 - 编程的数学原理 - 博客频道 - CSDN.NET](http://blog.csdn.net/21aspnet/article/details/7387373)
38 | 39 | ### 2016-08-17
40 | + [[问答]HashMap有哪些考察点? · Issue #109 · android-cn/android-discuss](https://github.com/android-cn/android-discuss/issues/109)
41 | + [Round Up To Power Of Two - 小胖轩](http://androiddevelop.coding.me/2015/08/28/round-up-to-power-of-two/)
42 | + [attentiveness/reading: iReading App Write In React-Native](https://github.com/attentiveness/reading)
43 | 44 | ### 2016-08-16
45 | + [实例教学:使用 D3.js 实现数据可视化 - 前端外刊评论 - 知乎专栏](https://zhuanlan.zhihu.com/p/21897086)
46 | 47 | ### 2016-08-15
48 | + [Ruby on Rails IDE :: JetBrains RubyMine](https://www.jetbrains.com/ruby/)
49 | + [rizzatti/dash.vim: Search Dash.app from Vim](https://github.com/rizzatti/dash.vim#readme)
50 | 51 | ### 2016-08-10
52 | + [搭建开发环境 - react native 中文网](http://reactnative.cn/docs/0.31/getting-started.html#content)
53 | + [Demo Flexbox 1](http://codepen.io/HugoGiraudel/pen/LklCv)
54 | + [一个完整的Flexbox指南_flexbox, CSS3 教程_w3cplus](http://www.w3cplus.com/css3/a-guide-to-flexbox.html)
55 | 56 | ### 2016-08-08
57 | + [React Native 开发之 IDE 选型和配置](http://www.infoq.com/cn/articles/react-native-ide)
58 | + [从var func=function 和 function func()区别谈Javascript的预解析机制 - 很好玩 - 博客园](http://www.cnblogs.com/shytong/p/5100426.html)
59 | 60 | ### 2016-08-05
61 | + [Gson全解析(下)-Gson性能分析 - 简书](http://www.jianshu.com/p/17a68d4fffbe)
62 | + [HotFix介绍及使用总结 - 简书](http://www.jianshu.com/p/6f0ae1e364d9)
63 | + [DI框架Dagger2系统性学习-不容错过的干货 - 简书](http://www.jianshu.com/p/d8dd55956e74)
64 | + [Vim下以16进制查看, 修改文本 - AfterSummer - 博客园](http://www.cnblogs.com/meibenjin/archive/2012/12/06/2806396.html)
65 | 66 | ### 2016-08-04
67 | + [Developer Center — Documentation and SDKs | Oculus](https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-studio-debug/)
68 | 69 | ### 2016-08-03
70 | + [密码算法详解——AES - ReadingLover - 博客园](http://www.cnblogs.com/luop/p/4334160.html)
71 | 72 | ### 2016-08-02
73 | + [kokke/tiny-AES128-C: Small portable AES128 in C](https://github.com/kokke/tiny-AES128-C)
74 | + [](ftp://ftp.gnupg.org/GnuPG/contrib/rsa.c)
75 | + [Android Studio中NDK开发](http://www.race604.com/android-studio-with-ndk/)
76 | + [Org mode for Emacs – Your Life in Plain Text](http://orgmode.org/)
77 | + [[译]FaceBook出品:开始用FlatBuffers替换老旧的Json吧 - 简书](http://www.jianshu.com/p/48e1511fcb4a)
78 | 79 | ### 2016-08-01
80 | + [YBlog - Learn Vim Progressively](http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/)
81 | + [10 Terminal Commands That Will Boost Your Productivity](http://code.tutsplus.com/articles/10-terminal-commands-that-will-boost-your-productivity--net-14105)
82 | + [Vim Awesome](http://vimawesome.com/)
83 | + [syl20bnr/spacemacs: A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!](https://github.com/syl20bnr/spacemacs)
84 | + [wklken/k-vim: vim配置](https://github.com/wklken/k-vim)
85 | + [Vim 和 Emacs 分别适合哪些人群?优劣势的对比如何?相应的,有哪些值得推荐的入门教程呢? - 文本编辑器 - 知乎](https://www.zhihu.com/question/19836903)
86 | + [Exploring Hidden Java Costs (360|AnDev, July 2016) // Speaker Deck](https://speakerdeck.com/jakewharton/exploring-hidden-java-costs-360-andev-july-2016)
87 | + [你应该知道的 iTerm2 使用方法--MAC终端工具](http://wulfric.me/2015/08/iterm2/)
88 | + [Emacs (简体中文) - ArchWiki](https://wiki.archlinux.org/index.php/Emacs_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87))
89 | + [mukeshsolanki/MarkdownView-Android: MarkdownView is an Android webview with the capability of loading Markdown text or file and display it as HTML, it extends Android webview.](https://github.com/mukeshsolanki/MarkdownView-Android)
90 | 91 | -------------------------------------------------------------------------------- /2016-09.md: -------------------------------------------------------------------------------- 1 | ### 2016-09-29
2 | + [构建和运行您的应用 | Android Studio](https://developer.android.com/studio/run/index.html#instant-run)
3 | + [清华大学 TUNA 镜像源 | Tsinghua Open Source Mirror](https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/)
4 | + [Interesting React-Native projects to learn from](https://android.jlelse.eu/interesting-react-native-projects-to-learn-from-caf6ad1efd1f#.9lrjec3h8)
5 | 6 | ### 2016-09-27
7 | + [Android leak pattern: subscriptions in views – Square Corner Blog – Medium](https://medium.com/square-corner-blog/android-leak-pattern-subscriptions-in-views-18f0860aa74c#.t8pxyull4)
8 | + [Android Handler Internals – Medium](https://medium.com/@jagsaund/android-handler-internals-b5d49eba6977#.dzrtoeoum)
9 | + [Awesome pre-launch reports for Alpha/Beta APK’s – Medium](https://medium.com/@AruLNadhaN/awesome-pre-launch-reports-for-alpha-beta-apks-9960ac5c403c#.54kt5pdzv)
10 | + [Whats in the APK? · Crushing C.O.D.E](http://crushingcode.co/whats-in-the-apk/)
11 | 12 | ### 2016-09-26
13 | + [Example · pxb1988/dex2jar Wiki](https://github.com/pxb1988/dex2jar/wiki/Example)
14 | + [Writing Custom Plugins - Gradle User Guide Version 3.1](https://docs.gradle.org/current/userguide/custom_plugins.html)
15 | + [微信Android热补丁实践演进之路 - 简书](http://www.jianshu.com/p/7e5967524947)
16 | + [Overview (Android Gradle API)](http://google.github.io/android-gradle-dsl/javadoc/current/)
17 | 18 | ### 2016-09-25
19 | + [Gradle学习系列之二——创建Task的多种方法 - 无知者云 - 博客园](http://www.cnblogs.com/davenkin/p/gradle-learning-2.html)
20 | 21 | ### 2016-09-24
22 | + [深入理解Android之Gradle - Innost的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/innost/article/details/48228651)
23 | + [Maven实战(六)——Gradle,构建工具的未来?](http://www.infoq.com/cn/news/2011/04/xxb-maven-6-gradle#anch67507)
24 | 25 | ### 2016-09-23
26 | + [Android 新一代编译 toolchain Jack & Jill 简介 | Taobao FED | 淘宝前端团队](http://taobaofed.org/blog/2016/05/05/new-compiler-for-android/)
27 | 28 | ### 2016-09-22
29 | + [Gradle学习系列之二——创建Task的多种方法 - 无知者云 - 博客园](http://www.cnblogs.com/davenkin/p/gradle-learning-2.html)
30 | + [nuptboyzhb/AndroidInstantRun: Android Instant Run原理分析](https://github.com/nuptboyzhb/AndroidInstantRun)
31 | 32 | ### 2016-09-21
33 | + [You Might Not Need Redux – Medium](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367#.mnxj5hs3v)
34 | + [Where to Hold React Component Data: state, store, static, and this](https://medium.freecodecamp.com/where-do-i-belong-a-guide-to-saving-react-component-data-in-state-store-static-and-this-c49b335e2a00#.phaxe2f0y)
35 | + [redux/compose.md at master · reactjs/redux](https://github.com/reactjs/redux/blob/master/docs/api/compose.md)
36 | 37 | ### 2016-09-20
38 | + [Symbols in ECMAScript 6](http://www.2ality.com/2014/12/es6-symbols.html)
39 | + [深入解析 ES6:Symbol | bubkoo](http://bubkoo.com/2015/07/24/es6-in-depth-symbols/)
40 | 41 | ### 2016-09-19
42 | + [JavaScript Promises](https://davidwalsh.name/promises)
43 | + [fetch API](https://davidwalsh.name/fetch)
44 | + [React Router 使用教程 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2016/05/react_router.html)
45 | + [Introduction | React Router 中文文档](https://react-guide.github.io/react-router-cn/)
46 | 47 | ### 2016-09-18
48 | + [Presentational and Container Components – Medium](https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#.smzjgng5o)
49 | + [Object.assign() - JavaScript | MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
50 | + [Step by Step Guide To Building React Redux Apps – Medium](https://medium.com/@rajaraodv/step-by-step-guide-to-building-react-redux-apps-using-mocks-48ca0f47f9a#.c4rvxnw68)
51 | 52 | ### 2016-09-17
53 | + [用React+Redux+ES6写一个最傻瓜的Hello World - Jarvis - SegmentFault](https://segmentfault.com/a/1190000004355491)
54 | + [The Skeptic’s Guide To React Native](https://shift.infinite.red/the-skeptic-s-guide-to-react-native-41677361dc23#.copb5to9q)
55 | 56 | ### 2016-09-15
57 | + [9 Quick JavaScript Tips to Improve Your Code Pt1 – Frontend Weekly – Medium](https://medium.com/@AlexDevero/9-quick-javascript-tips-to-improve-your-code-pt1-1fa1b1b9b36d#.53jpba8gz)
58 | + [RxJava Tidbits #2: Parallelism with Observable.zip() – RxJava Tidbits – Medium](https://medium.com/rxjava-tidbits/rxjava-tidbits-2-parallelism-with-observable-zip-6ef3c5a61a22#.yvm0ywtg8)
59 | + [React-Redux Basics – Medium](https://medium.com/@MKulinski/react-redux-basics-a36914c0035d#.m4qg8grnk)
60 | 61 | ### 2016-09-14
62 | + [通往全栈工程师的捷径 —— React](http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=401107957&idx=1&sn=200418877771f656c1a0ab33ad407516&scene=1&srcid=1119XfFA8t5QQprIjzp76fcr&key=ff7411024a07f3ebf6601418be94ccd6219ed18e580029547278b6eadd5def524defc8dbfdfcf673a7daa87723cfa4bb&ascene=0&uin=NTYzMDc5MTc1&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.11.1+build(15B42)&version=11020201&pass_ticket=a82zcv0P%2B6ztN4xgcdnD%2FWtFbQjxhMOiiUJGZVbk6FUhTeozLqrMlGuES%2FvVmaI0)
63 | 64 | ### 2016-09-12
65 | + [Which Tech Should You Learn Now? – JavaScript Scene – Medium](https://medium.com/javascript-scene/which-tech-should-you-learn-now-5705748c1b14#.y1goc7a4t)
66 | + [React/React Native 的ES5 ES6写法对照表 | 论坛 - React Native中文社区](http://bbs.reactnative.cn/topic/15/react-react-native-%E7%9A%84es5-es6%E5%86%99%E6%B3%95%E5%AF%B9%E7%85%A7%E8%A1%A8)
67 | 68 | ### 2016-09-09
69 | + [让人倾倒的 11 个 Npm Trick · 文蔺的前端之路](http://www.wemlion.com/2016/eleven-npm-tricks-that-will-knock-your-wombat-socks-off/)
70 | + [Master the JavaScript Interview: What is Function Composition? – JavaScript Scene – Medium](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-function-composition-20dfb109a1a0#.3e19ca6jy)
71 | + [Supercharge JavaScript development in Atom – Medium](https://medium.com/@satya164/supercharged-javascript-development-in-atom-ea034e22eabc#.iv05c1bbb)
72 | + [Supercharge JavaScript development in Atom – Medium](https://medium.com/@satya164/supercharged-javascript-development-in-atom-ea034e22eabc#.iv05c1bbb)
73 | + [Using CSS Flexible Boxes - CSS | MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Using_CSS_flexible_boxes)
74 | + [My First ‘React Native’ Application — A basic Image Grid — by a UI developer – Medium](https://medium.com/@sravanrekandar/my-first-react-native-application-a-basic-image-grid-by-a-ui-developer-72467f49793b#.hwz4c7bij)
75 | + [My First ‘React Native’ Application — A basic Image Grid — by a UI developer – Medium](https://medium.com/@sravanrekandar/my-first-react-native-application-a-basic-image-grid-by-a-ui-developer-72467f49793b#.hwz4c7bij)
76 | + [Getting Started with the UI  |  Closure Compiler  |  Google Developers](https://developers.google.com/closure/compiler/docs/gettingstarted_ui)
77 | + [Learn CSS Flexbox in 3 Minutes – Learning New Stuff – Medium](https://medium.com/learning-new-stuff/learn-css-flexbox-in-3-minutes-c616c7070672#.o5lawkw0n)
78 | 79 | ### 2016-09-08
80 | + [How Jekyll works · jekyll/jekyll Wiki](https://github.com/jekyll/jekyll/wiki/How-Jekyll-works)
81 | 82 | ### 2016-09-06
83 | + [Easily Create Java Agents with Byte Buddy](https://www.infoq.com/articles/Easily-Create-Java-Agents-with-ByteBuddy)
84 | + [Byte Buddy - runtime code generation for the Java virtual machine](http://bytebuddy.net/#/)
85 | + [raphw/byte-buddy: Runtime code generation for the Java virtual machine.](https://github.com/raphw/byte-buddy)
86 | + [dijingran/asm-demo: show how ASM works](https://github.com/dijingran/asm-demo)
87 | + [](http://asm.ow2.org/current/asm-transformations.pdf)
88 | + [计数排序 - 维基百科,自由的百科全书](https://zh.wikipedia.org/wiki/%E8%AE%A1%E6%95%B0%E6%8E%92%E5%BA%8F)
89 | 90 | ### 2016-09-04
91 | + [facebookincubator/create-react-app: Create React apps with no build configuration.](https://github.com/facebookincubator/create-react-app)
92 | + [React入门教程 - 组件生命周期 · Fraser Xu](https://fraserxu.me/2014/08/31/react-component-lifecycle/)
93 | 94 | ### 2016-09-03
95 | + [Learn ES2015 · Babel](http://babeljs.io/docs/learn-es2015/#enhanced-object-literals)
96 | + [for...of - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of)
97 | + [Learn ES2015 · Babel](http://babeljs.io/docs/learn-es2015/)
98 | 99 | ### 2016-09-02
100 | + [React Native Android 通信原理](https://longv2go.github.io/2016/02/02/react-android-%E9%80%9A%E4%BF%A1%E5%8E%9F%E7%90%86.html?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
101 | 102 | ### 2016-09-01
103 | + [数据迁移 | DBFlow 官方教程](https://yumenokanata.gitbooks.io/dbflow-tutorials/content/migrations.html)
104 | 105 | -------------------------------------------------------------------------------- /2016-10.md: -------------------------------------------------------------------------------- 1 | ### 2016-10-31
2 | + [Writing Custom Task Classes - Gradle User Guide Version 3.1](https://docs.gradle.org/current/userguide/custom_tasks.html)
3 | + [Writing Custom Plugins - Gradle User Guide Version 3.1](https://docs.gradle.org/current/userguide/custom_plugins.html)
4 | 5 | ### 2016-10-29
6 | + [Dalvik Optimization and Verification With dexopt](http://linghaolu.github.io/dalvik/2016/08/16/dalvik-dexopt.html)
7 | + [dexopt优化和验证Dalvik (Dalvik Optimization and Verification With dexopt) - 87426628的日志 - 网易博客](http://87426628.blog.163.com/blog/static/6069361820139481045937/)
8 | + [Master the JavaScript Interview: What is a Closure? – JavaScript Scene – Medium](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-closure-b2f0d2152b36#.4ulrbl55f)
9 | 10 | ### 2016-10-28
11 | + [程序员必读书单 1.0 | Lucida](http://lucida.me/blog/developer-reading-list/#javascript)
12 | 13 | ### 2016-10-27
14 | + [位运算之巧用 - alighters](http://alighters.com/blog/2016/10/27/bit-skill/)
15 | 16 | ### 2016-10-26
17 | + [计算机原理](http://202.197.191.206:8080/23/text/ch02/se03/part2/2_3_2.htm)
18 | 19 | ### 2016-10-24
20 | + [简化markdown写作中的贴图流程 | Weishu's Notes](http://weishu.me/2015/10/16/simplify-the-img-upload-in-markdown/)
21 | 22 | ### 2016-10-22
23 | + [如何使用Android Studio开发Gradle插件 - 区长的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/sbsujjbcy/article/details/50782830)
24 | + [美团Android DEX自动拆包及动态加载简介 -](http://tech.meituan.com/mt-android-auto-split-dex.html)
25 | + [别人家的面试题:不用加减乘除,求整数的7倍 - 十年踪迹的博客](https://www.h5jun.com/post/multiply7.html)
26 | + [构建神器Gradle | Jason's Blog](http://jiajixin.cn/2015/08/07/gradle-android/)
27 | + [使用Gradle生成一个App的不同版本,且可以同时安装在一个手机上 - When Go meets Raspberry Pi](http://hugozhu.myalert.info/2014/08/03/50-use-gradle-to-customize-apk-build.html)
28 | + [Gradle tip #3-Task顺序 - 大头鬼Bruce - 博客频道 - CSDN.NET](http://blog.csdn.net/lzyzsd/article/details/46935405)
29 | 30 | ### 2016-10-21
31 | + [Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串 - Felix021 - 借我一束光照亮黯淡](https://www.felix021.com/blog/read.php?2040)
32 | + [Exploring the Android Design Support Library: Bottom Navigation View – Medium](https://medium.com/@hitherejoe/exploring-the-android-design-support-library-bottom-navigation-drawer-548de699e8e0#.1to32idug)
33 | + [剖析 Android ART Runtime (2) – dex2oat - Mingshen Sun @ CUHK](https://mssun.me/blog/android-art-runtime-2-dex2oat.html)
34 | + [How apps are built and run on the Android Runtime (ART) – Medium](https://medium.com/@HeadFirstDroid/how-apps-are-built-and-run-on-the-android-runtime-art-c027f73edb09#.9fdk57bor)
35 | + [dex2oat程序参数总结 - Roland_Sun的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/roland_sun/article/details/50234551)
36 | + [How Android Apps are Built and Run · dogriffiths/HeadFirstAndroid Wiki](https://github.com/dogriffiths/HeadFirstAndroid/wiki/How-Android-Apps-are-Built-and-Run)
37 | + [递归为什么那么慢?递归的改进算法 - 简书](http://www.jianshu.com/p/6bdc8e3637f2)
38 | 39 | ### 2016-10-20
40 | + [Android’s multidex slows down app startup – Groupon Engineering – Medium](https://medium.com/groupon-eng/android-s-multidex-slows-down-app-startup-d9f10b46770f#.6f1rn5ogq)
41 | 42 | ### 2016-10-19
43 | + [如何将 Vim 打造成一个成熟的 IDE](http://mp.weixin.qq.com/s?__biz=MzA4MjEyNTA5Mw==&mid=2652564237&idx=1&sn=fcc8e48d80d7d85c19cb2bc82d458787&chksm=8464c347b3134a51c2373d69e03e284be9d49121b50c342d8337c7b538f19a07a0dd990466ad&scene=0#rd)
44 | + [Java 7 源码学习系列(三)——BigInteger-HollisChuang's Blog](http://www.hollischuang.com/archives/176)
45 | + [【面试】BigInteger的部分实现【转】 - 宋轶山 - ITeye技术网站](http://songyishan.iteye.com/blog/1026042)
46 | + [一些不起眼但非常有用的Vim命令](http://mp.weixin.qq.com/s?__biz=MzI4MDEwNzAzNg==&mid=2649443719&idx=1&sn=00fe9294fd6cb1ba2f7da059024984d7&chksm=f3a26cf4c4d5e5e2682d0b1a3eb6f5ffddfd99127c54bde26b3f0c349b7a7542c69b97e2c149&scene=0#rd)
47 | 48 | ### 2016-10-17
49 | + [Android Plugin 2.2 DSL Reference](http://google.github.io/android-gradle-dsl/current/)
50 | 51 | ### 2016-10-15
52 | + [Installing and configuring Java on Mac OS X](http://members.wolfram.com/meng/pages/computing/installing_and_configuring/installing_and_configuring_Java_on_Mac_OS_X/#.WAIf2pN96Aw)
53 | + [Developing | Android Open Source Project](http://source.android.com/source/developing.html)
54 | + [Profiling with Traceview and dmtracedump | Android Studio](https://developer.android.com/studio/profile/traceview.html)
55 | 56 | ### 2016-10-14
57 | + [Using Shadowsocks with Command Line Tools · shadowsocks/shadowsocks Wiki](https://github.com/shadowsocks/shadowsocks/wiki/Using-Shadowsocks-with-Command-Line-Tools)
58 | 59 | ### 2016-10-13
60 | + [proxifier注册码以及配合shadowsocks上网 - 科学上网](http://gooday.xyz/proxifier%E6%B3%A8%E5%86%8C%E7%A0%81%E4%BB%A5%E5%8F%8A%E9%85%8D%E5%90%88shadowsocks%E4%B8%8A%E7%BD%91/)
61 | 62 | ### 2016-10-12
63 | + [Android tasks | Gradle Plugin User Guide 中文版](https://avatarqing.gitbooks.io/gradlepluginuserguidechineseverision/content/basic_project/android_tasks.html)
64 | + [React Native Android 通信原理](https://longv2go.github.io/2016/02/02/react-android-%E9%80%9A%E4%BF%A1%E5%8E%9F%E7%90%86.html)
65 | + [React Native运行原理解析 - xiangzhihong8的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/xiangzhihong8/article/details/52623852)
66 | 67 | ### 2016-10-11
68 | + [Android JNI和NDK学习(03)--动态方式实现JNI - 如果天空不死 - 博客园](http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html)
69 | + [Learn CSS Flexbox in 3 Minutes – Learning New Stuff – Medium](https://medium.com/learning-new-stuff/learn-css-flexbox-in-3-minutes-c616c7070672#.v38dt8o8f)
70 | + [我对 React Native 的理解和看法 - Div.IO](http://div.io/topic/851)
71 | 72 | ### 2016-10-10
73 | + [运行 React Native 的默认工程 UIExplorer | Mystra](http://www.wangchenlong.org/2016/04/07/1604/071-rn-uiexplorer/)
74 | + [React-Native系列Android——Native与Javascript通信原理(三) - MegatronKings的博客 - 博客频道 - CSDN.NET](http://blog.csdn.net/MegatronKings/article/details/51195110)
75 | + [React-Native系列Android——Native与Javascript通信原理(一) - MegatronKings的博客 - 博客频道 - CSDN.NET](http://blog.csdn.net/megatronkings/article/details/51114278)
76 | + [React-Native系列Android——Native与Javascript通信原理(一) - MegatronKings的博客 - 博客频道 - CSDN.NET](http://blog.csdn.net/megatronkings/article/details/51114278)
77 | + [React Native 从入门到原理 - 简书](http://www.jianshu.com/p/978c4bd3a759)
78 | + [AndroidDev/React Native On Android.md at master · TsinStudio/AndroidDev](https://github.com/TsinStudio/AndroidDev/blob/master/React%20Native%20On%20Android.md)
79 | 80 | ### 2016-10-08
81 | + [pbpaste & pbcopy in Mac OS X (or: Terminal + Clipboard = Fun!)](https://langui.sh/2010/11/14/pbpaste-pbcopy-in-mac-os-x-or-terminal-clipboard-fun/)
82 | 83 | ### 2016-10-01
84 | + [Gradle User Guide Version 3.1 (Single Page)](https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies)
85 | 86 | -------------------------------------------------------------------------------- /2016-11.md: -------------------------------------------------------------------------------- 1 | ### 2016-11-29
2 | + [理解Android进程创建流程 - 安卓 - 伯乐在线](http://android.jobbole.com/82752/)
3 | + [Android启动过程深入解析 - 安卓 - 伯乐在线](http://android.jobbole.com/67931/)
4 | + [Linux进程地址空间学习(一)](http://www.choudan.net/2013/10/24/Linux%E8%BF%9B%E7%A8%8B%E5%9C%B0%E5%9D%80%E7%A9%BA%E9%97%B4%E5%AD%A6%E4%B9%A0(%E4%B8%80).html)
5 | + [进程地址空间与虚拟存储空间的理解 - 游手好弦 信步涂鸦 - 博客频道 - CSDN.NET](http://blog.csdn.net/do2jiang/article/details/4690967)
6 | 7 | ### 2016-11-28
8 | + [程序计数器_百度百科](http://baike.baidu.com/view/178145.htm)
9 | + [【Linux操作系统分析】计算机是怎样工作的 - suzhou - 博客园](http://www.cnblogs.com/suzhou/archive/2013/05/15/3639011.html#3454841)
10 | + [linux中fork()函数详解(原创!!实例讲解) - jason的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/jason314/article/details/5640969)
11 | + [UNIX高级环境编程(9)进程控制(Process Control)- fork,vfork,僵尸进程,wait和waitpid - suzhou - 博客园](http://www.cnblogs.com/suzhou/p/4348978.html)
12 | + [fork_互动百科](http://www.baike.com/wiki/fork)
13 | + [fork_互动百科](http://www.baike.com/wiki/fork)
14 | 15 | ### 2016-11-26
16 | + [Android 5.1 Lollipop的Zygote分析——上篇 | 码农故事](http://www.iloveandroid.net/2015/09/21/Zygote_1/)
17 | 18 | ### 2016-11-25
19 | + [Android 5.1 Lollipop的Zygote分析——下篇 | 码农故事](http://www.iloveandroid.net/2015/09/21/Zygote_2/)
20 | + [Android 6.0 系统学习之 Zygote | JudyMaxiee's blog](http://www.judymax.com/archives/1118)
21 | + [Android系统启动-zygote篇 - Gityuan博客](http://gityuan.com/2016/02/13/android-zygote/)
22 | + [初探boot.art与boot.oat | 码农故事](http://www.iloveandroid.net/2015/12/19/AndroidART-2/)
23 | 24 | ### 2016-11-24
25 | + [Android启动过程深入解析 - 安卓 - 伯乐在线](http://android.jobbole.com/67931/)
26 | 27 | ### 2016-11-23
28 | + [Mastering the Terminal side of Android development – Medium](https://medium.com/@cesarmcferreira/mastering-the-terminal-side-of-android-development-e7520466c521#.ogitl2pxu)
29 | 30 | ### 2016-11-22
31 | + [通过 python 调用 adb 命令实现用元素名称、id、class 定位元素 · TesterHome](https://testerhome.com/topics/1047)
32 | 33 | ### 2016-11-21
34 | + [[方法论]如何阅读一本书? - Yet Another Thoughts](http://conndots.github.io/2016/11/19/how_read_a_book/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
35 | 36 | ### 2016-11-17
37 | + [深入理解Android(一):Gradle详解](http://www.infoq.com/cn/articles/android-in-depth-gradle)
38 | 39 | ### 2016-11-16
40 | + [【Android进阶】android:configChanges属性总结 - 博客频道 - CSDN.NET](http://blog.csdn.net/zhaokaiqiang1992/article/details/19921703)
41 | 42 | ### 2016-11-15
43 | + [Android Bander设计与实现 - 设计篇 - universus的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/universus/article/details/6211589)
44 | + [Binder学习指南 - 简书](http://www.jianshu.com/p/af2993526daf)
45 | 46 | ### 2016-11-11
47 | + [我的年度书单](http://mp.weixin.qq.com/s?__biz=MzIxMjAzMDA1MQ==&mid=2648945669&idx=1&sn=ccb59f33a3ac3c34de13f083effa7bf2&chksm=8f5b5309b82cda1fefd6c7c10c0838aaf94af55bd254f3199bf4b2b3fbb9fdf63ab06e379493#rd)
48 | 49 | ### 2016-11-10
50 | + [Binder学习指南 - 简书](http://www.jianshu.com/p/af2993526daf)
51 | 52 | ### 2016-11-04
53 | + [JVM、ASM - xiejuntao的个人空间 - 开源中国社区](https://my.oschina.net/xiejuntao/blog/151910)
54 | 55 | ### 2016-11-03
56 | + [ASM - Bytecode Outline plugin for Eclipse](http://asm.ow2.org/eclipse/index.html)
57 | 58 | ### 2016-11-02
59 | + [Android Gradle Learnings: Hooking into Android Tasks](http://gregloesch.com/dev/2015/08/19/Android-Gradle-Learnings.html)
60 | + [52-technologies-in-2016/README.md at master · shekhargulati/52-technologies-in-2016](https://github.com/shekhargulati/52-technologies-in-2016/blob/master/31-gradle-tips/README.md)
61 | 62 | ### 2016-11-01
63 | + [三十分钟学会AWK - AICODE.CC - SegmentFault](https://segmentfault.com/a/1190000007338373?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
64 | + [自定义Gradle插件(二) - liuhongwei123888的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/liuhongwei123888/article/details/50542104)
65 | + [自定义Gradle插件(一) - liuhongwei123888的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/liuhongwei123888/article/details/50541759)
66 | 67 | -------------------------------------------------------------------------------- /2017-02.md: -------------------------------------------------------------------------------- 1 | ### 2017-02-28
2 | + [深度了解Android 7.0 ,你准备好了吗? - 腾讯WeTest](http://wetest.qq.com/lab/view/288.html?from=content_toutiao&hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
3 | 4 | ### 2017-02-23
5 | + [轻量级插件化框架——Small - 简书](http://www.jianshu.com/p/7990714d10cb)
6 | 7 | ### 2017-02-22
8 | + [一线公司 Android 面试题,你会几道?](http://mp.weixin.qq.com/s?__biz=MzI1ODQ3NDA2Mg==&mid=2247483912&idx=1&sn=531f724312c0504413c705047a74877a&chksm=ea06eb29dd71623fe7d4ad2b6875bff57d9cf08d0b34832371f89872f0a71b117262de04cacc&mpshare=1&scene=1&srcid=0216jZbW2gN7KyEgvDkP6hNq#rd)
9 | + [Android GC 从dalvik到ART的改进分析 | cruise yang](http://cruise1008.github.io/2016/03/30/Android-GC-%E4%BB%8Edalvik%E5%88%B0ART%E7%9A%84%E6%94%B9%E8%BF%9B%E5%88%86%E6%9E%90/)
10 | + [【原创】【Android】揭秘 ART 细节 ---- Garbage collection - 空之弧 - 博客园](http://www.cnblogs.com/jinkeep/p/3818180.html)
11 | + [Android 5.0 ART GC 对比 Android 4.x Dalvik GC | 毛宏斌的博客](http://hello2mao.github.io/2015/12/11/ART_GC_VS_Dalvik_GC.html)
12 | + [Tinker - 作业部落 Cmd Markdown 编辑阅读器](https://www.zybuluo.com/dodola/note/554061)
13 | 14 | ### 2017-02-21
15 | + [微信Tinker的一切都在这里,包括源码(一)](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286384&idx=1&sn=f1aff31d6a567674759be476bcd12549&scene=4#wechat_redirect)
16 | + [2017 年你应该尝试的 25 个 Android 库 - 极光日报 - 知乎专栏](https://zhuanlan.zhihu.com/p/25324711?hmsr=toutiao.io&refer=jiguang-daily&utm_medium=toutiao.io&utm_source=toutiao.io)
17 | + [Android N混合编译与对热补丁影响解析](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286341&idx=1&sn=054d595af6e824cbe4edd79427fc2706&scene=0#wechat_redirect)
18 | + [JVM学习(1)——通过实例总结Java虚拟机的运行机制 - 木棉和木槿 - 博客园](http://www.cnblogs.com/kubixuesheng/p/5199200.html)
19 | 20 | ### 2017-02-20
21 | + [从表到里学习JVM实现](https://www.douban.com/doulist/2545443/)
22 | + [tinker源码研读(一):补丁生成之DexDiff原理简析 | HalfStackDeveloper](https://halfstackdeveloper.github.io/2016/10/19/tinker%E6%BA%90%E7%A0%81%E7%A0%94%E8%AF%BB%EF%BC%88%E4%B8%80%EF%BC%89%EF%BC%9A%E8%A1%A5%E4%B8%81%E7%94%9F%E6%88%90%E4%B9%8BDexDiff%E5%8E%9F%E7%90%86%E7%AE%80%E6%9E%90/)
23 | 24 | ### 2017-02-08
25 | + [Dalvik虚拟机JNI方法的注册过程分析 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/8923483)
26 | 27 | ### 2017-02-07
28 | + [【死磕Java并发】—–深入分析synchronized的实现原理-cmsblogs-chenssy](http://cmsblogs.com/?hmsr=toutiao.io&p=2071&utm_medium=toutiao.io&utm_source=toutiao.io)
29 | 30 | ### 2017-02-06
31 | + [android 中 dumpsys 命令使用 · TesterHome](https://testerhome.com/topics/1462)
32 | 33 | ### 2017-01-29
34 | + [www.baidu.com](data:text/html,chromewebdata)
35 | 36 | ### 2017-01-24
37 | + [Binder系列2—Binder Driver再探 - Gityuan博客](http://gityuan.com/2015/11/02/binder-driver-2/)
38 | 39 | ### 2017-01-19
40 | + [彻底理解Android Binder通信架构 - Gityuan博客](http://gityuan.com/2016/09/04/binder-start-service/)
41 | 42 | ### 2017-01-18
43 | + [Binder系列6—获取服务(getService) - Gityuan博客](http://gityuan.com/2015/11/15/binder-get-service/)
44 | + [Binder系列5—注册服务(addService) - Gityuan博客](http://gityuan.com/2015/11/14/binder-add-service/)
45 | 46 | ### 2017-01-17
47 | + [Binder系列4—获取ServiceManager - Gityuan博客](http://gityuan.com/2015/11/08/binder-get-sm/)
48 | 49 | ### 2017-01-16
50 | + [一个前端开发工程师的Vim跟IDE一样 - 埋名 - SegmentFault](https://segmentfault.com/a/1190000008097357?utm_source=gank.io&utm_medium=email)
51 | + [Binder系列—开篇 - Gityuan博客](http://gityuan.com/2015/10/31/binder-prepare/)
52 | + [彻底理解Android Binder通信架构 - Gityuan博客](http://gityuan.com/2016/09/04/binder-start-service/)
53 | 54 | ### 2017-01-13
55 | + [其实没那么复杂!探究react-native通信机制 | zjutkz's blog](http://zjutkz.net/2016/05/03/%E5%85%B6%E5%AE%9E%E6%B2%A1%E9%82%A3%E4%B9%88%E5%A4%8D%E6%9D%82%EF%BC%81%E6%8E%A2%E7%A9%B6react-native%E9%80%9A%E4%BF%A1%E6%9C%BA%E5%88%B6/)
56 | 57 | ### 2017-01-12
58 | + [A Beginner's Guide to npm — the Node Package Manager](https://www.sitepoint.com/beginners-guide-node-package-manager/)
59 | 60 | ### 2017-01-11
61 | + [Dalvik虚拟机简要介绍和学习计划 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/8852432)
62 | + [Android ART运行时无缝替换Dalvik虚拟机的过程分析 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/18006645)
63 | 64 | ### 2017-01-07
65 | + [OSI七层与TCP/IP五层网络架构详解](http://www.ha97.com/3215.html)
66 | 67 | ### 2017-01-06
68 | + [Java中Synchronized的用法 - 阳光日志 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoweifu/article/details/46613015)
69 | + [Java线程同步:synchronized锁住的是代码还是对象 - 叉叉哥的BLOG - 博客频道 - CSDN.NET](http://blog.csdn.net/xiao__gui/article/details/8188833)
70 | 71 | ### 2017-01-05
72 | + [async 函数的含义和用法 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2015/05/async.html)
73 | + [谜之RxJava (三)update 2 —— subscribeOn 和 observeOn 的区别 - Gemini @ SegmentFault - SegmentFault](https://segmentfault.com/a/1190000004856071)
74 | 75 | ### 2017-01-04
76 | + [体验异步的终极解决方案-ES7的Async/Await - CNode技术社区](https://cnodejs.org/topic/5640b80d3a6aa72c5e0030b6)
77 | 78 | ### 2016-12-30
79 | + [Code Push for React Native – Medium](https://medium.com/@0xfa11dead/code-push-for-react-native-8031e702158c#.e25ezrbex)
80 | + [Code Push 热更新使用详细说明和教程 | 论坛 - React Native中文社区](http://bbs.reactnative.cn/topic/725/code-push-%E7%83%AD%E6%9B%B4%E6%96%B0%E4%BD%BF%E7%94%A8%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E5%92%8C%E6%95%99%E7%A8%8B)
81 | 82 | ### 2016-12-29
83 | + [解决npm 的 shasum check failed for错误(npm注册国内镜像介绍) - Mr.稻 帅(学以致用是一种习惯!) - 博客频道 - CSDN.NET](http://blog.csdn.net/enson16855/article/details/23299787)
84 | + [linux中shell变量$#,$@,$0,$1,$2的含义解释 - fhefh - 博客园](http://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html)
85 | 86 | ### 2016-12-28
87 | + [3 ways to solve java.lang.NoClassDefFoundError in Java J2EE](http://javarevisited.blogspot.com/2011/06/noclassdeffounderror-exception-in.html)
88 | + [10 Must See Web Apps & Games – JavaScript Scene – Medium](https://medium.com/javascript-scene/10-must-see-web-apps-games-36ab9ca60754#.pxmvbm94c)
89 | + [Why Native Apps Really are Doomed: Native Apps are Doomed pt 2 – JavaScript Scene – Medium](https://medium.com/javascript-scene/why-native-apps-really-are-doomed-native-apps-are-doomed-pt-2-e035b43170e9#.glidntejp)
90 | 91 | ### 2016-12-27
92 | + [mainDexClasses脚本分析](http://coolpers.github.io/multidex/maindexclasses/2015/04/23/mainDexClasses%E8%84%9A%E6%9C%AC%E5%88%86%E6%9E%90.html)
93 | + [shell中>/dev/null 2>&1是什么鬼? | 夜有所思,日有所梦](http://www.kissyu.org/2016/12/25/shell%E4%B8%AD%3E%20:dev:null%202%20%3E%20&1%E6%98%AF%E4%BB%80%E4%B9%88%E9%AC%BC%EF%BC%9F/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
94 | 95 | ### 2016-12-26
96 | + [Android Tip: adb reverse | Grio Blog](http://blog.grio.com/2015/07/android-tip-adb-reverse.html)
97 | 98 | ### 2016-12-23
99 | + [Mixing 32- and 64-bit Dependencies in Android - Corbt blog](https://corbt.com/posts/2015/09/18/mixing-32-and-64bit-dependencies-in-android.html)
100 | + [Working With Files - Gradle User Guide Version 3.2.1](https://docs.gradle.org/current/userguide/working_with_files.html)
101 | 102 | ### 2016-12-22
103 | + [Android MultiDex 实践:如何绕过那些坑? - 掘金](https://gold.xitu.io/entry/5705b2712e958a0057a5f735)
104 | + [npm scripts 使用指南 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html)
105 | 106 | ### 2016-12-21
107 | + [原生 Android 项目集成 React Native | 慌不要慌](https://danke77.github.io/2016/10/17/react-native-embedding-android/)
108 | 109 | ### 2016-12-20
110 | + [Gradle 命令行的基本使用 - Gradle 使用指南 - 极客学院Wiki](http://wiki.jikexueyuan.com/project/gradle/using-the-gradle-command-line.html)
111 | 112 | ### 2016-12-18
113 | + [嘿!让我们来手动编译安卓项目吧 - 泡在网上的日子](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0603/4331.html)
114 | 115 | ### 2016-12-16
116 | + [Android源码的下载、编译与导入到Android Studio | 湫水长天](http://wl9739.github.io/2016/05/09/Android%E6%BA%90%E7%A0%81%E7%9A%84%E4%B8%8B%E8%BD%BD%E3%80%81%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AF%BC%E5%85%A5%E5%88%B0Android-Studio/)
117 | 118 | ### 2016-12-15
119 | + [Android - The dark side of Jack and Jill](http://trickyandroid.com/the-dark-world-of-jack-and-jill/)
120 | 121 | ### 2016-12-13
122 | + [» hdiutil 一米马](http://www.1mima.com/tag/hdiutil/)
123 | + [How to debug Gradle script](http://georgik.sinusgear.com/2014/06/23/how-to-debug-gradle-script/)
124 | 125 | ### 2016-12-12
126 | + [Experimental New Android Tool Chain - Jack and Jill - Android Studio Project Site](http://tools.android.com/tech-docs/jackandjill)
127 | 128 | ### 2016-12-10
129 | + [使用 Java 8 语言功能 | Android Developers](https://developer.android.com/guide/platform/j8-jack.html)
130 | + [Getting Started · Building Java Projects with Gradle](https://spring.io/guides/gs/gradle/)
131 | 132 | ### 2016-12-09
133 | + [How to distribute your own Android library through jCenter and Maven Central from Android Studio :: The Cheese Factory](https://inthecheesefactory.com/blog/how-to-upload-library-to-jcenter-maven-central-as-dependency/en)
134 | 135 | ### 2016-12-08
136 | + [Android 新一代编译 toolchain Jack & Jill 简介 | Taobao FED | 淘宝前端团队](http://taobaofed.org/blog/2016/05/05/new-compiler-for-android/)
137 | + [Compiling with Jack | Android Open Source Project](https://source.android.com/source/jack.html#the_jack_toolchain)
138 | + [Experimental New Android Tool Chain - Jack and Jill - Android Studio Project Site](http://tools.android.com/tech-docs/jackandjill)
139 | + [内存管理概述、内存分配与释放、地址映射机制(mm_struct, vm_area_struct)、malloc/free 的实现 - Meditation - 博客频道 - CSDN.NET](http://blog.csdn.net/jnu_simba/article/details/11757473)
140 | 141 | ### 2016-12-07
142 | + [Top 20 Navigation Features in IntelliJ IDEA – Medium](https://medium.com/@andrey_cheptsov/top-20-navigation-features-in-intellij-idea-ed8c17075880#.uiam2boex)
143 | + [3.5.2 页式虚拟存储器](http://share.onlinesjtu.com/mod/tab/view.php?id=209)
144 | + [​一道面试题:说说进程和线程的区别](http://mp.weixin.qq.com/s/f_OezOorxInJqzx8WT7x2g)
145 | 146 | ### 2016-12-06
147 | + [3.5.1 虚拟存储器基本原理](http://share.onlinesjtu.com/mod/tab/view.php?id=208)
148 | 149 | ### 2016-12-05
150 | + [虚拟内存_百度百科](http://baike.baidu.com/view/976.htm)
151 | + [Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一) - AderStep - 博客频道 - CSDN.NET](http://blog.csdn.net/gatieme/article/details/51383272)
152 | + [linux进程描述符task_struct详解 - hongchangfirst - 博客频道 - CSDN.NET](http://blog.csdn.net/hongchangfirst/article/details/7075026)
153 | + [Linux进程地址管理之mm_struct - Rofael - 博客园](http://www.cnblogs.com/Rofael/archive/2013/04/13/3019153.html)
154 | 155 | ### 2016-12-02
156 | + [Android JNI原理分析 - Gityuan博客](http://gityuan.com/2016/05/28/android-jni/)
157 | + [Android开篇 - Gityuan博客](http://gityuan.com/android/)
158 | + [LinuxTool/gcc.md at master · guodongxiaren/LinuxTool](https://github.com/guodongxiaren/LinuxTool/blob/master/gcc.md)
159 | 160 | ### 2016-12-01
161 | + [poll(2) - Linux manual page](http://man7.org/linux/man-pages/man2/poll.2.html)
162 | + [poll(2) - Linux manual page](http://man7.org/linux/man-pages/man2/poll.2.html)
163 | + [LINUX系统I/O复用技术之二:poll() - alyssa.cui - 博客园](http://www.cnblogs.com/alyssaCui/archive/2013/04/01/2993886.html)
164 | 165 | -------------------------------------------------------------------------------- /2017-03.md: -------------------------------------------------------------------------------- 1 | ### 2017-03-28
2 | + [Android 进程常驻(0)----MarsDaemon使用说明 - 猫九爷阳果果 - 博客频道 - CSDN.NET](http://blog.csdn.net/marswin89/article/details/50917098)
3 | 4 | ### 2017-03-27
5 | + [Android 加快apk的构建速度,如何把编译时间从130秒降到17秒](http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650822456&idx=1&sn=10c554676ce9cd0efb35bfda8e70c10f&chksm=80b783a6b7c00ab049e2e38b4913f54d672c3e74cda01ec79b1afa1c0ff6d618222a62f90b93&mpshare=1&scene=23&srcid=0327o7cdOGmxlHbsOazgzDQc%23rd)
6 | 7 | ### 2017-03-25
8 | + [Understanding ES6 Classes – devengage – Medium](https://medium.com/papdit/understanding-es6-classes-ada7c14e0213#.xk049ienb)
9 | 10 | ### 2017-03-23
11 | + [Test Driven Android Development](https://android.jlelse.eu/test-driven-android-development-a902b4f69820#.s83fdl5ve)
12 | + [Let’s implement Android Data Binding library in your android app](https://android.jlelse.eu/lets-implement-android-data-binding-in-your-android-app-d6c567c242c9#.9yxkdskkw)
13 | + [Exploring Android O: Notification Channels – Exploring Android – Medium](https://medium.com/exploring-android/exploring-android-o-notification-channels-94cd274f604c#.n1jq8le9e)
14 | 15 | ### 2017-03-22
16 | + [Keep your keys outside Manifest and Gradle](https://android.jlelse.eu/keep-your-keys-outside-manifest-and-gradle-ba44110bafca#.xvyq0zh2r)
17 | + [美团点评前端无痕埋点实践](http://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651746072&idx=1&sn=9d5d78ea4f9c0f2f6059591281dd0e3c&chksm=bd12b6558a653f437ae8304e534235d55c01aa2c9489e85d6193b52f5da00f66927f3ac77c2b&mpshare=1&scene=1&srcid=0321ZYNJfNV3u8AXejoLWa83#rd)
18 | + [几个不错的Android开源音视频播放器](http://mp.weixin.qq.com/s?__biz=MzI0ODQ5MTI3Nw==&mid=2247483697&idx=1&sn=207eaba87e33cd933abfd6a5498613de&chksm=e99ebd53dee93445ad85cc6f07470bcdba7327c6eb191045a5c93e1f23abce01731f5d3b10c1&mpshare=1&scene=1&srcid=0319HEfHxdQTeSpvkaah5zCN#rd)
19 | + [Android逆向从未如此简单 – 大精-wing的地方酒馆](http://androidwing.net/index.php/199)
20 | 21 | ### 2017-03-21
22 | + [Java并发编程:CountDownLatch、CyclicBarrier和Semaphore - 海 子 - 博客园](http://www.cnblogs.com/dolphin0520/p/3920397.html)
23 | + [自动打点Android客户设计文档](http://98ki.com/zi-dong-da-dian-ke-hu-she-ji-yu-shi-xian/)
24 | + [Android 中使用ASM,对Activity生命周期打点统计 - 简书](http://www.jianshu.com/p/b33da498d6ba)
25 | 26 | ### 2017-03-14
27 | + [图解Javascript this指向什么?_慕课手记](http://www.imooc.com/article/1848)
28 | + [文件锁(Filelock) - adm1989 - 博客园](http://www.cnblogs.com/adm1989/archive/2012/11/21/2781355.html)
29 | 30 | ### 2017-03-13
31 | + [Android动态加载基础 ClassLoader工作机制 - 中二病也要开发ANDROID - SegmentFault](https://segmentfault.com/a/1190000004062880)
32 | + [Android安全–Dex文件格式详解](http://www.blogfshare.com/dex-format.html)
33 | + [Android N混合使用AOT编译,解释和JIT三种运行时](http://www.infoq.com/cn/news/2016/04/android-n-aot-jit)
34 | 35 | ### 2017-03-12
36 | + [并发新特性—Lock 锁与条件变量 - Java 并发编程 - 极客学院Wiki](http://wiki.jikexueyuan.com/project/java-concurrency/lock.html)
37 | 38 | ### 2017-03-08
39 | + [Android动态加载基础 ClassLoader工作机制 - 中二病也要开发ANDROID - SegmentFault](https://segmentfault.com/a/1190000004062880)
40 | 41 | ### 2017-03-07
42 | + [Android 7.0应用冷启动流程分析 - 代码之道,编程之法 - 博客频道 - CSDN.NET](http://blog.csdn.net/dd864140130/article/details/60466394)
43 | + [如何调试Android Framework? | Weishu's Notes](http://weishu.me/2016/05/30/how-to-debug-android-framework/)
44 | 45 | ### 2017-03-05
46 | + [Android M doze特性预研](http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=207084007&idx=1&sn=f0d82cfee47b87fcec4f1f55989553e5&3rd=MzA3MDU4NTYzMw==&scene=6#rd)
47 | 48 | ### 2017-03-04
49 | + [QFix探索之路—手Q热补丁轻量级方案 - DEV CLUB](http://dev.qq.com/topic/57ff5832bb8fec206ce2185d)
50 | 51 | ### 2017-03-02
52 | + [【Dev Club 分享第六期】微信热补丁 Tinker 的实践演进之路 - DEV CLUB](http://dev.qq.com/topic/57ad7a70eaed47bb2699e68e)
53 | + [article/ART下的方法内联策略及其对Android热修复方案的影响分析.md at master · WeMobileDev/article](https://github.com/WeMobileDev/article/blob/master/ART%E4%B8%8B%E7%9A%84%E6%96%B9%E6%B3%95%E5%86%85%E8%81%94%E7%AD%96%E7%95%A5%E5%8F%8A%E5%85%B6%E5%AF%B9Android%E7%83%AD%E4%BF%AE%E5%A4%8D%E6%96%B9%E6%A1%88%E7%9A%84%E5%BD%B1%E5%93%8D%E5%88%86%E6%9E%90.md)
54 | + [article/ART下的方法内联策略及其对Android热修复方案的影响分析.md at master · WeMobileDev/article](https://github.com/WeMobileDev/article/blob/master/ART%E4%B8%8B%E7%9A%84%E6%96%B9%E6%B3%95%E5%86%85%E8%81%94%E7%AD%96%E7%95%A5%E5%8F%8A%E5%85%B6%E5%AF%B9Android%E7%83%AD%E4%BF%AE%E5%A4%8D%E6%96%B9%E6%A1%88%E7%9A%84%E5%BD%B1%E5%93%8D%E5%88%86%E6%9E%90.md)
55 | + [article/Android_N混合编译与对热补丁影响解析.md at master · WeMobileDev/article](https://github.com/WeMobileDev/article/blob/master/Android_N%E6%B7%B7%E5%90%88%E7%BC%96%E8%AF%91%E4%B8%8E%E5%AF%B9%E7%83%AD%E8%A1%A5%E4%B8%81%E5%BD%B1%E5%93%8D%E8%A7%A3%E6%9E%90.md)
56 | 57 | ### 2017-03-01
58 | + [在OS X中使用jEnv管理多个Java版本 - Rain-driven Development](http://boxingp.github.io/blog/2015/01/25/manage-multiple-versions-of-java-on-os-x/)
59 | 60 | -------------------------------------------------------------------------------- /2017-05.md: -------------------------------------------------------------------------------- 1 | ### 2017-05-31
2 | + [Idiomatic Kotlin. Best Practices.](https://blog.philipphauer.de/idiomatic-kotlin-best-practices/)
3 | 4 | ### 2017-05-28
5 | + [Mindorks | Become a complete and happy Android developer](https://mindorks.com/blog/learn-kotlin-apply-vs-with)
6 | + [Mindorks | Become a complete and happy Android developer](https://mindorks.com/blog/learn-kotlin-destructuring-declarations)
7 | + [Mindorks | Become a complete and happy Android developer](https://mindorks.com/blog/learn-kotlin-data-class)
8 | 9 | ### 2017-05-27
10 | + [Hello, world! - Kotlin - Confluence](https://confluence.jetbrains.com/pages/viewpage.action?pageId=40701079)
11 | + [Become a complete and happy Android developer](https://mindorks.com/blog/learn-kotlin-lateinit-vs-lazy)
12 | 13 | ### 2017-05-26
14 | + [Working with the Command Line Compiler - Kotlin Programming Language](https://kotlinlang.org/docs/tutorials/command-line.html)
15 | + [Resources to Learn Kotlin | Android Developers](https://developer.android.com/kotlin/resources.html#documentation)
16 | + [Why You Must Try Kotlin For Android Development ? – Mindorks](https://blog.mindorks.com/why-you-must-try-kotlin-for-android-development-e14d00c8084b)
17 | 18 | ### 2017-05-24
19 | + [Commit message 和 Change log 编写指南 - 阮一峰的网络日志](http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)
20 | + [Writing a Todo app with Redux on Android – Trikita – Medium](https://medium.com/@trikita/writing-a-todo-app-with-redux-on-android-5de31cfbdb4f)
21 | 22 | ### 2017-05-23
23 | + [Kotlin is like TypeScript](https://gi-no.github.io/kotlin-is-like-typescript/)
24 | + [开发必备—你应该知道的一些 ADB 命令 – 项目经验积累与分享](http://aes.jypc.org/?p=4459)
25 | 26 | ### 2017-05-09
27 | + [TCP协议中的三次握手和四次挥手(图解) - Simple life - 博客频道 - CSDN.NET](http://blog.csdn.net/whuslei/article/details/6667471)
28 | 29 | ### 2017-05-04
30 | + [IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程 - Angelaboy - 博客园](http://www.cnblogs.com/wql025/p/5215193.html)
31 | 32 | ### 2017-05-03
33 | + [Android系统在新进程中启动自定义服务过程(startService)的原理分析 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/6677029)
34 | 35 | ### 2017-05-02
36 | + [Android应用程序启动过程源代码分析 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/6689748)
37 | 38 | ### 2017-04-28
39 | + [Android资源管理框架(Asset Manager)简要介绍和学习计划 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/8738877)
40 | 41 | ### 2017-04-26
42 | + [JavaScript巧学巧用 - 简书](http://www.jianshu.com/p/043fa8dacb68?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
43 | + [C++探索之旅 | 第一部分第二课:C++编程的必要软件 - 简书](http://www.jianshu.com/p/bcdfbf661888?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io)
44 | 45 | ### 2017-04-22
46 | + [Android Bitmap和Canvas学习笔记 - feisky - 博客园](http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html)
47 | 48 | ### 2017-04-19
49 | + [Android开发实践:JNI层线程回调Java函数示例 - Jhuster的专栏 - 51CTO技术博客](http://ticktick.blog.51cto.com/823160/1358558)
50 | 51 | ### 2017-04-18
52 | + [Android IPC - Binder 学习总结 - 简书](http://www.jianshu.com/p/62a07a5c76e5)
53 | + [Android的IPC机制-Binder](http://www.developersite.org/905-118608-android)
54 | 55 | ### 2017-04-17
56 | + [ANR机制以及问题分析](http://duanqz.github.io/2015-10-12-ANR-Analysis#section-8)
57 | 58 | ### 2017-04-11
59 | + [Android应用程序与SurfaceFlinger服务的关系概述和学习计划 - 老罗的Android之旅 - 博客频道 - CSDN.NET](http://blog.csdn.net/luoshengyang/article/details/7846923)
60 | 61 | ### 2017-04-10
62 | + [Android开发之SurfaceView详解 - 泡在网上的日子](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1201/656.html)
63 | 64 | ### 2017-04-07
65 | + [如何设计实现一个LRU Cache? | Yikun](http://yikun.github.io/2015/04/03/%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E5%AE%9E%E7%8E%B0%E4%B8%80%E4%B8%AALRU-Cache%EF%BC%9F/)
66 | + [Android 基于Message的进程间通信 Messenger完全解析 - 泡在网上的日子](http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0723/3216.html)
67 | 68 | ### 2017-04-06
69 | + [深入Android渲染机制 - Chauncey的博客 - 博客频道 - CSDN.NET](http://blog.csdn.net/ccj659/article/details/53219288)
70 | 71 | ### 2017-04-05
72 | + [Android 性能分析工具的使用 - 简书](http://www.jianshu.com/p/cf8c1c43bbae)
73 | + [Java堆:Shallow Size和Retained Size - __kingzone__的专栏 - 博客频道 - CSDN.NET](http://blog.csdn.net/kingzone_2008/article/details/9083327)
74 | + [Android 插件化原理解析——Hook机制之AMS&PMS | Weishu's Notes](http://weishu.me/2016/03/07/understand-plugin-framework-ams-pms-hook/)
75 | 76 | ### 2017-04-01
77 | + [Top 10 Features in Android O – AndroidPub](https://android.jlelse.eu/top-10-features-of-android-o-45f3b866b972)
78 | 79 | -------------------------------------------------------------------------------- /2017-07.md: -------------------------------------------------------------------------------- 1 | ### 2017-06-25
2 | + [学会编写Android Studio插件 别停留在用的程度了 - Hongyang - 博客频道 - CSDN.NET](http://blog.csdn.net/lmj623565791/article/details/51548272)
3 | 4 | ### 2017-06-20
5 | + [alibaba/ARouter: A android router middleware that help app navigating to activities and custom services.](https://github.com/alibaba/ARouter)
6 | 7 | ### 2017-06-15
8 | + [Java IO 压缩流(ZipOutputStream/ZipInputStream) - 开挂的程序猿 - 博客频道 - CSDN.NET](http://blog.csdn.net/dabing69221/article/details/17074763)
9 | 10 | ### 2017-06-14
11 | + [20 Excellent Resources for Learning Kotlin - Tutorialzine](https://tutorialzine.com/2017/05/20-excellent-resources-for-learning-kotlin?utm_term=0_4eb677ad19-97e2bb2890-337838825&utm_content=bufferafd73&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
12 | 13 | ### 2017-06-13
14 | + [Background Processing in Android – Lateral View – Medium](https://medium.com/lateral-view/background-processing-in-android-575fd4ecf769)
15 | 16 | ### 2017-06-12
17 | + [Git merge 時使用 fast-forward 的差別 « lemonup's Blog](http://lemonup.logdown.com/posts/166352-git-merge-fast-forward-difference)
18 | 19 | ### 2017-06-09
20 | + [如何快速正确的安装 Ruby, Rails 运行环境 · Ruby China](https://ruby-china.org/wiki/install_ruby_guide)
21 | + [11.4.6 其他移动光标的技巧 - 51CTO.COM](http://book.51cto.com/art/201205/337185.htm)
22 | 23 | ### 2017-06-08
24 | + [Some of my favorite Kotlin features (that we use a lot in Basecamp)](https://m.signalvnoise.com/some-of-my-favorite-kotlin-features-that-we-use-a-lot-in-basecamp-5ac9d6cea95)
25 | + [How we made Basecamp 3’s Android app 100% Kotlin – Signal v. Noise](https://m.signalvnoise.com/how-we-made-basecamp-3s-android-app-100-kotlin-35e4e1c0ef12)
26 | 27 | ### 2017-06-07
28 | + [Functional Android (II): Collection operations in Kotlin](https://antonioleiva.com/collection-operations-kotlin/)
29 | + [Returns and Jumps - Kotlin Programming Language](https://kotlinlang.org/docs/reference/returns.html)
30 | 31 | ### 2017-06-01
32 | + [How to remove all !! from your Kotlin code – AndroidPub](https://android.jlelse.eu/how-to-remove-all-from-your-kotlin-code-87dc2c9767fb)
33 | + [blog-related/kotlin-idiomatic at master · phauer/blog-related](https://github.com/phauer/blog-related/tree/master/kotlin-idiomatic)
34 | 35 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | 4 | # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 5 | gem 'rails', '4.2.5' 6 | # Use sqlite3 as the database for Active Record 7 | gem 'sqlite3' 8 | # Use SCSS for stylesheets 9 | gem 'sass-rails', '~> 5.0' 10 | # Use Uglifier as compressor for JavaScript assets 11 | gem 'uglifier', '>= 1.3.0' 12 | # Use CoffeeScript for .coffee assets and views 13 | gem 'coffee-rails', '~> 4.1.0' 14 | # See https://github.com/rails/execjs#readme for more supported runtimes 15 | # gem 'therubyracer', platforms: :ruby 16 | 17 | # Use jquery as the JavaScript library 18 | gem 'jquery-rails' 19 | # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 20 | gem 'turbolinks' 21 | # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 22 | gem 'jbuilder', '~> 2.0' 23 | # bundle exec rake doc:rails generates the API under doc/api. 24 | gem 'sdoc', '~> 0.4.0', group: :doc 25 | 26 | # Use ActiveModel has_secure_password 27 | # gem 'bcrypt', '~> 3.1.7' 28 | 29 | # Use Unicorn as the app server 30 | # gem 'unicorn' 31 | 32 | # Use Capistrano for deployment 33 | # gem 'capistrano-rails', group: :development 34 | 35 | group :development, :test do 36 | # Call 'byebug' anywhere in the code to stop execution and get a debugger console 37 | gem 'byebug' 38 | end 39 | 40 | group :development do 41 | # Access an IRB console on exception pages or by using <%= console %> in views 42 | gem 'web-console', '~> 2.0' 43 | 44 | # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 45 | gem 'spring' 46 | end 47 | 48 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### 2017-08-02
2 | + [Gradle for Android 第七篇( Groovy入门 ) - neu - SegmentFault](https://segmentfault.com/a/1190000004276167#articleHeader2)
3 | + [Gradle for Android 第六篇( 测试) - neu - SegmentFault](https://segmentfault.com/a/1190000004260141)
4 | + [Gradle for Android 第五篇( 多模块构建 ) - neu - SegmentFault](https://segmentfault.com/a/1190000004247809)
5 | + [Gradle for Android 第四篇( 构建变体 ) - neu - SegmentFault](https://segmentfault.com/a/1190000004241503)
6 | 7 | ### 2017-08-01
8 | + [Gradle for Android 第三篇( 依赖管理 ) - neu - SegmentFault](https://segmentfault.com/a/1190000004237922)
9 | 10 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | # Add your own tasks in files placed in lib/tasks ending in .rake, 2 | # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 3 | 4 | require File.expand_path('../config/application', __FILE__) 5 | 6 | Rails.application.load_tasks 7 | -------------------------------------------------------------------------------- /app/assets/images/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/app/assets/images/.keep -------------------------------------------------------------------------------- /app/assets/javascripts/application.js: -------------------------------------------------------------------------------- 1 | // This is a manifest file that'll be compiled into application.js, which will include all the files 2 | // listed below. 3 | // 4 | // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 5 | // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 6 | // 7 | // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 8 | // compiled file. 9 | // 10 | // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 11 | // about supported directives. 12 | // 13 | //= require jquery 14 | //= require jquery_ujs 15 | //= require turbolinks 16 | //= require_tree . 17 | -------------------------------------------------------------------------------- /app/assets/stylesheets/application.css: -------------------------------------------------------------------------------- 1 | /* 2 | * This is a manifest file that'll be compiled into application.css, which will include all the files 3 | * listed below. 4 | * 5 | * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 6 | * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. 7 | * 8 | * You're free to add application-wide styles to this file and they'll appear at the bottom of the 9 | * compiled file so the styles you add here take precedence over styles defined in any styles 10 | * defined in the other CSS/SCSS files in this directory. It is generally better to create a new 11 | * file per style scope. 12 | * 13 | *= require_tree . 14 | *= require_self 15 | */ 16 | -------------------------------------------------------------------------------- /app/controllers/application_controller.rb: -------------------------------------------------------------------------------- 1 | class ApplicationController < ActionController::Base 2 | # Prevent CSRF attacks by raising an exception. 3 | # For APIs, you may want to use :null_session instead. 4 | protect_from_forgery with: :exception 5 | end 6 | -------------------------------------------------------------------------------- /app/controllers/article_controller.rb: -------------------------------------------------------------------------------- 1 | class ArticleController < ApplicationController 2 | 3 | def create 4 | title = params[:title] 5 | link = params[:link] 6 | data = [] 7 | file_name = Rails.root.to_s + '/README.md' 8 | status = 'ok' 9 | if title.nil? or link.nil? 10 | status = 'error' 11 | else 12 | if(Date.today.mday == 1) 13 | new_file_name = "#{Rails.root.to_s}/#{Date.today.prev_day.strftime('%Y-%m').to_s}.md" 14 | if(!File.exists?(new_file_name)) 15 | File.rename(file_name, new_file_name) 16 | File.new(file_name, 'w+') 17 | end 18 | end 19 | data = DataHelper.append_to(file_name, title, link) 20 | if !data.nil? 21 | DataHelper.write_to(file_name, data) 22 | end 23 | end 24 | GitHelper.commit(title) 25 | render json: {'status' => status, 'data' => data} 26 | end 27 | 28 | 29 | end 30 | -------------------------------------------------------------------------------- /app/controllers/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/app/controllers/concerns/.keep -------------------------------------------------------------------------------- /app/controllers/welcome_controller.rb: -------------------------------------------------------------------------------- 1 | class WelcomeController < ApplicationController 2 | 3 | def index 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/helpers/application_helper.rb: -------------------------------------------------------------------------------- 1 | module ApplicationHelper 2 | 3 | end 4 | -------------------------------------------------------------------------------- /app/helpers/data_helper.rb: -------------------------------------------------------------------------------- 1 | module DataHelper 2 | 3 | # 根据文件获取添入标题和链接之后的最新文本内容 4 | def self.append_to(file_name, title, link) 5 | data = [] 6 | changed = false 7 | inserted = false 8 | 9 | File.open(file_name).each do |line| 10 | if !inserted and line.start_with?('###') 11 | # 当前行为具体的日期 12 | date_str = line.slice(3, 3 + 10).squish 13 | if(is_date(date_str)) 14 | # 当前日期为今天,则在当前天下添加新的一行数据 15 | if(Date.parse(date_str) == Date.today) 16 | data.push line 17 | data.push "+ [#{title}](#{link})
\n" 18 | changed = true 19 | inserted = true 20 | # 当前日期小于今天,则新建今天的数据 21 | elsif(Date.parse(date_str) < Date.today) 22 | data.push "### #{Date.today}
\n" 23 | data.push "+ [#{title}](#{link})
\n" 24 | data.push "\r\n" 25 | inserted = true 26 | end 27 | end 28 | end 29 | if !changed 30 | data.push line 31 | end 32 | changed = false 33 | end 34 | # 若没有添加,则表示是个新建的文件,直接添加今天的数据 35 | if(!inserted) 36 | data.push "### #{Date.today}
\n" 37 | data.push "+ [#{title}](#{link})
\n" 38 | data.push "\r\n" 39 | end 40 | data 41 | end 42 | 43 | # 向文件中写入data 44 | def self.write_to(file_name, data) 45 | file = File.new(file_name, 'w+') 46 | data.each do |line| 47 | file.write line 48 | end 49 | file.close 50 | end 51 | 52 | # 判断字符是否为一个日期 53 | def self.is_date(str) 54 | result = false 55 | begin 56 | Date.parse(str) 57 | result = true 58 | rescue ArgumentError 59 | result = false 60 | end 61 | result 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /app/helpers/git_helper.rb: -------------------------------------------------------------------------------- 1 | module GitHelper 2 | 3 | 4 | def self.commit(title) 5 | t = fork do 6 | Signal.trap("HUP") { 7 | system 'git status' 8 | system 'git add .' 9 | system "git commit -am 'add #{title}'" 10 | system 'git pull --rebase' 11 | system 'git push' 12 | } 13 | end 14 | Process.kill("HUP", t) 15 | end 16 | end 17 | -------------------------------------------------------------------------------- /app/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/app/mailers/.keep -------------------------------------------------------------------------------- /app/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/app/models/.keep -------------------------------------------------------------------------------- /app/models/concerns/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/app/models/concerns/.keep -------------------------------------------------------------------------------- /app/views/layouts/application.html.erb: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | MediumArticles 5 | <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> 6 | <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> 7 | <%= csrf_meta_tags %> 8 | 9 | 10 | 11 | <%= yield %> 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/views/welcome/index.html.erb: -------------------------------------------------------------------------------- 1 |
2 | 3 | fav 4 | 5 | -------------------------------------------------------------------------------- /bin/bundle: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 3 | load Gem.bin_path('bundler', 'bundle') 4 | -------------------------------------------------------------------------------- /bin/rails: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | APP_PATH = File.expand_path('../../config/application', __FILE__) 3 | require_relative '../config/boot' 4 | require 'rails/commands' 5 | -------------------------------------------------------------------------------- /bin/rake: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require_relative '../config/boot' 3 | require 'rake' 4 | Rake.application.run 5 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | require 'pathname' 3 | 4 | # path to your application root. 5 | APP_ROOT = Pathname.new File.expand_path('../../', __FILE__) 6 | 7 | Dir.chdir APP_ROOT do 8 | # This script is a starting point to setup your application. 9 | # Add necessary setup steps to this file: 10 | 11 | puts "== Installing dependencies ==" 12 | system "gem install bundler --conservative" 13 | system "bundle check || bundle install" 14 | 15 | # puts "\n== Copying sample files ==" 16 | # unless File.exist?("config/database.yml") 17 | # system "cp config/database.yml.sample config/database.yml" 18 | # end 19 | 20 | puts "\n== Preparing database ==" 21 | system "bin/rake db:setup" 22 | 23 | puts "\n== Removing old logs and tempfiles ==" 24 | system "rm -f log/*" 25 | system "rm -rf tmp/cache" 26 | 27 | puts "\n== Restarting application server ==" 28 | system "touch tmp/restart.txt" 29 | end 30 | -------------------------------------------------------------------------------- /config.ru: -------------------------------------------------------------------------------- 1 | # This file is used by Rack-based servers to start the application. 2 | 3 | require ::File.expand_path('../config/environment', __FILE__) 4 | run Rails.application 5 | -------------------------------------------------------------------------------- /config/application.rb: -------------------------------------------------------------------------------- 1 | require File.expand_path('../boot', __FILE__) 2 | 3 | require 'rails/all' 4 | 5 | # Require the gems listed in Gemfile, including any gems 6 | # you've limited to :test, :development, or :production. 7 | Bundler.require(*Rails.groups) 8 | 9 | module MediumArticles 10 | class Application < Rails::Application 11 | # Settings in config/environments/* take precedence over those specified here. 12 | # Application configuration should go into files in config/initializers 13 | # -- all .rb files in that directory are automatically loaded. 14 | 15 | # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 16 | # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 17 | # config.time_zone = 'Central Time (US & Canada)' 18 | 19 | # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 20 | # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 21 | # config.i18n.default_locale = :de 22 | 23 | # Do not swallow errors in after_commit/after_rollback callbacks. 24 | config.active_record.raise_in_transactional_callbacks = true 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /config/boot.rb: -------------------------------------------------------------------------------- 1 | ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__) 2 | 3 | require 'bundler/setup' # Set up gems listed in the Gemfile. 4 | -------------------------------------------------------------------------------- /config/database.yml: -------------------------------------------------------------------------------- 1 | # SQLite version 3.x 2 | # gem install sqlite3 3 | # 4 | # Ensure the SQLite 3 gem is defined in your Gemfile 5 | # gem 'sqlite3' 6 | # 7 | default: &default 8 | adapter: sqlite3 9 | pool: 5 10 | timeout: 5000 11 | 12 | development: 13 | <<: *default 14 | database: db/development.sqlite3 15 | 16 | # Warning: The database defined as "test" will be erased and 17 | # re-generated from your development database when you run "rake". 18 | # Do not set this db to the same as development or production. 19 | test: 20 | <<: *default 21 | database: db/test.sqlite3 22 | 23 | production: 24 | <<: *default 25 | database: db/production.sqlite3 26 | -------------------------------------------------------------------------------- /config/environment.rb: -------------------------------------------------------------------------------- 1 | # Load the Rails application. 2 | require File.expand_path('../application', __FILE__) 3 | 4 | # Initialize the Rails application. 5 | Rails.application.initialize! 6 | 7 | -------------------------------------------------------------------------------- /config/environments/development.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # In the development environment your application's code is reloaded on 5 | # every request. This slows down response time but is perfect for development 6 | # since you don't have to restart the web server when you make code changes. 7 | config.cache_classes = false 8 | 9 | # Do not eager load code on boot. 10 | config.eager_load = false 11 | 12 | # Show full error reports and disable caching. 13 | config.consider_all_requests_local = true 14 | config.action_controller.perform_caching = false 15 | 16 | # Don't care if the mailer can't send. 17 | config.action_mailer.raise_delivery_errors = false 18 | 19 | # Print deprecation notices to the Rails logger. 20 | config.active_support.deprecation = :log 21 | 22 | # Raise an error on page load if there are pending migrations. 23 | config.active_record.migration_error = :page_load 24 | 25 | # Debug mode disables concatenation and preprocessing of assets. 26 | # This option may cause significant delays in view rendering with a large 27 | # number of complex assets. 28 | config.assets.debug = true 29 | 30 | # Asset digests allow you to set far-future HTTP expiration dates on all assets, 31 | # yet still be able to expire them through the digest params. 32 | config.assets.digest = true 33 | 34 | # Adds additional error checking when serving assets at runtime. 35 | # Checks for improperly declared sprockets dependencies. 36 | # Raises helpful error messages. 37 | config.assets.raise_runtime_errors = true 38 | 39 | # Raises error for missing translations 40 | # config.action_view.raise_on_missing_translations = true 41 | end 42 | -------------------------------------------------------------------------------- /config/environments/production.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # Code is not reloaded between requests. 5 | config.cache_classes = true 6 | 7 | # Eager load code on boot. This eager loads most of Rails and 8 | # your application in memory, allowing both threaded web servers 9 | # and those relying on copy on write to perform better. 10 | # Rake tasks automatically ignore this option for performance. 11 | config.eager_load = true 12 | 13 | # Full error reports are disabled and caching is turned on. 14 | config.consider_all_requests_local = false 15 | config.action_controller.perform_caching = true 16 | 17 | # Enable Rack::Cache to put a simple HTTP cache in front of your application 18 | # Add `rack-cache` to your Gemfile before enabling this. 19 | # For large-scale production use, consider using a caching reverse proxy like 20 | # NGINX, varnish or squid. 21 | # config.action_dispatch.rack_cache = true 22 | 23 | # Disable serving static files from the `/public` folder by default since 24 | # Apache or NGINX already handles this. 25 | config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present? 26 | 27 | # Compress JavaScripts and CSS. 28 | config.assets.js_compressor = :uglifier 29 | # config.assets.css_compressor = :sass 30 | 31 | # Do not fallback to assets pipeline if a precompiled asset is missed. 32 | config.assets.compile = false 33 | 34 | # Asset digests allow you to set far-future HTTP expiration dates on all assets, 35 | # yet still be able to expire them through the digest params. 36 | config.assets.digest = true 37 | 38 | # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb 39 | 40 | # Specifies the header that your server uses for sending files. 41 | # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache 42 | # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX 43 | 44 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 45 | # config.force_ssl = true 46 | 47 | # Use the lowest log level to ensure availability of diagnostic information 48 | # when problems arise. 49 | config.log_level = :debug 50 | 51 | # Prepend all log lines with the following tags. 52 | # config.log_tags = [ :subdomain, :uuid ] 53 | 54 | # Use a different logger for distributed setups. 55 | # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) 56 | 57 | # Use a different cache store in production. 58 | # config.cache_store = :mem_cache_store 59 | 60 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. 61 | # config.action_controller.asset_host = 'http://assets.example.com' 62 | 63 | # Ignore bad email addresses and do not raise email delivery errors. 64 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. 65 | # config.action_mailer.raise_delivery_errors = false 66 | 67 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to 68 | # the I18n.default_locale when a translation cannot be found). 69 | config.i18n.fallbacks = true 70 | 71 | # Send deprecation notices to registered listeners. 72 | config.active_support.deprecation = :notify 73 | 74 | # Use default logging formatter so that PID and timestamp are not suppressed. 75 | config.log_formatter = ::Logger::Formatter.new 76 | 77 | # Do not dump schema after migrations. 78 | config.active_record.dump_schema_after_migration = false 79 | end 80 | -------------------------------------------------------------------------------- /config/environments/test.rb: -------------------------------------------------------------------------------- 1 | Rails.application.configure do 2 | # Settings specified here will take precedence over those in config/application.rb. 3 | 4 | # The test environment is used exclusively to run your application's 5 | # test suite. You never need to work with it otherwise. Remember that 6 | # your test database is "scratch space" for the test suite and is wiped 7 | # and recreated between test runs. Don't rely on the data there! 8 | config.cache_classes = true 9 | 10 | # Do not eager load code on boot. This avoids loading your whole application 11 | # just for the purpose of running a single test. If you are using a tool that 12 | # preloads Rails for running tests, you may have to set it to true. 13 | config.eager_load = false 14 | 15 | # Configure static file server for tests with Cache-Control for performance. 16 | config.serve_static_files = true 17 | config.static_cache_control = 'public, max-age=3600' 18 | 19 | # Show full error reports and disable caching. 20 | config.consider_all_requests_local = true 21 | config.action_controller.perform_caching = false 22 | 23 | # Raise exceptions instead of rendering exception templates. 24 | config.action_dispatch.show_exceptions = false 25 | 26 | # Disable request forgery protection in test environment. 27 | config.action_controller.allow_forgery_protection = false 28 | 29 | # Tell Action Mailer not to deliver emails to the real world. 30 | # The :test delivery method accumulates sent emails in the 31 | # ActionMailer::Base.deliveries array. 32 | config.action_mailer.delivery_method = :test 33 | 34 | # Randomize the order test cases are executed. 35 | config.active_support.test_order = :random 36 | 37 | # Print deprecation notices to the stderr. 38 | config.active_support.deprecation = :stderr 39 | 40 | # Raises error for missing translations 41 | # config.action_view.raise_on_missing_translations = true 42 | end 43 | -------------------------------------------------------------------------------- /config/initializers/assets.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Version of your assets, change this if you want to expire all your assets. 4 | Rails.application.config.assets.version = '1.0' 5 | 6 | # Add additional assets to the asset load path 7 | # Rails.application.config.assets.paths << Emoji.images_path 8 | 9 | # Precompile additional assets. 10 | # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. 11 | # Rails.application.config.assets.precompile += %w( search.js ) 12 | -------------------------------------------------------------------------------- /config/initializers/backtrace_silencers.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. 4 | # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } 5 | 6 | # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code. 7 | # Rails.backtrace_cleaner.remove_silencers! 8 | -------------------------------------------------------------------------------- /config/initializers/cookies_serializer.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.action_dispatch.cookies_serializer = :json 4 | -------------------------------------------------------------------------------- /config/initializers/filter_parameter_logging.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Configure sensitive parameters which will be filtered from the log file. 4 | Rails.application.config.filter_parameters += [:password] 5 | -------------------------------------------------------------------------------- /config/initializers/inflections.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new inflection rules using the following format. Inflections 4 | # are locale specific, and you may define rules for as many different 5 | # locales as you wish. All of these examples are active by default: 6 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 7 | # inflect.plural /^(ox)$/i, '\1en' 8 | # inflect.singular /^(ox)en/i, '\1' 9 | # inflect.irregular 'person', 'people' 10 | # inflect.uncountable %w( fish sheep ) 11 | # end 12 | 13 | # These inflection rules are supported but not enabled by default: 14 | # ActiveSupport::Inflector.inflections(:en) do |inflect| 15 | # inflect.acronym 'RESTful' 16 | # end 17 | -------------------------------------------------------------------------------- /config/initializers/mime_types.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Add new mime types for use in respond_to blocks: 4 | # Mime::Type.register "text/richtext", :rtf 5 | -------------------------------------------------------------------------------- /config/initializers/session_store.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | Rails.application.config.session_store :cookie_store, key: '_MediumArticles_session' 4 | -------------------------------------------------------------------------------- /config/initializers/wrap_parameters.rb: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # This file contains settings for ActionController::ParamsWrapper which 4 | # is enabled by default. 5 | 6 | # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. 7 | ActiveSupport.on_load(:action_controller) do 8 | wrap_parameters format: [:json] if respond_to?(:wrap_parameters) 9 | end 10 | 11 | # To enable root element in JSON for ActiveRecord objects. 12 | # ActiveSupport.on_load(:active_record) do 13 | # self.include_root_in_json = true 14 | # end 15 | -------------------------------------------------------------------------------- /config/locales/en.yml: -------------------------------------------------------------------------------- 1 | # Files in the config/locales directory are used for internationalization 2 | # and are automatically loaded by Rails. If you want to use locales other 3 | # than English, add the necessary files in this directory. 4 | # 5 | # To use the locales, use `I18n.t`: 6 | # 7 | # I18n.t 'hello' 8 | # 9 | # In views, this is aliased to just `t`: 10 | # 11 | # <%= t('hello') %> 12 | # 13 | # To use a different locale, set it with `I18n.locale`: 14 | # 15 | # I18n.locale = :es 16 | # 17 | # This would use the information in config/locales/es.yml. 18 | # 19 | # To learn more, please read the Rails Internationalization guide 20 | # available at http://guides.rubyonrails.org/i18n.html. 21 | 22 | en: 23 | hello: "Hello world" 24 | -------------------------------------------------------------------------------- /config/routes.rb: -------------------------------------------------------------------------------- 1 | Rails.application.routes.draw do 2 | # The priority is based upon order of creation: first created -> highest priority. 3 | # See how all your routes lay out with "rake routes". 4 | 5 | # You can have the root of your site routed with "root" 6 | # root 'welcome#index' 7 | 8 | # Example of regular route: 9 | # get 'products/:id' => 'catalog#view' 10 | 11 | # Example of named route that can be invoked with purchase_url(id: product.id) 12 | # get 'products/:id/purchase' => 'catalog#purchase', as: :purchase 13 | 14 | # Example resource route (maps HTTP verbs to controller actions automatically): 15 | # resources :products 16 | 17 | # Example resource route with options: 18 | # resources :products do 19 | # member do 20 | # get 'short' 21 | # post 'toggle' 22 | # end 23 | # 24 | # collection do 25 | # get 'sold' 26 | # end 27 | # end 28 | 29 | # Example resource route with sub-resources: 30 | # resources :products do 31 | # resources :comments, :sales 32 | # resource :seller 33 | # end 34 | 35 | # Example resource route with more complex sub-resources: 36 | # resources :products do 37 | # resources :comments 38 | # resources :sales do 39 | # get 'recent', on: :collection 40 | # end 41 | # end 42 | 43 | # Example resource route with concerns: 44 | # concern :toggleable do 45 | # post 'toggle' 46 | # end 47 | # resources :posts, concerns: :toggleable 48 | # resources :photos, concerns: :toggleable 49 | 50 | # Example resource route within a namespace: 51 | # namespace :admin do 52 | # # Directs /admin/products/* to Admin::ProductsController 53 | # # (app/controllers/admin/products_controller.rb) 54 | # resources :products 55 | # end 56 | 57 | get "create" => "article#create" 58 | 59 | resources :welcome 60 | get 'index' => "welcome#index" 61 | end 62 | -------------------------------------------------------------------------------- /config/secrets.yml: -------------------------------------------------------------------------------- 1 | # Be sure to restart your server when you modify this file. 2 | 3 | # Your secret key is used for verifying the integrity of signed cookies. 4 | # If you change this key, all old signed cookies will become invalid! 5 | 6 | # Make sure the secret is at least 30 characters and all random, 7 | # no regular words or you'll be exposed to dictionary attacks. 8 | # You can use `rake secret` to generate a secure secret key. 9 | 10 | # Make sure the secrets in this file are kept private 11 | # if you're sharing your code publicly. 12 | 13 | development: 14 | secret_key_base: e6760a901c96b8441fa63a5bb92993579693668ecc3a521213c994eb8a9330c22e87cf4524a108bcb94d564c6e691f35f54e0885afb8b1ca0dfdc61ccf9778e4 15 | 16 | test: 17 | secret_key_base: 0da33f392694758be67b59eb130d6de70947bac6493997340f6702e55b504a46d452f06f3a9c33d87115a1efa25d95c8f76eb1255ddb0881f4e868a813f67d7f 18 | 19 | # Do not keep production secrets in the repository, 20 | # instead read values from the environment. 21 | production: 22 | secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 23 | -------------------------------------------------------------------------------- /db/seeds.rb: -------------------------------------------------------------------------------- 1 | # This file should contain all the record creation needed to seed the database with its default values. 2 | # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). 3 | # 4 | # Examples: 5 | # 6 | # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }]) 7 | # Mayor.create(name: 'Emanuel', city: cities.first) 8 | -------------------------------------------------------------------------------- /lib/assets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/lib/assets/.keep -------------------------------------------------------------------------------- /lib/tasks/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/lib/tasks/.keep -------------------------------------------------------------------------------- /log/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/log/.keep -------------------------------------------------------------------------------- /public/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The page you were looking for doesn't exist (404) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The page you were looking for doesn't exist.

62 |

You may have mistyped the address or the page may have moved.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /public/422.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | The change you wanted was rejected (422) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

The change you wanted was rejected.

62 |

Maybe you tried to change something you didn't have access to.

63 |
64 |

If you are the application owner check the logs for more information.

65 |
66 | 67 | 68 | -------------------------------------------------------------------------------- /public/500.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | We're sorry, but something went wrong (500) 5 | 6 | 55 | 56 | 57 | 58 | 59 |
60 |
61 |

We're sorry, but something went wrong.

62 |
63 |

If you are the application owner check the logs for more information.

64 |
65 | 66 | 67 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/public/favicon.ico -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file 2 | # 3 | # To ban all spiders from the entire site uncomment the next two lines: 4 | # User-agent: * 5 | # Disallow: / 6 | -------------------------------------------------------------------------------- /test/controllers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/controllers/.keep -------------------------------------------------------------------------------- /test/fixtures/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/fixtures/.keep -------------------------------------------------------------------------------- /test/helpers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/helpers/.keep -------------------------------------------------------------------------------- /test/integration/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/integration/.keep -------------------------------------------------------------------------------- /test/mailers/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/mailers/.keep -------------------------------------------------------------------------------- /test/models/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/test/models/.keep -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- 1 | ENV['RAILS_ENV'] ||= 'test' 2 | require File.expand_path('../../config/environment', __FILE__) 3 | require 'rails/test_help' 4 | 5 | class ActiveSupport::TestCase 6 | # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. 7 | fixtures :all 8 | 9 | # Add more helper methods to be used by all tests here... 10 | end 11 | -------------------------------------------------------------------------------- /vendor/assets/javascripts/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/vendor/assets/javascripts/.keep -------------------------------------------------------------------------------- /vendor/assets/stylesheets/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alighters/MediumArticles/88d58f81888941bc2af252fd43aee5b63ef569b9/vendor/assets/stylesheets/.keep --------------------------------------------------------------------------------