[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-4207":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},4207,"HomeMirror","HannahMitt\u002FHomeMirror","HannahMitt","Android application powering the mirror in my house",null,"Java",7812,651,290,32,0,1,65.04,"Apache License 2.0",false,"master",true,[],"2026-06-12 04:00:21","# HomeMirror\nAndroid application powering the mirror in my house\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FHannahMitt\u002FHomeMirror\u002Fmaster\u002Fdesign\u002FIMG_20151121_183522%20(1).jpg\" width=\"400\"\u002F>\n\n### Note: code unmaintained\nThis was a fun project, and I may pick it back up again one day.\nYou can still follow the instructions for putting a mirror together, but may need to bring your own light-text-on-dark-background app.\n\nSoftware\n====\n* Day, time, and weather display\n* Birthday messages\n* Chore reminders\n* Biking weather recommendation\n* Stock price swings\n* Today's new XKCD\n* Next calendar event\n* Top news headline\n* Face detection with mood detection\n\nAPIs provided by Yahoo Finance, Forecast.io, the BBC, and XKCD\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FHannahMitt\u002FHomeMirror\u002Fmaster\u002Fdesign\u002FHomeMirror.png\" width=\"400\"\u002F>\n\nHow to Run\n----\n1. Clone project\n2. Get a [forecast.io api key](https:\u002F\u002Fdeveloper.forecast.io\u002F)\n3. Add a keys.xml file under res\u002Fvalues with \\\u003Cstring name=\"dark_sky_api_key\">your_key\\\u003C\u002Fstring>\n4. Import project to Android Studio and run\n\nWhen its mirror time, I also recommend turning on the device Developer Option: \"Stay Awake - Screen will never sleep while charging\"\n\nMaking a Mirror\n====\n\n[Video walk-through on adafruit (Thank you Becky!)](https:\u002F\u002Flearn.adafruit.com\u002Fandroid-smart-home-mirror)\n\n1. Obtain Android device\n----\nWe had too many. Sad old devices are ideal.\nI used a [2012 Nexus 7](http:\u002F\u002Fwww.amazon.com\u002Fgp\u002Foffer-listing\u002FB009X3UW2G\u002Fref=olp_tab_refurbished?ie=UTF8&condition=refurbished&qid=1441327955&sr=8-1).\n\n2. Obtain two-way mirror\n---\nWe did this the old-fashioned way, and quested to [Canal Plastic Center](http:\u002F\u002Fcanalplastic.com\u002F). A beautiful and highly recommended establishment. \n\n[Wiki of places to buy two-way mirrors](https:\u002F\u002Fgithub.com\u002FHannahMitt\u002FHomeMirror\u002Fwiki\u002FPlaces-to-buy-a-two-way-mirror)\n\nGet a mirror at least as large as your Android device. My mirror is 6\"x12\" with 1\u002F8 thickness. \n\n3. Sticky stuff for mounting\n---\nOur trickiest problem was figuring out how to mount everything with minimal damage and error.\nWe eventually discovered [reusable double-sided adhesive](http:\u002F\u002Fwww.amazon.com\u002FCommand-Assorted-8-Small-4-Medium-4-Large\u002Fdp\u002FB0084M68IO\u002Fref=pd_sim_sbs_229_6?ie=UTF8&refRID=1TX12CR5RF0RTP6CKJR7&dpSrc=sims&dpST=_AC_UL320_SR202%2C320_), which is amazing. \n\nWe're using it both to mount the mirror to the device, and the device to the wall.\n\n4. Attach black backing\n---\nWe used black construction paper. If your device and mirror are awesomely identical in size, you can skip this.\n\nNote: You want to glue it well, so the backing doesn't tear when the adhesive is holding it.\n\n* Cut a piece of black backing the same size as your mirror\n* Decide where you want your device to show through. We did upper right. Leave a border all the way around for adhesive.\n* At that location, carefully cut a hole in the backing the same size as your device\n* CAREFULLY glue the backing to the mirror. We used spray adhesive, and practiced how we would pick it up and lay it on the mirror a couple times before going for it. We also wore black surgical gloves.\n \n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FHannahMitt\u002FHomeMirror\u002Fmaster\u002Fdesign\u002FIMG_20150911_110449-2.jpg\" height=\"400\"\u002F>\n\n5. Adhesion\n---\nFire up the app on the device.\n\nPut the adhesive along the bezel or edges of the device. Line up the mirror and stick it on there.\n\n6. Wall spot\n---\nYou probably want a long usb cable. Find a wall spot where you can keep the device plugged in.\n\nPut a bunch of adhesive on the back of the device, and stick it on there.\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FHannahMitt\u002FHomeMirror\u002Ffaed8d927b93ec2c38159d8e3968f8133511ee67\u002Fdesign\u002Fthumbs_up_mirror.jpg\" width=\"400\"\u002F>\n\nLinks\n===\nAt the heart of this project, is 'put a mirror on it'. [Check out alternative mirror projects and feel free to add your own reflections](https:\u002F\u002Fgithub.com\u002FHannahMitt\u002FHomeMirror\u002Fwiki\u002FOther-mirror-projects-with-alternate-technologies)\n","HomeMirror 是一个为家庭镜子提供动力的Android应用程序。该应用主要功能包括显示日期、时间、天气，提醒生日和家务事项，推荐骑行天气，展示股票价格波动，最新的XKCD漫画，下一个日历事件，头条新闻等，并且具备面部检测与情绪识别功能。技术上基于Java开发，利用了Yahoo Finance、Forecast.io、BBC和XKCD提供的API接口来获取信息。适用于希望通过智能化手段提升家居体验，特别是喜欢将科技融入日常生活装饰中的人群使用。尽管项目代码已不再维护，但其设计理念及实现方式依然具有参考价值。",2,"2026-06-11 02:59:01","top_language"]