I wrote a small Rails app, which sends emails on a particular schedule. For example to send an email every week on monday and thursday at 7:00am Melbourne time.
However Heroku doesn’t have cron or good free alternative. I wrote a cron replacement in 5 minutes. This post shows how I did it. There are three parts:
The story starts with the RubyWeekly newsletter. Once signed up, every week you’ll receive a collection of curated links. It’s a great resource to learn Ruby. It could take a few hours to read through the interesting articles.
I found it hard to set aside 2-4 hours every week to read them in one go. So I wrote a script parses each week’s issue into an RSS feed. The feed had one item per link, which gave more granular control.
This book is very hyped this year. To summarise it's a detailed refactoring tutorial. It could also be called "Refactoring 1-on-1 for dummies".
I like that it goes through long and tedious process of proper TDD. I don't like for the exactly same reason and had to skim through it. People who are not familiar with TDD should find it very useful.
The book was a good detailed reminder of the refactoring process for me. However I wouldn't recommend it to myself.
Update 1: The article was translated to Japanese
Update 2: This post is featured in RubyWeekly #374
&. operator, added to Ruby 2.3, is handy and I’ve cleaned a lot of code with it. You can use it in conjunction with default operators as described in Ruby's New &.!= Operator.
Recently I introduced a bug when using
&.. First we had:
if start_date && start_date < start_of_month && end_date.nil? # … end
Unfortunately this presentation had a lot of transition and my recording failed, so please have a look at the transitions in video slides below.
A quick read which I would recommend to every mid rails developer and higher. It's common for developers to outgrow their tools. Rather than learn new skills, people start to blame the tools. Your heard those people: "Rails does not scale", "ActiveRecord is antipattern" etc. The books show few patterns which allow to build big Rails application with only small changes to standard 'Rails way'.
The book recommends active_type gem. I would recommend other gem active_interaction instead. active_interaction gem is more superior in my opinion and I've successfully used it in multiple projects over the last 2 years.
As for the CSS structuring, BEM is definitely a good choice to get control over your styles. Only issue with it, if not enforced it loosed its value, so every developer should be very diciplined to follow BEM.
There is only 1 option which is better than BEM, it's css modules. I only used it with ember.js, not Rails though. It automates steps that you have to do with BEM. However css modules require deep integration into the tools you use, which makes it harder to bring into the project.
The book talks about the process of running a 5 day long test to validate your idea/product. You might have an idea to start new business or how to engage your existing customers, whatever it is you should do as quickly as possible and as effectively as possible.
The book provides a very detailed step by step guide how to run the full spring as well as explains why things are done the certain way.
While books tries to prove itself with examples from big or popular companies, it feel a bit cheap because success of the company doesn't depend on the success of the product. It's way more complex than that.
I'll be very interested to try it on practice. In theory it should work very well.
This quick and easy to read book I would recommend to every developer. It talks about all the little things which are often neglected and what developers deal with every day. Naming methods and variables, extracting business logic, code comments, aesthetics and code readability.
This knowledge is language agnostic and the best mastered over reading lots of code, or reading this book :)
That was a lucky pick to read after "The Brain's Way of Healing". That book talks about unconscious part of the brain. It does make a lot of sense and I've drew a lot of parallels with the "The Flow" book. To put it simply, we are animals and millions years of evolution didn't disappear when we've got consciousness.
When we are leaning something we actually teaching our unconscious part of the brain, while consciousness is there to guide that learning process.
Conscious and unconscious, this is just a theory to explain our body, and probably not very accurate. But it is enough to start benefit from it. That book shows how little we know about ourselves.
This an amazing book. Just like the previous book "The Brain that Changes Itself" this one also blew my mind. It's very long book and I think I've lost my interest twice and had to start again from the start few months after. But once i've got beyond the first 30% about Parkinson Disease, I was hooked.
The book talks about how brain stimulation through our sensor could affect it. That includes voice, light and touch. That's probably my favourite part.
Anyway, I've read it over a month ago now and my excitement already dimmed out. That's a great book and I would recommend it to everyone.
Just like the book I've read a week before - "Rework", this book also jumped the queue.
So are you working remote or still going to the office five days a week?
If you are working at the office, you might need to read this book, to know why it make sense to switch to remote or ocasional remote work. The book addresses some questions and concerns about remote work. There are definitely more pros than cons to working remotely, however it's important to know and understand the difficulties that arise and which are previously were unknown to office workers.
If you are already working remotely, you'll probably find this book as a reflection of your own experience. I've been working remotely for over 5 years and gone through the exactly same struggles described in the book. I guess the only difference the book looks at it with a bit more scientific perspective.
I feel the book could be even shorter, few ideas has been repeated multiple times through the book. If you want to know everything about remote work this book is definitely would be the first goto option.
I had to use my credits on Audible.com and didn't know what to buy. This book was on my to read list, but somewhere at the bottom of it. And thanks to very small collection of audiobooks this book jumped the queue.
The first thing that surprised and warned me at the same time how small the book is. It is relatively short and is less than 3 hours long. In comparison the other book I'm reading, "The brain's way of healing", is almost 15 hours long. But there is a good reason why it is like that. Authors intentionally cut on the content as it's the same principle they use at work, which was described in the book.
To sum up the book, it could also be called "Rethink". Rethink things that you are doing at work. Just because something was done in a particular way for a long time does not mean it is a good idea to keep doing it.
The book summarises years of work at 37signal, company which indeed swims agains the flow and decided not to follow many established work practices.
Can't say I've learnt much, as I've heard many of those things before, but nevertheless I've enjoyed this book.
I've popped up to visit my friend Marcus during holidays, he runs PunkOffice, and he offered to do a 3D scan of me. I couldn't say no to that.
In a split of a second 80 DSLR cameras took a photo of me, each from a different angle. After a bit of computer processing and magic from Marcus a final model was produced. Click the image to see the full version.
It's an interesting book which summed up a lot of my experience working in startups. It's important to mention that the book focuses on testing new ideas rather than improving existing business.
Alright, so you have a new business idea and nobody has done it before, what's next? In short accept that you are wrong and your ideas are crap and proceed from there. Such mindset forces you to focus on feedback. Even if you found great market fit with 80% accuracy you still need feedback to make the adjustments.
The whole process should be focused on getting the market feedback and learning from it. The challenge is to get it as fast as possible and as cheap as possible. The sooner you fail the faster you will learn and the faster you will move on to a better one.
As a professional software developer I've found such approach very hard, because as a professional I'm responsible of quality, which I had to ignore if it conflicts with the delivery speed.
Also I've found my peers who don't understand that principle of growing new ideas, set the wrong priorities on tasks. They focus on the tasks which have medium to low business value, which is still not acceptable as that distracts you from the low hanging fruits.
I've also liked the "vanity metrics". Metrics which has no real meaning but makes you feel good by creating an illusion. So many businesses keep doing it. So true.
Lean Startup book was written from the author’s experience and I can personally backup most of the things mentioned in the book with my personal experience. That's why I've found it very useful as I see it as an experience exchange.
I'd say Lean Startup is "must read" only if you are starting new business, otherwise you are better off reading books on improving efficiency or quality of your existing business.
Marry, and you will regret it; don’t marry, you will also regret it; marry or don’t marry, you will regret it either way. Laugh at the world’s foolishness, you will regret it; weep over it, you will regret that too; laugh at the world’s foolishness or weep over it, you will regret both. Believe a woman, you will regret it; believe her not, you will also regret it… Hang yourself, you will regret it; do not hang yourself, and you will regret that too; hang yourself or don’t hang yourself, you’ll regret it either way; whether you hang yourself or do not hang yourself, you will regret both. This, gentlemen, is the essence of all philosophy.
Yet another Railscamp. That's what I've felt like before it's started. But on Sunday afternoon, I was already missing it as it was almost over. Great time as always, but should say activity options were more limitted than usual as it was small camp with 60 people and in comparison the previous one had 120.
From the highlights: I was elected as a Ruby Australia committee general member. That was my third attempt and should say I'm very happy I was elected this particular time as committee consist of people who I believe can make a difference and who share a lot of similar frustrations with me.
Another highlight I've helped with small movie which was shot over the weekend. It showed once again that I'm a horrible actor, although I think this time was slightly better than a year ago.
In Russian culture (and I've heard in Chinese as well) people prefer brand new feel to things. During my traveling in Europe and Japan I've discovered that I like old furniture and buildings there. Each one of them what I call "has character".
About a year ago, I've discovered the term wabi-sabi, which did sound familiar from my past observations.
from Wikipedia: Wabi-sabi represents Japanese aesthetics and a Japanese world view centered on the acceptance of transience and imperfection. The aesthetic is sometimes described as one of beauty that is "imperfect, impermanent, and incomplete"
Characteristics of the wabi-sabi aesthetic include asymmetry, roughness, simplicity, economy, austerity, modesty, intimacy, and appreciation of the ingenuous integrity of natural objects and processes.
I think it's a great world view to adopt. Not just from economic perspective, but also I see it's more inline with nature, as there are no any two organisms which are identical. Even twins are different in so many ways. Every living creature is special and unique. And I think we should appreciate that more.
A video about wabi-sabi through which I've discovered it from.
Ralph Waldo Emerson might strike the right chord:
For everything you have missed, you have gained something else, and for everything you gain, you lose something else.
That's very popular thought which I seen many times from different authors. There is no right and wrong, there is only life. The nature doesn't know what is right or wrong. Humans created those terms and try to fit everything into those categories.
P.S. I seen this quote over a year ago somewhere, so saved it and only now found time to mention it in the blog.
Forgiveness is the fragrance that the violet sheds on the heel that has crushed it.
-- Mark Twain
Прощение – это аромат, который фиалка дарит тому, кто ее растоптал.
-- Марк Твен
Great novel, it's one of those which I could not wait to listen again. The audiobook was done with amazing quality, it's not a plain reader reading the book, but with different voices and sound effects. It's like watching a movie without a picture. Very cool. It's a completely new level of the audiobooks.
Novel itself has a lot of meaning and I think shows world quite accurately. I was enjoying every moment while listening to it.
On the negative sides, there are few obvious issues which break the flow of the story for me. I've got three:
Very often and out of the context the different characters say "Who is John Galt?". Since it's out of the context it's very clear the author added it to glue the ending. That completely breaks the flow. Such out of the context sentences work as a wake up call for the readers immersed into the story.
Love relationship is very unrealistic. It's hard for me to believe that multiple man who finally met the true love of their life could not care and say something like - ah cool, no problem. I love you more than anything in this world, but i'm cool to be friends. We can live and see each other everyday. I will love you forever but you can be with that other guy.
The final speech from John Galt over the radio was waaaay too long. It felt like that speech was written first and the rest of the story was added as an addition. The speech repeats the same idea many times and could be much shorter or broken into multiple parts during the story.
The novel had a big influence for people, that's why it spiked my interest to read it. Now I know the story, I'm interested to see what was the influence.
I will continue to expand the features in the pagelet_rails gem. Since it offers a new way of composition in Rails I've found that there are so many new things we can do. In this post, I will focus on the parallel rendering. Yes, that's right, parallel rendering in Rails. Although, it may sound advanced the concepts behind it are extremely simple. This post however is only relevant to web page rendering.
Update 2: This post was featured in RubyWeekly #318
The book can be summed up as 'Be there where you are'. It's a good reminder to stop running in life and stop regretting about the past. Just open your eyes and look around, the life is beautiful.
The book mentions that when people get serious health issues only then they start to realise the present and finally start enjoying it. I'm just thinking can I simulate that feeling without getting health issues. Think about and imaging you have 1 more day to live, how would you feel today? And like that every day.
Overall book is written in very abstract way, which I found very hard to conceptualise. It has very few examples which would be very helpful to understand all those good sounding words.
Hover over the image!
Finally got my first personal cards. I went for simplicity in design and a bit stylish look with black and white contrast. It's personal and not business card as I'm not selling my service to people but rather it's a quick way to exchange contact details.
Got them printed at vistaprint for 250 for $35. The printing quality turned out to be very poor, so contacted support service and now waiting for the new batch to arrive.
Change is the only constant
It's very light and quick to read. The book talks from the women's perspective most of the time, but is relevant to everybody.
The main point from the book for me was to be flexible and enjoy the life. Life is too short to worry or be upset.
The book is full of advices and experiences from Irina's life.
That includes how to teach kids, be public person, how to grow career as a woman, have strong and happy family and others.
The book is short and straight to the point, while it's still very personal.
Interesting novel about relationship. It was interesting to listen (audiobook) but I feel like I didn't get the point.
On wikipedia it says there are two stories, but the audiobook I've listened had about 5. Not sure if that's new additions or just other novels.
Download Slides PDF or read more
Had a great day snowboarding at Mt.Buller today.
Probably the worst thing was the buses between car park and resort. On the way back it took us 1 hour to get from resort to car park while it should take 5 minutes. The lesson learnt, next time I will be walking.
That book changed my standards of leadership.
Today was the third meetup. It keeps getting better, but can't keep everybody happy. Here are some highlights:
Last sunday I've hosted the second "Practice riding exercises" meetup. It's a definitely improvement from the first one but still many things needs to be worked on.
I've been asking people for the gems they would recommend to others at Rails Camp 19. This is a compiled list of answers.
Last friday one of my friend gave me a math challenge. You've given four numbers 6, 6, 5 and 2, you need to find 3 math operations to get 17 as a result. You have to use all four numbers and only once each. Order of numbers can be any.
I couldn't figure it out in my head so have to write a ruby script to iterate over all combinations, which turned out as a great coding exercise.
TL;DR; I'd like to propose new organisation structure for Ruby Australia: decrease committee role and give more power to the president.
Recently I went to Rails Camp 19 in Adelaide and as always Ruby Australia General Meeting was held there. I've seen many committee meetings but only now realised that the organisational model for Ruby Australia is chosen incorrectly.
Gall's Law states that all complex systems that work evolved from simpler systems that worked.