Note: this article is an answer to a previous one, about the same topic: a tool for a faster site generation while developing / writing articles, using octopress 2.
Introduction
Octopress 2 packs, out of the box, some tasks to speed up the site generation while you’re writing articles:
Isolate a post:
# usage rake isolate[my-post]
desc "Move all other posts than the one currently being worked on to a temporary stash location (stash) so regenerating the site happens much more quickly."
task :isolate, :filename do |t, args|
stash_dir = "#{source_dir}/#{stash_dir}"
FileUtils.mkdir(stash_dir) unless File.exist?(stash_dir)
Dir.glob("#{source_dir}/#{posts_dir}/*.*") do |post|
system "git update-index --assume-unchanged #{post}" unless post.include?(args.filename)
FileUtils.mv post, stash_dir unless post.include?(args.filename)
end
end
Integrate with the rest of the posts:
desc "Move all stashed posts back into the posts directory, ready for site generation."
task :integrate do
posts_dir = "#{source_dir}/#{posts_dir}/"
Dir.glob("#{source_dir}/#{stash_dir}/*.*") do |post|
FileUtils.mv post, posts_dir
full_path = "#{posts_dir}/#{post.split("/").reverse.first}"
system "git update-index --no-assume-unchanged #{full_path}"
end
end
Usage
(at the folder where the Rakefile is located)
- isolate the selected file. Specify the pattern to keep.
- write the new content
- commit to git
- integrate with the rest of the files
Conclusion
When I needed this tool, to speed up my feedback cycle, I didn’t find any that did this job, so I created a small tool for this same purpose. Unfortunately, there was one, so close to my nose that I could not find it. I was reinventing the wheel.
It is better to switch to a tool that has been tested by more users, that has received the community’s approval than a custom-made tool.
Deliberate Practice: What It Is and Why You Need It
I’ve read this article by Corbett Barr on what is deliberate practice and why it is needed to become an expert in a given domain field.
The four essential components:
- Motivation
- Tailored (practice)
- Feedback
- Repetion
Tags: corbett-barr, deliberate-practice, expert, practice, anders-ericsson, talent, professional-development, career
10 Features I Wish Java Would Steal From the Kotlin Language
I’ve read this list of features that the Kotlin Language has that would be an improvement for the Java language. By Lukas Eder
Tags: list, lukas-eder, kotlin, java, comparison, language, jooq
How we built Uber engineering’s highest query per second service using Go
I’ve read this post by Kai Wei on a microservice they’ve built using Go.
Explains the reasons for choosing that algorithm for geofencing, the performance they’re achieving, and the architecture.
Tags: uber, go, microservice, performance, geofence, geofencing, rps, go-memory-model, kai-wei
Unwinding Uber’s Most Efficient Service
I’ve read this article by Buck Heroux commenting on the decisions of Uber for building the geofencing microservice (above read).
Explains the different alternatives for algorithms in this problem space and has implemented them in go. Provides a benchmark for comparing those, including a profiling session.
Tags: s2, quadtree, rtree, brute-force, geofence, geofencing, uber, comment, buck-heroux, go, read-on-read, meta-read
Lawful Hacking and Continuing Vulnerabilities
I’ve read this article by Bruce Schneier on the stance the FBI is taking in regards to vulnerabilities discovered in Apple’s devices.
Tags: bruce-schneier, apple, security, fbi, vulnerability, exploit, law, hacking
A Side Project Helped Jumpstart My Career — Life Learning
I’ve read this article by Dave Gerhardt on how making a side project happen affected his life and his skills.
Some of the reasons for doing it include:
- It forces you to figure stuff out
- The only way to learn is by doing
- It gets your brain working on something other than your job
- You have to create your own network
- You are the CEO
Tags: long-life-learning, continuous-learning, side-project, dave-gerhardt, drift, professional-development, personal-development, business, career
Fun Jekyll Tricks
I’ve read this article by Brian Knapp where he explains some tips and tricks of jekyll (in which octopress is based on): speed, deployment, subcategories inside the blog, _data, _includes.
Tags: brian-knapp, jekyll, octopress, tip-and-trick, improvement, subcategory, meta, automation, deployment
La ola que llega
I’ve read this bonilista by David Bonilla, where he explains (in Spanish) the ‘contractor’ phenomenon arriving to Spain, 2-3 years after being in other countries and the effects that this could have both for workers and companies.
Tags: bonilista, david-bonilla, contractor
10 razones por las que este sábado deberías ir a un code retreat
I’ve read this list of reasons for attending a code retreat, by Francho Joven, who I met in the Global Day Of Code Retreat (GDCR) ‘15 in Zaragoza
Tags: francho-joven, list, zaragoza, code-retreat, gdcr
Meaningful Work through Passion, not Genius
I’ve watched this talk on the importance of hard work and how it can be mistaken as genious. By Malcolm Gladwell
Tags: malcolm-gladwell, passion, genius, work, time-management, productivity, career, mastery-autonomy-purpose
How to ask your wife for permission to spend $250,000 on a domain name
I’ve read this article by Jon Yau on how they started StockPhoto.com, buying a $250,000 domain name.
Tags: startup, domain, stockphoto, jon-yau
Sorry, developer bootcamps: I was wrong
I’ve read this article by Dillon Forrest on the topic of developer bootcamps. Explains why developers should not be threatened by recent graduates of these programs and describes how people pursuing these programs usually are:
- Intelligence
- Risk appetite
- Resilience
- Self-investment
- Entrepreneurship
- Growth trajectory
Tags: bootcamp, developer-bootcamp, dev-bootcamp, dillon-forrest, intelligence, risk-appetite, resilience, self-investment, entrepreneurship, growth-trajectory
The JVM and Java Garbage Collection
I’ve watched this webcast about how the JVM garbage collection works. By Michael W Williams
Tags: michael-williams, oracle, webcast, jvm, garbage-collection, gc,
Files Are Hard
I’ve read this article on why software that writes on files is difficult, based on the different filesystems that are below, and the operating system. Written by Dan Luu.
Uses software product to find bugs in filesystems
Tags: filesystem, file, dan-luu, analysis
Contrata a un fracasado con ilusión inquebrantable
I’ve read this article by Alberto Mena (in Spanish) on what are the qualities that define a good programmer:
- humility
- failure
- illusion
- hard work
Tags: alberto-mena, spanish, team-management, success, developer, quality, developer-quality
Don’t react
I’ve read this article by Avdi Grimm on how the action vs reaction attitude. Why to prefer the former.
Tags: action, reaction, social-media, avdi-grimm, productivity
FTP is so 90’s. Let’s deploy via Git instead!
I’ve read this guide on how to deploy using git. By Kerrick Long
Tags: kerrick-long, git, deployment, webapp, application, devops
Job vs Career: 10 Key Differences You Need To Understand
I’ve read the infographic and the article by Jacob Shriar on what differentiates a job from a career
Tags: jacob-shriar, infographic, job-vs-career, comparison, job, career
The Secret To Employee Motivation
I’ve read the infographic and the article by Jacob Shriar on what motivates employess: mastery, autonomy and purpose. A direct reference to Dan Pink’s “The puzzle of motivation” TED talk.
Tags: jacob-shriar, motivation, employee, infographic, mastery, autonomy, purpose
The puzzle of motivation
I’ve watched this TED talk by Dan Pink on what motivates us: intrinsic vs extrinsic motivation.
Also about the gap that exists between what science knows and what businesses propose.
Tags: ted, ted-talk, video, dan-pink, mastery, autonomy, purpose
Applying a ceiling to the bug count
I’ve read this interview, written by Susanna Berg, on how King has reduced the amount of bugs in their backlog using an agile technique, measuring and setting a limit.
Tags: susanna-berg, king, agile, bug, bug-count, defect, defect-count, per-malmen
Coming up in 2016: Spring Framework 4.3 & 5.0
I’ve read this announcement of Spring’s new release, 5.0, which will require java 8 and will turn most of the features into the reactive programming paradigm. By Juergen Hoeller.
Tags: juergen-hoeller, spring, reactive-programming, release, announcement
Why offices are where work goes to die
I’ve read this article by Swizec Teller explaining the downsides of working in an office as compared to working remotely.
Tags: swizec-teller, remote, home-office, office, comparison, time-management
The Myth of the Passionate Developer
I’ve read this article by Michael Ibarra on what are the implications of being a passionate developer, how it affects your tasks and what are the factors to a job.
Tags: michael-ibarra, passion, development, job, motivation, myth
Mossack Fonseca Breach – WordPress Revolution Slider Plugin Possible Cause
I’ve read this article by Mark Maunder, which describes an hypothesis on how the Mossack Fonseca breach could have happened. Also describes and shows how to breach a Wordpress installation with a vulnerable Revolution Slider plugin.
Tags: mark-maunder, security, breach, mossack-fonseca-breach, mossack-fonseca, hypothesis, attack, plugin, revolution-slider, wordpress
Tim Urban: Inside the mind of a master procrastinator
I’ve watched this TED talk from Tim Urban on how the procrastinator’s mind works, exemplified by his own career.
Tags: procrastinator, procrastination, mind, time-management, tim-urban
PEP 20 – The Zen of Python
I’ve read the PEP20, the zen of python, with special attention to this:
Explicit is better than implicit.
Tags: pep-20, pep, python, zen
Why I switched from Octopress 2 to Hugo
I’ve read this article by Franklin Chen on the change he made on the static site generator (SSG) he used. He considered hakyll, octopress, jekyll, hugo. Was decided between hakyll and hugo for their speed but, finally, decided to use hugo for their bigger community.
Tags: franklin-chen, comparison, ssg, static-site-generator, hakyll, octopress, jekyll, hugo, change, speed, statically-typed, dynamically-typed, golang, performance
Why incremental regeneration in Jekyll 3.0 is such a big deal
I’ve read this article by Tom Johnson on one of the new features that jekyll 3.0 brings: incremental generation. How this can speed up the generation
Tags: tom-johnson, incremental-generation, speed, performance, octopress-2, octopress-3, jekyll-3
Hugo, S3, Travis CI, oh boy!
I’ve read this guide by Alan Scherger on how to set up a specific stack for developing and deploying a static site blog.
Tags: alan-scherger, static-site-generator, ssg, travis, hugo, s3
Deploy your blog to github pages automatically using Hugo and Travis
I’ve read this article by Roman Coedo on how to deploy a hugo blog to github pages, using travis.
Tags: roman-coedo, travis, hugo, github, github-pages, ssg, static-site-generator
Improve Octopress with Advanced Tweaks & Tips
I’ve read this list of tips on how to improve the octopress (2) installation. By Nguyễn Đình Quân.
Tags: nguyen-dinh-quan, octopress-2, tip, tweak
Laboratorios
I’ve read this article by Ángel Medinilla, about laboratories to use a percentage of company time to investigate, innovate, learn and improve.
Tags: angel-medinilla, team-management, time-management, innovation, strategy, improvement, kaizen, laboratory, craftsmanship, spanish
What Refactoring is, and what it isn’t
I’ve read this article by Jim Bird, where he splits some practices into refactoring and not refactoring. Draws the line between these two different activities.
Also cites scratch refactoring.
Tags: jim-bird, scratch-refactoring, refactoring, martin-fowler, kent-beck, definition, quote, design
Pitfalls of Unlimited Vacations
I’ve read this article by Phil Haack on the github, travis and netflix policies about unlimited vacations and the effects they have on the employees.
Also about minimum vacation periods, (paternity) paid leave.
Tags: phil-haack, unlimited-vacation, holiday, vacation, team-management, burnout, github, travis, netflix, policy
Cultura Corporativa
I’ve read this article by Ángel Medinilla about the corporate culture, and how “hanging a highly interchangeable sentence on a wall” does not represent it.
Tags: angel-medinilla, corporate culture, spanish
What It’s Really Like to Learn to Code
I’ve read this article that explains firsthand how it is to learn programming for a novice student,even with a strong financial background and having completed a university degree. By Sandjar Kozubaev
Tags: sandjar-kozubaev, learning, programming, student, firsthand, coding, story
Books I’ve read this quarter:
Books started, not yet finished (WIP):
Books I want to finish:
Books that have entered the queue:
Learning paths that have entered the queue:
Learning Programming Isn’t That Hard, Deep Work Is Hard
I’ve read this article by Benedict Fritz on two types of work (i.e., deep and shallow) and how programming is of the deep type. He links the difficulty of learning to program to the difficulty of practicing deep work.
Tags: analogy, benedict-fritz, deep-work, shallow-work, learn-to-program, psychology
BeCodeWeek by Yeray Darias
I’ve read this category of posts by Yeray Darias about his BeCodeWeek, a desk-surfing experience at BeCode.
Publishes one entry per day detailing his activities: working for an open-source library, discussions, etc
Tags: becodeweek, yeray-darias, desk-surfing, experience, experience-report, analysis
BeCodeWeek by Yeray Darias
I’ve read this category of posts by Yeray Darias about his BeCodeWeek, a desk-surfing experience at BeCode.
Publishes one entry per day detailing his activities: working for an open-source library, discussions, etc
Tags: becodeweek, yeray-darias, desk-surfing, experience, experience-report, analysis
Tracer Bullets
I’ve read this page about tracer bullets, an analogy from the military warfare to a software project.
Serves the purpose of adjusting the aim of the cannon to better reach the target.
Tags: analogy, metaphor, warfare, management
Cohesion - the cornerstone of software design
I’ve read this article by Sandro Mancuso on the topic of cohesion. Describes the 7 types of cohesion, as described in Structured Design, from worst to best:
- Coincidental cohesion
- Logical cohesion
- Temporal cohesion
- Procedural cohesion
- Communicational/informational cohesion
- Sequential cohesion
- Functional cohesion
and about Design-Level Cohesion:
- Coincidental relation (R1)
- Conditional relation (R2)
- Iterative relation (R3)
- Communication relation (R4)
- Sequential relation (R5)
- Functional (R6)
Tags: cohesion, codurance, edward-yourdon, larry-constantine, list, sandro-mancuso, software-design, design-level-cohesion, smc-cohesion, dlc-cohesion
Etsy CTO Q&A: We Need Software Engineers, Not Developers
I’ve read this interview with John Allspaw, where they explain the onboarding experience for new hires at Etsy, the DevOps philosophy and the need for engineering skills, more than developer skills. This can be exemplified in the need to know more, defining the boundaries of your job and finding the right tool for the job.
Tags: devops, interview, q-and-a, john-allspaw, etsy, onboarding, hire, team-management, deploy
Frequency Reduces Difficulty
I’ve read this article by Martin Fowler on why we should repeat things that are difficult for us:
- Perfectioning the technique
- Internalizing the details
- Easing its automation
Tags: martin-fowler, automation, process, perfection, internalizing, technique, detail, process-theory, agile
Lambdas are confusing
I’ve watched this video where Coman Hamilton from JAXenter interviews Dr. Heinz Kabutz about Java’s lambda syntax. Cites the problem with exceptions, generics, method overloading.
Tags: java, lambda, coman-hamilton, jaxenter, heinz-kabutz, problem
https://www.youtube.com/watch?v=WcHom1eVhi4&feature=youtu.be
El full-stack developer en 2016
I’ve read this article by Jose Ignacio Andrés about the job descriptions of 2016.
El principal valor de un full-stack es poder simplificar el trabajo a los demás miembros del equipo.
My translation:
The main value of a full-stack developer is to be able to simplify other teammates' work
Tags: teamwork, teammate, fullstack, simplification, work, team-management, jose andres
I am a software craftsman
I’ve read this article by Daniel Irvine about calling yourself a craftsman or not. He says that if you adhere to their values, you should.
Tags: craftsmanship, label, daniel-irvine, craftsman, group-belonging
Teaching Programming Languages in a Post-Linnaean Age
I’ve read this paper by Shriram Krishnamurthi where he explains the need for books like PLAI:
- lack of paradigms in new languages, and its separation (or lack of)
- design of languages cheaper and cheaper these days
- rigor level in publications
- inductive and deductive learning
Notes
post-Linnaean
refers to the Carl Linnaeus:
He is known as the father of modern taxonomy
Tags: inductive-learning, deductive-learning, dsl, domain-specific-language, type-soundness, continuation-style, garbage-collection, reactive-programming, scheme, plai, teaching, programming-language, shriram-krishnamurthi
Lazy Ruby
I’ve read this article by sonnym about using ruby’s lazy (non-strict) features, detailing an example with Fibonacci’s sequence.
Tags: laziness, strictness, non-strictness, ruby, fibonacci, comparison
Jessica Livingston
I’ve read this essay by Paul Graham about his co-founder at the Y-combinator: Jessica Livingston. She was considered the Social Radar at YC
The essay also talks about the non-existent separation between working hours and not and about her implication and personality.
Tags: jessica-livingston, paul-graham, y-combinator, feminism, yc, essay
Four Laws Of Software Economics (Part 1)
I’ve read this article by Rich Mironov on why the development team will never be big enough (because of economics, because there are more things to be done than time to do them, so we have to prioritize them) and about the communication problems between the dev team and the client(s).
Also talks about the general personality of clients and devs and task prioritization
Tags: exclusive-or, magical-thinking, tnstaafl, management, agile, team, capacity, death-march, estj, intp, software-economics, product-strategy, law-of-ruthless-prioritization, law, rich-mironov, slack, myers-briggs-type
You Should Take A Codecation
I’ve read this article by Ben Orenstein explaining what is a codecation and what he’s done in the two codecations he’s taken.
Tags: codecation, ben-orenstein, vacation, holiday, coding, shipping, in-company
Giving Up on TDD
I’ve read this article by Ian Sommerville about the problems he’s found while doing TDD, mainly about design, but also about being conservative in the amount of tests you allow yourself to break while refactoring.
Tags: tdd, ian-sommerville, refactoring, problem, design-problem, design, giving-up-tdd
Giving Up on TDD - answer
I’ve read this article by Robert C. Martin on the common issues for people adopting TDD:
- The Fragile Test Problem
- The Design Problem
- The Testable Design Problem
- The Magic Bullet Problem
This article is an answer to another by Ian Sommerville.
Tags: tdd, uncle-bob, robert-martin, adoption, ian-sommerville, fragile-test-problem, giving-up-tdd, design-problem, testable-design-problem, magic-bullet-problem
Seek out jobs with fast learning cycles
I’ve read this article by Sarah Tavel on learning on the job and how fast these learning cycles can happen at companies at different stages of maturity.
So if you’re thinking of changing jobs, or taking your first, my advice: find a place with a fast learning cycle, and a steep learning curve.
Tags: learning, job, hypothesis, sarah-tavel, learning-cycle, maturity-level, learning-process, product-management
Clean Code Vs. Implementation Patterns
I’ve read this comparison of Clean Code vs Implementation Pattern books, by Vincent Partington.
In it, the author explains the differences in style in both books, and how they compare to others.
Tags: clean-code, implementation-patterns, comparison, book-review, book-comparison, vincent-partington
Stuck in Traffic vlog #103 - New Spammer Techniques
I’ve seen this vlog entry on machines fighting machines (exemplified with the spam producing and filtering) and how some spammers are trying more direct techniques focusing on higher-value targets, sometimes even handcrafting messages and modifying them every few units.
Tags: wolfgang-goerlich, spam, vlog, spammer, machine-learning
Becoming A Finisher
I’ve read this article by Christopher Bui where he explains that projects that are too ambitious stall your productivity and make you lose your focus.
Tags: christopher-bui, pomodoro, time-management, productivity, motivation, ambition, paul-graham, quote
Hanging around with red-black tree implementations: the beginnings
I’ve read this article by Ivan Fraixedes where he details the progress of implementing a red-black tree, and also his motivation for doing it.
Tags: ivan-fraixedes, red-black-tree, abstract-data-structure, adt, deliberate-practice, pet-project
Some Tools for Faster Blogging in Octopress
I’ve read this article for tips and tricks on how to blog faster with octopress. Written by Duncan Stuart.
Tags: duncan-stuart, blog, improvement, meta, octopress, tip-and-trick
The veil of ignorance
I’ve read this article by Adam Morse on how not being on the top of the skills performance can affect your design and your user experience. Also, references the concept of “The Veil of Ignorance”, a concept by John Rawls.
Tags: john-rawls, veil-of-ignorance, user-experience, design
To Smile Again – Recovering from the paralysis of burnout
I’ve read this article by Jamis Buck on his story of burnout, what symptoms had on him and how he got out of it.
Tags: burnout, jamis-buck, psychology, productivity, personal, story, analogy
Beyond email: could startup Slack change the way you work?
I’ve read this article on Slack’s office culture, with their diversity, policies and values after a high people growth in a short period of time. By Jemima Kiss
Tags: culture, office-culture, slack, jemima-kiss
Slack: Work This Way
I’ve read this article, a response to my above read, about the office culture at Slack.
Tags: iain-tait, response, slack, office-culture
BEM 101
I’ve read this introduction to a CSS style called Block, Element, Modifier methodology (BEM).
In it,
- a block is a top-level abstraction of a new component
- Child items, or elements, can be placed inside and these are denoted by two underscores following the name of the block […].
modifiers can manipulate the block so that we can theme or style that particular component without inflicting changes on a completely unrelated module. This is done by appending two hyphens to the name of the block […].
By Joe Richardson, Robin Rendle et al.
Tags: joe-richardson, robin-rendle, bem, css, css-methodology, introduction, css-architecture, sass
TortoiseGit part
- Go to a repo
- right button, Settings
- Git -> Credential
- Add a creadential
- Config type: global
- Helper: wincred
Sync once using your HTTPS password
CLI part
Open the $REPO/.git/config
and add
[credential]
helper = wincred
Remote git operations should not ask for credentials anymore
Little Johnny is inspecting a PHP source code that contains comments. These comments contains words that he doesn’t understand, as it written in another language.
Rules and constraints
The source code in the PHP files does not need to be correct.
A comment (a subset of PHP comments) is defined as:
- A line containing C-style comment delimiter, except when it is within a string
// hello C-style
is a valid comment
echo "//";
is not a comment
echo '//';
is not a comment
- A line containing Perl-style comment delimiter, except when it is within a string
# hello Perl-style
is a valid comment
echo "#";
is not a comment
echo '#';
is not a comment
- There are no multi-line comments
/* ... */
is not a comment
You can do this kata in any language you want. In any case it is not allowed to use a PHP parser. This task must be done manually.
How to start
- Clone/fork (any stars are welcome) this repo
- Run the tests. See this for help
- They should be red.
- Go to production code and fix it
- Have fun (happy kata and happy koding!)
Requirements
Please do not read ahead, just read the current assignment, do it, then read the next one:
- Can you help Little Johnny fetch all those comments?
- These messages have not been audited yet and we want to publish the code, so it is better to remove the comments. Can you do it?
Optional requirement
As an optional task, when the problem is finished (you can attack in your preferred order), there must be an executable jar with some parameters to process the current folder with the ‘working modes’ specified above.
(This formulation is also present at the repository )