안드로이드 개발에서 많은 비중을 차지하는 UI패턴은 ListView에서 여러 이미지를 보여주는 Activity입니다. 전형적인 흐름을 정리하면 아래와 같습니다.
1. 목록조회 API호출
2. API를 파싱하고 ListView에 데이터를 보여 줌.
3. 각 아이템마다의 이미지 주소로 다시 서버를 호출
4. 이미지를 디코딩하고 ImageView에서 보여줌.
| <?xml version="1.0" encoding="UTF-8" ?> | |
| <!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> | |
| <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" | |
| debug="true"> | |
| <appender name="console" class="org.apache.log4j.ConsoleAppender"> | |
| <param name="Target" value="System.out" /> | |
| <param name="Threshold" value="INFO" /> | |
| <layout class="org.apache.log4j.EnhancedPatternLayout"> | |
| <param name="ConversionPattern" |
안드로이드 개발에서 많은 비중을 차지하는 UI패턴은 ListView에서 여러 이미지를 보여주는 Activity입니다. 전형적인 흐름을 정리하면 아래와 같습니다.
1. 목록조회 API호출
2. API를 파싱하고 ListView에 데이터를 보여 줌.
3. 각 아이템마다의 이미지 주소로 다시 서버를 호출
4. 이미지를 디코딩하고 ImageView에서 보여줌.
In a previous write-up I described how I was able to bring together RequireJS with Jasmine to create modular, testable applications. Now I'd like to describe taking it a step further and bringing BackboneJS into the mix.
Our dev shop has been slowly proliferating BackboneJS applications over the last year or two. Personally, I like the structure BackboneJS provides without being overbearing and over-prescriptive in how your applications should be built. It gives just enough skeleton and event and routing to be useful without you having to constantly battle writing your app the way BackboneJS's authors want you to.
Let's see how we can get BackboneJS running inside of a RequireJS modular framework and then test the result using Jasmine and SinonJS.
The goals for this write-up are:
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" | |
| content="text/html; charset=utf-8" /> | |
| <script src="jquery-1.7.2.min.js" ></script> | |
| <script src="handlebars-1.0.0.beta.6.js" ></script> | |
| <script src="underscore-min.js" ></script> | |
| <script src="backbone-min.js" ></script> |
| var SomeModel = Backbone.Model.extend({}); | |
| someModel = new SomeModel(); | |
| someModel.bind("change", function(model, collection){ | |
| alert("You set some_attribute to " + model.get('some_attribute')); | |
| }); | |
| someModel.set({some_attribute: "some value"}); |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>HTML5 Features</title> | |
| <style> | |
| html, body { | |
| height: 100%; | |
| } | |
| </style> |
| .shape{ | |
| height: 100%; | |
| width: 100%; | |
| } | |
| .circle { | |
| border-radius: 50%/50%; | |
| -moz-border-radius: 50%/50%; | |
| -webkit-border-radius: 50%/50%; | |
| } | |
| .hide { |
Links and notes for ibeacon indoor location
##General links
##Trilatertion
| // Asynchronous Client Socket Example | |
| // http://msdn.microsoft.com/en-us/library/bew39x2a.aspx | |
| using System; | |
| using System.Net; | |
| using System.Net.Sockets; | |
| using System.Threading; | |
| using System.Text; | |
| // State object for receiving data from remote device. |
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| using System.Net.Sockets; | |
| using System.Data; | |
| using System.Net; | |
| using System.Threading; | |
| using System.Threading.Tasks; | |
| using System.Reactive.Linq; |