Monday, November 22, 2010

To download Android codes under a firewall blocking the default GIT port

A firewall of an institute can block GIT from downloading source codes from a web site. This may be because the firewall blocks the default GIT port, which is 9418. In this problematic case, HTTP can replace GIT protocol. GIT supports HTTP protocol for download, and firewalls usually permit the HTTP ports. I met this situation when I tried to download Android source codes in a campus of a Korean University. This is a very simple tip to use HTTP protocol to download the Android codes using GIT.


[Steps]


Ubuntu 10.04 LTS is my environment, though it doesn't matter very much.


The general guideline for downloading Android codes is available on http://source.android.com/source/download.html.

According to the above guideline, you are assumed to have the utility, repo, to run successfully it, and to have .repo directory. This is the point where I met the firewall problem.

You need to replace all uses of GIT protocol, "git:", with "http:" in the initialization. I have a little tip to do this quickly and, hopefully, correctly.
  • $ grep -sr "git:" .repo | cut -d: -f1 | xargs -d '\n' sed -i -e 's/git:/http:/g'
In case the above command doesn't work, you may be required to correct some in the command. For the purpose, I give a brief explanation on it.
  • -s of grep to suppress error messages
  • -r of grep to do recursively
  • -d: of cut to use ':' as a delimeter
  • -f1 of cut to select the first column of the delimetered tokens
  • -d '\n' of xargs to use '\n' as a delimeter of xargs this time
  • -i of sed to replace each matched pattern with the target one in place
  • -e 's/git:/http:/g of sed to give a command to substitute every occurrence of "git:" with "http:" globally

    Sunday, November 21, 2010

    WALA

    The T. J. Watson Libraries for Analysis (WALA) provide static analysis capabilities for Java bytecode and related languages.

    http://wala.sourceforge.net/wiki/


    WALA features include:
    • Java type system and class hierarchy analysis
    • Source language framework supporting Java and JavaScript
    • Interprocedural dataflow analysis
    • Context-sensitive tabulation-based slicer
    • Pointer analysis and call graph construction
    • SSA-based register-transfer language IR
    • General framework for iterative dataflow
    • Significant support for J2EE semantics
    • General analysis utilities and data structures
    • A bytecode instrumentation library and a dynamic load-time instrumentation library for Java

    Friday, November 19, 2010

    M2M Machine-to-Machine

    Machine-to-Machine (M2M) refers to technologies that allow both wireless and wired systems to communicate with other devices of the same ability.

    • Standardization
      • ETSI
      • 3GPP MTC, NIMTC
      • 3GPP2 SED
      • IEEE 802.16m
      • Domesitc
        • 한국통신학회 TFID/USN 연구회
        • 방송통신위원회의 사물간지능통신 O2N
        • SKT
        • KT