Skip to content
This repository has been archived by the owner on Jan 5, 2025. It is now read-only.

Commit

Permalink
Some style adjustments
Browse files Browse the repository at this point in the history
  • Loading branch information
pepicrft committed Dec 17, 2023
1 parent 718963f commit be94dfd
Show file tree
Hide file tree
Showing 229 changed files with 246 additions and 242 deletions.
4 changes: 2 additions & 2 deletions lib/pepicrft/blog.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ defmodule Pepicrft.Blog do
highlighters: []

@posts Enum.sort_by(@posts, & &1.date, {:desc, Date})
@categories @posts |> Enum.flat_map(& &1.categories) |> Enum.uniq() |> Enum.sort()
@categories @posts |> Enum.flat_map(& &1.tags) |> Enum.uniq() |> Enum.sort()

Check warning on line 13 in lib/pepicrft/blog.ex

View workflow job for this annotation

GitHub Actions / Test

module attribute @categories was set but never used

@doc """
The function returns all the Pepicrft.Blog.Post posts.
Expand All @@ -20,5 +20,5 @@ defmodule Pepicrft.Blog do
@doc """
The function returns all the categories.
"""
def all_categories, do: @categories
def all_tags, do: @tags

Check warning on line 23 in lib/pepicrft/blog.ex

View workflow job for this annotation

GitHub Actions / Test

undefined module attribute @tags, please remove access to @tags or explicitly set it before access
end
8 changes: 4 additions & 4 deletions lib/pepicrft/blog/post.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ defmodule Pepicrft.Blog.Post do
:title,
:description,
:date,
:categories,
:tags,
:body,
:og_image_slug,
:og_image_path
Expand All @@ -21,7 +21,7 @@ defmodule Pepicrft.Blog.Post do
:title,
:description,
:date,
:categories,
:tags,
:body,
:og_image_slug,
:og_image_path
Expand All @@ -34,7 +34,7 @@ defmodule Pepicrft.Blog.Post do
"""
@type attributes :: any
@spec build(String.t(), attributes, String.t()) :: %Pepicrft.Blog.Post{}
def build(path, %{"title" => title, "categories" => categories} = frontmatter, body) do
def build(path, %{"title" => title, "tags" => tags} = frontmatter, body) do
filename_without_extension = path |> Path.rootname() |> Path.split() |> Enum.take(-1) |> hd
[year, month, day] = filename_without_extension |> String.split("-") |> Enum.take(3)
date = Date.from_iso8601!("#{year}-#{month}-#{day}")
Expand All @@ -58,7 +58,7 @@ defmodule Pepicrft.Blog.Post do
title: title,
date: date,
body: body,
categories: categories,
tags: tags,
description: description,
og_image_slug: og_image_slug,
og_image_path: og_image_path
Expand Down
2 changes: 1 addition & 1 deletion lib/pepicrft_web/controllers/blog_html/show.html.heex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<h1><%= @post.title %></h1>
<div class="pp-Post_Tags">
<%= @post.categories |> Enum.map(fn string -> String.capitalize(string) end) |> Enum.join(", ") %>
Tags: <%= @post.tags |> Enum.map(fn string -> String.capitalize(string) end) |> Enum.join(", ") %>
</div>
<%= raw @post.body %>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Setup your iOS Projects for testing
description: 'Learn how to setup your iOS for testing using the most popular testing libraries and how to integrate your project tests in the development flow.'
categories: [specta, kiwi, tdd, unittests, cocoapods]
tags: [specta, kiwi, tdd, unittests, cocoapods]
---

In other programming communities, like the Ruby one, developers are more aware of testing new components. Ensuring every component is tested **is not common** within the mobile appcommunity.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2014-10-29-leaving-redbooth.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Leaving Redbooth
description: 'I took de decision to leave Redbooth and join to a new adventure. I explain here the reasons, everything I learned from there and my expectations for 8fit'
categories: ['redbooth', 'ios', '8fit']
tags: ['redbooth', 'ios', '8fit']
---

It's difficult for me to talk about this and it was a few days ago when I had to tell my workmates about my decission, leaving Redbooth. I started with that startup from Barcelona when I haven't finished my bachelor yet. They gave me the opportunity to work remotely and I did my best. I help firstly the iOS team when the company's name was aready Teambox. Then I learnt a **bit of Android** when thought that I was able to help them and I thought why not?
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Github as your project management tool
description: Github is a powerful Git platform commonly used between the developers community. It offers features like issues, labels, milestones, releases, that used properly might help you to manage not only your technical repos but different aspects around your project like design, ideas, ...
categories: [github, scrum, issues, zenhub, management, project]
tags: [github, scrum, issues, zenhub, management, project]
---

Github is a well known Git solution between all developers around the world. It helps you to manage your Git repositories remotely and offers extra features to complement the Git core and make you more productive. These extra features are for example Issues, Pull Requests, Labels, Milestones, Releases... We know about about them becase we use Github daily but we're totally conscious of how productive we can be using these components properly.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'VIPER, Looking for the perfect architecture'
description: 'Talk I gave in the Redbooth HQ office for NSBarcelona with the iOS team talking about the VIPER architecture'
categories: [redbooth, ios, 8fit]
tags: [redbooth, ios, 8fit]
---

The past thursday I gave a talk at Redbooth Office with the iOS team about an architecture we had been working with during the past months. We didn't use any architecture until then and the code was too coupled and messy that it was hard to review, debug, detect bugs, ...
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2014-11-23-codemotion-experience.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Codemotion experience'
description: 'After two days of Codemotion I would like to share my experience in my first time in a developers event like that one'
categories: ['codemotion', 'viper']
tags: ['codemotion', 'viper']
---

It was the first time I attended a developers event of that magnitude and I did it as _a speaker_. It was a challenge for me because I had given the same talk in my previous job office but not in a national event like Codemotion is. More than 1500 developers sharing their knowledge, their skills, tools, ... and I was there to talk about the architecture VIPER we had been working with in Redbooth during the past months before leaving (I keep using it in my new job).
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2014-12-08-swift-and-objc-playing-together.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Swift and Objective-C playing together'
description: 'Start using Swift in your Objective-C projects. Avoid some headaches with these useful tips and advices for the communication layer between your Objective-C code base and your future Swift implementations'
categories: [swift, objective-c, integration, cocoapods]
tags: [swift, objective-c, integration, cocoapods]
---

Since Swift was released, a lot of developers have been wondering about the Swift integration in their projects. If we take a look to the Apple documentation it seems that the integration is possible, the language was designed for having that kind of copmatibility instead. However the majority of them haven't taken the decission of start using it, sometimes for fear of breaking something on the current code base, or probably for not having enough time to learn it.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Boosting your mobile app with Javascript and some mobile knowledge'
description: 'Learn how useful might be giving some steps on mobile (Android/iOS) launching mobile solutions with web knowledge and with the same mobile native experience as any other app'
categories: [backbone, mobile, angular, webapp, bridge]
tags: [backbone, mobile, angular, webapp, bridge]
---

When the 8fit team started giving their first steps they decided that the product was going to be a web app with some kind of native integrations. It was something with a lot of sense if we think that the founders of the company feel very comfortable with the language and with web in general. Might we have a great mobile experience using web technologies?
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-01-28-modularize-your-mobile-apps.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Modularize your mobile projects
description: 'Learn how to split your app components in different bundles instead of dealing with an unique bundle that packages the whole app'
categories: [target, module, android studio, scheme, xcconfig, xcode]
tags: [target, module, android studio, scheme, xcconfig, xcode]
---

When we start building mobile apps we tend to do everything on the same bundle. If you are an iOS developer that means only one target, with one scheme with the build config and that project has some dependencies that might be attached as frameworks, static libraries, or using a dependency manager like CocoaPods. If you are familiar with Android you probably use a module with some dependencies managed by Gradle.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Full control in your hybrid mobile apps with a local server, 8fit
description: 'Custom solution to have full control over your hybrid apps bundling the content locally and controlling updates'
categories: [gcdwebserver, nanohttpd, ionic]
tags: [gcdwebserver, nanohttpd, ionic]
---

Since 8fit was developed we’ve been using the webview application cache to send new updates to the users. It allowed us to update without releasing new apps (something slow if you think about the Apple review process). Although it’s something good, it has also some cons, it’s a bit difficult to setup everything properly, specially the server config to ensure the webview doesn’t cache the files that shouldn’t be cached. Moreover the control over the update process is very low and it increases the boot times because sometimes it has to get the resources remotely when it doesn’t actually need them.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-06-07-my-first-apple-watch-impressions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: My first Apple Watch impressions
description: After a day using Apple Watch I would like to share my impressions with the new Apple toy and why I wouldn’t buy the first version
categories: [apple watch, watch, apple, glance, apps]
tags: [apple watch, watch, apple, glance, apps]
---

We’ve finally received the 8fit Apple Watch. We worked on 8fit on an Apple Watch App one month ago and since then we hadn’t had access to a real device. Only a few users had shown us our app working there but that’s all. The first thing did today after the unboxing was installing 8fit. I was a bit worried because since we released the first app version we haven’t released any new update. Was it working? Had it something broken? Could I send messages to the coach?
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-06-11-you-should-try-open-sourcing.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Why Open Source helps you to become a better developer
description: "Most of developers haven't tried creating an Open Source component before. Since I apply it to every of my projects I feel the results and development process has improved a lot. In this article I will describe why it's so important"
categories: [opensource, carthage, cocoapods]
tags: [opensource, carthage, cocoapods]
---

For those who are not conscious about that, Open Source is the reason of the existence of many development communities. Would you imagine nowadays the iOS/OSX development without CocoaPods? And what about Ruby without its Gems? A lot of developers around the world put their efforts to simplify your daily stuff publishing their work in an Open Source way through these dependency managers (for them because otherwise it would be impossible to resolve many dependencies conflicts of our projects). Open Source a project doesn't mean just `git push origin` of your projects and making them public. It has some extra implications that will help you as a developer and with your future projects. Have you ever done it before? Would you like to know how it helped to me? Let's see.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Paginated API requests using Functional Reactive in Swift
description: "Reactive is magic, transform your API responses into streams of data and you'll se how easy is to build for example paginated API requests"
categories: [reactive, objective-c, swift, reactive cocoa]
tags: [reactive, objective-c, swift, reactive cocoa]
---

I’ve been playing the days with Reactive Cocoa. I fell in love with that programming paradigm. I had heard about it before but hadn’t stopped to play a little bit with it.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: 'Programación Reactiva en Swift: Parte 1, Introducción'
categories: [reactive, objective-c, swift, reactive cocoa]
tags: [reactive, objective-c, swift, reactive cocoa]
---

Con la llegada de Swift y la introducción de interesantes operadores, conceptos funcionales, y la seguridad de tipos el paradigma de programación reactiva ha cobrado especial importancia en el desarrollo de apps. En comparación con la programación imperativa a la que la mayoría de desarrolladores estamos acostumbrados _(yo incluido)_ programar de forma reactiva consiste en modelar los sucesos que tienen lugar en el sistema como un conjunto de _eventos_ que son enviados a través de un “stream” de datos. El concepto es bastante sencillo, y aunque no todos los sucesos tienen carácter de _stream_, pueden acabar siendo modelados como tal. Desde acciones que realiza el usuario sobre la UI, hasta la información que proviene del framework de localización.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Implementing a Mutable Collection Property for ReactiveCocoa
description: 'These are the steps I followed to create a Mutable Collection Property for ReactiveCocoa. Very useful if you want to get events about changes produced in a collection'
categories: [reactivecocoa, reactive, cocoa, stream, signals]
tags: [reactivecocoa, reactive, cocoa, stream, signals]
---

I've been recently playing a lot with Reactive, especially ReactiveCocoa. Since they launched the version for Swift I can say I'm like a baby using it in my project. There's something in particular which I use a lot in a MVVM pattern which are properties.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-10-27-functional-is-about-functions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: Functional is about functions (Swift)
description: 'Quick introduction to what Functional Programming in Swift is from the simple perspective of functions'
categories: [functional, functions, programming, reactive, swift]
tags: [functional, functions, programming, reactive, swift]
---

Since Swift 2.0 was launched this term has become very popular. You attend conferences and this is usually the topic most of the people talk about. You see people even struggling for its use in their apps, really overwhelming for it. Why? It’s **something that can be easily done with Swift but it’s not something new** _(a lot of languages where already offering fully functional paradigms before)_
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-12-21-rewriting-sugar-record.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Rewriting SugarRecord, 2.0'
description: 'I explain in this post how was the process of rewriting SugarRecord, a CoreData/Realm wrapper for Swift.'
categories: [sugarrecord, realm, coredata]
tags: [sugarrecord, realm, coredata]
---

[SugarRecord](https://github.com/swiftreactive/sugarrecord) is one of the libraries I'm most proud of. It has currently 1.155 favs and 98 forks on Github and a couple of issues opened. I wrote this library when the first version of Swift was released since I wanted to learn the language and I thought that writing a library could be a great idea for learning.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2015-12-29-install-last-carthage-ci.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Install the last Carthage version on CI services (Travis, Circle, ...)'
description: 'Very simple script to keep your Carthage version updated without depending on Brew.'
categories: [carthage, travis, ci]
tags: [carthage, travis, ci]
---

I've lately been working with multiple libraries and integrating them with CI, in particular Travis-CI because these libraries are Open Source. These libraries have dependencies that are resolved and built using [Carthage](https://github.com/carthage) which is distributed through Github Releases and [Brew](http://brew.sh). However, the version in brew does not always match the last version available on Github Releases and your CI providers don't offer the last version either. **What can you do then?**. Get the last version from Github and install it with a very simple script, _how?_:
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2016-01-14-states-the-source-of-truth.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'States - The source of truth'
description: 'Overview of states in iOS apps, how we tipically handle them, current challenges with states and how to overcome them'
categories: [tvos, popcorn time, torrent]
tags: [tvos, popcorn time, torrent]
---

I have been these days thinking about how we do manage states in our iOS apps. States are a source of information but also the source of bugs, why? Because we spread states across multiple components, duplicate them, and we forget about considering derived states. Our app shows off unexpected behaviors, and we struggle to find the reason. The user credentials are persisted in the _Keychain_, so we know whether the user is logged in or not, but our _ApiClient_ also contains that information. Which one should I trust? Are you sure both are synchronizing when any of them changes? I’m sure you miss some. States are a common source of bugs in our apps. There are no silver bullets to solve this problem but multiple approaches out there, programming paradigms, patterns and tricks that can help you with the state simplification.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2016-02-07-xcode-scripts-that-rule-them-all.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Xcode scripts to rule them all'
description: 'Set of normalized scripts very useful for Xcode projects. Individual contributors will be familiar with them after they clone the project.'
categories: [setup, xcode, script]
tags: [setup, xcode, script]
---

![Scripts](/images/posts/scripts-rule-them-all.png)
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2016-02-28-marcheta-en-la-vida.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Marcheta en la vida'
description: 'Mi experiencia de haber salido a vivir fuera de España y las lecciones aprendidas'
categories: [vida, marcheta, berlin]
tags: [vida, marcheta, berlin]
---

Volando de vuelta a Berlin, ha sido un fin de semana reconfortante con familia y amigos, de esos que te sirven para cargar las basterías. Llevaba tiempo queriendo escribir sobre la experiencia que ha supuesto salir del país, y lo que ha sido para mí el casi un año que llevo viviendo en Berlín. Era difícil elegir el título para esta entrada, en la que a priori no se ni lo que voy a acabar contando, pero finalmente me vino _marcheta_ a la mente. Aquellos que me conocen, conocen muy bien lo que marcheta significa para mi. Desafortunadamente no se encuentra en el diccionario y lo más parecido es **marchar** _(ni qué decir de explicar fuera de España lo que es marcheta)_. Marchar significa seguir hacia adelante, puedes marchar en una carrera, y también puedes hacerlo en la vida. También puedes hacerlo de casa, o marchar de fiesta. De marcha, marcheta, y de marchares este último año, un año de marchetas.
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2016-03-23-automating-review-tasks.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Automating iOS review tasks with Danger'
description: 'Post that explains how to automate review tasks with the help of the tool Danger'
categories: [review, danger, pr, github]
tags: [review, danger, pr, github]
---

This week I've been working automating some review tasks at SoundCloud with a tool called [Danger](https://github.com/danger/danger) from [@orta](https://github.com/orta/) and [@krausefx](https://github.com/KrauseFx). We had some linting tasks in CI that analyzed the code and stopped the whole build process notifying the affected developers about something not matching the project specs. Developers had to go into Jenkins (in our case), check out the build log, fix what was failing, commit and push the changes restarting the pipeline execution. **What if we could report all that handy information and check results directly to GitHub?** That's exactly what Danger tool does. I first heard about it reading this very interesting article from Orta title ["Being a Better Programmer When You're Actually Lazy"](http://artsy.github.io/blog/2016/03/02/Lazily-Automation/). Just summarizing what Danger does:
Expand Down
2 changes: 1 addition & 1 deletion priv/posts/2016-05-23-danger-and-boyscout-rule.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Boy Scouts rule with Danger'
description: 'Post where I explain how Danger helped us at SoundCloud to apply the programming Boy Scouts rule to our workflow'
categories: [danger, github, soundcloud]
tags: [danger, github, soundcloud]
---

![Boy Scouts](/images/posts/boyscouts.jpg)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: 'Being disconnected in a connected world'
description: 'In a world where social networks are moving relationships to the Internet people is becoming more disconnected.'
categories: [danger, social networks, facebook]
tags: [danger, social networks, facebook]
---

We live in a connected world. We all are connected with our mobile phones, computers, social accounts. We spend our time tweeting, posting the photos of our last trip on Facebook, or recording Snapchats to let everyone know what we are doing right now. I watched this TED talk, [**Connected but alone?**](https://www.ted.com/talks/sherry_turkle_alone_together?language=en) while I was having a coffee and it made me think about the way people interact nowadays. How this has changed compared to a few years ago and what does it mean for us, and for the future generations.
Expand Down
Loading

0 comments on commit be94dfd

Please sign in to comment.