From 02f9d5e9272deae430b6dd0bc3ae3025bc11872b Mon Sep 17 00:00:00 2001 From: Gio Date: Sat, 12 Jul 2014 18:12:16 +0200 Subject: [PATCH] Added metallo.js blog code Also changed the baseUrl variable to take consideration of the fact that the website is served for www.mokacoding.com --- Makefile | 6 + README 2.md | 9 + TODO.md | 3 + metallo/build.js | 255 ++++++++++++++++++ .../src/assets/2013-09-16-missing-link.jpg | Bin 0 -> 13766 bytes .../src/assets/2013-09-16-submit-today.jpg | Bin 0 -> 18932 bytes .../assets/2013-09-16-the-terrible-dialog.jpg | Bin 0 -> 65930 bytes metallo/src/assets/2013-09-16-use-xcode5.jpg | Bin 0 -> 36426 bytes .../src/assets/2013-10-31-afnetworking_fs.png | Bin 0 -> 22150 bytes .../assets/2014-03-28-linked-libraries.png | Bin 0 -> 28253 bytes .../assets/2014-03-28-linked-libraries2.png | Bin 0 -> 31426 bytes .../assets/2014-03-28-linked-libraries3.png | Bin 0 -> 32061 bytes .../src/assets/2014-03-28-pods-targets.png | Bin 0 -> 17118 bytes .../src/assets/2014-04-03-blur-buttons.jpg | Bin 0 -> 24019 bytes metallo/src/assets/2014-04-03-blur.jpg | Bin 0 -> 29088 bytes .../2014-04-03-cagradientlayer-advanced.jpg | Bin 0 -> 10110 bytes .../src/assets/2014-04-03-cagradientlayer.jpg | Bin 0 -> 3686 bytes metallo/src/assets/2014-04-03-gbs-icon.png | Bin 0 -> 1852 bytes .../src/assets/2014-04-03-merged-images.jpg | Bin 0 -> 22498 bytes .../assets/2014-04-16-linked-libraries.jpg | Bin 0 -> 25724 bytes metallo/src/css/griddy.css | 69 +++++ metallo/src/css/highlight-obsidian.css | 166 ++++++++++++ metallo/src/css/style.css | 98 +++++++ metallo/src/css/syntax-native.css | 72 +++++ metallo/src/index.md | 6 + metallo/src/posts/2013-01-05-cocoapods.md | 107 ++++++++ ...21-cocoapods-how-to-create-your-own-pod.md | 74 +++++ ...e-builds-of-the-same-app-and-testflight.md | 53 ++++ ...-11-osx-a-scanner-and-the-drivers-drama.md | 14 + ...-for-facebook-integration-on-ios-part-1.md | 88 ++++++ .../2013-07-06-things-learned-in-june.md | 31 +++ ...2013-07-09-cocoapods-the-inherited-flag.md | 28 ++ .../src/posts/2013-07-17-a-week-of-time.md | 17 ++ .../posts/2013-07-26-what-i-did-in-a-week.md | 34 +++ .../2013-08-01-things-learned-in-july.md | 77 ++++++ .../2013-09-03-things-learned-in-august.md | 52 ++++ .../2013-09-16-xcode5-crash-on-submission.md | 96 +++++++ metallo/src/posts/2013-09-17-mtfonticon.md | 57 ++++ .../posts/2013-09-23-setup-a-dev-machine.md | 83 ++++++ .../2013-09-24-ios7-ux-designers-verdict.md | 32 +++ .../2013-10-02-things-learned-in-september.md | 68 +++++ .../src/posts/2013-10-06-october-questions.md | 46 ++++ ...013-10-31-Xcode-projects-and-workspaces.md | 147 ++++++++++ .../2013-11-12-things-learned-in-october.md | 30 +++ ...-has_many-association-to-existing-model.md | 126 +++++++++ metallo/src/posts/2013-11-20-podcasts.md | 77 ++++++ ...13-retrospectives-and-2014-propositions.md | 82 ++++++ ...06-automating-ios-enterprise-deployment.md | 71 +++++ ...rce-bundle-and-dynamically-loaded-fonts.md | 114 ++++++++ .../src/posts/2014-03-28-upgrading-podfile.md | 89 ++++++ .../2014-04-03-gradient-backgrounds-studio.md | 203 ++++++++++++++ .../2014-04-09-2014-resolutions-review.md | 45 ++++ ...coapods-and-custom-build-configurations.md | 115 ++++++++ metallo/src/templates/_pagination.jade | 17 ++ metallo/src/templates/_post.jade | 24 ++ metallo/src/templates/_post_meta.jade | 5 + metallo/src/templates/_posts_list.jade | 2 + metallo/src/templates/index.jade | 8 + metallo/src/templates/page.jade | 26 ++ metallo/src/templates/post.jade | 5 + metallo/src/templates/tag-index.jade | 12 + metallo/watch.js | 18 ++ package.json | 31 +++ 63 files changed, 2888 insertions(+) create mode 100644 Makefile create mode 100644 README 2.md create mode 100644 TODO.md create mode 100644 metallo/build.js create mode 100644 metallo/src/assets/2013-09-16-missing-link.jpg create mode 100644 metallo/src/assets/2013-09-16-submit-today.jpg create mode 100644 metallo/src/assets/2013-09-16-the-terrible-dialog.jpg create mode 100644 metallo/src/assets/2013-09-16-use-xcode5.jpg create mode 100644 metallo/src/assets/2013-10-31-afnetworking_fs.png create mode 100644 metallo/src/assets/2014-03-28-linked-libraries.png create mode 100644 metallo/src/assets/2014-03-28-linked-libraries2.png create mode 100644 metallo/src/assets/2014-03-28-linked-libraries3.png create mode 100644 metallo/src/assets/2014-03-28-pods-targets.png create mode 100644 metallo/src/assets/2014-04-03-blur-buttons.jpg create mode 100644 metallo/src/assets/2014-04-03-blur.jpg create mode 100644 metallo/src/assets/2014-04-03-cagradientlayer-advanced.jpg create mode 100644 metallo/src/assets/2014-04-03-cagradientlayer.jpg create mode 100644 metallo/src/assets/2014-04-03-gbs-icon.png create mode 100644 metallo/src/assets/2014-04-03-merged-images.jpg create mode 100644 metallo/src/assets/2014-04-16-linked-libraries.jpg create mode 100644 metallo/src/css/griddy.css create mode 100644 metallo/src/css/highlight-obsidian.css create mode 100644 metallo/src/css/style.css create mode 100644 metallo/src/css/syntax-native.css create mode 100644 metallo/src/index.md create mode 100644 metallo/src/posts/2013-01-05-cocoapods.md create mode 100644 metallo/src/posts/2013-01-21-cocoapods-how-to-create-your-own-pod.md create mode 100644 metallo/src/posts/2013-05-29-multiple-builds-of-the-same-app-and-testflight.md create mode 100644 metallo/src/posts/2013-06-11-osx-a-scanner-and-the-drivers-drama.md create mode 100644 metallo/src/posts/2013-06-25-mokagios-self-memo-for-facebook-integration-on-ios-part-1.md create mode 100644 metallo/src/posts/2013-07-06-things-learned-in-june.md create mode 100644 metallo/src/posts/2013-07-09-cocoapods-the-inherited-flag.md create mode 100644 metallo/src/posts/2013-07-17-a-week-of-time.md create mode 100644 metallo/src/posts/2013-07-26-what-i-did-in-a-week.md create mode 100644 metallo/src/posts/2013-08-01-things-learned-in-july.md create mode 100644 metallo/src/posts/2013-09-03-things-learned-in-august.md create mode 100644 metallo/src/posts/2013-09-16-xcode5-crash-on-submission.md create mode 100644 metallo/src/posts/2013-09-17-mtfonticon.md create mode 100644 metallo/src/posts/2013-09-23-setup-a-dev-machine.md create mode 100644 metallo/src/posts/2013-09-24-ios7-ux-designers-verdict.md create mode 100644 metallo/src/posts/2013-10-02-things-learned-in-september.md create mode 100644 metallo/src/posts/2013-10-06-october-questions.md create mode 100644 metallo/src/posts/2013-10-31-Xcode-projects-and-workspaces.md create mode 100644 metallo/src/posts/2013-11-12-things-learned-in-october.md create mode 100644 metallo/src/posts/2013-11-13-rails-add-has_many-association-to-existing-model.md create mode 100644 metallo/src/posts/2013-11-20-podcasts.md create mode 100644 metallo/src/posts/2014-01-02-2013-retrospectives-and-2014-propositions.md create mode 100644 metallo/src/posts/2014-01-06-automating-ios-enterprise-deployment.md create mode 100644 metallo/src/posts/2014-02-13-sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts.md create mode 100644 metallo/src/posts/2014-03-28-upgrading-podfile.md create mode 100644 metallo/src/posts/2014-04-03-gradient-backgrounds-studio.md create mode 100644 metallo/src/posts/2014-04-09-2014-resolutions-review.md create mode 100644 metallo/src/posts/2014-04-16-cocoapods-and-custom-build-configurations.md create mode 100644 metallo/src/templates/_pagination.jade create mode 100644 metallo/src/templates/_post.jade create mode 100644 metallo/src/templates/_post_meta.jade create mode 100644 metallo/src/templates/_posts_list.jade create mode 100644 metallo/src/templates/index.jade create mode 100644 metallo/src/templates/page.jade create mode 100644 metallo/src/templates/post.jade create mode 100644 metallo/src/templates/tag-index.jade create mode 100644 metallo/watch.js create mode 100644 package.json diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..61ea89fb --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +serve: + ./node_modules/http-server/bin/http-server -p 8000 + +watch: + node ./metallo/build.js + node ./metallo/watch.js diff --git a/README 2.md b/README 2.md new file mode 100644 index 00000000..6dfe5137 --- /dev/null +++ b/README 2.md @@ -0,0 +1,9 @@ +# metallo.js + +This is just an experiment I'm running to understand if [metalsmith](http://metalsmith.io) is a valid alternative to [Jekyll](http://jekyllrb.com/). + +## Run + +`make serve` will serve the static website locally on port 8000. + +Optionally run `make watch`, in another terminal, to watch the `src` folder and rebuild every time a file changes. \ No newline at end of file diff --git a/TODO.md b/TODO.md new file mode 100644 index 00000000..bc736c1f --- /dev/null +++ b/TODO.md @@ -0,0 +1,3 @@ +# TODO + +* h1.brand is redundand, could just be a spec in .col-12.header \ No newline at end of file diff --git a/metallo/build.js b/metallo/build.js new file mode 100644 index 00000000..1554e00e --- /dev/null +++ b/metallo/build.js @@ -0,0 +1,255 @@ +// A lot of this is taken form https://github.com/lsjroberts/gelatin-design/blob/master/build.js + +var metalsmith = require("metalsmith") + , markdown = require("metalsmith-markdown") + , templates = require("metalsmith-templates") + , collections = require("metalsmith-collections") + , permalinks = require("metalsmith-permalinks") + , branch = require("metalsmith-branch") + , ignore = require("metalsmith-ignore") +; + +var baseUrl = "/mokacoding-metalsmith/"; +// TODO: find something better +// turn on for development +baseUrl = "/"; + +metalsmith(__dirname) + .source("src") + .destination("..") + .clean(true).except([ + ".git", + "metallo", + "node_modules", + ".gitignore", + "Makefile", + "npm-shrinkwrap.json", + "package.json", + "README.md", + "TODO.md" + ]) + + .use(ignore("templates/*")) + .use(ignore("assets/*")) + + .use(function(files, metalsmith, done) { + metalsmith.metadata().baseUrl = baseUrl; + done(); + }) + + // automatically set some values for the posts + // lazy devolepers => smart developers + .use(branch("posts/*.md") + .use(function (files, metalsmith, done) { + for (var key in files) { + var post = files[key]; + var name = key.split("/").pop(); + + var date = post.date; + if (!date) { + date = name.slice(0,10); + post.date = new Date(date); + } + + // set post slug based on file name + var slug = name.slice(11, -3); + post.slug = slug; + + // set tags to empty array if tags are missing form post + // (this avoids crashes in the templete) + // TODO: or should it be responsibility of the template to check that tags exist? + var tags = post.tags; + if (!tags) { post.tags = []; } + } + done(); + }) + ) + + // important: collections must be set before templates + // or the templates won't have the variables and crash + .use(collections({ + posts: { + pattern: "posts/*", + sortBy: "date", + reverse: true + } + })) + + .use(markdown({ + highlight: function (code) { + return require('highlight.js').highlightAuto(code).value; + }, + langPrefix: 'hljs ' + })) + + .use(branch("posts/*.html") + .use(permalinks({ + pattern: 'blog/:slug' + })) + .use(function (files, metalsmith, done) { + for (var file in files) { + files[file].template = 'post.jade'; + } + done(); + }) + .use(function (files, metalsmith, done) { + for (var key in files) { + post = files[key]; + + var day = post.date.getDate(); + if (day < 10) { day = "0" + day; } + + var month = post.date.getMonth() + 1; + if (month < 10) { month = "0" + month; } + + var path = post.date.getFullYear() + "/" + month + "/" + day + "/" + post.slug + ".html"; + + var retrocompatible_post = {}; + for (var _key in post) { + retrocompatible_post[_key] = post[_key]; + } + + files[path] = retrocompatible_post; + } + done(); + }) + ) + + // for the moment the blog has a post per page, no point in paginating it when collections already + // provider next and previous + // .use(paginator) + .use(tagList) + + // temp fix for metalsmith-template corrupting images + // see https://github.com/segmentio/metalsmith/issues/60 and https://github.com/segmentio/metalsmith-templates/issues/17 + .use(branch(filterImages) + .use(templates({ + engine: "jade", + directory: "src/templates" + })) + ) + + .build(function(err) { + if (err) { + throw err; + } else { + console.log("✔ done"); + } + } +); + +function filterImages(filename, properties, index) { + var extension = filename.split('.').pop().toLowerCase(); + var imageExtensions = [ "jpg", "jpeg", "png" ]; + var notAnImage = imageExtensions.indexOf(extension) == -1; + return notAnImage; +} + + +function paginator(files, metalsmith, done) { + + /* + * mokagio's version + * + var posts = metalsmith.data.posts; + + var pages = []; + var postsPerPage = 2; + + var numberOfPages = Math.ceil(posts.length / postsPerPage); + for (var i = 0; i < numberOfPages; i++) { + pages.push( posts.slice((postsPerPage * i), ((postsPerPage * i) + postsPerPage)) ); + } + + console.log(pages); + console.log("Built an array of " + pages.length + " pages, with " + postsPerPage + " items per page. Last page has " + pages[numberOfPages - 1].length + " items"); + + var index = files['index.md']; + index.posts = pages[0]; + */ + + // lsjroberts version + var index = files['index.html'], + original_posts = metalsmith.data.posts, + perPage = 1; + + // hack for rendering of multiple templates. + // + // if we push the original post object in the pagination array, when it comes to render the pagination view jade is gonna render + // first the pagination, which extends the base template, then when it comes to the post it's gonna render the post as it's own + // page extending the base template as well, this means that we're gonna end up with a weird page inside the page. + // + // i'm sure that to avoid it there must be some option to pass to the jade compiler, but i haven't find it yet. + // + // what we do here is manually copy (by value) the posts array in order to be able to reset the template of the object that will + // go in the pagination array, without changing the original one. + posts = []; + for (var i = 0; i < original_posts.length; i++) { + original_post = original_posts[i]; + post = {}; + for (var key in original_post) { + if (key != 'template') { + post[key] = original_post[key]; + } + } + posts.push(post); + } + + index.posts = posts.slice(0,perPage); + index.currentPage = 1; + index.numPages = Math.ceil(posts.length / perPage); + index.pagination = []; + + for (var i = 1; i <= index.numPages; i++) { + index.pagination.push({ + num: i, + url: (1 == i) ? '' : 'index/' + i + }); + + if (i > 1) { + files['index/' + i + '/index.html'] = { + template: 'index.jade', + mode: '0644', + contents: '', + title: 'Page ' + i + ' of ' + index.numPages, + posts: posts.slice((i-1) * perPage, ((i-1) * perPage) + perPage), + currentPage: i, + numPages: index.numPages, + pagination: index.pagination, + }; + } + } + + done(); +} + +function tagList(files, metalsmith, done) { + var tags = {}; + + for (var post in metalsmith.data.posts) { + for (var t in metalsmith.data.posts[post].tags) { + tag = metalsmith.data.posts[post].tags[t]; + tag = tag.replace(/ /g, "-"); + if (! tags[tag]) { + tags[tag] = []; + } + + tags[tag].push(metalsmith.data.posts[post]); + } + } + + for (var tag in tags) { + path = 'tag/' + tag + '/index.html'; + files[path] = { + template: 'tag-index.jade', + mode: '0644', + contents: '', + title: "Posts tagged '" + tag + "'", + posts: tags[tag], + tag: tag, + path: path, + }; + } + + done(); +} \ No newline at end of file diff --git a/metallo/src/assets/2013-09-16-missing-link.jpg b/metallo/src/assets/2013-09-16-missing-link.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4fb3273524376cb10f1e8be5c4f543a263528cd3 GIT binary patch literal 13766 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 literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2013-09-16-submit-today.jpg b/metallo/src/assets/2013-09-16-submit-today.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c7c987fe8294dc83354310aef0f56f9310fd85db GIT binary patch literal 18932 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 literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2013-09-16-the-terrible-dialog.jpg b/metallo/src/assets/2013-09-16-the-terrible-dialog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bdc75211d73e88e28637e90e4d6b97d11f37753 GIT binary patch literal 65930 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�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

^>!L=?fb!a>AULww{}=M;gxtAFBr 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

p_An=^bIG9{A4GdoA4>J1gIC~LB|5mD&SQPBf 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

description: A brief introduction to CocoaPods, the Objective-C dependencies manager.

+ +

What is CocoaPods?

+ +
+

CocoaPods: The best way to manage library dependencies in Objective-C projects.

+
+ +

If you're familiar with Ruby on Rails, it's the same thing as Bundler, or it's lame copy attempt for Symfony 2, Composer.

+ +

If you're not, and you haven't sorted it out from the quote above, CocoaPods is a tool that's let us manage our libraries and their dependencies in our Objective-C projects. This means:

+ +
    +
  1. No more wasted time downloading all the libraries the one we want to use depends on.
  2. +
  3. Smart and safe version management, specially when we're working on a project with other people, which is 90% of the time.
  4. +
+ +

To "get my hands dirty" with CocoaPods I made this little project called JustNineGags, feel free to check it out on GitHub.

+ +

Why should I use it?

+ +

Because it's awesome! It makes development faster and easier, and also safer! It easier to work in teams and keep the libraries versions even. Should I go on? Ok! Just think about this: you won't download and move in your project a library anymore, pod will do it all for you!

+ +

Installing CocoaPods

+ +

Installing CocoaPods is as simple as installing all the other Ruby Gems, I shouldn't even writing this, as what's written in the install section is more than enough, anyway:

+ +
gem install cocoapods
+
+ +

Once the installation is completed run:

+ +
pod setup
+
+ +

This will, guess what, setup everything CocoaPods needs on your system. You should see an output like this:

+ +
Setting up CocoaPods master repo
+Cloning spec repo `master' from `https://github.com/CocoaPods/Specs.git' (branch `master')
+Setup completed (read-only access)
+
+ +

Done! :)

+ +

You should avoid using sudo otherwise everything else you'll do with pod will need to use sudo as well. And this mean that the folders and file that are gonna be created will be owend by root instead that by you.

+ +

Using CocoaPods

+ +

Again, everything written on the website is pretty straightforward.

+ +

Go in the root folder of your Objective-C project and create a file named Podfile, with whatever editor you like. We'll use this file to list all the libraries, pods, we need in the project. The JustNineGags Podfile content is:

+ +

+platform :ios
+pod 'MBProgressHUD', '~> 0.5'
+pod 'Reachability',  '~> 3.1.0'
+
+ +

Adding a Pod

+ +

As you can see adding a Pod is really easy, just go on CocoaPods website, look for the it, and then add it to the Podfile using it's name and the version you need.

+ +

Installing the Pods

+ +

Right now we've told CocoaPods the Pods we need but they aren't yet in out project. So let's run

+ +
pod install
+
+ +

This will download all the libraries we've asked for, and all their dependencies. Sweet!

+ +

The first time we run pod install something else will happen, a Pods/ folder, a Podfile.lock, and a YourProjectName.xcworkspace will be created.

+ +

Important! From now on remember to open your project through the YourProjectName.xcworkspace file, otherwise the pods won't be loaded by Xcode.

+ +

That's all folks! :)

+ +

What should we track?

+ +

Using CocoaPods adds some files and folders to our project, which of those should we track in our repo, and which should be left aside, adding them to the .gitignore? That of course assuming you're using git, and you definitely should. Let's have a look at the new stuff:

+ +
    +
  • Podfile, we definitely need this one, as all the pods we need are listed in it.
  • +
  • Podfile.lock, as for all the other library management systems, we need this one too, because it's used to assure all the developers are using the same versions of the pods and their dependencies.
  • +
  • Pods/, we don't need to track this folder, it's created by pod install, and all it's content is downloaded for us from other repos.
  • +
  • YourProjectName.xcworkspace, we don't need this one either, because it's generated by pod install too.
  • +
+ +

What's coming next?

+ +

How to setup our own pods. I'll probably write a little and simple Category to add other colors to the UIColor factories, stay tuned!

+ +
+ +

Update 2013-01-06

+ +

To implement HTTP requests in JustNineGags I used SMWebRequest because I'm too lazy to write everything by myself. SMWebRequest wasn't a Pod yet so I opened an issue asking good guy nfarina to add it. In less than 12 hours the Pod was added! :D

\ No newline at end of file diff --git a/metallo/src/posts/2013-01-21-cocoapods-how-to-create-your-own-pod.md b/metallo/src/posts/2013-01-21-cocoapods-how-to-create-your-own-pod.md new file mode 100644 index 00000000..f0a153c0 --- /dev/null +++ b/metallo/src/posts/2013-01-21-cocoapods-how-to-create-your-own-pod.md @@ -0,0 +1,74 @@ +--- +date: 2013-01-21 +title: CocoaPods - How to create your own Pod +tags: +- CocoaPods +- git +- iOS +- Objective-C +description: A step by step guide to create a basic CocoaPod. +--- +Like I said in the first part of my exploration of CocoaPods, using this iOS dependencies management is freaking easy, and reading what's on the homepage is more than enough to get started. Anyway let's see how we can create our how Pods. + +To learn how to do it I started the development of a little "framework" I called MGCraftman, where I'll put some utils methods I sometimes write to speed up UI development when I'm not using Interface Builder. But let's stop the chitchat and let's code! + +

Step 1 - Code the Library!

+The first step is to have something to make a pod of, I guess every developer has his own little set of smart methods that make his life easier. Don't be greedy, share them with the community! +

Step 2 - Tag your pod properly

+Since we're gonna work with a dependency manager we need to take care of the version number of our pod. + + git tag -a 1.0.0 -m "Tag release 1.0.0" + +Take a couple of minutes to read through the Semantic Versioning to learn how to use tagging for version numbers properly and in a way that allows for resolution of cross-dependencies. +

Step 3 - The podspec

+Once our project is tagged properly we can create the .podspec file. The extension name explains that it will contain the "specs" of our "pod". + + pod spec create Donut + +This will generate the Donut.podspec file. + +You can also generate the podspec from a GitHub repo using the GitHub url instead of the name. +

Step 4 - Leave your mark on the podspec

+If you open the freshly generated Donut.podspec you'll find a lot of comments explaining the information you need to provide. There are a lot of options, but you don't need to set them all. You'll also notice that its nothing more that a Ruby file. + +Here's how the podspec of my toy framework, looks like. + + {% highlight objective-c %} + Pod::Spec.new do |s| + s.name = "MGCraftman" + s.version = "0.1.0" + s.summary = "A framework to speedup development when you can't (or don't want to) use Interface Builder." + s.homepage = "https://github.com/mokagio/MGCraftman" + + s.license = { :type => 'MIT', :file => 'LICENSE' } + + s.author = { "Giovanni Lodi" => "mokagio42@gmail.com" } + + s.source = { :git => "https://github.com/mokagio/MGCraftman.git", :tag => "0.1.0" } + s.source_files = 'MGCraftman/*.{h,m}' + + s.platform = :ios + end + {% endhighlight %} + +

Step 5 - Is my podspec ok?

+Once your podspec its ready validate it running + + pod spec lint Peanut.podspec + +If everything is fine you'll read + + pod spec lint Peanut.podspec + -> Peanut (1.0.0) + Analyzed 1 podspec. + Peanut.podspec passed validation. + +Otherwise pod spec will explain the error or warning, as everything is so simple also fixing the problems will be. Anyway the error report is already formatted in Markdown so you can copy it and paste it in an issue on the CocoaPods Issues page. +

Step 6 - Let your pod fly

+We're almost done here. Now to make our pod available to the community, or just to ourselves and feel cool, we have two options. The rookie way is open an issue, but we've just coded an iOS library, with it's own repo on GitHub, and generated the podspec fetching the data from there, so we're not rookies. The second option is to fork the Specs repo, add our pod, submit the PR and wait. + +I submitted my PR at 8:44 GTM+0 on a Sunday, let's see how long it takes to merge it. The PR approved and merged in less that 2 hours. That's what I call efficiency. Also you can ask for push rights, in order to maintain your pod without submitting a pull request every time. + +

And here we are. My MGCraftman framework is ready to be imported via CocoaPods, and all the world will be happy to use it, or not.

+ +That's all folks, happy coding! diff --git a/metallo/src/posts/2013-05-29-multiple-builds-of-the-same-app-and-testflight.md b/metallo/src/posts/2013-05-29-multiple-builds-of-the-same-app-and-testflight.md new file mode 100644 index 00000000..41cb67dc --- /dev/null +++ b/metallo/src/posts/2013-05-29-multiple-builds-of-the-same-app-and-testflight.md @@ -0,0 +1,53 @@ +--- +date: 2013-05-29 +title: Multiple builds of the same app and TestFlight +tags: +- automation +- development +- testflight +- xcode +slug: testflight-multiple-builds +description: How to distribute multiple builds of your iOS app, such as stable, QA and development builds, via TestFlight. +--- +

The Multiple Builds Dream

+ +

Working in Memrise on CatAcademy I've been massively using TestFlight to test new features before releasing the next versions of the app. One thing that always annoyed me was the fact that my development version overrode the release one, or that I couldn't keep a "stable" build and a "development" build on my device at the same time.

+ +

After attending the Facebook Mobile DevCon 2013 in London, where the talk from Alan Cannistraro on how Facebook made their iOS app I realized that having multiple builds of the same app was possible. But how to do it?

+ +

I did some research and found this post, which had almost all the info I need on how to setup my multiple builds infrastructure. There's no point in me copy-pasting what's written there, besides I'm sure 99.9% of you readers already opened the link in a new tab.

+ +

The post is pretty old, so here's an updated screenshot of the Build Settings editor.

+ +Screen Shot 2013-05-29 at 22.05.48 + +

If you follow the instructions and run the app on the simulator or on the device, you'll see the new development app appearing next to the release one, as expected.

+ +

This is pretty handy to go around with the two versions of the app and to some user testing with the friends, but guess what? It doesn't work with TestFlight! But fear not, there are only two other steps to make before reaching the goal.

+ +

Making a Development Archive

+ +

First problem: when we archive the app the Release configuration is used. Changing this option is pretty easy through the "Edit Scheme…" menu, but wait a second! If we change now the Build Configuration for the archive action from Release to Debug, we'll have to change it back once we're going to publish on the App Store. +Better creating a new Scheme and change the configuration in that one.

+ +

"Changing the Scheme every time we want to submit it just as annoying as editing it". Fair enough. But not really… Switching Scheme requires 2 clicks, while editing it at least 6. :P No, seriously switching Scheme is something we can easily automate, using xcodebuild or xctool and a couple of lines in your favourite scripting language.

+ +

Making it work on TestFlight

+ +

All right! Now we're finally able to archive our development version of the app and upload it on TestFlight, maybe through the TestFlight App which is nice and fast. But if we try to do it this is the result:

+ +>The provisioning profile is made for distribution builds but your app is built for development. Please select a valid development identity to continue. + +

Don't panic! The message gives us a tip already on how to solve the issue, we just need another Provisioning Profile! Select Development when creating the new profile and use the AppID of the "original" app. This last point surprised me, but I think it may have something to do with the sort of hierarchy structure the bundle ids have.

+ +

Once your Provisioning Profile is ready update the certificates list in Xcode, through the Organizer window, and proceed to Archive the app. Now when you'll upload the archive with the TestFlight App the new development certificate will appear.

+ +

Here we go!

+ +

Further Steps

+ +
    +
  • Add other Build Configurations, such as Testing, and other options, for example to have different icons for the different builds.
  • +
  • Manage the archive operation with xctool.
  • +
  • Automate even further using the TestFlight Upload APIs.
  • +
diff --git a/metallo/src/posts/2013-06-11-osx-a-scanner-and-the-drivers-drama.md b/metallo/src/posts/2013-06-11-osx-a-scanner-and-the-drivers-drama.md new file mode 100644 index 00000000..4d35c957 --- /dev/null +++ b/metallo/src/posts/2013-06-11-osx-a-scanner-and-the-drivers-drama.md @@ -0,0 +1,14 @@ +--- +date: 2013-06-11 +title: OSX, a scanner, and the drivers drama +tags: +- OS X +slug: osx-scanner-drivers-drama +description: The link to the Samsung Printer Drivers, enclosed in a ranting post. +--- + +Today I had to scan some documents, and I thought: it's gonna be super easy! I have a Mac, the printer is made by Samsung, all reliable manufacturers, a piece of cake. Yes, I know printers are evil objects, but I needed to use the scanner part, what could have gone wrong? The answer is... the classic missing drivers!!! + +Image +

It took me a while but I finally found the drivers, in the least expectable place, an official Apple page!

+

This is the end of the post. I hope one day another young and desperate guy will land on this page and find a smile, other than the damn drivers!

diff --git a/metallo/src/posts/2013-06-25-mokagios-self-memo-for-facebook-integration-on-ios-part-1.md b/metallo/src/posts/2013-06-25-mokagios-self-memo-for-facebook-integration-on-ios-part-1.md new file mode 100644 index 00000000..80a6c22e --- /dev/null +++ b/metallo/src/posts/2013-06-25-mokagios-self-memo-for-facebook-integration-on-ios-part-1.md @@ -0,0 +1,88 @@ +--- +date: 2013-06-25 +title: mokagio's self memo for Facebook Integration on iOS - Part 1 +tags: +- CocoaPods +- Facebook +- iOS +- Objective-C +slug: ios-facebook-integration-part-1 +description: "Step by step guide on how to integrate the Facebook SDK in an iOS app, the right way. Part 1: Facebook Login." +--- + +##Part 1 - Facebook Login + +###0 - Create a Facebook App + +Create an app on the Facebook App Dashboard, what are you gonna integrate otherwise?! + +###1 - Add the Facebook SDK Pod + +Given that you have already setup your libraries management with CocoaPods, and you should have, add to your `Podfile` the line + + pod "Facebook-iOS-SDK", "~> 3.5.2" + + +Then run `pod install`. + +For more info about how to use CocoaPods check out this post of mine. + +###2 - Add some Facebook data to the `Info.plist` + +Facebook requires you to add two fields to your `Info.plist` file: + +* **FacebookAppID**: a 15 digits number you can find in the Settings page of your app on your Facebook developer page. +* **FacebookDisplayName**: how to comment, the display name of your app? + +###3 - A basic login flow + +The tutorial tells us to put all the Facebook login in the `AppDelegate`. I don't like this approach, because I don't want to make the delegate dirty with code related only to Facebook. I prefer to create a `FacebookProxy` class, with class methods to call to interact with Facebook. + +Whatever solution you prefer the steps for the login are the same anyway: + +1. Check if the user is logged already. Let's assume he isn't… +2. Present in some way a call to action for the Facebook Login. +3. Call the Facebook SDK method to login the user. +4. Let the SDK do it's job. +5. Come back to the app and handle the result. + +####Check if the user is logged in + +To get the current Facebook session we use `FBSession.activeSession`. To see if the session is active, and therefore the user is already logged in, we need to check the `state` property: `FBSession.activeSession.state`. A quick look to the `typedef enum` of the `FBSessionState` and: + + {% highlight objective-c %} + + (BOOL)isUserLoggedInFacebook + { + if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded + || FBSession.activeSession.state == FBSessionStateOpen + || FBSession.activeSession.state == FBSessionStateOpenTokenExtended) { + return YES; + } else { + return NO; + } + } + {% endhighlight %} + +####Call the Facebook SDK method to login + +Easy peasy: + + {% highlight objective-c %} + [FBSession openActiveSessionWithReadPermissions:nil + allowLoginUI:YES + completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { + // handle stuff here + }]; + {% endhighlight %} + +In the completion handler we should… handle the result of the open active session. I think that this really depends on what our app will do, so I'm not gonna write any snippet here. + +####Come back to the app and handle the result + +If you're user's are using iOS 5 -I hope they're not-, or if they're so dumb they haven't installed the native Facebook app for iOS, the login will occur with a sort of modal window in your app. In all the rest of the cases the + +###Frameworks needed in the Test Bundle +TDD is the way. Full stop. I noticed that adding the Facebook-iOS-SDK pod to my project wasn't enough for my test bundle to run, there were some framework dependencies missing: + +* AdSupport.framework +* Social.framework diff --git a/metallo/src/posts/2013-07-06-things-learned-in-june.md b/metallo/src/posts/2013-07-06-things-learned-in-june.md new file mode 100644 index 00000000..4a21d0d7 --- /dev/null +++ b/metallo/src/posts/2013-07-06-things-learned-in-june.md @@ -0,0 +1,31 @@ +--- +date: 2013-07-06 +title: Some things I learned in June +tags: +- CocoaPods +- Math +- Objective-C +- zsh +slug: things-i-learned-in-june-2013 +description: A summary of the things I learned in June 2013. +--- + +Last month I decided to start keeping track of the things learned along the way. This list at the moment seems kinda short, let's say that's because I didn't start keeping track of the stuff from the beginning of the month. + +###Coding + +Testing Objective-C classes equality: [http://stackoverflow.com/questions/10944460/testing-class-equality-in-objective-c](http://stackoverflow.com/questions/10944460/testing-class-equality-in-objective-c) + +Objective-C `_cmd` returns the method name within a method: [http://stackoverflow.com/questions/2770307/nslog-the-method-name-with-objective-c-in-iphone](http://stackoverflow.com/questions/2770307/nslog-the-method-name-with-objective-c-in-iphone) + +You can use a Pod locally: [https://github.com/CocoaPods/CocoaPods/wiki/Working-on-a-pod](https://github.com/CocoaPods/CocoaPods/wiki/Working-on-a-pod) + +###Systems and Tools + +How to stop autocorrect in zsh: +http://yountlabs.com/blog/2010/11/06/disable-autocorrect-in-zsh/ + +###Trivia + +Where does the Logarithm name come from: +"Napier first called L an "artificial number", but later introduced the word "logarithm" to mean a number that indicates a ratio: λόγος (logos) meaning proportion, and ἀριθμός (arithmos) meaning number." http://en.wikipedia.org/wiki/Logarithm diff --git a/metallo/src/posts/2013-07-09-cocoapods-the-inherited-flag.md b/metallo/src/posts/2013-07-09-cocoapods-the-inherited-flag.md new file mode 100644 index 00000000..9f40a301 --- /dev/null +++ b/metallo/src/posts/2013-07-09-cocoapods-the-inherited-flag.md @@ -0,0 +1,28 @@ +--- +date: 2013-07-09 +title: 'CocoaPods: the $(inherited) flag' +tags: +- CocoaPods +- iOS +- Xcode +slug: cocoapods-the-inherited-flag +description: A self memo on how to set the $(inherited) flag on a project using CocoaPods on Xcode. +--- + +I've done it a lot of times by now, but I keep forgetting it. So here's a quick post to commit it to memory! + +If we have a project with the Tests target it can happen that after running `pod install` we get this message: + + [!] The target `MyProjectTests [Debug]` overrides the `FRAMEWORK_SEARCH_PATHS` build setting defined in `Pods/Pods-MyProjectTests.xcconfig'. + - Use the `$(inherited)` flag, or + - Remove the build settings from the target. + +How can we "use the $(inherited) flag"? Where should we add it? + +The `$(inherited)` flag is an flag we can pass to the linker and that does some magic.... I haven't been able to find a proper explanation for how $(inherited) works, although it's easy to guess from the name. + +Being a linker flag we can add it in our target Build Settings > Other Linker Flags section. + +Screen Shot 2013-07-10 at 00.16.36 + +That's all. I feel better now that I've put this piece of memory in the external storage of my brain that is the internet. And I hope it may help someone else too. diff --git a/metallo/src/posts/2013-07-17-a-week-of-time.md b/metallo/src/posts/2013-07-17-a-week-of-time.md new file mode 100644 index 00000000..42b6fcff --- /dev/null +++ b/metallo/src/posts/2013-07-17-a-week-of-time.md @@ -0,0 +1,17 @@ +--- +date: 2013-07-17 +title: A week of time... +tags: +- xctool +status: publish +slug: a-week-of-time +description: A declaration of purposes for what I'm gonna do in the next week. +--- + +I found myself in an unusual situation: my girlfriend is gonna be away for a week, and almost all my friends are already busy for the weekend. This means that I'll have **a lot of lonely time** + +What am I gonna do? The answer is easy: code as much as I can, and enjoy the sun that's been blessing London for the past days. + +I've actually already started coding. I've just submitted a PR to xctool, let's see how it goes... + +I'm gonna write again in a week and report my progress. Hopefully I'll have an almost ready iOS app, and an embryo of a Twitter-based web-app ready. diff --git a/metallo/src/posts/2013-07-26-what-i-did-in-a-week.md b/metallo/src/posts/2013-07-26-what-i-did-in-a-week.md new file mode 100644 index 00000000..bd3a1c98 --- /dev/null +++ b/metallo/src/posts/2013-07-26-what-i-did-in-a-week.md @@ -0,0 +1,34 @@ +--- +date: 2013-07-26 +title: What I did in a week... +tags: +- CoreData +- iOS +- Open Source +- Ruby on Rails +- TDD +slug: what-i-did-in-a-week +description: A recap of what I developed during an unusual week left by myself without neither girlfriend nor friends. +--- + +As promised one week ago, here's a report of what I managed to do in this unusually full of free time week. + +I've caught up with Arrow and Game of Thrones. The Red Wedding was better in the book, in my opinion. + +Oh! Yes... I did some coding as well :D I've completed the MVP of my iOS app, and I have a working and tweeting setup of the Twitter based Rails App. + +###iOS + +I've built a simple app using CoreData and MagicalRecod for the data storage, focusing on a simple gesture based UX, powered by JTGestureBasedTableView, with an iOS7ish look. The idea was to roll it out on TestFlight for a week or two and then submit, but the recent cracker attack at Apple have delayed plans. I also used my two WIP pods MGCraftman and MGObjectiveUtils, but the project is simple so I didn't have the occasion to add stuff to them. + +###Rails + +To implement my Twitter based web app I've relied on the twitter gem, which does all the dirty work for me. I'm using Haml for the templates, I love it, so minimal and clear. I'm also gonna use SASS for the styling. So far I've only been using LESS, so I decided to give it a twist. + +###Good Practices + +Both the projects are obviously being implemented in a as much test driven way as possible! rspec and webmock on the Ruby side, Kiwi on the Objective-C one. Neat! + +Finally my simple PR on xctool has been merged, and I'm proud of it. And surprised no one thought about coloring the result output before... + +That's all. I'm overall satisfied of what I managed to build. Although I could have avoided watching half a season of Arrow in two days while coding and focusing more... -.- diff --git a/metallo/src/posts/2013-08-01-things-learned-in-july.md b/metallo/src/posts/2013-08-01-things-learned-in-july.md new file mode 100644 index 00000000..86f0c162 --- /dev/null +++ b/metallo/src/posts/2013-08-01-things-learned-in-july.md @@ -0,0 +1,77 @@ +--- +date: 2013-08-01 +title: Some things I learned in July +tags: +- AWS +- iOS +- Objective-C +- Postgres +- Ruby +- Ruby on Rails +- Software Engineering +slug: things-learned-in-july-2013 +description: A summary of the things I learned in July 2013. +--- + +July has been a month dense of learning and (re)discoveries! First of all Rails 4, which I come to love back in the day, when I was working with my friends on the first prototype of Kunerango + +###Objective-C and iOS Development + +http://rentzsch.github.io/mogenerator/ + +Guess what? CoreData doesn't make your life easy when you're seriously working with test, http://stackoverflow.com/questions/1876568/ocmock-with-core-data-dynamic-properties-problem. I like the protocol approach, even if it adds a some "boilerplate code" to maintain. + +nomad a set of useful tools to automate the every-day development. Another gift from mister Mattt. + +###Ruby on Rails + +Rails 4 finally out! http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/ + +Nice and clear guide to testing with RSpec on Rails http://everydayrails.com/2012/03/12/testing-series-rspec-setup.html + +Binstubs, because the less we type, the better! http://blog.barbershoplabs.com/blog/2013/03/01/upgrading-to-rails-40-binstubshttp://mislav.uniqpath.com/2013/01/understanding-binstubs/http://robots.thoughtbot.com/post/15346721484/use-bundlers-binstubs + +The haml-rails gem integrates with the template generators, out of the box! + +How cool are named routes? post 'items/move_down/:id' => 'items#move_down', as: :move_down ), look at the routes.rb comments to know more about them. + +Amazon AWS S3 gem http://amazon.rubyforge.org + +I found a nice gem to add enumeration type to the ActiveRecord models: active_enum, but is it compatible with Rails 4? Here's a [link](http://qubitlogs.com/Rails/2013/02/01/creating-pre-defined-set-of-attributes-mapping-integers-to-strings-in-rails/#.UdWbpT6DQ_U) on how to use it. + +###Ruby + +I wrote some scripts to speed up some of my daily task at work, and used some nice gems in the meantime: +nokogiri, to parse HTML using CSS selectors +rest-client, fetching pages from the web with one line of code +json, to parse JSON +diffy, comparing strings has never been so easy +mail, sending emails from your scripts + +###Coding Recipes + +http://codeartists.com/post/36892733572/how-to-directly-upload-files-to-amazon-s3-from-your + +http://quickleft.com/blog/keeping-your-json-response-lean-in-rails + +Several ways to run a command line command from a Ruby script. + +###Sysadmin + +Fixing Postgres connection error on OS X Mountain Lion http://jaygoldman.com/2012/11/fixing-postgres-connection-errors-on-mountain-lion/ (funny because with Node there were no problems) + +###Javascript + +I looked into a bunch of Javasciprt techs: Underscore.jsJadeHandlebarsStylusExpress + +###Tools + +http://imageoptim.com/ + +###Software Engineering Good Practices + +Coupled dependencies, I found one of those monsters in a colleague's code. It took a lot of self-control to avoid being a prick and pointing it out on GitHub. + +###Interesting readings + +How Basecamp Next got to be so damn fast without using much client-side UI diff --git a/metallo/src/posts/2013-09-03-things-learned-in-august.md b/metallo/src/posts/2013-09-03-things-learned-in-august.md new file mode 100644 index 00000000..262d0bad --- /dev/null +++ b/metallo/src/posts/2013-09-03-things-learned-in-august.md @@ -0,0 +1,52 @@ +--- +date: 2013-09-03 +title: Some things I learned in August +tags: +- iOS +- Objective-C +- Ruby +- Layout +- CSS +- Open Source +slug: things-learned-in-august-2013 +--- + +###iOS and Objective-C + +Since `NSDecimalNumber` can be init from a string there's the risk it's gonna produce a NaN. To avoid this check for `[myDecimalNumber isEqualToNumber:[NSDecimalNumber notANumber]]` + +[xcoder](https://github.com/rayh/xcoder) a Ruby gem to automate our Xcode project management. + +###Ruby + +As you know I have the -really good- habit of writing scripts to automate routine tasks in my work, mostly in Ruby. I naively used to check for arguments with `ARGV.include? "--some-option"`, until a workmate had a look at my code and surprisedly asked why Ruby didn't had an option parser library like argparse module in Python. Turns out it does. Meet the OptionParser class. + +Configure URI.extract to avoid unexpected surpirses. http://blog.apptamers.com/post/48613650042/uri-extract-incorrect-in-ruby-1-9-3 + +[colorize](https://github.com/fazibear/colorize), gem to add color to Ruby scripts. + +###Javascript + +timeago, quick jQuery library to format datetimes in "xxx ago" strings. + +###Layout and CSS + +FlatUI framework + +Their slow in definig standards, but sometimes the W3C is a good place where to find resources. Fonts usable in CSS. + +[Font Custom](http://fontcustom.com/) and [IcoMoon](http://icomoon.io/), resources to aggregate icons in a font file, to use as [font icons](http://css-tricks.com/examples/IconFont/). Or, why not, to speedup iOS development, as I'm doing in one project of mine I may write about soon: [MTFontIcon](https://github.com/mokagio/MTFontIcon). + +###Interesting Readings + +* [The Wooga approach to game prototyping](http://www.pocketgamer.biz/r/PG.Biz/Wooga+news/feature.asp?c=52660) +* [Techniques and Strategies for Data-driven design in Game Development](http://ai.eecs.umich.edu/soar/Classes/494/talks/Schumaker.pdf) +* [Some scaling tips from Dropbox](http://eranki.tumblr.com/post/27076431887/scaling-lessons-learned-at-dropbox-part-1) +* [A fun infographic about the startup world characters](https://www.udemy.com/blog/startup-ecosystem-infographic/) +* [How Twitter reached 143,199 Tweets per second](https://blog.twitter.com/2013/new-tweets-per-second-record-and-how) + +###Tools + +waffle.io, a shared kanban board for your projects on GitHub. + +My workmates Adam Chainz introduced me to the Colemak keyboard layout. \ No newline at end of file diff --git a/metallo/src/posts/2013-09-16-xcode5-crash-on-submission.md b/metallo/src/posts/2013-09-16-xcode5-crash-on-submission.md new file mode 100644 index 00000000..0ee8079b --- /dev/null +++ b/metallo/src/posts/2013-09-16-xcode5-crash-on-submission.md @@ -0,0 +1,96 @@ +--- +date: 2013-09-16 +title: A workaround to Xcode 5 GM crash on app submission +tags: +- Xcode +- App Store +- Bugs +slug: xcode5-crash-on-submission +description: A workaround for the unusual crash of Xcode 5 GM during the App Store submission process. +--- +I just finished writing this post, and I realized is just about me complaining trying to sound funny. So here's, frontloaded, the important stuff. + +Apparently Xcode 5 GM crashed on some of us during the App Store submission process. Before even starting it. How annoying. + +The workaround I found relies on bypassing Xcode for the submission process. + +####Step 1 + +Make sure all the provisioning profiles and code signing are set properly + +####Step 2 + +Open your Terminal and generate the `.ipa` yourself, with the help of [shenzhen](https://github.com/nomad/shenzhen). + + cd my/ready/to/be/submitter/ios/project + ipa build -c Release + +####Step 3 + +Upload the app through Application Loader. + +####Step 4 + +Find a tv series to start watching while waiting for your app to be reviewed. + +That's all. It took me an embarrassing long while to figure this out, I hope to be helping some fellow developer with this post. + +Below the full thing. + +
+ +Every now and then in the lifecycle of an iOS project it comes the day when you have to submit an update, or even worst touch the provisioning profiles. When that day comes, it's better if it's a Monday, because you don't want to ruin yourself the weekend. And it's also better if you have chamomile in your cup instead of coffee. + +###Submit your iOS7 apps today + +![Submit today](http://mokacoding.s3.amazonaws.com/2013-09-16-submit-today.jpg) + +On the 10th of September Apple sent an email to their developers, "Submit your iOS7 apps today" they said. Up to that point we couldn't submit apps made with the iOS7 SDK, as written somewhere in the Xcode 5 Developer Preview release notes. But that day the iOS7 GM and Xcode 5 GM where released, and the run to submit started. + +![Use Xcode 5 GM](http://mokacoding.s3.amazonaws.com/2013-09-16-use-xcode5.jpg) + +In their beautiful styled [iOS7 developer page](https://developer.apple.com/ios7/) they explained everything. If you follow the link to the [App Distribution Guide](https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduction/Introduction.html) in the bottom of the page you will have a funny surprise. The link goes to the previous version documentation, and our Apple engineers forgot to add a link to the new version. + +![Missing link](http://mokacoding.s3.amazonaws.com/2013-09-16-missing-link.jpg) + +I'm sure everything is gonna be fine, Xcode is such a reliable IDE, and the Apple guys are known for the quality of the products they give to their developers. Let's go! + +###The tragic message + +When clicking on "Validate" or "Distribute" from the organizer, no matter how may times I refreshed my Accounts in the Preferences menu this is what I got + +![The terrible dialog](http://mokacoding.s3.amazonaws.com/2013-09-16-the-terrible-dialog.jpg) + +And guess what? Both those buttons resulted in Xcode crashing, right there, with no explanation, no progress bar, nothing, Boom! + +Out of curiosity I opened the crash log that got generated and… + + Crashed Thread: 0 Dispatch queue: com.apple.main-thread + + Exception Type: EXC_BAD_ACCESS (SIGSEGV) + Exception Codes: EXC_I386_GPFLT + +Whenever I get an `EXC_BAD_ACCESS (SIGSEGV)` I feel like punching myself in the face, it's a memory issue, and I must have been really dumb to produce something like that in the ARC era. + +But let's not waste time complaining about those things, risking to be kicked out of the dev program, and look for a solution. + +###The workaround + +What's the place where all the developers go when in trouble? No it's not church, it's [StackOverflow](stackoverflow.com)! There I found [someone with the same problem](http://stackoverflow.com/questions/18748779/xcode5-gm-crashes-no-identities-are-available-for-signing-then-crash/), suggesting to use Application Loader to upload the app. + +I never used it before, but I was faced with a problem straightaway. Application Loader need an `.ipa`, which we can generate only through the Organizer in Xcode. + +_"which we can generate only through the Organizer in Xcode."_. Are you sure about it? + +Actually `xcodebuild`, Xcode CLI, let us build ipas, in a very complex way. `xctool` buy the Facebook iOS team makes the task easier, but it the usual suspect, good guy [Mattt](https://github.com/mattt) that has the real solution for that. With his gem [shenzhen](https://github.com/nomad/shenzhen) we can build an ipa from command line without spending too much time specifing options or reading through the `--help` guide. + + ipa build -c Release + +That's all we need to generate our `.ipa`. + +Once we have our package we can send it to the Apples servers through Application Loader, bypassing Organizer and the frustrating crash. Smart! + +
+That's all folks. I'm a bit disappointed by the fact that such an issue is leaked on a GM, when we, some of us at least, spend so much time unit testing our apps, being patient with the QA guys, and taking all the possible measures to make sure everything works as expected. But nobody's perfect, and every now and then hacking stuff is fun, so no big deal. + +Happy coding! \ No newline at end of file diff --git a/metallo/src/posts/2013-09-17-mtfonticon.md b/metallo/src/posts/2013-09-17-mtfonticon.md new file mode 100644 index 00000000..5bf678f1 --- /dev/null +++ b/metallo/src/posts/2013-09-17-mtfonticon.md @@ -0,0 +1,57 @@ +--- +date: 2013-09-17 +title: Bringing font icons in iOS with MTFontIcon +tags: +- iOS +- Objective-C +- Ruby +- Layout +- CSS +- Open Source +description: Introducing MTFontIcon, a CocoaPod library for iOS to improve application development efficiency by using font icons. +--- + +Let me introduce you one of my latests projects, on which I worked almost a month ago, but I'm both lazy and hyperactive when it comes to projects, so the blog post arrives only now... + +###MTFontIcon + +**MTFontIcons**, available as a [CocoaPod](cocoapods.org/?q=mtfonticon) and on [GitHub](https://github.com/mokagio/MTFontIcon), is a library that let's us use font-based icons in iOS application, speeding up the development and helping those poor developers that don't even know how to select the pen tool in Adobe Illustrator. + +###The problem + +Few people in our world are both great developers and skilled artist, my friend and ex-colleague [Tancredi](https://twitter.com/Liquidimage_) is one of those. For the rest of us mere mortals finding building a well crafted app is already a big task, and we don't have time to go through the [Nettus+](http://net.tutsplus.com/) Illustrator and Photoshop tutorials to learn how to make a nice icon set for our apps. We only speak code. + +It would be really nice to have a way to iterate on the attributes of our icons and images quickly and without losing quality. Changing the color from #f0f0f0 to #f0dff1, making it 2pts wider, increasing the alpha of the shadow, without opening Illustrator, or worst waiting for the designer to put the assets on Dropobox. It would be nice to code all those things. + +###The solution + +The fact is our cousins from the web world already faced this problem, and solved in a really nice way! They've been using [Icon Fonts](http://css-tricks.com/examples/IconFont/) for a while, and they're really happy about them. +This technique is so powerful and popular that even the famous framework [Bootstrap](http://getbootstrap.com/) made by the guys at Twitter is using it. And there are plenty of resources only to get ready made stets of icons, or roll out our own font uploading the SVGs. + +###How does it work? + +Then why not using the same smartness in Objective-C? The MTFontIcon idea was born from the above mentioned rebel genious of Tancredi, while working on a prototype for a new concept at [Memrise](http://www.memrise.com). Unfortunately the idea protoyped wasn't that good, unlike the tech behind it. + +The usage is simple: + +1. Create a font with all your icons, using web tools like [IcoMoon](http://icomoon.io/app/). +2. Import the font in your app, and don't forget to updated the `Info.plist`. +3. Define the matchings between the names you want to use for your icons and the unicode character they have in the font. +4. Get an instance of `MTFontIconFactory` and use it to get as many `MTFontIconView`s as you want :) + +Two minutes setup, two lines of code usage, twice as fast app UI development and polishing! + +###Current problems and roadmap + +Despite the `1.0.0` tag, MTFontIcon has still a long way to go before considering itself a mature and really useful project. Here's a list of things we could improve: + +* Issues with ascendant and descendants, if you ever tried to use a custom font on iOS you know what I'm talking about. Otherwise read [this](http://stackoverflow.com/questions/7535498/uibutton-custom-font-vertical-alignment) and [this](). +* The library is coupled with [IcoMoon](http://icomoon.io/app/), at the moment you're better use that service, because all the font tunings (see above), are made on their font. Or you can fork the library and help me out. +* Using CoreText would be cleaner and more performant. +* Why not having a ruby script or gem to automate all the boring part of the process? + +
+ +That's all folks. Working on MTFontIcon has been fun and stimulating. The library, and its authors, have still a long way to go, but I hope whoever will read the code will see the intention of making a top quality, well crafted, 2013 styled, piece of code. + +If you're intereseted in font icons or in using MTFontIcon check out these resources: [Font Awesome](http://fortawesome.github.io/Font-Awesome/), 361 (as of version 3.2.1) awesome icons for you, [We Love Icon Fonts](http://weloveiconfonts.com/), a free and open source icon fonts hosting service, [Fontello](http://fontello.com/), an alternative to IcoMoon. \ No newline at end of file diff --git a/metallo/src/posts/2013-09-23-setup-a-dev-machine.md b/metallo/src/posts/2013-09-23-setup-a-dev-machine.md new file mode 100644 index 00000000..89bd29ec --- /dev/null +++ b/metallo/src/posts/2013-09-23-setup-a-dev-machine.md @@ -0,0 +1,83 @@ +--- +date: 2013-09-23 +title: Setting a Mac for Development +description: A simple checklist of the basic tools to setup a Mac for development. +keyword: setup mac development +tags: +- Mac OSX +- Be smart, or at least try +- Reminders +slug: setup-a-mac-for-development +--- + +Last week I setup our new office Mac Mini, that we will use as CI server for our iOS apps (finally!), and for other tasks, such as a constant view on our products analytics. + +Our machine is the workshop where we create awesomeness (or bugs). I really love setting up a machine for development, but I've always ended up mad at something, or spending ages looking how to install this or that. So this time, once and for all, I took note of every step, and here's my little checklist on how to set up a Mac for development. + +_Note: the original version of this post was long and basically just me blabbering about the usual suspects, Ruby, Node, Xcode… I refactored it in a condesed version. No need to thank me._ + +###Setup OS X for Development: the checklist + +####[Homebrew](http://brew.sh/) + +Save time, and your sanity, use homebrew! + + ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" + +homebrew saves stuff in `/usr/local/bin`, so make sure it comes **before** the default `/bin` in the `$PATH`. + + export PATH=/usr/local/bin/:$PATH + +####[zsh](http://www.zsh.org/) + + brew install zsh + +Zsh is cool, and with [prezto](https://github.com/sorin-ionescu/prezto) we can make it super shiny. +
+_Note:_ the following instructions are from the prezto README, [check it out](https://github.com/sorin-ionescu/prezto#installation) just to be sure they are up to date. + + zsh + git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" + setopt EXTENDED_GLOB + for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do + ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" + done + +Finally, set zsh as the default shell + + chsh -s /usr/local/bin/zsh + +####[Ruby](https://www.ruby-lang.org/en/), of course via [rvm](https://rvm.io/) + + \curl -L https://get.rvm.io | bash -s stable + rvm install 2.0.0 + +####[Python](http://www.python.org/), a proper one + + brew install python + +####[Node.js](http://nodejs.org/) + +Just head to the [home page](http://nodejs.org/) and hit the green "Install" button, it's the [reccomened way](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#osx)! _Or use homebrew again:_ + + brew install node + +####Xcode and the Command Line Tools + +Get it from [Apple's Developer page](https://developer.apple.com/xcode/), and then search for "Command Line Tools" in the "Downloads" tab of the "Preferences". + +There's also an [open source way](http://kennethreitz.org/xcode-gcc-and-homebrew/), but I haven't tried it. + +####[Java](http://www.java.com/en/) + +Apparently OS X doesn't come with Java ready for us, but at least installing it is easy, just try to use it in the terminal, and the installation wizard will start. + + java + +####Some useful extra stuff + +* [Chrome](http://www.google.com/chrome) +* [Alfred](http://www.alfredapp.com/) +* [BetterTouchTool](http://www.boastr.net/) +* [Caffeine](http://lightheadsw.com/caffeine/) +* [Sublime Text](http://www.sublimetext.com/) \ No newline at end of file diff --git a/metallo/src/posts/2013-09-24-ios7-ux-designers-verdict.md b/metallo/src/posts/2013-09-24-ios7-ux-designers-verdict.md new file mode 100644 index 00000000..2a84c5dd --- /dev/null +++ b/metallo/src/posts/2013-09-24-ios7-ux-designers-verdict.md @@ -0,0 +1,32 @@ +--- +date: 2013-09-24 +title: Sharing some thoughts on iOS 7 +description: Sharing thoughts by some lead designers on iOS 7. +keyword: iOS 7 opinions +tags: +- iOS 7 +- UX +slug: ios-7-ux-designer-verdict +--- + +Today I read this article I added to my reading list a couple of days ago: [iOS 7: leading UX designers give their verdict](http://www.digitalartsonline.co.uk/news/interactive-design/ios-7-leading-ux-designers-give-their-verdict/). I founded some of the opinions quite interesting and worth sharing. + +> The functionality at the core of iOS7 hasn’t changed much it has just been extended in a number of ways. The main deviations are from a visual perspective. + +> The biggest change is the introduction of a brighter colour palette, which allows Apple’s LCD screens to compete with vivid OLED smartphones (suc as the Samsung Galaxy). This allows Apple to increase its appeal to the Asian market who demonstrate a preference for bright colours throughout their consumption of visual culture. + +> This suggests a shift in focus from user experience to customer experience. + +> **Kostja Paschalidis, service designer at [Fjord](http://www.fjordnet.com/)** + +--- + +> A lot of the button pushing, slide out panels and alert boxes from the previous skin were reminiscent of stale formats we are accustomed to from the 'Web 2.0' era and the lack of innovation within Windows. + +>**Andy Parker, UX designer at [Clearleft](http://www.clearleft.com/)** + +--- + +> We know when a button's a button. It doesn't need real-world lighting to trick us into tapping it. We're living in a digitally savvy world now compared to 2007 when the iPhone first launched. Therefore UI in general going forward will feel authentically digital and that's regardless of the mobile platform it's being designed for. + +> **Shaun Tollerton, Visual Designer at [ustwo](http://www.ustwo.co.uk/)** \ No newline at end of file diff --git a/metallo/src/posts/2013-10-02-things-learned-in-september.md b/metallo/src/posts/2013-10-02-things-learned-in-september.md new file mode 100644 index 00000000..2c3cee1e --- /dev/null +++ b/metallo/src/posts/2013-10-02-things-learned-in-september.md @@ -0,0 +1,68 @@ +--- +date: 2013-10-02 +title: Some things I learned in September +tags: +- iOS +- Objective-C +- Ruby +- Layout +- CSS +- Open Source +- Node.js +- Data Visualization +- Jenkins +description: A quick summary and memo of interesting things I've learned in September +--- + +###Javascript and Data Visualization + +My company wanted a custom viewer for analytics data, perfect occasion for experiment with data visualization powered by Javascript. I started by taking a look at [D3.js](http://d3js.org/), which is the library used by the GitHub guys to draw their amazing repo graphs. It's incredibly powerful, but requires quite a bit of coding to get stuff done. I then used [Chart.js](https://github.com/nnnick/Chart.js) for a bit. It's smaller, simpler, and faster to learn. This all comes with the downside of being less powerful, and with not enough of the features I needed out of the box. Also the development seems to be going really slow at the moment. So now I'm working with [gRaphaël](http://g.raphaeljs.com/), it's built on top of [Raphaël](http://raphaeljs.com/) and has more of the things I was looking for ready made. + +###Node, node, node! + +With the project I mentioned above I finally had the occasion to spend company time working on [Node.js](nodejs.org). I like how lighter it is compared to Rails, and I'm definitely gonna keep experimenting with it. + +In fact I used [Node + Heroku](https://devcenter.heroku.com/articles/getting-started-with-nodejs) to setup my [personal landing page](http://www.giovannilodi.com). + +_Sneak peek:_ having setup an Node + Express + Coffeescript task more than two times, and being DRY, _or lazy_, I've decided to put it in a repo. Stay tuned! + +###Bower + +They've done it again! After Bootstrap the Twitter team has released [Bower](http://bower.io/) _"A package manager for the web"_. It's the bundler or npm of your web packages. Smart! One of those things you say "How could I've lived without it?" + +###Other Javascript stuff + +* [Moment.js](http://momentjs.com/), a slim yet powerful library to manipulate time. +* I've played quite a lot with [Jade](http://jade-lang.com/), it's really cool, but not as flexible as I hope, _or maybe I need to dig more in the documentation…_. Anyway, I found this nice [Javascript Template Chooser](http://garann.github.io/template-chooser/). + +###CSS Frameworks + +I looked into alternatives to Bootstrap. Here's what I found: + +* [Flat UI](http://designmodo.github.io/Flat-UI) +* [Gumby](http://gumbyframework.com/) +* [Pure](http://purecss.io/) +* [Skeleton](http://www.getskeleton.com/) +* [Foundation](http://foundation.zurb.com/) +* [Goldilocks](http://goldilocksapproach.com/) +* [IntuiCSS](http://inuitcss.com/) + +###Jenkins + +I've finally been able to plant the seed of the TDD and CI culture in my company. They bought me a Mac Mini, and I've set it up with Jenkins. It's been a bit painful, but really fun! And now we have the tests running at every push and two nightly builds, development and qa, distributed via TestFlight. _It's a shame I'm the only iOS dev who writes tests :(_ + +###Ruby + +I had a quick, and not finished yet, blast at making a ruby gem. Enter [Swagify](mokagio.github.io/swagify/) a gem to add some your commands and scripts outputs. I'm not gonna talk too much about it here, as I don't consider the learning experience over (it never is btw). + +###Readings + +* [How to increase search traffic without being an asshole](http://mashable.com/2013/09/09/increase-search-traffic/). +* [An Insider’s View of Mobile-First Design: Don’t Make These Mistakes](http://www.wired.com/opinion/2013/09/designing-for-mobile-means-ditching-deeply-ingrained-pc-instincts/) +* [Why you should use zsh](http://fendrich.se/blog/2012/09/28/no/) + +###Something funny + +* [Sloppy UI](http://sloppyui.tumblr.com/) - It's all about the flaws in iOS 7 design +* [the_coding_love();](http://thecodinglove.com/) - Funny gifs to ease the dev life +* [Developers as Animals](http://developersasanimals.tumblr.com/) \ No newline at end of file diff --git a/metallo/src/posts/2013-10-06-october-questions.md b/metallo/src/posts/2013-10-06-october-questions.md new file mode 100644 index 00000000..784ce6af --- /dev/null +++ b/metallo/src/posts/2013-10-06-october-questions.md @@ -0,0 +1,46 @@ +--- +date: 2013-10-06 +title: October's Questions +tags: +- iOS +- Objective-C +- Ruby +- Open Source +description: Introducing mokagio's monthly questions, related to iOS, Objective-C, Xcode, xctool, AFNetworking, CocoaPods. +keyword: iOS, Xcode, xctool and AFNetworking +slug: october-questions-2013 +--- + +I'm reading [The Passionate Programmer](http://pragprog.com/book/cfcar2/the-passionate-programmer), by [Chad Fowler](https://twitter.com/chadfowler) a book I reccomend to everyone, even if you're not really into coding. It's a set of tips on how to make the most out of your work as a software developer, all written in a easy to follow and engaging style. + +One of the tips is called "Learn to Fish", and, quoting the famous saying [_"Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime."_](http://en.wiktionary.org/wiki/give_a_man_a_fish_and_you_feed_him_for_a_day._Teach_a_man_to_fish_and_you_feed_him_for_a_lifetime), it tells us about the importance of going deep in the understanding of our development tools, and business domain. The chapter ends by saying: + +> Better yet, don't _ask_ to be taught -go learn yourself. + +Chad Fowler also gives a tip on how to learn to fish: + +> You can ask yourself two extremely useful questions about any given area to drill down into the murky layer: **How does it work?** and **Why does this (have to) happen?** + +So this is what I'm gonna do (more) from now on. Spending time asking myself this type of questions around the technologies I use. And, inspired a bit by [Jennifer Dewalt (180 websites im 180 days)](http://jenniferdewalt.com/), I'm gonna track everything here. Let's get started! + +##October's Questions + +I'll start by trying understand better the tools I use in my daily job. At the moment I'm working as an iOS developer and next to the classic iOS SDK, Objective-C, Xcode and the iPhone Simulator, I'm making massive use of [CocoaPods](http://cocoapods.org/), [AFNetworking](https://github.com/AFNetworking/AFNetworking), and [xctool](https://github.com/facebook/xctool). + +I already have many questions on those technologies and tools, but one thing I've learned about propositions is **start small!**. So I'll start with only four questions. One per week, this shouldn't be hard to accomplish. + +###1 - Xcode + +**How does it...** stores the informations about project and workspace? + +###2 - Objective-C + +**Why does it...** allow us to use the messages syntax AND the dot notation to call methods? + +###3 - CocoaPods + +**How does it...** generate the workspace and manage the pods in it? + +###4 - AFNetworking + +**How does it...** wrap Apple's newtworking classes? diff --git a/metallo/src/posts/2013-10-31-Xcode-projects-and-workspaces.md b/metallo/src/posts/2013-10-31-Xcode-projects-and-workspaces.md new file mode 100644 index 00000000..c4033b1d --- /dev/null +++ b/metallo/src/posts/2013-10-31-Xcode-projects-and-workspaces.md @@ -0,0 +1,147 @@ +--- +date: 2013-10-31 +title: A dive into Xcode projects and workspaces +tags: +- Xcode +- iOS +- Objective-C +- Questions +- Hacking +description: A look at how Xcode stores information about the project and the workspace +keyword: Xcode project workspace +slug: xcode-projects-and-workspaces +--- + +_Note: this is post is the first answer to my [October's Questions](http://www.mokacoding.com/blog/october-questions). It should have arrived earlier but this month has been strange, because of several reasons I didn't had and didn't make enough time to write. But let's get started!_ + +I use Xcode every day (what an happy life), and it has now come the time to dig deeper into this pain in the butt of an IDE. Where to start if not from the _merge nightmare_, the `project.pbxproj`. + +`project.pbxproj` is contained into `YourProjectName.xcodeproj`, which is nothing more than a folder. It might be interesting to explore the rest of the content, but for now let's just focus on the `.pbxproj`. + +The [Apple Documentation](https://developer.apple.com/library/ios/featuredarticles/XcodeConcepts/Concept-Projects.html#//apple_ref/doc/uid/TP40009328-CH5-SW1) sais: + +> An Xcode project is a repository for all the files, resources, and information required to build one or more software products. A project contains all the elements used to build your products and maintains the relationships between those elements. It contains one or more targets, which specify how to build products. A project defines default build settings for all the targets in the project (each target can also specify its own build settings, which override the project build settings). + +Cool, I got that, but what about the file itself? Let's open one with a text editor. I've used the `project.pbxproj` from [KZPropertyMapper](https://github.com/krzysztofzablocki/KZPropertyMapper/blob/master/Example/Example.xcodeproj/project.pbxproj) a smart and timesaving library that you should all checkout. + +It appears as a sort of JSON, written in C, as it as a `{}` hierarchy, with inside `=`, `;` and `/* inline comments */`. + +The top level is something like + +``` +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + ... + }; + rootObject = CDAC62FA17A0EF1A00F5452A /* Project object */; +} +``` + +The `objects` part is the real deal. Everything about the project is in there. All stored again in a dictionary fashion, with hexadecimal identifiers. A common parameter is the `isa` key. Here's an example: + +``` +CDAC634017A0EF4C00F5452A /* KZPropertyMapper.m in Sources */ = { + isa = PBXBuildFile; + fileRef = CDAC633F17A0EF4C00F5452A /* KZPropertyMapper.m */; +}; +``` + +Lucky for us Xcode adds some comments to make the things a bit more readable for humans. _Note:_ I'm sure they're comment and not part of the way stuff is written because I actually tried changing one and everything run fine. + +The `objects` has many sections, each wrapped between `/* Begin SectionName section */` and `/* End SectionName section */` comments. + +Here's the ones I found more interesting, the [xcodeproj](http://docs.cocoapods.org/xcodeproj/index.html) gem documentation used by [CocoaPods](http://cocoapods.org/) has been really helpful in understanding what some sections were about: + +####`PBXFileReference` + +All the files in the project are in this list. + +``` +CDAC633F17A0EF4C00F5452A /* KZPropertyMapper.m */ = { + isa = PBXFileReference; + fileEncoding = 4; + lastKnownFileType = sourcecode.c.objc; + path = KZPropertyMapper.m; + sourceTree = ""; +}; +``` + +####`PBXGroup` + +This section has the groups tree. The groups are those fake folders that are useful only to create confusion on how the filesystem is oraganized. A PBXGroup can contain `PBXFirleReference`s, as well as other `PBXGroup`s. + +####`PBXNativeTarget` + +In this section we have the settings of the _Targets_ of the project, in particular there's references to `buildPhases` and `buildRules`, like in the UI. + +####`PBXShellScriptBuildPhase` + +Here we have the settings for a _Build Phase_ of type _Run Script_. The funny thing about this part is that the script you insterted in the text box is stored as a one string… + +####`PBXVariantGroup` + +I found it hard to guess from the name, but here we have the information about the localized files. + +That's it, more or less… The `project.pbxproj` file stores all the informations regarding the project we're working on, and it's organized in a lot of meaningful sections related together by keeping track of the objects identifiers in form of hex hashes. Let's move on to the workspace then. + +I first came across an Xcode workspace when I used [Kobold2d](http://www.kobold2d.com/display/KKSITE/Home) to develop a simple and unsuccesful game of iOS. It's easy to guess what a workspace might be. + +The [Apple Documentation](https://developer.apple.com/library/ios/featuredarticles/XcodeConcepts/Concept-Workspace.html) sais: + +> A workspace is an Xcode document that groups projects and other documents so you can work on them together. A workspace can contain any number of Xcode projects, plus any other files you want to include. In addition to organizing all the files in each Xcode project, a workspace provides implicit and explicit relationships among the included projects and their targets. + +The `.xcworkspace` from [KZPropertyMapper](https://github.com/krzysztofzablocki/KZPropertyMapper/tree/master/Example/Example.xcworkspace) is too tiny, so let's take a look at another one, [AFNetworking](https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking.xcworkspace/contents.xcworkspacedata). As for the project the workspace is nothing but a folder, grouping configuration files. The interesting file here is `contents.xcworkspacedata`. Let's open it… Surprise! Unlike the project file this one is a more readable [XML](http://en.wikipedia.org/wiki/XML). Inside there's a list of the workspace components. + +```xml + + + + + + + + + ... + + + ... + + ... + + ... + + + ... + +``` + +If you open the `AFNetworking.xcworkspace` you'll see this + + +AFNetworking Workspace + +It all then comes together. It works more or less as the `project.pbxproj` does. The `Group` tag contains other `Group`s or `FileRef` tags, which represent where the file is in the filesystem related to the location of the workspace. + +This is it. Of course there could be, and may be there will be, a lot more to dig and look into, but for tonight I'm fine with this. I now have a clearer picture of what happens when I add a new file to a project or I use the GUI to edit the configurations of a target. I can't say this is gonna make my everyday battle with Xcode easier, but definitely knowing more of how it works makes me feel smarted. + +Happy coding. + +###References + +* The [xcodeproj](http://docs.cocoapods.org/xcodeproj/index.html) gem used by [CocoaPods](). +* [xcoder](https://github.com/rayh/xcoder), another gem to manipulate an Xcode project. \ No newline at end of file diff --git a/metallo/src/posts/2013-11-12-things-learned-in-october.md b/metallo/src/posts/2013-11-12-things-learned-in-october.md new file mode 100644 index 00000000..55e56df4 --- /dev/null +++ b/metallo/src/posts/2013-11-12-things-learned-in-october.md @@ -0,0 +1,30 @@ +--- +date: 2013-11-13 +title: Some things I learned in October +tags: +- iOS +- Open Source +description: A quick summary and memo of interesting things I've learned in October - iOS screen capture, HTML5 game development, ways to improve your coding. +slug: things-learned-in-october-2013 +--- + +The month of October has been strange. I decided to change my job, _I'll write about it later_, and so I spent a lot of time sorting out my websites and CV, some of my open source projects, looking for a new possible company. I also reached the final stage of the development of a new -sort of- app with my current company, in the worst possible way ever, rushing into last minue changes, UI redisigns, bugfixes. All this to say... I read and explored less than usual, and probably forgot to take record of interesting things. + +##iOS Simulator Screen Recording + +As I mentioned we reached the pre submit state for an app with the currently that I'm gonna leave in some days. I'm not proud of that app so I'm not gonna link it. Anyway they wanted a screencapture to show to some chinese dude. I used [SimCap](http://www.jaml.co.uk/simcap/) and [Soundflower](http://cycling74.com/products/soundflower/), and I've been pretty happy with the result. Everything is simple and straightforward to used. Only one note: don't panic if after enabling Soundflower the sound in your Mac doesn't work anymore, it's just going through it instead. + +##An HTML5 nightstand... + +For a sleepless night I got into HTML5 game development, part because of a [talk I saw](http://www.youtube.com/watch?v=CV5TA2aXXaQ), part because of an idea I had, that I had to put aside because I needed more time to implement it. It all brought me to discover [Quintus](https://github.com/cykod/Quintus) a nice HTML5 game framework. Here's an interesting tutorial I took: [Create a HTML5 Mario style platformer game](http://www.gamedevacademy.org/create-a-html5-mario-style-platformer-game/). + +##New discoveries + +Through some friends I came across these interesting websites. + +* [JSDB](http://www.jsdb.io/?sort=trending) a collection of JavaScript frameworks, plugins and tools +* [Codewars](http://www.codewars.com/r/-u60aA) a gamified way to improve your coding. _Full disclosure: that link will give me referral points. Normal one [here](http://www.codewars.com/)_ + +##A final word + +I also failed to fullfit my commitment to answer [4 questions I asked myself](http://www.mokacoding.com/blog/2013-10-06-october-questions). I won't make any commitment this month. diff --git a/metallo/src/posts/2013-11-13-rails-add-has_many-association-to-existing-model.md b/metallo/src/posts/2013-11-13-rails-add-has_many-association-to-existing-model.md new file mode 100644 index 00000000..86ba8a16 --- /dev/null +++ b/metallo/src/posts/2013-11-13-rails-add-has_many-association-to-existing-model.md @@ -0,0 +1,126 @@ +--- +date: 2013-11-13 +title: "Rails: adding a new has_many association to an existing model" +tags: +- Ruby +- Ruby on Rails +description: A little guide on how to edit an existing model adding a new has_many association +slug: rails-add-has_many-association-to-existing-model +--- + +I'm gonna quick go through the process of how to evolve an existing schema adding new models and association in Ruby on Rails. I had to do this for work this morning and had to put together pieces from the [Rails Guides](http://guides.rubyonrails.org/index.html) and other resources. + +The starting point is a schema with a single **items** table. We want to have a **level** system, where each level is made up by a group of **challenges**, and each challenge contains a number of items. + +Note: I'm using [rspec](https://github.com/rspec/rspec) and [shoulda](https://github.com/thoughtbot/shoulda) to write the tests. + +###Step 1 - Create the `Challenge` model + +Creating a new empty model is easy, just run + +```bash +rails g model challenge +``` + +and the resulting migration + +```bash +rake db:migrate RAILS_ENV=development +``` + +###Step 2 - Add the association "challenge has many items" + +We want to have a model that makes these tests pass: + +```ruby +describe Challenge do + it { should have_many :items } +end + +describe Item do + it { should belong_to :challenge } +end +``` + +The first thing would be to write a migration, but there is no way to generate a migration for an association with the `rails generate migration` command. So we have to do it manually, and then write the migration to update the db and schema. + +```ruby +class Challenge < ActiveRecord::Base + has_many :items +end + +class Item < ActiveRecord::Base + belongs_to :challenge +end +``` + +```bash +rails g migration AddItemsAssociationToChallenge +``` + +This is the code to put in the resulting migartion file + +```ruby +class AddItemsAssociationToChallenge < ActiveRecord::Migration + def self.up + add_column :items, :challenge_id, :integer + add_index 'items', ['challenge_id'], :name => 'index_challenge_id' + end + + def self.down + remove_column :items, :challenge_id + end +end +``` + +Finally let's run `rake db:migrate` and `rspec` (because we're using [binstub](http://mislav.uniqpath.com/2013/01/understanding-binstubs/) aren't we?) and everything should be fine. + +###Step 3 – The Levels + +The process for the levels will be the same as before, a good way to commit the steps to memory. We want this specs to pass: + +```ruby +describe Level do + it { should have_many :challenges } +end + +describe Challenge do + it { should belong_to :level } +end +``` + +So we generate a migration + +```bash +rails g migration AddChallengesAssociationToLevel +``` + +and we write this inside it + +```ruby +class AddChallengeAssociationToLevel < ActiveRecord::Migration + def self.up + add_column :challenges, :level_id, :integer + add_index 'challenges', ['level_id'], :name => 'index_level_id' + end + + def self.down + remove_column :challenges, :level_id + end +end +``` + +finally we cannot forget to manually update our models + +```ruby +class Level < ActiveRecord::Base + has_many :challenges +end + +class Challenge < ActiveRecord::Base + has_many :items + belongs_to :level +end +``` + +That's all. Nothing incredibly hard, but still not obvious for someone who manly writes Objective-C. Happy coding! \ No newline at end of file diff --git a/metallo/src/posts/2013-11-20-podcasts.md b/metallo/src/posts/2013-11-20-podcasts.md new file mode 100644 index 00000000..24e6f943 --- /dev/null +++ b/metallo/src/posts/2013-11-20-podcasts.md @@ -0,0 +1,77 @@ +--- +date: 2013-11-20 +title: Podcasts, grow your brain through soundwaves +description: A list of the tech podcasts I follow +keyword: podcast +tags: +- iOS +- Ruby +- Node +- Agile +- Learn +- Podcasts +slug: podcasts +--- + +Recently I've been listening to a lot of podcasts, actually too many to keep up with. I wanted to try to to _learn through soundwaves_, in a sort of passive way while doing something in which my _brain power_ -if we want to go as far as calling it power- is wasted, like washing the dishes, or walking somewhere. I found podcasts a great way to get in touch with new things that I can then come back to and look in more deeply. It's also nice to hear all the guests speaking, it's a fraction of the experience you get when going to a conference. + +These are my favourite podcasts, in random order: + +###[Build Phase] + +At the moment I'm a professional iOS developer. This podcast is a weekly source of thoughts, new things, and inspiration. Gordon and Adam always start like they don't know what they're talking about, but they quickly get back on track and keep up a rich and fun podcast. + +**One thing I learned:** The XVim plug-in for Xcode. + +###[Developing Perspective] + +This podcast is about what it's like to be a human being, not a super start. [David Smith] is a indie iOS developer and shares it's views and experience on this world. I like the simplicity of this podcast, and the sort of comfort I get from discovering that even successful developers have problems similar to mine. + +**One thing I learned:** It's fine to make mistakes, as long as you take responsibilty for them and try to learn a lesson. + +###[RubyRouges] + +As I said I'm working as an iOS developer, but at night I like to write readable code. With Ruby and Coffeescript. The RubyRouges crew is too long to be listed. This guys know their Ruby and the usually either have a guest or a book to talk about. But don't get fouled by the name, this podcast is more about good programming techniques and mentality than Ruby as a language itself. + +**One thing I learned:** Getting into the habit of spending 15-20 minutes a day on "tools sharpening". + +###[Giant Robots Smashing into other Giant Robots] + +Produced by [thoughtbot], the same company behind Build Phase, this weekly podcast has a different guest everytime, covering various topics always realted to the world of development, but without being too techy. + +It's worth mentioning that the guys at thoughtbot are also the developers of two gems I can't live without when doing Rails apps: [factory_girl] and [shoulda]. + +**One thing I learned:** I can't recall anything tangible I learned form this podcast at the moment. Althought the episodes with [Nathan Barry] and [Jeff Atwood] have been really inspirational. + +###[This Agile Life] + +Another weekly podcast related to the world of programming, but not too techy. Try to guess what this is about? This agile team of speakers goes deep into an agile topic every week, and it's a great source of information, specially for someone like me how's always been at the boarder line of the agile development without being really able to implement it completely. + +**One thing I learned:** The best estimate is no-estimate. More [here](http://www.thisagilelife.com/?p=494). + +###Other podcast worth mentioning + +* [The Changelog](http://thechangelog.com/podcast/) +* [NodeUp](http://nodeup.com/) +* [NSBrief](http://nsbrief.com/) + +###And one more thing... + +[Aussie Mac Zone]. This podcast is simply hilarious. I love these guys! They keep me posted on all the news in the Apple world in the most fun way ever! + +If you have any other podcast on the line of these one that you want to share, tweet me [@mokagio](https://twitter.com/mokagio). + +Happy coding! + +[Build Phase]: http://podcasts.thoughtbot.com/buildphase +[Developing Perspective]: http://developingperspective.com/ +[David Smith]: http://twitter.com/_DavidSmith +[RubyRouges]: rubyrogues.com +[Giant Robots Smashing into other Giant Robots]: http://podcasts.thoughtbot.com/giantrobots +[thoughtbot]: http://thoughtbot.com/ +[factory_girl]: https://github.com/thoughtbot/factory_girl +[shoulda]: https://github.com/thoughtbot/shoulda +[This Agile Life]: thisagilelife.com +[Nathan Barry]: http://podcasts.thoughtbot.com/giantrobots/72 +[Jeff Atwood]: http://podcasts.thoughtbot.com/giantrobots/70 +[Aussie Mac Zone]: https://itunes.apple.com/au/podcast/aussie-mac-zone/id269632901 diff --git a/metallo/src/posts/2014-01-02-2013-retrospectives-and-2014-propositions.md b/metallo/src/posts/2014-01-02-2013-retrospectives-and-2014-propositions.md new file mode 100644 index 00000000..f47834ea --- /dev/null +++ b/metallo/src/posts/2014-01-02-2013-retrospectives-and-2014-propositions.md @@ -0,0 +1,82 @@ +--- +date: 2014-01-02 +title: 2013 retrospectives... and 2014 propositions +description: Taking a look back at 2013, to find good propositions for 2014 +tags: +- iOS +- Ruby +- Health +- Productivity +- Resolutions +slug: 2013-retrospective-and-2014-propositions +--- + +2013 has been a very dense year for me, full on new experiences and challenges. I can really say I've grown a lot during year. In this post I'm gonna try to do a quick *retrospective* on 2013, in full agile fashion. Finally I'm gonna set some expectations for 2014. + +### Retrospectives on 2013 + +###What's been good + +####Love it or leave it! +I was able to overcome some fears and leave [Memrise](http://memrise.com), my first job and first love in London, when I realized I wasn't loving it anymore, and that my work there was teaching me less and less things week after week. Although I have to admit that to change job in a city like London, where the market is so vibrant, and developers receive many emails a week from recruiters you don't really need to be brave, just smart. + +####Podcasts and Screencasts +In the last quarter of the year I decided to optimize those dead moments of my day, like walking to work or eating, trying to learn a bit of stuff in a chilled way. I therefore started following a number of [podcasts](http://www.mokacoding.com/2013/11/20/podcasts.html) and screencasts about technology, mainly iOS and Ruby. It's a good way to keep my mind busy and pick up some good things without really focusing. It's also an healthier alternative to watching Dexter at dinner time and getting caught into the episodes till 3 in the morning! + +####Standing desk +At the beginning of the year, thanks to the example of my colleague [Adam](http://adamj.eu), I picked up the habit of working standing. It's amazing! Not a back pain or a position problem, and I always feel very energetic! Plus... [_"Standing on Weekdays Burns Calories Like Running 10 Marathons a Year!"_](http://lifehacker.com/standing-for-3-hours-a-day-on-weekdays-is-like-running-1447078889) + +###What could be improved + +####Reading books and blog posts +The internet is full of resources and informations, and so are the libraries. When 2013 started I wanted to read many technical books and blogs. I've skimmed through a handful of technical books, and except for [NSHipster](http://nshipster.com/) and [objc.io](http://objc.io) I mainly just put links in my [Pocket](http://getpocket.com) read it later list, without picking them out anymore. + +####Looking at the source code +I believe looking at the source code of libraries you're using is really important for two reasons, first because it provides a better understanding of how things work, second because it's usually a good way to pick up good coding styles. That said I spent most of 2013 looking at the source code of a library only when something didn't work properly. + +####Estimates +It took me a while to understand that the time I estimate in my head it's not gonna be the one it will take me to actually do the job, and therefore increase it of a good .5 or more before writing it down on the task ticket. + +####Blogging +When I started this blog, on [Wordpress.com](http://amokafullofstuff.wordpress.com/) at the time, I wanted to do a post per week. I posted 21 posts, of which 5 are just a collection of things learned during the month. That, like the estimates, was clearly shooting to high... + +###What has been bad + +####I worked too much +February has been hell, I worked all the weekends of the month, on a rush to complete and app that got taken off the store after a month or so. That was bad for sooo many reasons. I was always working in a rush, skipping unit tests, making silly mistakes, writing poor code, and I didn't get almost any free time to relax or to work on personal projects, every thing for a product that just a couple of thousands UK iPhone users downloaded, and that's not even online anymore. + +####At the edge of the community +I've been at the edge of the community. I've lived for one year in a city like London, where there's a meetup every night and a hackthon every weekend, but I've attended only a few of those. I've also produced little open source software, just a couple of not really maintained iOS libraries, and a handful of PR. + +####Late iOS 7 adoption +I've started looking into the iOS 7 SDK news at the end of August, joining the party late and having, still now, to work hard to catch up. + +####Not enough TDD +I've let the hurries of my CEO drive the development of my projects, rather than the tests and a clear roadmap. + +####Haven't learned any new language! +Nor even tried something new! I realized this only now writing this blogpost, and I feel really bad about it. + +####Didn't exercise +I put aside swimming and gym to focus on work... That's not really healthy and I'm starting to feeling and seeing the consequences of 6 month of almost sedentary life style already. + +### 2014 propositions + +After having looked back at the 2013 with a critical eye, I can say that on 2014 I'll **set the bar low, but jump higher**. I'm not gonna say or write something like _"I'm gonna write a blogpost every week"_, or _"I'm gonna wake up at 6 every morning to do pushups, like Bruce Waine"_. I'll set the bar low, _"I'm gonna write a blogpost every month"_, and I'm gonna try to jump higher than it every time. I'm also **not gonna be a slave of my daily job**, and be sure to have enough free time to both work on my own things and just chill. I'll try to **expand my technical knowledge both deeper and wider**, deeper in what I work on daily, and wider towards new tools. Finally I'm going to be more involved in the community, because those few time I've been at a conference or a meetup I've always came home with something new to try out and with new friends to talk to. + +Here's some goals: + +* 5 tweets sharing tech articles I've read a week. +* 3 days of exercise, or at least [7 minutes workout](http://well.blogs.nytimes.com/2013/05/09/the-scientific-7-minute-workout/?_r=0), a week. +* 1 original tech blogpost per month. +* 1 social event for developers a month. +* 1 tech book every quarter. +* 1 PR per quarter +* 2 decent (> 100 stars on GitHub) open source softwares during the year +* 1 new programming language learned during the year. + +--- + +That's it, as always in the first days of January I feel energetic and unbeatable. I'll try to keep up to those resolution, we'll see how it went in 12 month. + +Happy coding! \ No newline at end of file diff --git a/metallo/src/posts/2014-01-06-automating-ios-enterprise-deployment.md b/metallo/src/posts/2014-01-06-automating-ios-enterprise-deployment.md new file mode 100644 index 00000000..78970141 --- /dev/null +++ b/metallo/src/posts/2014-01-06-automating-ios-enterprise-deployment.md @@ -0,0 +1,71 @@ +--- +date: 2014-01-06 +title: Automating iOS Enterprise Deployment with shenzhen +description: A way of automating the deployment of an iOS app for enterprise distribution using the shenzhen gem. +keyword: iOS, automation, shenzhen, Xcode, Enterprise Distribution +tags: +- iOS +- Ruby +- Automate +- Productivity +slug: automating-ios-enterprise-deployment +--- + +In this short post I'm gonna have a look at how to use the splendid [shenzhen](https://github.com/nomad/shenzhen/) gem by [Mattt](http://mattt.me/) to automate the process of building an `.ipa` for enterprise distribution and shipping it. + +Here's the code for the build phase: + +``` +ipa build \ + --workspace MyAwesomeApp.xcworkspace \ + --configuration MyAwesomeAppEnterpriseConfiguration \ + --scheme MyAwesomeAppEnterpriseScheme \ + --embed MyAweseomAppEnterpriseDistribution.mobileprovision \ + --clean \ + --archive" +``` + +or the shorter version: + +``` +ipa build \ + -w MyAwesomeApp.xcworkspace \ + -c MyAwesomeAppEnterpriseConfiguration \ + -s MyAwesomeAppEnterpriseScheme \ + -m MyAweseomAppEnterpriseDistribution.mobileprovision \ + --clean \ + --archive" +``` + +### How does it work? + +What shenzhen does is calling `xcodebuild` for us using the proper arguments and avoiding the unreadable output. _Speaking of which, take a look at what [xcpretty](https://github.com/mneorr/XCPretty) does to help us_. + +As you can see from the code above there are quite a few options to specify. In particular _in my experience_ I saw that to build properly we need **both** `--scheme` and `--configuration`. If you are reading this article you're probably already managing your enterprise build with a different pair of Build Configuration and Scheme, in order to change the Bundle Id and the other configurations, so those parameters will surely make sense to you. But why **both**? + +As far as I can see after 10 minutes of hacking this is due to the fact that shenzen looks for the configuration parameter if this is not specified, [source here](https://github.com/mokagio/shenzhen/blob/master/lib/shenzhen/commands/build.rb)), and passes it to `xcodebuild`. What happens in my case is that shenzhen guesses the wrong configuration, and this is why I have to specify it in the parameters. No big deals anyway ;) + +Another thing we notice in the parameters is the `--embed XXX.mobileprovision` one. This is used to sign the build with the certificate specified for the enterprise distribution. You can download the Provisioning Profile you need from the Member Center in the [Apple Developer Portal](https://developer.apple.com/membercenter). Keep it in a safe place! Everything will work fine as long as you have the private key for that. + +A tip I have regarding the Provisioning Profile is to be sure that the keychain where its keys are is _unlocked_, unless you want to the OS to pop you a dialog asking for the keychain credentials at some point. The keychain can be unlocked from the Keychain Access app. + +### Time to distribute! + +shenzhen's `distribute` command lets us distribute our freshly built `.ipa` through 4 different channels, [HockeyApp](http://hockeyapp.net/features/), [TestFlight](http://testflightapp.com/), upload to S3, or simple FTP. + +Take a look at the [README](https://github.com/mokagio/shenzhen/#building--distribution) for the details of the single channels, or just type `ipa distribute:XXX --help` to find out about the parameter. + +It's super simple! + +### Where to go from here? + +* Is it possible to unlock the keychain from the script, maybe just for its execution, in order to have more protections? +* Dig better into the scheme and configuration issue, and maybe submit a PR. + +I hope after reading this you'll be able save time by automating your enterprise deployment process, and use it to read my other blogpost :P + +Happy deploying! + +--- + +Thanks to [@jerryhjones](https://twitter.com/jerryhjones) for finding a typo ;) diff --git a/metallo/src/posts/2014-02-13-sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts.md b/metallo/src/posts/2014-02-13-sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts.md new file mode 100644 index 00000000..e9b9b477 --- /dev/null +++ b/metallo/src/posts/2014-02-13-sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts.md @@ -0,0 +1,114 @@ +--- +layout: post +title: Sharing assets across iOS projects with CocoaPods, Resource Bundle, and dynamically loaded fonts +seo_description: Showing an approach to centralize resources, assets, and fonts across multiple projects using CocoaPods, a Resource Bundle and a bit of code +keyword: iOS, CocoaPods, Images, Fonts, Assets, Resources +published: true +categories: +- Workflow +tags: +- iOS +- Architecture +- Productivity +--- + +It is useful and time saving to centralize all the resources, assets and fonts that are shared across different projects. The best solution for that is [CocoaPods](http://cocoapods.org/), and a bit of code to avoid doing any kind on `Info.plist` update. + +If you can't be bothered reading the post, and want to look at some code straightaway checkout [this example](https://github.com/mokagio/mokacoding-samples/tree/master/ResourceBundlePodExample) I've made. + +The process is very simple: + +1. Create the pod +2. Add the resources to the pod resource bundle +3. Dynamically load the fonts + +Creating a pod is super simple, I already [wrote about it](http://www.mokacoding.com/2013/01/21/cocoapods-how-to-create-your-own-pod.html), but it was a while ago, the best place to look for it is the [official CocoaPod documentation](http://guides.cocoapods.org/making/specs-and-specs-repo.html). + +### Add the assets to the pod resource bundle + +Since version [0.23.0](https://github.com/CocoaPods/CocoaPods/blob/master/CHANGELOG.md#0230rc1) the Spec DSL has a `resource_bundle` attribute, and it's recommended to use it instead of the old `resources`, to avoid potential name clashes with other pods or libraries. + +But what's a resource bundle? As usual the [Apple Documentation](https://developer.apple.com/library/ios/documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html) is not very clear, but we could define a bundle as _a folder with an extension, conforming to some rules for it's content_. + +Then how do we make a bundle? Or in our case a Resource Bundle, so that we can add it in our `.podspec`? As you can imagine the Documentation is still not helpful... + +I spent a couple of hours messing around creating folders naming the `folder.bundle`, googling and [stackoverflowing](http://stackoverflow.com/questions/8458953/ios-build-a-resource-bundle-via-xcode-target), but with no luck integrating it with my pod. I also found a [tutorial](http://www.galloway.me.uk/tutorials/ios-library-with-resources/) by Matt Galloway, but it looked like a complex hack, there had to be something simpler! + +Turns out it's **dead simple**! Just list the resources path you want in the bundle and the pod will generate it for you. Boom. No tricks, no hacks, just a line of code. + +```ruby +spec.ios.resource_bundle = { 'MapBox' => 'MapView/Map/Resources/*.png' } +``` + +### Dynamically load the fonts + +Now that the we have our Resource Bundle ready we only need to skip the annoying process of adding the fonts to the `Info.plist` and we're good to go. + +To do that I used the approach suggested by Marco Armet in [this blog post](http://www.marco.org/2012/12/21/ios-dynamic-font-loading). It's possible to dynamically load fonts and then consume them with the usual `fontNamed:withSize` `UIFont` class method. + +```objc +NSData *inData = /* your decrypted font-file data */; +CFErrorRef error; +CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData); +CGFontRef font = CGFontCreateWithDataProvider(provider); +if (! CTFontManagerRegisterGraphicsFont(font, &error)) { + CFStringRef errorDescription = CFErrorCopyDescription(error) + NSLog(@"Failed to load font: %@", errorDescription); + CFRelease(errorDescription); +} +CFRelease(font); +CFRelease(provider); +``` + +The only downside of this approach is that we need to run that code at some point. I put it into a `FontsManager` class, with getters for the fonts that sort of lazy loads them. Like this: + +```objc +static NSString * const kBundle = @"ResourceBundle.bundle"; + ++ (UIFont *)openSansLightFontOfSize:(CGFloat)size +{ + NSString *fontName = @"OpenSans-Light"; + UIFont *font = [UIFont fontWithName:fontName size:size]; + if (!font) { + [[self class] dynamicallyLoadFontNamed:fontName]; + font = [UIFont fontWithName:fontName size:size]; + + // safe fallback + if (!font) font = [UIFont systemFontOfSize:size]; + } + + return font; +} + ++ (void)dynamicallyLoadFontNamed:(NSString *)name +{ + NSString *resourceName = [NSString stringWithFormat:@"%@/%@", kBundle, name]; + NSURL *url = [[NSBundle mainBundle] URLForResource:resourceName withExtension:@"ttf"]; + NSData *fontData = [NSData dataWithContentsOfURL:url]; + if (fontData) { + CFErrorRef error; + CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)fontData); + CGFontRef font = CGFontCreateWithDataProvider(provider); + if (! CTFontManagerRegisterGraphicsFont(font, &error)) { + CFStringRef errorDescription = CFErrorCopyDescription(error); + NSLog(@"Failed to load font: %@", errorDescription); + CFRelease(errorDescription); + } + CFRelease(font); + CFRelease(provider); + } +} +``` + +### What about the images? + +We can access images with the same strategy used for the fonts, a manager that lazy loads them from the bundle. + +--- + +Having a tidy project is invaluable, specially when it only needs a couple of lines of code. Plus by grouping our assets in a pod we can quickly implement other apps with a style consistent to our branding. + +If you're interested in the matter of handling big projects by modularizing them, [this](http://dev.hubspot.com/blog/architecting-a-large-ios-app-with-cocoapods) article will be an interesting read. + +_Leave your codebase better than you found it_ + diff --git a/metallo/src/posts/2014-03-28-upgrading-podfile.md b/metallo/src/posts/2014-03-28-upgrading-podfile.md new file mode 100644 index 00000000..b6917882 --- /dev/null +++ b/metallo/src/posts/2014-03-28-upgrading-podfile.md @@ -0,0 +1,89 @@ +--- +layout: post +title: A caveat when upgrading a Podfile +categories: +- Learn +- Bugfixing +tags: +- Xcode +- iOS +- Objective-C +- CocoaPods +published: true +seo_description: A caveat when upgrading a Podfile from an older version +keyword: Upgrading Podfile +--- + +I recently went through the process of upgrading a `Podfile` from a legacy codebase and bumped into an issue with a very simple solution, for those who understand how [CocoaPods](http://cocoapods.org) works under the hood. + +I made an example project to show the behaviour, check it out [here](https://github.com/mokagio/mokacoding-samples/tree/podfile-upgrade). + +The `Podfile` looked like this: + +```ruby +link_with ['MyProject', 'MyProjectTests'] + +pod 'AFNetworking' +pod 'Kiwi' +``` + +(_it was actually longer an messier, with random newlines a lot of pods commented out, but no need to inflict you with that_) + +Apart from the obsolete `Podfile` style, there's one big issue; [Kiwi](https://github.com/allending/Kiwi) should be linked only in the test target, as it is a testing framework. + +Updating the `Podfile` into a more semantic and not leaky one was simple: + +```ruby +target :MyProject do + pod 'AFNetworking' +end + +target :MyProjectTests, :exclusive => true do + pod 'Kiwi' +end +``` + +So far so good, but at that point after running `pod install` the project didn't build anymore! The error was: + +``` +ld: library not found for -lPods +clang: error: linker command failed with exit code 1 (use -v to see invocation) +``` + +This happens to be a pretty common error, specially for newbies, and in the [CocoaPods Troubleshooting page](http://guides.cocoapods.org/using/troubleshooting.html#using-the-cocoapods-project) there's a solution for it... + +...that in our case doesn't work! + +After a non irrelevant amount of time spent deleting Derived Data and googling I went back to the error and asked myself: _what does `library not found for -lPods` mean?_ It means that something that should be there is not there anymore! _And what's missing?__ `library not found`. _And where are the libraries?_ In the "Link Binary With Libraries" section of the target build phase. Daaah. + +So I took a look at the "Link Binary With Libraries", this is what I found: + +Link Binary With Libraries for the updated project + +If we'd rolled back to the previous version we'd seen this: + +Link Binary With Libraries for the obsolete project + +Mmm... what is that new `libPods-MyProject` static library? + +And then I looked at the Pods project: + +Linked Frameworks and Libraries for the updated project + +Can you spot it? There is no Pods target! + +And here the solution to the problem: the linker cannot find `libPods` because there is no `libPods` at all, not anymore. It is just a memory of the previous configuration that CocoaPods didn't remove. + +I removed `libPods.a` from the "Linked Frameworks and Libraries" and everything was running smoothly again. + +An extra thing: the same operation needs to be done for the tests target, beacuse of the `link_with ['MyProject', 'MyProjectTests']`. + +Another extra thing: this _memory_ of `libPods`" error happens when you **change the name of the target** as well. + +Link Binary With Libraries after changing the target name + +--- + +As we develop advanced badass systems we rely on many tools and frameworks, to delegate work to someone that knows how to do it better. Knowing how those we rely most heavily upon work on a level that is deeper than what's written in the README is invaluable to save time debugging and to get the most out of them. + +I challenge you to spend some time reading the source code of one of the tools you use the most. Have fun! \ No newline at end of file diff --git a/metallo/src/posts/2014-04-03-gradient-backgrounds-studio.md b/metallo/src/posts/2014-04-03-gradient-backgrounds-studio.md new file mode 100644 index 00000000..d9fce1f1 --- /dev/null +++ b/metallo/src/posts/2014-04-03-gradient-backgrounds-studio.md @@ -0,0 +1,203 @@ +--- +layout: post +title: "Gradient Backgrounds Studio: Lessons Learned" +categories: +tags: +- Xcode +- iOS +- Objective-C +published: true +seo_description: +keyword: +--- + +Gradient Backgrounds Studio Icon + +At the beginning of March I released [Gradient Backgrounds Studio](https://itunes.apple.com/us/app/gradient-backgrounds-studio/id815508757?mt=8), app born from a simple need my girlfriend had to add a gradient on top of an image to make a better background. It was one of those ideas that hit you and no matter if it's 1 o'clock in the morning you have to code them. + +Gradient Backgrounds Studio is a very simple app with a very simple implementation, but it gave me an excuse to play with some components of the framework I didn't know about. + +### `CGGradientLayer` + +Guess what? The app is all about gradients. The first thing I had to learn was how to create and manipulate gradients. + +When it comes down to graphic staff [Quartz](https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/QuartzCoreRefCollection/_index.html) is the framework we need to look at, and it has exactly the class we're looking for: [`CAGradientLayer`](https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CAGradientLayer_class/Reference/Reference.html). + +> The CAGradientLayer class draws a color gradient over its background color, filling the shape of the layer (including rounded corners) + +Creating the layer is simple: + +```objc +CAGradientLayer *gradientLayer = [CAGradientLayer layer]; +gradientLayer.backgroundColor = [UIColor clearColor].CGColor; + +CGRect frame = CGRectMake(0, 0, 100, 100); + +UIColor *startColor = [UIColor redColor]; +UIColor *endColor = [UIColor orangeColor]; + +gradientLayer.frame = frame; +gradientLayer.colors = @[ (id)starColor.CGColor, (id)endColor.CGColor ]; +``` + +Simple CAGradientLayer + +There are cool things we can do, like having more colors and configuring how the gradient is rendered through its start and end point. + +```objc +CAGradientLayer *gradientLayer = [CAGradientLayer layer]; +gradientLayer.backgroundColor = [UIColor clearColor].CGColor; + +CGRect frame = CGRectMake(20, 20, 200, 200); + +UIColor *startColor = [UIColor blueColor]; +UIColor *middleColor = [UIColor whiteColor]; +UIColor *endColor = [UIColor purpleColor]; + +gradientLayer.frame = frame; +gradientLayer.colors = @[ (id)startColor.CGColor, (id)middleColor.CGColor, (id)endColor.CGColor ]; + +gradientLayer.endPoint = CGPointMake(1.0, 0.5); +``` + +More customized CAGradientLayer + +### UIImage from a gradient + +Gradient Backgrounds Studio generates an image out of the one you pick and the gradient you configure. So the next thing I had to do was merging those images. + +As with most things, there are multiple ways to achieve that result. The one I choose was to make an image out of the gradient layer, and then merge the two images into one. + +The code to do it may look mysterious, but I added comments to explain it. + +```objc +CGRect frame = CGRectMake(20, 20, 200, 200); +UIColor *startColor = [UIColor orangeColor]; +UIColor *endColor = [UIColor purpleColor]; + +// Create a new bitmap-based image context, and make it current. +// This way we'll be able to draw stuff in the context and get an UIImage back from it. +// +CGSize size = frame.size; +UIGraphicsBeginImageContextWithOptions(size, NO, 0); + +CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); + +// Define the "locations" of the gradient, the points where the color(s) transformation starts and ends +// +size_t gradientNumberOfLocations = 2; +CGFloat gradientLocations[2] = { 0.0, 1.0 }; + +// Get the color components out of startColor and endColor +// +// This is all just because I'm lazy and don't want to write the numbers myself. +// +CGFloat r0 = 0, g0 = 0, b0 = 0, a0 = 0; +CGFloat r1 = 0, g1 = 0, b1 = 0, a1 = 0; +[startColor getRed:&r0 green:&g0 blue:&b0 alpha:&a0]; +[endColor getRed:&r1 green:&g1 blue:&b1 alpha:&a1]; + +CGFloat gradientComponents[8] = { + r0, g0, b0, a0, + r1, g1, b1, a1, +}; + +// Build a CGGradientRef structure with the values just gathered +// +CGGradientRef gradient = CGGradientCreateWithColorComponents(colorspace, gradientComponents, gradientLocations, gradientNumberOfLocations); + +// Draw the gradient in the current context +// +CGContextRef context = UIGraphicsGetCurrentContext(); +CGContextDrawLinearGradient(context, gradient, CGPointMake(0, 0), CGPointMake(0, size.height), 0); + +// Get an image from the content of the curret context +// +UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + +// Release stuff and clean the context +// +CGGradientRelease(gradient); +CGColorSpaceRelease(colorspace); +UIGraphicsEndImageContext(); +``` + +If you have been reading other articles from my blog you know by now I'm not clever, the credits for this code goes to [this question](http://stackoverflow.com/questions/16788305/how-to-create-uiimage-with-vertical-gradient-using-from-color-and-to-color) on SO. + +### UIImage merging images + +Now that we have the image with the gradient we can merge it with the background image. The code to do that is simpler than the one above, but based on the same principle; create a context, draw in it, and get an `UIImage` from it with what's drawn in it. + +```objc +UIImage *image = ... +UIImage *gradientImage = ... +CGRect size = ... + +UIGraphicsBeginImageContext(size); + +CGRect imageRect = CGRectMake(0.0, 0.0, size.width, size.height); +[image drawInRect:imageRect]; +[gradient drawInRect:imageRect]; +UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext(); + +UIGraphicsEndImageContext(); +``` + +Gradient and background images overlapped + +Note that the image is deformed, this is the [original](http://thewindsbeachclub.com/wp-content/uploads/2013/07/The-Winds-Sea-Turtle-Has-a-Name.jpg), the reason is that it's drawn in a `rect` that has a different ratio. + +### Blurring: `UIToolbar` does the job + +The buttons of Gradient Backgrounds Studio are blurred because... iOS 7. + +The round blurred buttons + +When I started reading about how to blur stuff I almost laughed at people suggesting to use [`UIToolbar`](https://developer.apple.com/library/ios/documentation/uikit/reference/UIToolbar_Class/Reference/Reference.html), and looked into solutions like [FXBlurView](https://github.com/nicklockwood/FXBlurView) but the performance on live blurring were horrible. `UIToolbar` won it in the end. + +A funny thing I bumped into when making the buttons rounded is that if I used exactly half of the frame side to set the corner radius, as you would normally do, the view disappeared! The solution I found to that was to set the corner radius to _almost_ half the frame side, where _almost_ = 0.999. + +```objc +CGRect frame = ... + +UIToolbar *blurredView = [[UIToolbar alloc] initWithFrame:frame]; + +// To enable proper blurring +// +blurredView.barStyle = UIBarStyleDefault; +blurredView.translucent = YES; + +blurredView.clipsToBounds = YES; +// this makes the toolbar invisible! o.O +blurredView.layer.cornerRadius = frame.size.width / 2; +// this works! +blurredView.layer.cornerRadius = frame.size.width / 2 * 0.999; +``` + +One other important thing is that the toolbar blurs the background of it's superview, keep this in mind in case you have overlapping view. + +### Justify + +The final thing I'd like to share is how to justify the text in a `UILabel`. Despite the fact that the `textAlignement` property accepts `NSTextAlignmentJustified` as an option I wasn't able to make my multiline label justify just like that. + +I was finally able to achieve the result by using [`NSAttributedString`](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSAttributedString_Class/Reference/Reference.html) and a [`NSMutableParagraphStyle`](https://developer.apple.com/library/ios/documentation/cocoa/reference/ApplicationKit/Classes/NSMutableParagraphStyle_Class/Reference/Reference.html). + +```objc +NSString *message = ... + +NSMutableParagraphStyle *justifiedParagraph = [[NSMutableParagraphStyle alloc] init]; +justifiedParagraph.alignment = NSTextAlignmentJustified; + +NSDictionary *attributes = @{ NSParagraphStyleAttributeName: justifiedParagraph, NSBaselineOffsetAttributeName: @0 }; + +NSAttributedString *justifiedMessage = [[NSAttributedString alloc] initWithString:message attributes:attributes]; +``` + +--- + +Market-wise [Gradient Backgrounds Studio](https://itunes.apple.com/us/app/gradient-backgrounds-studio/id815508757?mt=8) is a failure, no more that an handful of downloads a day. But it was fun to make, and gave me a chance to learn new things, try out new designs patterns, and experiment. At the end of the day this is what matters, being able to always learn something new, and having fun! + +If you have better solutions for the problems I faced **I'd really like to hear them** please tweet me [@mokagio](https://twitter.com/mokagio) + +_Enjoy your next project!_ + diff --git a/metallo/src/posts/2014-04-09-2014-resolutions-review.md b/metallo/src/posts/2014-04-09-2014-resolutions-review.md new file mode 100644 index 00000000..2945eee7 --- /dev/null +++ b/metallo/src/posts/2014-04-09-2014-resolutions-review.md @@ -0,0 +1,45 @@ +--- +layout: post +title: 2014 resolutions review +seo_description: Reviewing my resolutions for 2014 after its first quarter +categories: Be better, or at least try +tags: +- Health +- Productivity +--- + +At the start of this year I posted a [cheesy retro on 2013]({{ site.baseurl }}/2014-01-02-2013-retrospeectives-and-2014-propositions), that ended up with some resolutions for 2014: + +* 5 tweets sharing tech articles I've read a week. +* 3 days of exercise, or at least [7 minutes workout](http://well.blogs.nytimes.com/2013/05/09/the-scientific-7-minute-workout/?_r=0), a week. +* 1 original tech blogpost per month. +* 1 social event for developers a month. +* 1 tech book every quarter. +* 1 PR per quarter +* 2 decent (> 100 stars on GitHub) open source softwares during the year +* 1 new programming language learned during the year. + +The first quarter of 2014 is gone, and I feel like it's time to review how I've been doing. + +I've kept track of all my _achievements_ on a `.md` file on my Dropbox, but I guessed moving the system [on GitHub](https://github.com/mokagio/2014-Resolutions) would be better, and more readable. + +My only big failure is with the tweets, I see to be very good at adding articles to my Pocket list, but no so much at archiving them. + +The point of a retrospective is to improve the next iteration. So taking inspiration from [this post](https://the-pastry-box-project.net/remy-sharp/2014-january-3) by [Remy Sharp](https://twitter.com/rem) that ends saying: + +> Don’t make it hard to achieve, make it hard to give up. + +> Plan to fail. Plan to cheat. + +I'll **tune my weekly articles target from 5 to 3**, and celebrate chocolate all the extra ones. + +Apart from not being very good at reading blogs I've been able to tick all the other checkboxes in my resolutions lists, and I've learned **a lot** doing so, specially by contributing to [liftoff](https://github.com/thoughtbot/liftoff), a tool to setup new Xcode projects without the usual pain written in Ruby. I've also choose what's my new programming language gonna be, Clojure! But before digging into it I need to clear a backlog of iOS/Ruby projects. + +I feel like a mention is needed for the exercises. I'm using [yet another 7 minutes workout app](https://7minuteworkout.jnj.com/), that I found really good because it has other exercises apart from the canonical 7 minutes, and let's you build your own sets. I've also got into the habit of doing a quick _moving around_ almost every hour while at work, part of it because of the reminders in the [Nike FuelBand SE](http://www.nike.com/us/en_us/c/nikeplus-fuelband). I could be running down and up the stairs (we're at the 4th floor), doing front squats, or something with elastic bands. Those tiny breaks make me feel better and more energetic, and help focus back on work. + +Although the biggest gain I had from sticking to my resolutions was the value of **community events**. I'm very lucky to be living in London, and being surrounded by amazing people in the tech scene. The [NSLondon](http://www.meetup.com/NSLondon/) meetup has been my favourite monthly event so far, and I had a chance to meet [Mattt Thompson](https://github.com/mattt) and [Fabio Pelosin](https://github.com/irrationalfab), two developers that inspire me every day, and get in touch with new ideas or tools every time. + +Sometime it's easy to get lost between lines of code and impersonal names such as _composition_, _proxy_, _mock_, but the fact is that software is **made by people** and the real engine that makes our software better is the interaction with other individuals, exchanging opinions, ideas, and a good dose of nonesense! + +_Enjoy the next three quarters of 2014_ + diff --git a/metallo/src/posts/2014-04-16-cocoapods-and-custom-build-configurations.md b/metallo/src/posts/2014-04-16-cocoapods-and-custom-build-configurations.md new file mode 100644 index 00000000..2d6c7d03 --- /dev/null +++ b/metallo/src/posts/2014-04-16-cocoapods-and-custom-build-configurations.md @@ -0,0 +1,115 @@ +--- +date: 2014-04-16 +title: CocoaPods and custom Build Configurations +slug: cocoapods-and-custom-build-configurations +description: Some tips on how to use CocoaPods and customs build configurations without headaches. +tags: +- iOS +- Objective-C +- CocoaPods +- Bugfixing +--- + +If you run through the posts in this blog you'll find out that I'm a big fan and advocate of [CocoaPods]. It's such an awesome tool and makes my life as a developer so much easier. Most of the times. + +[CocoaPods]: http://cocoapods.org + +Recently I bumped into a quite annoying and mysterious [issue] while trying to use [Tweaks] by Facebook. I was finally able to sort everything out thanks to the help of [@grp], the library creator, and [@alloy], CocoaPods dad. + +[issue]: https://github.com/CocoaPods/CocoaPods/issues/1934 +[Tweaks]: https://github.com/facebook/Tweaks +[@grp]: https://github.com/grp +[@alloy]: https://github.com/alloy + +Thanks to that issue I now have a better understanding of what CocoaPods does, and some tips to share on how to handle build configurations like a pro. + +## The custom build configuration issue + +The problem: when trying to use Tweaks with a build configuration in a project the linking phase was failing. Apparently some symbols used by the pod didn't exist. + +``` +Undefined symbols for architecture i386: + "__FBTweakIdentifier", referenced from: ... +ld: symbol(s) not found for architecture i386 +clang: error: linker command failed with exit code 1 (use -v to see invocation) +``` + +Tweaks is built in a way that allows developers to turn it off for production builds, collapsing the _tweakable_ values into their defaults. The way they made this possible is through [preprocessor macros]; if `FB_TWEAK_ENABLED` is `0` than the macro functions used for the _tweakable_ values are redefined into their default values. One of the places were this happens is [FBTweakInlineInternal.h]. + +[preprocessor macros]: http://gcc.gnu.org/onlinedocs/cpp/Macros.html +[FBTweakInlineInternal.h]: https://github.com/facebook/Tweaks/blob/master/FBTweak/FBTweakInlineInternal.h + +`FB_TWEAK_ENABLED` itself is defined in [FBTweakEnabled.h] and its behaviour maps the `DEBUG` macro, if not set otherwise. + +[FBTweakEnabled.h]: https://github.com/facebook/Tweaks/blob/master/FBTweak/FBTweakEnabled.h + +With this understanding of how Tweaks works the error message now suggests us that there's some problem with `FB_TWEAK_ENABLED` and `DEBUG`. The linker must be getting values different by the ones I set. But how? + +## How CocoaPods does its magic + +@alloy opened my eyes on what was going on with this [comment] in the issue I opened. + +> [...] the FBTweak headers are read and interpreted by both the projects when you build. Now when the Pods project is built without DEBUG set, the FBTweak code doesn’t actually get compiled and assembled into libPods.a, but since DEBUG=1 is set in your project the FBTweak headers think the code will be in the product and it references symbols that are not actually in any of the built object files. + +[comment]: https://github.com/CocoaPods/CocoaPods/issues/1934#issuecomment-40132425 + +Stripped down to the very bone what CocoaPods does is adding libraries to our project for us. The sources are located in the Pods project in the workspace. CocoaPods builds for us a static library `libPods.a` with all the compiled sources and adds it to our project the same way we do with the system frameworks, in the "Link Binary With Libraries" build phase. + +For this process to run smoothly is obvious that both the Pods and our project have to be configured in the same way. If that's not true we could be calling methods of a library in our project expecting the code to run in a certain way, but the actual code would be different. + +Usually the libraries we use don't rely on CPP flags to switch pieces of code on and off at compile time, this is why despite using a lot of pods and custom build configurations I had never run into this kind of issue before. + +## How to use CocoaPods and build configurations like a pro + +The rule of thumb is that **the Pods and our target have to have the same preprocessor macro settings**. + +Whenever you create a custom build configuration Xcode asks if you want to duplicate Debug or Release. The Podfile DSL has a way to tell CocoaPods which build configuration was duplicated from which, it's the second argument of the [`xcodeproj`] setting. + +```ruby +xcodeproj `MyProject`, 'QA' => :release, 'Beta' => :debug +``` + +If some of your pods requires you to set preprocessor macros then remember what @alloy says: + +> The important thing to remember here is that you cannot conditionally compile stuff by setting CPP flags from your app target only. + +We need to make the Pods aware of what we set in our target. There are two ways to do this. + +### With a Version-Controlled Pods Folder + +If your Pods folder is under version control just set them in the Pods target that uses them in the same way you did for your target. + + + +Git (_your using git right?!_) will remember the settings forever. + +### Without a Pods Folder + +If the Pods are not versioned every time `pod install` or `pod update` run the Pods project is regenerated. The way to automate setting the preprocessor macro is through a [`post_install`] hook. + +```ruby +post_install do |installer_representation| + installer_representation.project.targets.each do |target| + if target.name == "Pods-TweaksBuildConfigurationsDemo-Tweaks" + target.build_configurations.each do |config| + if config.name == 'QA' + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'FB_TWEAK_ENABLED=1'] + end + end + end + end +end +``` + +This one sets `FB_TWEAK_ENABLED=1` in the 'QA' build configuration for the Tweak's target of the Pods project. + +[`xcodeproj`]: http://guides.cocoapods.org/syntax/podfile.html#xcodeproj +[`post_install`]: http://guides.cocoapods.org/syntax/podfile.html#post_install + +--- + +There are few things as rewarding as solving a problem by understanding all the pieces of the puzzle, looking back at it and suddenly seeing everything clearly. It is something that is possible only when using open source tools. + +I love the ability to look under the hood of the stuff I use, and I am very grateful to the CocoaPods team for the awesome work they're doing. I was lucky enough to meet some of them in person, and they are all lovely people as well! + +_Enjoy haking around open source_ diff --git a/metallo/src/templates/_pagination.jade b/metallo/src/templates/_pagination.jade new file mode 100644 index 00000000..3a7a62a3 --- /dev/null +++ b/metallo/src/templates/_pagination.jade @@ -0,0 +1,17 @@ +#paginator + + - var prev_page = parseInt(currentPage - 2) + - var next_page = parseInt(currentPage) + - var post = posts[0] + + if prev_page >= 0 + div + a(href="#{baseUrl}#{pagination[prev_page].url}") + | <<  + = post.previous.title + + if next_page < numPages + div(style="text-align: right") + a(href="#{baseUrl}#{pagination[next_page].url}") + = post.next.title + |  >> \ No newline at end of file diff --git a/metallo/src/templates/_post.jade b/metallo/src/templates/_post.jade new file mode 100644 index 00000000..f59e4773 --- /dev/null +++ b/metallo/src/templates/_post.jade @@ -0,0 +1,24 @@ +.post-container + h2.post-title + a(href=baseUrl + post.path)= post.title + include _post_meta + .post!= post.contents + + .bottom-box#paginator + .row-12 + .col-6 + if post.previous + div + a(href="#{baseUrl}#{post.previous.path}") + | <<  + = post.previous.title + .col-6 + if post.next + div(style="text-align: right") + a(href="#{baseUrl}#{post.next.path}") + = post.next.title + |  >> + + .bottom-box#apps + :markdown + Enjoyed the post? Check out my apps: [Fineants](https://itunes.apple.com/au/app/fineants-savings-tracker/id888444078?mt=8) and [Gradient Background Studio](https://itunes.apple.com/us/app/gradient-backgrounds-studio/id815508757?mt=8) \ No newline at end of file diff --git a/metallo/src/templates/_post_meta.jade b/metallo/src/templates/_post_meta.jade new file mode 100644 index 00000000..da6ab6f3 --- /dev/null +++ b/metallo/src/templates/_post_meta.jade @@ -0,0 +1,5 @@ +p.post-meta + span.post-date= post.date.toDateString() + |   + for tag in post.tags + a.post-tag(href=baseUrl + "tag/" + tag + "/index.html")= "-" + tag \ No newline at end of file diff --git a/metallo/src/templates/_posts_list.jade b/metallo/src/templates/_posts_list.jade new file mode 100644 index 00000000..f8541159 --- /dev/null +++ b/metallo/src/templates/_posts_list.jade @@ -0,0 +1,2 @@ +for post in posts + include _post \ No newline at end of file diff --git a/metallo/src/templates/index.jade b/metallo/src/templates/index.jade new file mode 100644 index 00000000..6cdaef71 --- /dev/null +++ b/metallo/src/templates/index.jade @@ -0,0 +1,8 @@ +extends page + +block contents + - var post = posts[0] + include _post + //- we have a post per page, no point in using pagination, just rely on the prev and next properties given by collection + //- include _posts_list + //- include _pagination \ No newline at end of file diff --git a/metallo/src/templates/page.jade b/metallo/src/templates/page.jade new file mode 100644 index 00000000..9f6595dc --- /dev/null +++ b/metallo/src/templates/page.jade @@ -0,0 +1,26 @@ +doctype html +html(lang="en") + head + title mokacoding + link(href="#{baseUrl}css/griddy.css", rel="stylesheet") + link(href="#{baseUrl}css/style.css", rel="stylesheet") + link(href="#{baseUrl}css/highlight-obsidian.css", rel="stylesheet") + body + .page + .row-12 + .col-12.header + h1.brand + a(href="#{baseUrl}") mokacoding + .punchline mokagio's blabbering on software + + .col-12 + block contents + + .col-12.footer + | made with ♥ by + a(href="http://giovannilodi.com") Giovanni Lodi + |  since 2013 + |  - twitter:  + a(href="https://twitter.com/mokagio") @mokagio + |  - github:  + a(href="https://github.com/mokagio") mokagio diff --git a/metallo/src/templates/post.jade b/metallo/src/templates/post.jade new file mode 100644 index 00000000..8432ebd6 --- /dev/null +++ b/metallo/src/templates/post.jade @@ -0,0 +1,5 @@ +extends page + +block contents + - var post = { path: path, title: title, date: date, contents: contents, tags: tags, previous: previous, next: next } + include _post \ No newline at end of file diff --git a/metallo/src/templates/tag-index.jade b/metallo/src/templates/tag-index.jade new file mode 100644 index 00000000..61928795 --- /dev/null +++ b/metallo/src/templates/tag-index.jade @@ -0,0 +1,12 @@ +extends page + +block contents + h1 + a(href=baseUrl + path)= "Posts tagged \"" + tag + "\"" + + for post in posts + .post-container.tag + h2.post-title + a(href=baseUrl + post.path)= post.title + include _post_meta + p.post-description= post.description \ No newline at end of file diff --git a/metallo/watch.js b/metallo/watch.js new file mode 100644 index 00000000..8fd2f2fe --- /dev/null +++ b/metallo/watch.js @@ -0,0 +1,18 @@ +var watch = require('node-watch'); +var exec = require('child_process').exec; + +function puts(error, stdout, stderr) { + if (stdout) { console.log(stdout); } + if (stderr) { console.log(stderr); } +} + +var baseDir = process.cwd() + "/metallo"; +var watched = [ + baseDir + "/src", + baseDir + "/build.js", + baseDir + "/../package.json" + ]; +watch(watched, function(filename) { + console.log(filename, 'changed. Re-buildind...'); + exec("node " + baseDir + "/build.js", puts); +}); diff --git a/package.json b/package.json new file mode 100644 index 00000000..820b7967 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "mokacoding", + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "metalsmith": "git://github.com/mokagio/metalsmith#mokagio/clean-except", + "metalsmith-markdown": "git://github.com/mokagio/metalsmith-markdown#mokagio/custom-marked-dependency", + "metalsmith-templates": "~0.5.1", + "jade": "~1.3.1", + "metalsmith-collections": "~0.4.1", + "metalsmith-permalinks": "~0.3.2", + "metalsmith-branch": "0.0.4", + "metalsmith-ignore": "~0.1.2", + "highlight.js": "~8.0.0", + "marked": "~0.3.2" + }, + "devDependencies": { + "http-server": "~0.6.1", + "node-watch": "~0.3.4" + }, + "repository": { + "type": "git", + "url": "git://github.com:mokagio/mokacoding-metalsmith" + } +}

_BWbdSs1rMnE8Sl$XiC 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 literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-03-28-linked-libraries3.png b/metallo/src/assets/2014-03-28-linked-libraries3.png new file mode 100644 index 0000000000000000000000000000000000000000..7765c14bb40304624ff4176f8a598cc333c951fa GIT binary patch literal 32061 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 YYC1dP*M7tq1O)hqeUuh17u5CrUx21)F8}}l literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-03-28-pods-targets.png b/metallo/src/assets/2014-03-28-pods-targets.png new file mode 100644 index 0000000000000000000000000000000000000000..dba0b6413d0a927270f3910d068129becaeb744d GIT binary patch literal 17118 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 literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-04-03-blur-buttons.jpg b/metallo/src/assets/2014-04-03-blur-buttons.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfb03b511f06e41947e60b0439ac30052cef1459 GIT binary patch literal 24019 zcmeEtcT`hbx9<)CLX|F60#X$a>79T`6A{6JiV_i!4oWW}K|qiiK>-CN2r5`0(naZA zQMy#6_nHWV07-b8bM8IoyZ7Dly*u7NZ;ZFe$evkyt-V*7>oCtN zfIuLC8Tbe6PqAGwH!?z=x3MxYKWhwL001_#vu@r#besU--@6^t)qu!Q>(U9_GeIVt!zy1NrZRGys5i0)RdRv-4tNf0zGL5|`s0Uw;6A zoCj;GI63<{f^sw{dj|R6IVdN9GVd*q1DTHgK=uVY2+9Hnvdf>c{2z7xlnoAKCogX& zu+BlB?>Kom9mvg~{2(yE8I+-CK{+PS%{d5^`$1XKGr-FYl*ypX>*eg=2LSYJ2j%|G zj;^455|r6|FWMM^vMvBHvAO(%eCr=%f9GJZp8#Owb0@^t&BfJUOxE$3n39&3rkI&? zkf*c1zruM3M-K;ICov-*uR9LjApr2_m=9V3+y`?j22QfNl9sx2 z`mcq9wf(ckhV>t7208rg@3Oz!{$1vi3jms1;M_d?yX@9e0I0kV00JX_mr3RT07otr?9c@L$prD`=ZqAM;4kq-kD%`L;uV zr@z?2q&oU|`ULoj`Q34FbQV+i_e%UfZuk$~`iFkV+c@8L_I36KA9WejGBNP0vyrcoV$P)l(7cT%^{RYtUumaHQ+29q(U+Z?3 z`7&^@^K9Ysf9gFbgV+D~{x@HASnwyEpPP%=L9vm|MKQ+!-@pSI+!F_13;+wj0q_EX zfG8jV$N~z0GN1wI00w|Da0ajfE&^8pd%zKJ1-t-XAP7JK_kb860eA?c0hs^}cnQ1# zihvTJ5~v0mfL5Rb=mvfOqre0(3oHW!fCTJ;Kn8=bLwF#95I95%A_q~1XhQTM#*niR z8^~42O^6G`8xjCPL82fDkW@$}~KX@Goz^gxColaNKoZ^$kkl#Y##m+lCi zG@T-yCY>Rj1>Hru8+0yocj-duqUn<9p3vpey{D_7YoP0(`$0EBw@kMM1)!|Z!%%Uk z0#p-f1hs-*gWiVvLebE8XgV|(S_J(BZG-kfC!j0P9ePH39(pl)1$rHNGx|&Pj`Vlw z(e#P*ne+wp74*&Yee{#`1bP|+JA(*=9D_E4Il~nO7lt5)7>0C)*9_$hEet;xW*JC~ zjEsjFWf(OW%^0sTx-*6`CNe%}#52}2_ApK}ZoyzML6{s&4`u~(fce8>U{7K1VRf)x z*es09#L5I`Qf4w?y2j+q6v>p%^p>fXsh4Su(GlqWz}M}W_4qYV12^+fwi4=l68lTo9#H8 z5!-dP0Jdbde71VFVYUr+c6MoY1NLj|{_M%@Z`hmI$Joh-cn+O7WPZr$5av+Up^8Jj zht@clIixrYIqW$?Inp^wIl4GjIGH)6IgL0SIMJM0oK>8IoLgKxTuNM4TwYv>TyMF) za4m4dxTU#`xt+M9x%0T2xTkrbJQ6%cJdQk3JTG}#cxHJSd1ZLbdEI#vcnf(uc?o>n ze5!nx`GWbf_-gnj4nq%1A2vVic^G@RU^9t(-I||1Omk5uD(1{!uu@MOq z$rJe|vUNoCi0P3#N1h&OI_}02d)oygFlAX!I#AN#0Y zixI>{#LdJ5#9xSaitinjIeO`6e~L=CEDvc z3OXJ-Z*>-QWptf&U+PZl9o2Ktd!aX>FQ$J}KSzH8A&ziBf|ZkQ{|_&jkJxzjp|QBPn({OKiz4}ZG6c%(|F9}sELcoI}?JbnrWD6y%~d< zg;|Q(p!pGVNAox4gfkjv!p}5YuvuKN$h4R`d;F~L*-w^qmS-#( zZ!T}!p0-W3ow%ZSCHzXqRiUeHS3h2ZUAuhk^|dWKW4koF+3RZ8W3CU}khu|j<&p2P?`i9a_hRz8=~d;;?d{>+>?7(E z?9+2c?oP~|iM!f&)9w;{Eqq`5LHus`ee~xA$<((1*?{{2lY#nyS%KuB%R!~VT*2PK z-$IUu#D&aXEA`jO?MipOG);~#IPA=AF3tES^J zSTX`KCZ3#q^6{zU(}zzfnXZ{XvQA~;pNTw+d$#@D>3MIqL3R=D2rdD)o8y)<^uqK- zMXq#idLCn5VBXxz%P-qrX})^%TIhAcYihoC{zQRILGv4pH*emGyv4qwdl&F-@%{Dp z-G!$MKNcwzy}%#FCwu@t1bkR3zF9m_Vo}mqs##i8CRO&VoTog#0#XrDL8x@CocMV4 zV^7tYs>V+`pUOX<_?%xYUY%9LSA(r(sg17PuM4f)s=rge(%{lC-H2=)ZMxFb-)!C7 z*<#Vs-fGg?)MnUL*RI!I{YCpr)mP20l^yCG72njpm48?JUf!wRS<$7@^|4#4`%{l@ zPi-%vx1sNJUu(a4f5(q=KY9i(4GaxlADkF+8d@0k943wgj_i#_{ABnU|BLfi`k2UA z?)b5B{Dk^M&E)CHZ&MehMyDO8muLKDD6`RX>~rb!@cB0j$_v$tCX3xmc1yF%cb4~7 zVph3UpRLKRm8~1BeA&Toy8yhwZ7@nk`A!H(um+pg{I z{9X_RMtMR#M*T#yp#9wU+TY)w1fCcNyWIu=OH1H5$Of1IMhGJS1tkdRNdOS;f003E z0TBYZ!k--DGDP?<*&ZVMcl}tmKS;#^4*~D_#{v2;fAEq&&(Ivm-*?QR``6lZt~ti|6$1Gl)6AtR5q1MKKs zUgdi!FPJ1w6*utN^bjOfZuv$svmE9Z5EPPi{b`m2^AXx-!0!B zmcx>&lTyTkq5Uzke{Nur|D%!pHL$Rc8NR5y~@zeT;6fh(XL$6dv`VLd{v#cq?U${xSa za|5lN!$BQ-%?Z5Litki7fo-)7Y)cpU_;w>Q#-_vP1#*mBLDEgiJPmolzOH-!Jl0I5Qf;I}TE$PWeQD50h@X1TjCL71j8d9-}R57+s4_^N=7mi=~~WSp*h3v zzg{Aps$hfP6Fk)Qge68I^lT>wTdWSDu6M`e6FTgAw?=s)oJ*fO|NgQvA(D5uCqk_* zYC&$}-IOAQ$EvjsQr=3mT5+7Ju~=0fzUwSGHMZ>|`S#4m)@=s zH>;K02clI--;2SM$Bl}IqZRK7!ok&@9RY_BzHNKcGc!)Ia}oNZpsw89WwG!mSog}y z>^z+*_*mChg3;DSnMop&Y27M^ablO{WH^I%JmAfdlLza*Q1DmL2bu)xOgEZ~Y_e=m ze)RU5>#pUKZHH?+qPairG-*b0>yaah;#wOfWxkirv3 zwb4YUTTBfoQ7s9PEqo&S7`WtyG#T0;O$pZsFIG<}Sk!jax!r%Bp~hd~p2YWUFP?=U zOnK+X7+GN-pik|6@z{O5tfDGt%FZ!{lzp{ANY6LPm`0 zXh!U$OH{z~JJkO4-AVZrY{4aNCDArF{U2XtD15BbmGS#P2w@+XJW}1Qaoi-SVC*h! z(>sTDX{)Yj{2mxlvGgpaXcAiE@*WFpc&&2X_St^bO46UnT+(eafOFPScps4xd+I`_ zkWmCvVCKtt;P|{-{6yD;8RxBZugl{7qv_|V`X~%%@#~7)C;?9#BiL;&6Lpzr3wpp&r;#dv#6nN^V^E)h7|KD*W?(z_X5gOz}R(nW&#MnZglQ z?F6~t!22=EN^|08ySAv|@4-1eQY1U7Cl}ob7eP$q2t5|sUKK9-N%m>tKAAo;;5rN# zB?^a$8Jstzls$~mg=a?Sr;w|_$+st45WZgZ+LYTHKRni!Qfd~VDqb`H@GaNc{pFSb z1X&)Rpz9diO%Wj5m!?e!=4bAVEVvF8mmZY*nl zmN&i2C2F&=@N^sRR{Wu|XO(;0yfSiNOes2Epz$cyS%d{3=U^I)F>VR>=B`piq8meC zG_D($KJLa9TfzyK*W=L)56y`|lg8C2#in z5keHkLE#oeF*bfnv24`2zo>WP^Y8uWUpzWPp=aZFLAU$0ZKGMD8t#|qnZtQF5Z*{cV7VN*q z4`4?eF;Rd#Qf<4}6}t~GtC*NVcW1-tzDGQATbeEUmR(MAW3VZp>S+(zn;W8|;BI>;n@oa4h;- zmVA}5x)wgK-7knJB)_k7e2TsK3Y$JZd?P77ngSo3T zQf?lZgdv>4#UiVVZ_5F}7*;p-HwAUN85J3@dN5Pr2Xl6)&0G%4>U3Bxh=&E`0A2`K&wqkYePx zLBzP5-^0p4w&0yX^5g8}stZep41mpQxSmqeKFW;}hob)|o8KC%TeSpfZtn8<|_ z&dcFr`R6C`D>J|C$NG$ErF@*hG^it--l$q?qArjdcq`GeL`c|k-5aPb zFW#rplcfV!gLodbU!e804T3a;S+~jbi96zC&zuktqJvd^Jbtp@Hi&p-w5+nXh0RR4 zOM>B&=*(sg^8%ie+yv?>BiVxxY{9-(mRU{-fjjrLJsaMX*W`P?CxsrrhFG{#VcGBYb8Tsy@lV#Z*Y*MV5`<|!gKc~>RRtA)YeSmmHg8_3S@LV zz^VVh24Wd9@LxXq8ydiUtgZHeh@O1_lEe77c*t&QA87dnn?N@GGHu=mxD^j~SoAsm zT>UZY*w`kt5AYP%LkGK^2ItSJ>+69)Qc7`rbb%;RO7@#-xD@JQ__ zxH9XeWYdWxMAI0wG#PyOQ7$8)-&VfgFmX?2(sfhKbC_y*P)7;t4ID7L1ti;MN4R<; zpi=B7x%z7sT{PcM)dW};tDCHMVz4K>p&gIREjQRj9dcmS;MpkTtzrIsjg2P2ul#H> z|J_YN-AthP($)>>!5e)pr30&l>k22%x2f{9N+w^@yOeg19&Th4r>uO^&jQpfGJ=#% zO{zB9lO(sJE>p4IMJubSZ5sT6T-@vV`NTAszE>4IL|Di4Ep@yIaSJ=DV@$=@wKA~s65}!Xa{OIhqH@YZ(-(X@`@r5Aiuw-_ zh@NB0&{(4Bggk?;(wm>ELF&QOW_e17>sU&AP6@^zFECUEP*rn3)bdd*dTW&^Iz1HY zi4b(ptL4BBKPXqs`QYPCrE-imI($bzar~Q&UaJi*+yhL5K~b#;5*Jff`shp8bdp(N z&95IHHsEK+8(Wx;cneEV>rIJVm0(wV>PEgIhBYRlcVkj-`S2{u4}{8}dr_Yu81mHW zQqsA#VEOZ+Lbc)GO+C?HY+N(%kn@R=$Gj=lQ*_(f!Jl@rM~*35Ho3enS(A}@m`}}% zV8;yQ)0lrb6P`3pjVJds6$O8tp}r7%7Wbl0;J3NV(W@oC*Jq&HA;Q=nXoms{xVv5H ztWNgweB7`hP(s7%Rxt z#cX&*7hDE+Omy}W{1t#s??I-5TF<~ouHMcLqDW;xsrQ6dD8)DGn(D}Mrp-RAzwi`k zYqwBpQHc4`-#CJE4o9E6T>U-(LO5C0B@*Mx7}@H!560gY(bmp^^~`p(r*$T~w$(e) zyXRr4v>%w_t{8;74_jI2ig|u;}uELKZ8Z$b5gNqu%9n_K< zTYRS2wd}o)ZYByix9wKyO{0LOO7g_ZA&#*`wVX5N8eQMe|a792RszuGcgmdkY!yD z>Rhm~Lb7D919`X`GmOn#%SeaD@ppkS$hATNo-dL z3?2N_7*egLrftp(==;xmhpxy`NA?Cuh2)oL zR&=MR3Q@1LEJ)ivL+;uKMBrpw2J=2pmz?$+PT|^~e9(jD@}QllJ3AH(x~MBXI=*K) z59Q#lNBHgf& zIswGQhZWSQPh==?&%NxhqrM)I8o-Mt>eTDt=HTj#S9}*qm19gfBPoJT_YgC-RlsWwVdwhT* z$C7;SkR_Xfc%sXbaaT<_1Nggv!Gs_mk%|>jt&7?p77PU$Uv996z*dZiN4KXCE3-M* zgVR~F!q2oS7GHl)EYVTL$a$?qsIbip7;4#E)lr;*V#Rg?m<^ag8t z>gHQY?vnT?4Tt2@Deoj)B6+BJNI%I~zPY*z{w6+h%bptf^J%5H6W1En3K_L{n)ZeW zVa^W~dy;@KL?iCO0GyvDv|ukwXj9i-eQcY;Hq%yPC_BD->?`h$#|w}bWs;uCXn;VCG zWUdo0U>t|i5W0r_PhY{;S_PoP&)LHT+iK8vK_EWs<4ny(_#gp_Qbnqf!)t|VTQdO) z)_3aaPsiS0M-lgd&{ztO94Xu?3J2UA*h;vQxt@5*XYMvKTh0?bg*dN{JBhujG-TUT z>+pJX)YRGi;c#vXuPhgr2_G*T0K3V+3#=coVK+_Q@sr*3*&q{DgFo@eCgX@!CS=4! z$M>MNpp@aEt1oU{q4bJ=&8yOX4D18(2tHMxs4=$c!Rnx(BhT+=9+tv>7hid+^Jo#7 z4lfT{eKZ9hv1q%!rjzho#kkm4bkJhh zx#;a+t}tw`#jE^bq5d~JS{fx!b}XdaA{J)fpU^QsvA*^b;6)WDue5y-E#H$Oylcv+ zWhMLMy6GRSvKw91?$nfd=AV*w#}e?r_eJe12AyF zyeG5BfIEd`#~S}eqZFHvmY^ZsjdcF8#@|;xr zjEH1JnASQH4PqJE4gJFxH;kdNSWjT#i&d2$2AwNE);Q@Hu~E|(Lj9O8Z=bM4Ke@YZ zz;>WehzV(2TTRIJsvXgca+vx|*JUcq#dXcU=EUXlo9NXh>}Xt;-pi-R5Ff7)wNioE{`nik zH4!c$41a$&?4t~YXK+&J>JEbNU<6L;sMrU()aL5=F%zlTY(%}seJF*R>TX5StVBxn za-e>+sKM@K424IAltIL`jSB=WIPUs*kv2i@LV5=K5;C?a(;k9By=Ax^<9~44;--cx27Of427V#7_Y6 zqiSs|wkBMII69G?Ll;0j@;MFqkdgu^OcF+E}kHDh#~WYCNUEUa6V)!ywpB_vgVX& zst?nW=fg<9lCg=90>t{n#~h9ibraH9GIKt0-BffFvVo)UE|cOg!}|aU*`HyQ^<_}^ z;`k6r%BqVqK-$f8uQ&!Exft1FKy~>_#a)<~uNP3Ox%E@}^E98`&eM$f_)+*rY(IPc zH;I9>fqb+30O5l0Fvb--I#`cj^LqJk$SuK#ua^-a@$+MPkicf88Fmus^&i3|pz}>N zBqqyH^Ivcid+;+tUmo0no$Bih!EnUJp5H!@+gpVrO9(r*&@}b|ybgxS{w@!!@*Rwv zM$0w8x2Pbv=MEgyk;9QKs=-ZcAGiq_~ z<9W-ER&?d3sUP=@?;&mjy=U9_54ufA82X1Fd^qesMkUAmlW9J_Gu^O7pZ^o4W(+bo zSqP=)yN(+v&yAGBxM8Zgnm>}1KN2DQU8Ju9=dO-(2X;(ptWr~M{_vsJsR91upTJKlwwWx#NrA)v5PtWbeB;X zX&c|Z9=8v$s&z%x%4eJ=-*+MjCCZklp7s0vp1BB#E*@tSH|#BqE~kY7b?|u2Eo1D zw-1AK3AuX=2k&jfHj)Q^B3y$Jr-1!Ak6cw z_YQx-NZpj%1oaR99XCXvX3<#kh)++TDUUp|RMy{~ZraS@sNyiP?vH&@umI?>o7#xR zRMo|e^OX5Si?UY_q5?wx;54@#JF@>|JSZzNE)OL}@S6KP{jPmwMZUZEHbUi(i)lM{ zd-mwT%&t|VY4y~}m!;kEKNEyG$B$#z>)ye8u_GI#>H&;9Tu?QGT?!Ywa&Ymd?7y%b zSD+|i(x>s4$22@ieiKf2^-D;2@T7tD?^c~s(fZIH!sp4ra$-VjdMN)r`I+k4>N`2I zJB~+&u{ZTRwya1d)Rax+a9D!}duCe@-d;>&y9Mon_-SPfF9hHvh!t!utz(S!if6jc z_fR6Fu2ybCi#8Q1OZ6CB$chl_RJ8 zQ`ZLHR@X`vYs;P-Mb#X=OTJ*ijzbo=7#!JF`;DUuz)R!X3hY}&ieMUiUIbDfsVdj-v;?*kFOn=8DD63i@FX5WZ?G-Nm~f=*46o&D zg~{nR&oggfeoKWmZ56SSY|?I1pP-LCxqEN2P!Gf9C4eYU8>_np>{!uQCZ`t55W`DN z=gJ@EF73v@f3oy7N^{p2jKh<`x498wMC7XA-M2{DyE#|NdLp&W=3RZ7U>kT}P_+Am{LzuTnLAj!v*QLo?4Xak-^D6AKu5`xvYEptZ176JPzMsVB{>0(>IJ;QgzY zGTG&<9hBfrb7D}$_7{AoI{-#~2(o zATm-*$)T&$1^3;DF(B5QoHn`6IU;NO!;6iFxSgreun*Ll;k&<*t!S)Dg{OPTisu+m zvpm+QKJ*PyR2q^T@H@+LK_P!D!e^5Th(<%9dWVmrd`d z`<`E>Lm0S1H!oyr<$LM(gCEEao{*9?g`^yoY14kbvw<|kooBMrIn7jIu_FgT`iaKW z3RAHh!*vsH5rV1n>tEEXO7(YNo<*G5d$_3zITCWBYR?CyPS|elBA+g|;yj&M@Yt@H z>8w)wId#?NkS@OEOJppOWyzF`E&STq3aY;Mkf#k>G_<6iR6ZT9^&z}}{$aSsKsEiG72U%7nbZMJZY#{M!jRb2dwXy& zs8r4o_0;Lg3dQ(#^w2oNJmM$j65523~(Zdq!O+z2D? z`r>Bz>Z@S_8vOK5*P`|T`RUDVz2&iWfmbiz=hKUe(Rd-V+8L{LgwZqPXSz~hQ%o6` zHtv7sjIK}RNs2l56rA%j4G~UaQSA~nXvyH$lU>c9=@FmCOmrJbn0@95s(W8bpb zd#`?xA2^>HjyBF=N1hyPg%hq~I1~n(unfx#CVL9!JoJX=4}4{ukW>KS$c7|1-YI|9LI0j z7=;_7VBj5+h$}R~{%S8mSIg(Z@*~Qt_{n=+--=!u`aaQ9FEMKSEClR1?Dn~v8fI^{ zUKdp{;JaWIIr7_WBI&Zn^Vhb}jQaYnZrka~RgkjEs7zz_SS=~bB;!Xi&jzRKRxR@P z0nl^JR;*+%`{`k0iaYy3km?FuTqjHMuS|Np3q~M`E=lk6sw#ibmZrdcbF&uijo8PNE z>6!bXlULH{AFY`e!bMQJJ!r{=*mJ~AoX?x9Aqk3U%4?9vGh7C6D7qd&uqq|8=MZCC zKday1L=9Z#j%1&t?P1qK4{dF4$5czaB5PRLS+Tg0LIX?P7Som3A;{~ z8pq2%K7KUu_`Pn3jVI__5Q8Xu9TQfh`KZkhWE4!nF(GZf@fb_TmGSomDiZr0oG4cXS<*4&yj-Vns#p9yizcgXnzy zoX~FABT$cc{o|_Lh(1%eBp+L!XT=686wAA+k2GPUU%`Z=YPn6*4*1OAHw3|~E-H!e znPkvc&VEku#9k}EjR!|s6Vn5(Mvh{$ChYDa^1PSmCNM6Kd4$X)DPbBj!7g+zR|Lg6 z*Tvm_@{Z(FeytER2s7vTmyxgROl#0V;L~qW1Vae#rg2TU1bsd%_o+oU6}Eys2u62YgE&TB>&xP1`J-ZM=HTLak?%SN6te zHzd{L_q%#rg<>3ypVoJ6`vFQ(s%190^z9d^tq6vJMU81Ojw#@dD>R5SOO3cqeSS++ zoE#>*zNao8 zQ5Ht)*$3FS;H;Em1pc_K5VhsIp5BUH?1hDIJW(siRQ@8zt=~Ff#?^LOLO3YuVA55VS>OBOfEU3>{kbd0upK4RS2ZB5LbKKHx7o^fy~@J6 zp{Qb-B?@E}4E_X*U_41;ut=eGz8mkQ#+jFD@c8u5uKYKUWA|m5*7#urYDMfQV7}gz z73-4ojXBy{9|)p-$bYYgA6 zHzE&~*IgsyXw1UX!xWV_!K0J7gdjV2ZRb&B6BPIKhFRq7$xtt+SZtsgsV}E16d>Y8 znppz_Jo-d2M1&oS1+=q5`P;_QeNTzWR-yHqtVJ!%P335k7_b>O~c0BDHnPVa&n#R9mn}Or- zmt#LVfBt+WhiBH=9Bz;)tL1~Q*o0ljAiYv`#OzltuSZV38Zn<`I;jVl0qrn)ZAnMi zO}aYeXpGc}wKkR8T2ols04X$&%pg!OlnJ6jSiKueO^4}5G%)avSk>2^$VyA z!f@`*Wjr&5GxdtUTdl=+qqMMMYX6Z(<24~ZD{6bv_OxCE_ayFo+%#bz<@on-9gcLH zL#Hj4tT2DDROT!~s#Of4^v3hfH>^hCQ-arM=bP9+5T1g|HdPz*`pRPWVuiKcP)@u6 zr>T%^{Us>Cl67-Che>fuz&}ZOYW@7(BQ@{6REt877koiH1StxI%hW8Z6?d3+j6ARv zxYNN4MKllcn5#sDSHJ4oYpijkv4|7B^tosqqGBh{aPI@n%v7xF=MUd*)0>&1k8(fT zy|-+K`R_r|0B&_)*mc28q2s!p=enK4@!d|KZqgFd;1V#Z(^N9vTzdA>p2kSwtxFU*;7~$974iXw6ETAs z0N+4~BWQ{4)Y@Zhp%g>%J&^L#KvUzu47$&b=V7ZHP5ZzO=cd&z0pwrCg&qUQrcF5E z-okUtbR!4#a5?@%ST`(zHUuxGVfW6HwbG4~yP7Y%S|$?bTW`qe(r^SaIr#kCI{wFha8{dv&ZmE&8wcyr)f0r0&8hb7Mv-4`qlqlkx^ zBFVpF5Bdy-4x2HAD`1|8+AmxLN+lnv@O}1s%Vb>W4AV4rL)i?$vWEffV)VK~>?+uT z!KGJqS^kErJ=1gg!tK1@D{<+T^><^cd=&MX6aaKG1wqIp!|Ow(69g~c5N%`?Gd*=Q z>4F4prw|JoxN{?V3*ZM*3qDZ#zb}Xfd7Uw!9Ur7$S17VeD+5N3{RB^b%e&oB*L?8Q z(}iC)V8?&Ql4Wfp)i{RQNd1I;pj8nvTGdl+dUtND`Ps3LtQB)SU6k^~oe1322~14g znUF22M+`Nu76Q5jWo?b@c8#JMI|^I8?Cf6)+~o7^9iOWFvhqxf?0CjwAhHicq3rTe zrwG|uMZsq#y*Gbd{&m7@_QLb_CJFs$e~ALIsNS+_d?AW|4^9alz}(_U)W$Y+ja(Ey zBD0z(kC#MzDoyF?I9j~yqrv`}d}U@@5nJ0YSKy>Y@5C9b3c2wxss*is9<;vUiY!Ma zI;CpFxR!@VTP`P3>Z8`=NP68aH8+=WtQ4&&kLiG^BOGUHsvM%^2MX5EFB3BXN>e!q z_1P%9lJaB$HOrHdW?ZI2wh@f5&=9aZ7iEvw;OoN>7%;7M7O`N$4aZKpsv?CBOOb`s zqeMAG1-k19EC>R)yWr$dc+2`O%VHgwu5Q|tqQ^0{O=T!sr$CTId@q-!{*fv7*WBe5<5bQn>m&4HkkHb`sH{%oRnd`u1NKz9%R`%VT-Y@ssTNS`? zBC1Wywi?`^0-HO7SBQm8r>7VrnVO&MSTH&!?hcOB5nfe;miAO9=#oV!?E^$L{EJ{) zOF~Vl(d0W;J$)ISrwWr-qTn{XY~2jcV`}NBFSc0g$g+sljvUal6j`GQ5N6ide|F=k zwZnpLRBa*1(k?3(_5rqH!i#dG(5ZLRNM4iF@fc{}bEa8^i@S+yn9KDuVv^7WD!)lN zVJ^unf8mZ)d0O-_A0L+Rp*&-jw|Wr(n$P_?sGFvs;sWZ`m85Uf>|APooePFD*p^96 z@YdetrxJILe#XvWpAm!~%anY!efzKK49~_9&S0=5KgpO2w&}%W9pT>T#*W|1g!lp z1|%E)KBIT;Tu`y-;+_nxUr2G)iZE~lX>`ov?a2Lvi+z=|D|2n$bLtJpf3?9Lf{BP0 zRBeSbtsY@B8{!|6@=`cVY)%?d*nMfdWWI@g0Qy?@*yMAej%Tw9k1MI0hH4|c0(x#) zAbm1;_@H0jozE0F1iTt@_lg<=(JDfG$n`&wJ-%SP5F^s?Vf@7HSMM4m9qno_IKMn? zCbcFYqObFot!fuSIaMRkR;$&kFF*zr&z|^wEGad{GPC2`ey+&vNkX2uds>V``&Ae=Fm z!yllP9YcJZWu#Uf6~mjfHO_$%v#xE!Ra56Y2xk{C&87hEx{I zuz1t0Rz+`szL=x_O&M|mZW3RnD?If}XNo_1^Os+vEo;#0rHVyApX1NgOauitC0-mc zq!&%=M)!;Zo0t*DNyfrS4q;0AZaibm>_ye|3wWh(PuKD*ObnennekoYL;JvVYv~>* z%Ap^92;G}Aw21I@a1Ift{&<#*zRHKS3;F0Z-qaGm(7St zk2Q9~r+Cu^ZN;!i$921SzJ6tqNM$BnA&&$8M;WIU)J>#)0w;L=#1`gW$Us@-S)79m z_4vJ84>NFX%(qfJ{71C>Yab?MX~d%6B&! zm}2nTNdb{7!D>`v>V4qtU%GdT9#|1}ns%nuzPi(7i9RjAY`qIZ3O%-ML^(fq`mN;U z&ms%E_5>*ksT->t6G=?psq0{XP=4xD7c)wl&~*<+u^u^`kq=)t^nN?OJ)mL$e~u{C zpm1-rV0hLF0}u&JV9y)rywc= zG3NLacj3l~KkY8(imIoYdc!*MIGEp#@IsI;j>wUDCgs2TP3!q0js{ikjGv7+i~vM- zIuG$4GSK<7+75d}>)yRTPT_@{d>V`Q*i^(J2kP{}U}An<$y_nPZ|X)y8-AGR6uHzpD?Kn3dD6HnkL5&sa&f!9 zx#^oPog^{n^0?eG@YGhWT(($ce{Qf#g7q`ylMNTR|UVE6n` zHv+^dK}DPft5z~p&iHm+s;9DxbmesYo@N86rEc8JsaxV ztD~_YIk?&twVFNJcoi{Vfr{eyC!4sV%~DMGE}0(uhkEFF`oDFWvF9A9+IgTRMhF}0 zfT!fYfmarSnE>z&t!v&E1o4Z0M!`T518q}1+_&jRCwP8~g7$>vC z2||G!FTnrp>W0OjN5_i~-QRNzW-|(!b;~~9$CaG+Hu_8A*6-VGimal)E>b#vYP7+D zI#0L&tyxqV!H)0@*Ri2}DW?8|6t0<$X*aRc}T?2tJE@Jv4B5M<4#D=W z&6eQWYh9tAhx8VP^p?NsTI>Z-#0W3X?q*>9wIWHSfz>h#;+OIKWH1AZA({{qkA*cV zax9A;twtQT2uRSmWpzq_Gih_A3Ir*~r>h z&WE$lIr}{4%YJ6&!#f|=^UPYm|8Ko(t=}3*u|DTD6z0opVQsejl71?DdVw#>#E@xN z+<0ey-|Rhu7eO}$LLBsG{1yT!2)^hlJ&>}SvftpC;JmB47q}aR$G(IR<>H00a!4ex zN+_lSXnzT0gBJSTP=xsEDRw5uy7WTS(I10?eSNR+Ls`yxdwd;dBgwswY(r+EUIK&- zR7OfDpc0}1b8O0NZ2-0a-XMXWcQTGa`}zUiw*1J8+gVN=eq7X~cX;Grt%HdMH2suE z0@i^nBqMS>$n7q=&U?Xwv47Na%9)|S=n?{6I zyt;@mF@qK4!!ik8pCDr+ZEm&Wf0iItcNO5OJmDcZK`L897X9yjf|M(>c#|~G%tdDj zJOBZxw8%*A!R1)HI~|BE`*t&JlW!AW$n4q~Jb3%%ROv@U3SXU!Sn$r>ECPK3sYsSg zmhKYutM(iqu6y4osyx%LU0_cX8bpd~oBNvRRf4f`ic$~;#QzOC(T$0%h#%i~O};bs z4709#l0R@Ezyr$5Neq%+wD%jVbsN*0JlrA`fk<+dBkI}KP83yfi!@9j;n>d!)-|#? z3Y6K~Rz_24+!IVs0jk#bq8ZafOxRKeSQJ7-x$KHM)HP10VqQz zP6@2Q$xCPVceznD+t4+n1VsmSL5aEFBSIn7JbB*|?4G^17HA}fv+Cj|UYo&|Nq;hd4y_5yyF6$GV@I<_#**y*R6>B8l*@&N8vSg{ z9BoKz;KsUrR%hAgAC%wZz?kK%#f-)z;wbBad<=# z8`_Qy*Nds;xa_waU`RWk88bts$SKEUT>19+x2ky<-+#iFKnrsxny$O>1sTGiF!O6~ z@n0HEH0D(`3GaIHp|)4fH>t~V$k?khd|k&gCq5&fBr2@Lw6-kJ@xg0Yit%aUP0tv+v zCPf46Ry7W`Nss@U(k{Q?F^3*LRMbn#qnT9v2) zHC$mD`!dIh<6hw*)w!kF)e2FE(FFn`NPrx6dXLLanl0lsn( zzDj<|!Q%JjYRxSxw$cf8KREB@roO4t!D#8(0V8odA&o(SdC(o!_D-kD-<%xQ zXPoTmxg;xjFR!iH_%qcdFrzl9PD{{nS#EOuq;r|mm`u3z+P%R0L%rpfhDiX#zHV%F zVu=B^8iyq7K`%QoA{5O{@~(e8^wJzdv1VlDOEOrG08anp>{HWCU!piRB;g%G)hIRv z{_<3n`k>CSOFFa9GouYPBvETd6!294Mz)F!WSIlIkvK(`MZHz8Wb4LA%8qTA^6~tS z(a5bHMp^L|&lukrsZ_}=KKd7Ywu!d{ewzfg)6eDPxZ)kZThzS;S%O^}2ii6F(qlx0 z;Ekn#6E~AE;?8fUwyQiaPYHArjT#8QdRY58JbvmaF^uZc6D>N{SRcf%4INucyqs=3 z?1)NeM)S%D^c#EyHn|ux1-m9MjZ^FB={%n-m3H)<_3Y)->-iTyL1f)CSUN8tkph){ zc8py1b~IIymBfpi!5m}7F=s|n@W%p-&BLx*7oYMJI3&_8euHZFVnK5Rr3Acsrdb~M zSjcUsgkRf;S|SJYurUt7a#ijzZ#2z^JpeES?~nfStmkaoiVk?!6fE9TV&J{r+(p7( z%Ny8W7_^BZW@Oe`s>FPh?=JRW?O;nd-=7T*+-+R+lasl=wZ?G5#UjRs<= zH(}fK&w_0W)rMm3R)CNbetD>6V|D{;W_jyyX@pL)*DLoYzC}5iAI`dXgD%7O$UY{c zD3UUXfX+n;Fo*Ke=;f#pt5>z`4(xD!f6`RExqBh)rtQgZ)iMngNL!o5a1ks5JJ@5A zkZ?47bS^}UmXJMVvR0I}{P9_b7bzbw-#b8}zvM5U-6_Un|TA4o=B+d(N27AacIDsSE9oog5bLu zXtru78L_>`YhXp$!8nA|WivPfA-PoN*snmgO#>lC%r5TNVS4)-m$yRKOnLXw&Sys` zJHY-Z5oiz$5$bGjzQ`EU*{IQc$e(Llu5tI)QZOcEyz7}o@3d)zTU#&1YO;asB;%HV z67Q>ha_c2_&OfffY9$Zzioh6p3%Yt=EJ;b|7;tsw~XY2o;Ndas_X-1szSi0pY{{Vw@hw9RgKdzRvmzPPYVAK2}CjF%m{~D zby>4%S67eAOxVXqgWZnnM|ghoJ>bWi5vcjF^o16BGFqhEOX6}Vn>9@c!5EJUeuCh~ z1UE+V*-)?q!8B=wDOIu$Yq?J8kn~PJ&R)+}a=zRO{7amL35f;=i`Zz(^!Bzh z!Pz;U^0bDUYbwd8q-cTl(~G~KTYl+brQQzP*zvE}jUKGP6u44<9osm|KGIw1g#wre z+&Tw)eBH0D$s1hM)7i)=3Nbe-w#3I~0yjs!oB!2(y~FN|e8_hLe-9r*5sY_)OxTtm z0$f6;w!s!tIo472jpY^MfB+OxVm^8z8|5v@t91^U%8L)HoJZG1cW{#`N^AH-J3w5b z4L(kKFBCDy=w-?K+Y!P(XIy%`HLupUITvl%?wLa`zgvO-Z`>gLLOk?9Q>ch)x~axb ztx~P4LZNaDFg`%j!NQp^U!zxbT!XniO}VG=O)lBB&6v=Hd9sJGNLj1!>gAjQ&kg7q+(|IB!M~ z!_6H(8(3>~V_Hqbzy)wKiR7vaBhq)*AD0g{cr;h(gqic%6<3(E3A!!NIr~wZl}+`l zh3`4ptV^oWYW-3Wv_{|GtOUYWE-%^qcLxU$4q1rjsC|Zq8QF|%D11C#fhBtpy#Dy| Z|LG7jvMEGM*4}XIAD@5Q2Z&FUzXG*>^Nauh literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-04-03-blur.jpg b/metallo/src/assets/2014-04-03-blur.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4001a85461b2a822ab93f0f78a99c1eeab67e621 GIT binary patch literal 29088 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 NrMAtOaNjdsLN02R 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 F{{zkZiNOE> literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-04-03-cagradientlayer.jpg b/metallo/src/assets/2014-04-03-cagradientlayer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71ffbe3ba834d670c69ab00310628b14b1dd2a83 GIT binary patch literal 3686 zcmeHJ&ubGw6n<}KXOeC<=}b3~&;&{)dhcCG1S!^wA|4bkV&h4J7Zp4da`0fGs1)(< z$f;M0h)2(AFG8>4zp%bGnlAH=u!ubr^0J$}`SRwQ_rCeTL-|nt zgWQ#;n-8B8Q%ppc1o}xAFApEze?Y^1L0C~MRwk(v={xdn5iQ7XW0)V%3o>yW>)2>* z7L2^Lsxj4Cnk2O(No{&;Hf=20#YUQC&1RN$JDpBtyC{(Nit08xnS28IP7nP%U#56FsmgIK60jM4+ZPFU(NiJ1H|@rH@xS9*OumaKc=^PceHolJyxC_{h>$19grpg>IFpR+=$ccrunWQ7IB$X-q>>=!6- zj00j;Bb=MlU7{V#0aGZqac<%&!jc0U=l%4IkUeZ)&TX#1T!Fa)XI+6$Ydf3mzkl^- QR~Y;II&*Y|Ir6{$0^%PyMF0Q* literal 0 HcmV?d00001 diff --git a/metallo/src/assets/2014-04-03-gbs-icon.png b/metallo/src/assets/2014-04-03-gbs-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c40a9d6556ce9ce35973babd46e6d70068a537ab GIT binary patch literal 1852 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≷S6vdFh14b#&8F?AN)2v9-afQ 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 B(1!p3 literal 0 HcmV?d00001 diff --git a/metallo/src/css/griddy.css b/metallo/src/css/griddy.css new file mode 100644 index 00000000..682b1388 --- /dev/null +++ b/metallo/src/css/griddy.css @@ -0,0 +1,69 @@ +.row-12 { + margin-bottom: 20px; + margin-left: -10px; + margin-right: -10px; + zoom: 1; +@media screen and (max-width: 400px) { +} +} +.row-12:before, +.row-12:after { + content: ''; + display: table; +} +.row-12:after { + clear: both; +} +.row-12 .col-1 { + width: 8.333333333333334%; +} +.row-12 .col-2 { + width: 16.666666666666668%; +} +.row-12 .col-3 { + width: 25%; +} +.row-12 .col-4 { + width: 33.333333333333336%; +} +.row-12 .col-5 { + width: 41.666666666666664%; +} +.row-12 .col-6 { + width: 50%; +} +.row-12 .col-7 { + width: 58.333333333333336%; +} +.row-12 .col-8 { + width: 66.66666666666667%; +} +.row-12 .col-9 { + width: 75%; +} +.row-12 .col-10 { + width: 83.33333333333333%; +} +.row-12 .col-11 { + width: 91.66666666666667%; +} +.row-12 .col-12 { + width: 100%; +} +.row-12 .col-1, .row-12 .col-2, .row-12 .col-3, .row-12 .col-4, .row-12 .col-5, .row-12 .col-6, .row-12 .col-7, .row-12 .col-8, .row-12 .col-9, .row-12 .col-10, .row-12 .col-11 { + float: left; + padding: 0 10px; + box-sizing: border-box; + min-height: 1px; +} +@media screen and (max-width: 400px) { +.row-12 { + margin: 0; +} +.row-12 .col-1, .row-12 .col-2, .row-12 .col-3, .row-12 .col-4, .row-12 .col-5, .row-12 .col-6, .row-12 .col-7, .row-12 .col-8, .row-12 .col-9, .row-12 .col-10, .row-12 .col-11 { + float: none; + width: auto; + display: block; + margin-bottom: 20px; +} +} diff --git a/metallo/src/css/highlight-obsidian.css b/metallo/src/css/highlight-obsidian.css new file mode 100644 index 00000000..aecc630c --- /dev/null +++ b/metallo/src/css/highlight-obsidian.css @@ -0,0 +1,166 @@ +/** + * Taken from https://github.com/isagalaev/highlight.js/blob/master/src/styles/ + * + * Obsidian style + * ported by Alexander Marenin (http://github.com/ioncreature) + */ + +pre code, .hljs { + display: inline-block; + padding: 0.5em; + /* original obsidian */ + /*background: #282b2e;*/ + background: #404040; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.hljs-keyword, +.hljs-literal, +.hljs-change, +.hljs-winutils, +.hljs-flow, +.lisp .hljs-title, +.clojure .hljs-built_in, +.nginx .hljs-title, +.css .hljs-id, +.tex .hljs-special { + color: #93c763; +} + +.hljs-number { + color: #ffcd22; +} + +pre code, .hljs { + color: #e0e2e4; +} + +.css .hljs-tag, +.css .hljs-pseudo { + color: #d0d2b5; +} + +.hljs-attribute, +.hljs .hljs-constant { + color: #668bb0; +} + +.xml .hljs-attribute { + color: #b3b689; +} + +.xml .hljs-tag .hljs-value { + color: #e8e2b7; +} + +.hljs-code, +.hljs-class .hljs-title, +.hljs-header { + color: white; +} + +.hljs-class, +.hljs-hexcolor { + color: #93c763; +} + +.hljs-regexp { + color: #d39745; +} + +.hljs-at_rule, +.hljs-at_rule .hljs-keyword { + color: #a082bd; +} + +.hljs-doctype { + color: #557182; +} + +.hljs-link_url, +.hljs-tag, +.hljs-tag .hljs-title, +.hljs-bullet, +.hljs-subst, +.hljs-emphasis, +.haskell .hljs-type, +.hljs-preprocessor, +.hljs-pragma, +.ruby .hljs-class .hljs-parent, +.hljs-built_in, +.django .hljs-template_tag, +.django .hljs-variable, +.smalltalk .hljs-class, +.hljs-javadoc, +.django .hljs-filter .hljs-argument, +.smalltalk .hljs-localvars, +.smalltalk .hljs-array, +.hljs-attr_selector, +.hljs-pseudo, +.hljs-addition, +.hljs-stream, +.hljs-envvar, +.apache .hljs-tag, +.apache .hljs-cbracket, +.tex .hljs-command, +.hljs-prompt { + color: #8cbbad; +} + +.hljs-string { + color: #ec7600; +} + +.hljs-comment, +.java .hljs-annotation, +.hljs-blockquote, +.hljs-horizontal_rule, +.python .hljs-decorator, +.hljs-template_comment, +.hljs-pi, +.hljs-deletion, +.hljs-shebang, +.apache .hljs-sqbracket, +.tex .hljs-formula { + color: #818e96; +} + +.hljs-keyword, +.hljs-literal, +.css .hljs-id, +.hljs-phpdoc, +.hljs-title, +.hljs-header, +.haskell .hljs-type, +.vbscript .hljs-built_in, +.rsl .hljs-built_in, +.smalltalk .hljs-class, +.diff .hljs-header, +.hljs-chunk, +.hljs-winutils, +.bash .hljs-variable, +.apache .hljs-tag, +.tex .hljs-special, +.hljs-request, +.hljs-at_rule .hljs-keyword, +.hljs-status { + font-weight: bold; +} + +.coffeescript .javascript, +.javascript .xml, +.tex .hljs-formula, +.xml .javascript, +.xml .vbscript, +.xml .css, +.xml .hljs-cdata { + opacity: 0.5; +} + +pre code:not(.hljs) [class^='hljs'], +pre code:not(.hljs) [class*="hljs"] { + color: #e0e2e4; +} \ No newline at end of file diff --git a/metallo/src/css/style.css b/metallo/src/css/style.css new file mode 100644 index 00000000..1a81323c --- /dev/null +++ b/metallo/src/css/style.css @@ -0,0 +1,98 @@ +@import url(http://fonts.googleapis.com/css?family=Open+Sans:300italic,400,600); +body { + font-family: "Open Sans", sans-serif; + color: #303030; } + +a { + text-decoration: none; + color: #27ae60; } + a:hover { + color: #16a085; } + +h3 { + font-size: 1.3em; } + +.page { + max-width: 700px; + padding: 0 8px; + margin: auto; } + +.header { + text-align: center; + margin-bottom: 82px; + padding-bottom: 8px; + border-bottom: 1px solid #ecf0f1; } + .header h1.brand { + font-size: 50px; + margin-bottom: 2px; } + .header .punchline { + color: #838383; + font-style: italic; } + +.footer { + margin: 64px 0 20px; + text-align: right; } + +.post-container { + text-align: justify; } + .post-container h2, .post-container h3 { + text-align: left; } + .post-container h2.post-title { + margin-bottom: 5px; } + .post-container h2:not(.post-title) { + padding: 1.666em 0 0; } + .post-container h3 { + padding: 1.444em 0 0; } + .post-container p.post-meta { + margin-top: 0; + margin-bottom: 42px; + font-size: 0.8em; } + .post-container p.post-meta span.post-date { + color: #838383; } + .post-container p.post-meta a.post-tag { + display: inline-block; + margin-left: 6px; } + .post-container p { + margin: 1.5em 0; + line-height: 1.5em; } + .post-container img { + max-width: 90%; + display: block; + margin: auto; } + .post-container blockquote { + color: #838383; } + .post-container blockquote p { + margin: 0.8em 0; + font-style: italic; } + .post-container hr { + margin: 24px 0; + border-top: 1px solid #dddddd; + border-right: none; + border-left: none; + border-bottom: none; } + .post-container pre code { + display: block; + overflow-x: scroll; + padding: 16px 10px; } + .post-container .highlight { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + margin: 24px 0; } + +.primary-color { + color: #27ae60; } + +.post-container.tag { + margin-bottom: 52px; } + .post-container.tag .post-meta { + margin-bottom: 20px; } + .post-container.tag .post-description { + margin-top: 20px; } + +.bottom-box { + border-top: 1px solid #ecf0f1; + padding-top: 26px; + margin-bottom: 26px; } + .bottom-box p { + margin: 0; } \ No newline at end of file diff --git a/metallo/src/css/syntax-native.css b/metallo/src/css/syntax-native.css new file mode 100644 index 00000000..478532b3 --- /dev/null +++ b/metallo/src/css/syntax-native.css @@ -0,0 +1,72 @@ +/* + * Taken from https://github.com/richleland/pygments-css + */ +.highlight { background-color: #404040; color: #d0d0d0 } +.highlight .c { color: #999999; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .g { color: #d0d0d0 } /* Generic */ +.highlight .k { color: #6ab825; font-weight: bold } /* Keyword */ +.highlight .l { color: #d0d0d0 } /* Literal */ +.highlight .n { color: #d0d0d0 } /* Name */ +.highlight .o { color: #d0d0d0 } /* Operator */ +.highlight .x { color: #d0d0d0 } /* Other */ +.highlight .p { color: #d0d0d0 } /* Punctuation */ +.highlight .cm { color: #999999; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999999; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +.highlight .gd { color: #d22323 } /* Generic.Deleted */ +.highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #d22323 } /* Generic.Error */ +.highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #589819 } /* Generic.Inserted */ +.highlight .go { color: #cccccc } /* Generic.Output */ +.highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +.highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +.highlight .gt { color: #d22323 } /* Generic.Traceback */ +.highlight .kc { color: #6ab825; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #6ab825; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #6ab825; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #6ab825 } /* Keyword.Pseudo */ +.highlight .kr { color: #6ab825; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #6ab825; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #d0d0d0 } /* Literal.Date */ +.highlight .m { color: #3677a9 } /* Literal.Number */ +.highlight .s { color: #ed9d13 } /* Literal.String */ +.highlight .na { color: #bbbbbb } /* Name.Attribute */ +.highlight .nb { color: #24909d } /* Name.Builtin */ +.highlight .nc { color: #447fcf; text-decoration: underline } /* Name.Class */ +.highlight .no { color: #40ffff } /* Name.Constant */ +.highlight .nd { color: #ffa500 } /* Name.Decorator */ +.highlight .ni { color: #d0d0d0 } /* Name.Entity */ +.highlight .ne { color: #bbbbbb } /* Name.Exception */ +.highlight .nf { color: #447fcf } /* Name.Function */ +.highlight .nl { color: #d0d0d0 } /* Name.Label */ +.highlight .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */ +.highlight .nx { color: #d0d0d0 } /* Name.Other */ +.highlight .py { color: #d0d0d0 } /* Name.Property */ +.highlight .nt { color: #6ab825; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #40ffff } /* Name.Variable */ +.highlight .ow { color: #6ab825; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #666666 } /* Text.Whitespace */ +.highlight .mf { color: #3677a9 } /* Literal.Number.Float */ +.highlight .mh { color: #3677a9 } /* Literal.Number.Hex */ +.highlight .mi { color: #3677a9 } /* Literal.Number.Integer */ +.highlight .mo { color: #3677a9 } /* Literal.Number.Oct */ +.highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +.highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +.highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +.highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +.highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +.highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +.highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +.highlight .sx { color: #ffa500 } /* Literal.String.Other */ +.highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +.highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +.highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +.highlight .bp { color: #24909d } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #40ffff } /* Name.Variable.Class */ +.highlight .vg { color: #40ffff } /* Name.Variable.Global */ +.highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +.highlight .il { color: #3677a9 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/metallo/src/index.md b/metallo/src/index.md new file mode 100644 index 00000000..a86fadeb --- /dev/null +++ b/metallo/src/index.md @@ -0,0 +1,6 @@ +--- +template: index.jade +page_title: Hello World +--- + +Lorem ipsum... diff --git a/metallo/src/posts/2013-01-05-cocoapods.md b/metallo/src/posts/2013-01-05-cocoapods.md new file mode 100644 index 00000000..fd5d2afe --- /dev/null +++ b/metallo/src/posts/2013-01-05-cocoapods.md @@ -0,0 +1,107 @@ +--- +date: 2013-01-05 +title: CocoaPods! +tags: +- CocoaPods +- git +- iOS +- Objective-C +--- + +