Use Fabric to Setup your App for Beta distribution

16 Feb

 

 

 

 

 

Being fairly new to iOS development still, I wanted to try some of the current beta distribution tools.  The first one is Beta, which is part of Fabric (from Twitter).  Here’s the 11 steps you need to follow to get setup with it.

Step 1: Get the Fabric setup for your IDE

Fabric-1

 

 

Click the image (above) that corresponds to your IDE.

Step 2: Unpack it

Fabric-zipfile

 

Step 3: Run the app

This step is fairly straight forward, just follow the directions for the plugin.

Fabric-run-the-app

Step 4: It’s running.

This part confused me, as I wasn’t expecting it to run in the dock initially.  However, it was a 5 second hiccup.

Fabric-Dock

Step 5: Setup to build for an iOS Device

Xcode-ios-device

 

Step 6: Build an Archive

Xcode-build-archive

 

Step 7: Distribute your app (via Beta popup)

fabric-post-archive-popup

Step 8: Choose your users or your groups:

fabric-distribute-to-test-groups

 

Step 9: See if your users have launched the app or not:

Fabric-build-users

 

Step 10: Drill down into your users for further info:

Fabric-user-detail

 

Step 11: See which builds you have deployed to your beta users

Fabric-beta-1

And you’re done.

Advertisements

Simple sites and Grunt

17 Jul

I occansionally deal with a strictly static web site setup, e.g.:

  •  index.html
  •  /images
  • /css
  • /js

and while it’s fun to either setup a new virtual host in apache or nginx, I’ve found it’s easier to just setup a simple grunt file.  The following gets it up and running, assuming the directory setup above.

  • npm install -g grunt-cli
  • put this package.json in /
  • npm install
  • put this Gruntfile.js in /
  • just run “grunt server” and away we go!

package.json:

{
	"name":"mysite",
	"version":"1.0.0",
	"dependencies":{},
	"devDependencies":{
		"matchdep": "~0.1.1",
		"grunt": "~0.4.0",
		"grunt-regarde": "~0.1.1",
		"grunt-contrib-connect":  "0.1.2",
		"grunt-contrib-livereload": "0.1.1",
		"grunt-open": "~0.2.0"

	}
}

Gruntfile.js

module.exports = function(grunt) {

  // Load Grunt tasks declared in the package.json file
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  // Configure Grunt 
  grunt.initConfig({

    // grunt-contrib-connect will serve the files of the project
    // on specified port and hostname
    connect: {
      all: {
        options:{
          port: 9000,
          hostname: "0.0.0.0",
          // No need for keepalive anymore as watch will keep Grunt running
          //keepalive: true,

          // Livereload needs connect to insert a cJavascript snippet
          // in the pages it serves. This requires using a custom connect middleware
          middleware: function(connect, options) {

            return [

              // Load the middleware provided by the livereload plugin
              // that will take care of inserting the snippet
              require('grunt-contrib-livereload/lib/utils').livereloadSnippet,

              // Serve the project folder
              connect.static(options.base)
            ];
          }
        }
      }
    },

    // grunt-open will open your browser at the project's URL
    open: {
      all: {
        // Gets the port from the connect configuration
        path: 'http://localhost:<%= connect.all.options.port%>'
      }
    },

    // grunt-regarde monitors the files and triggers livereload
    // Surprisingly, livereload complains when you try to use grunt-contrib-watch instead of grunt-regarde 
    regarde: {
      all: {
        // This'll just watch the index.html file, you could add **/*.js or **/*.css
        // to watch Javascript and CSS files too.
        files:['index.html'],
        // This configures the task that will run when the file change
        tasks: ['livereload']
      }
    }
  });

  // Creates the `server` task
  grunt.registerTask('server',[

    // Starts the livereload server to which the browser will connect to
    // get notified of when it needs to reload
    'livereload-start',
    'connect',
    // Connect is no longer blocking other tasks, so it makes more sense to open the browser after the server starts
    'open',
    // Starts monitoring the folders and keep Grunt alive
    'regarde'
  ]);
};

Paleontology 101 – Class 6/6

15 Jun

Class Notes

Travel trivia

  • managed to show up 20 minutes late – yay for evacuation and Denver traffic.

Talking about faults(the geologic ones) this evening

Sites to lookup

Fossils as living organisms

  • systematics
  • classification
  • taxonomy
  • parallel evolution vs convergent evolution

Cladistics

  • apomorphy – something that appears for the first time
  • synapomorphy – where that character shows up in more than one group
  • autapomorphy
  • plesiomorphy – a primitive character
  • symplesiomorphy
  • sister group
  • parsimony
  • clade
  • grade

Paleobiogeography

How did the animals of the past live?

  • paleobehavior
  • paleoecology
  • functional morphology

Read

What happens to animals after they die?

Taphonomy = biostratinomy + Diagenesis

 

Paleontology 101 – Class 5/6

15 Jun

I didn’t attend class this evening, due to the Black Forest Fire.  My house was only a couple of miles outside one the pre-evacuation zones.  So I elected to stay home and pack up some stuff for transport instead.

I wish I had been able to attend, this was a guided tour of the Prehistoric Journey exhibit at the DMNS.

 

Paleontology 101 – Class 4/6

15 Jun

Class Notes

Sedimentary Rocks tonight

  • weathering ~= tearing the rock apart
  • erosion ~= transport the rock
  • grain size classification chart
  • alls classify according to their makeup (very well sorted to very poorly sorted)
  • carbonate classification
  • micrite vs biosparite
  • mudstone vs wakestone vs packstone vs grainstone (see Carbinate Classification – Dunham (1962), Embry and Glovan (1971))
  • mudstone => lower energy environment
  • grainstone => higher energy environment
  • clay is both a size and a mineral

International Stratigraphic Guide

formation naming “rule” => you can name a formation after a specific geographic place

Types of Stratigraphy

Bed < Member < Formation < Group

lithostratigraphy

Biostratigraphy

Biozones:

  • assemblage-zones – biostratigraphic sections of the rock that contain the same group of organisms (e.g. near shore organisms)
  • range-zones – range of time during which that animal lived
  • acme-zones – zones that show the number of that type of organism that exist (the greatest number of them during that exist)
  • Interval-zones – a time within the rock, where if it had fossils, these are the type it would have (if we found them)

Chronostratigraphy

  • Concerned with the organization of strata into units based on their age of origin.
  • Time = Geochronological units
  • Rock = Chronostratigraphic units

Magnetostratigraphy

  • concerned with organization of strata into sequential units based on their magnetic polarity. We can measure the ancient magnetism of the rocks to help determine age.
  • Magneto zones

 

Steno

Principles of Stratigraphy

  • Superposition
  • original horizontality
  • lateral continuity

James Hutton

Geological Principles

  • uniformitarianism
  • cross-cutting relationships
  • components
  • conformities

Correlation – picture examples

Notes to myself

  • Would voxels be good for geologic modeling?

Paleontology 101 – Class 3/6

13 Jun

 

Travel trivia

  • Miles drive: ~60
  • Commute time: ~90 mins; traffic was a pain this evening. Yay, Thursday?
  • Weather: ~80F, but still a great day. Looked like rain, but I think it’s going to pass on by today.

Day 3 Class Notes

Concepts

  • “you really need a notebook in the field” 🙂
  • when you take a photo, put a scale in it
  • any survey on state land in CO must obtain a permit
  • almost all dinosaur eggs you see from China, were probably removed illegally
  • a lot of this lecture reminded me of Phillip Greenspun’s paper on moving dirt.

Things to note on a specimen

  1. who
  2. what
  3. where
  4. when
  5. put an identification number on it

Lookup geofencing for remembering archeological sites (which may be buried under new construction). The site stays preserved, but who will know about it in the future. “There is no institutional memory, unless someone writes it down”. Does the national historic record have a set of geo features online? ontheearth.org ?

  • How do we keep from losing things?
  • How do we track things through time?
  • would QR codes help? or something similar?

Some of the comments on note taking remind me of Neal Stephenson’s Snow Crash and his concept of gargoyles.

Rocks

  • Steno’s Principles
  • Sand < Pebble < Cobble (sp?) < Boulder
  • Igneous rocks vs Sedimentary Rocks vs Metamorphic rocks
  • The Rock Cycle
  • Extrusive vs Intrusive
  • The Tomb of the Unknown Soldier and Lincoln’s Memorial is made from marble from Colorado.

 

Places to lookup or visit

  • La Brea Tar Pits

Books

Jurassic West: The Dinosaurs of the Morrison Formation and Their World (Life of the Past)

Tracking Dinosaurs: A New Look at an Ancient World

 

Paleontology 101 – Class 2/6

10 Jun

Day 2 of the Paleontology 101 course at DMNS.

Travel trivia

  • Traffic: light
  • Miles driven: ~80 (one way)
  • Weather: No rain on the drive up today!

Day 2 Class Notes

Concepts I noted today

If it’s longer than wide, with two parts — may be indicative of a tooth (picture discussed in class)

  • Paleontology is the study of ancient life
  • Palynology – study of pollen (ancient?)
  • Paleoichnology – study of trace fossils (not fish!)
  • Micropaleontology – useful for people who want to determine the age of the rocks where microorganisms are found.

<!–more–>

Harrods Department store in London sells fossils “better than museum quality, and (expensive)”

Oil companies use pollen to determine the likelihood of finding gas, oil, or nothing. I guess palynology just became more interesting!

  • Wallace’s Line
  • Ichnofossils == trace fossils
  • fossilization is an extremely rare event

Extinction Events

  • Ordovician
  • Devonian
  • Permian
  • Triassic
  • Cretaceous

People to look up

 

Books mentioned today

 

Places to go

 

Notes to myself

  • Need to find a GIS program; check github as well.
  • Caliche – a layer – like concrete

Paleontology 101 – Class 1/6

9 Jun

So I attended the first class of the Paleontology 101 course offered at the Denver Museum of Nature and Science. I’m really excited that we live in a place where a course like this is offered, and I’m going to try to complete all the courses required for the Paleontology Certification. I’m going to write-up my class notes as a series of blog posts. I’m not going to post any of the instructor’s material, as you should just take the course if you’re interested.

The course is taught by Dr. Louis “Lou” Taylor and he seems like a really great instructor based on the one class I’ve attended so far. It’s pretty obvious he really enjoys his profession and it’s nice to be dealing with an instructor that’s passionate about his field.

Recommended Reading (Optional)

The Paleontology Certification

There’s plenty of information on the DMNS page, but here’s a quick overview of the courses:

Required Courses

  • Paleontology 101
  • Reading Colorado: Introduction to Geology

Electives (5 required)

  • Curation of Fossils
  • Evolution
  • Paleontology of the Western Interior
  • Osteology
  • Vertebrate Paleontology
  • Invertebrate Paleontology
  • Paleobotany
  • Lab Methods in Paleontology
  • Sedimentology and Stratigraphy
  • Field Methods in Paleontology

Class Notes

Other recommended groups that were recommended to further your education

People to look up

  • Peter Larson (paleontologist) – three triceratops discovered found recently near New Castle, WY.

Places to look up

  • Liaoning Province, China – all the feathered dinosaurs

The first specimen of the dinosaur Stegosaurus was found near Morrison, CO (in the area called Dinosaur Ridge) by Arthur Lakes in
1877. It’s the state fossil of Colorado.

New species to lookup

  • Tiktallik roseae – transitional fossil
  • Titanoboa cerrejonensis – titanic boa

Other Notes

Is there an /r/paleontology on Reddit? Turns out, there is a subcategory for it already.

Should I learn Haskell in my spare time?

18 Jul

Functional programming seems is picking up steam again and I thought it’s something should add to my programming toolkit.  I dabbled in Erlang several years ago (one GA in erlang does not make you an Erlang guru), but I thought it was interesting enough that I should revisit gaining some expertise in functional programming.    Scala seemed like it might be the next language to learn, with its ability to run on the JVM and its increasing popularity on the internet.  Yet, I’ve read through the Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition book and didn’t end up really stoked about it.  Sometimes it seems like you could easily win a obfucscated programming competition with the code you could produce, and it just didn’t feel clean to me.  Maybe I need to spend more time on it by taking the Functional Programming Principles in Scala course that’s going to be offered on Cousera?

Until then, I decided I want to spend my spare time playing with something that isn’t running on the JVM and I already good with Python and Ruby.  I think Go is pretty interesting and I really like the Rob Pike presentation on it, but while it’s pretty cool, it’s probably not the best language to teach me to think more functionally.  After poking around on the computer language shootout benchmarks, I’ve decided to  give Haskell a try for a bit.  Here’s my plan :

Blog Posts that are worth reading: 

Books:  

Benchmarks worth noting:

Edward Tufte Course – Denver, CO – 7/20/2012

8 Jul

Finally signed up for the Edward Tufte one-day course that’s being presented in two weeks.  I missed out on the chance to attend last year (didn’t know about it until after it was full), but I’m really excited that I’ll be there this year!  See more info at https://www.edwardtufte.com/tufte/courses.  From the course web page, here’s the topic list:

Topics covered in one-day course

  • fundamental strategies of analytical design
  • evaluating evidence used in presentations
  • statistical data: tables, graphics, and semi-graphics
  • business, scientific, research, and financial presentations
  • complexity and clarity
  • effective presentations: on paper and in person
  • interface design
  • use of PowerPoint, video, overheads, and handouts
  • multi-media, internet, and websites
  • credibility of presentations
  • animation and scientific visualizations