Thanks to visit codestin.com
Credit goes to nursahketene.com

Ditching Vercel & Next.js

I’ve decided to move away from Vercel and eventually Next.js altogether. The reason is clear: their CEO Guillermo Rauch recently posted a picture in support of Israel, which I view as a political stance. I hope I am wrong but there were no corrections or a statement from Vercel regarding their CEOs stance.

There is no where in hell that I support a company that openly sides with a country responsible for killing civilians with impunity and committing a genocide. My conscience will not allow it.

In a recent post, I outlined three guiding principles for making technical choices: Economic, Technical, and Moral. While the first two are objective, the last one is personal and context-dependent. However, there are universal principles, such as the “Don’t commit an ethnic cleansing” part. I thought we learned that 80 years ago. It seems not. I cannot align myself with those who support a genocide. That is my moral stance!

So what now?

The first step is migrating away from Vercel: I have several apps hosted on Vercel. The first step is to move them to alternative platforms like Netlify, Cloudflare, or UpCloud. This is straightforward, and I expect to complete the migration within a week.

The second step is transitioning away from Next.js: This step is more involved and will require time and investment. I will stop using Next.js, which means rewriting parts of my applications. Fortunately, there are alternatives like AngularJS, NuxtJS, and EmberJS for the front end. I’m also considering returning to monolithic architectures and using Ruby on Rails where it makes technical sense.

Lastly I will be advocating for alternatives: I am quite lucky and privileged to be in a position where I can advice companies with their technical roadmaps and technology adoption. Guess what I will be doing with all of my clients and the companies that I work at! I can tell you that Vercel & Next.js will not be a recommendation.

This transition will take time, change will take time, but the choice is clear as day light for me. I encourage others in my network to do the same: find alternatives and refuse to normalize a genocide.

Choices Choices

Today, making technical choices has never been easier in terms of the sheer number of offerings available. We have an unprecedented variety of options and power at our fingertips. However, this abundance of choice is paradoxically centralized, with a few giants dominating the market: three major cloud providers (AWS, Microsoft Azure, GCP), two primary desktop operating systems (Windows, Mac, with Linux mostly on servers), and two major mobile ecosystems (iOS and Android). Chip makers are mostly American (Intel, Qualcomm, AMD, NVIDIA), 3 social media companies (Meta, TikTok, Google)

It might seem like there are no alternatives when it comes to our freedom or morals, as if we must choose one or the other. However, I argue that there are choices if you dare to look beyond the first row.

When considering an architectural change or introducing something new to our digital suite, it’s essential to approach the decision-making process thoughtfully. I use three guiding questions or principles to help choose the best possible outcome:

1. Is It Expensive?

Assessing the financial impact is crucial. This is often the first question your CFO will ask: “How much does it cost, and how do we fit it into the budget?” It’s important to evaluate whether the proposed change or addition is worth the investment. Are there other options that can provide the same value for less money?

2. Is It the Right Solution?

The next question to answer is, “Does this serve my needs, and is it simple enough?” It’s important to avoid solutions that are unnecessarily complex or over-engineered, as they can hinder scalability and maintenance. Very few companies are the size of Prisma or Wolt, so stop trying to emulate their choices. There’s a reason they need ultra-scalable solutions. Your company will most likely never reach that scale, and your goal as a CTO or Lead Developer shouldn’t be about future-proofing for hypothetical growth. It should be about serving today’s needs. The goal is to implement a solution that is both practical and adaptable.

3. Is It Moral? Am I Comfortable Using It?

Ethical considerations are often overlooked but should be at the heart of decision-making. Think about the broader implications of the architectural change. For example, consider “blood diamonds” — are the resources or technologies involved ethically sourced and overall good for humanity?

Until a few years ago, I would have made choices based on the first two principles. Recently, I started considering morality, and I have to say, it’s not an easy thing to do. By following these three questions or principles, I ensure that architectural changes are not only technically sound, cost-effective, and practical but also ethically responsible. This approach is not easy but is well worth the effort.

Europe must do better

For the past few months, I’ve been exploring the idea of swapping my Apple products for European alternatives, and I have to say, it’s been extremely surprising, quite frustrating and very concerning.

Seventeen years ago, when I first moved in to Finland, we had strong hardware manufacturers like Nokia, Siemens, Ericsson, and many other notable players in Europe. We had quality devices and a robust ecosystem. Today, none of them exist. They’ve either shifted their business focus, gone out of business entirely, or bought up by US or far eastern companies.

Today there are some niche companies gaining some attention on the mobile space, like the Nothing Phone from the UK and HMD from Finland. Both are relatively small and still rely on “Android,” which is American software. But they are creating something interesting that is European and with high strong build quality.

It is just beyond sad when it comes to laptops, there are very few manufacturers and the two that I found are Tuxedo and Cepter. I haven’t had the chance to try Tuxedo, but I’ve seen and tried Cepter for a bit. It felt like the WORST kind of cheap plastic—wobbly build quality products that can not compare to Apple or Samsung in any meaningful way. So, on the PC side, there aren’t any real competitors to US or Asian companies from Europe. At all!

It seems like Europe has lost its extremely strategic electronic consumer facing device ecosystem to either Asia (China, Japan, Korea, India) or the US. This is both disappointing and concerning, especially given the current geopolitical situation and the likely hood of US distancing it self from EU. Strategically, both China and the US could sanction the EU at any time, rendering all of our devices useless at an instant.

If Europe wants to maintain its independence and stay European, we must find ways to foster a hardware ecosystem. Otherwise, we’re simply put doomed as a continent. The good news is the talent is still there. The universities are still some of the best in the world when it comes to quality of education and research. The know-how still exists and it is still strong. But it won’t be for too long if we don’t take action. Talent and technology that is not cultivated will deteriorate and fade away to the void.

So in the short term I’m clear on one thing: my next phone will be most likely a Nothing Phone. I appreciate their designs, quality, and the ecosystems they’re building. I want to have high quality products that I am product to carry around with me that supports my ecosystem.

We must do better.

Freedom is never free!

When is something a personal freedom and when is it not?

Is it our right to deny a vaccine (any vaccine) which its effectiveness has been proven by the scientific community?

It is up to me to choose if something goes under my skin or not” said someone a while ago when we were arguing about the vaccination. I have thought about it for a while. Here is the thing. In most cases that person would be right.

It would be up to each individual to deny or accept treatment based on their opinions, ethics, beliefs and convictions. If a person has cancer that person has a choice to accept or deny chemotherapy based on their own opinion. That choice only affects the patient.

It is up to the person to choose to get a tattoo. Physically It wouldn’t effect any one else but that person.

We have a lot of personal freedom when it comes how we want to live our lives. However when our choices start to effect the wider public that is the place our personal freedoms end.

By not getting vaccinated we are causing harm to the public health, economy, and social life and prolonging the pandemic and overburdening the health care system to a point where hospitals can no longer admit patients.

Should we have a choice to deny vaccines? For me it is an easy question to answer. It is not a personal choice as long as it causes harm to the public.

Of course I do understand it is an ethical slippery slope. Should the government even have the right and the power to mandate its citizens to get vaccinated?

So far the vaccination programme (not only for covid but for all of the vaccinations out there) is voluntary. Meaning no one has been really forced to get vaccines. Mostly advised, encouraged and even begged. However we have never had this kind of vaccine scepticism in our society before that I can remember.

Freedom is never free!

I believe that the government should not have the power to force you to be vaccinated. That would open a can of worms that we do not want to deal with. On the other hand public safety overrules personal freedom.

Thats why we have all the rules when getting into a plane and that is why we have all the rules about smoking in indoor spaces. That is why military service is mandatory for abled men in most of the world. Public safety is more important than personal freedom.

I also believe that people should have the right to choose if they don’t want to be vaccinated. But that freedom should comes with a cost. If a person chooses not to be vaccinated they should also bare the cost of not being part of the society. They should not be able to go to restaurants, or movie theatres, They should not be able to go to grocery stores or get in to a flight. They should not be able to stay in a hotel or work at an in-person locations. They should be paying full amount of their health care costs as well, the public should not bare that burden if they choose to be unvaccinated. If you are an immigrant your residence permit should be revoked. By the way I am saying this as an immigrant my self.

People should have freedom of choice, regardless how selfish it is or how misguided it might be, but that choice should have a cost. The cost of being an outcast.

Working in the times of Corona

At this point when we are practicing self-isolation, companies are trying to figure out how to move forward working remotely. Carrying old habits from pre-corona times is going to be a disaster. We are living in a different world that needs different approaches.

Avoid Meetings

One thing that we need to change is the Agile methods and its demand for face-2-face daily/weekly meetings. The current situation is forcing people to work from home while trying to take care of their loved ones at the same time. Having a video meeting for 15-30 min everyday is not only a waste of time but a cause for stress. Companies can instead opt to use status updates in a written form. People can just write what has been happening with them whenever it is convenient for them.

Another meeting that can be done in a written form is the retrospective. This is the time when you spend about 1 hour after each sprint and figure out what worked, what didn’t work, and how to fix the things that didn’t work. Again, almost all of this can be done in a written form. You don’t need to have a meeting about this. Write a detailed report on your work. That would be more than enough.

So when to use meetings?

When it is needed. As a golden rule meetings should be avoided as much as possible. I believe meetings should only be held when a team has gone through the briefing document explaining the issue, on their own time. This document should be created by the person who is asking for the meeting. This is not the agenda. It is the description of the issue that needs a discussion. This document has to be thorough, clear, and detailed enough to paint a good picture. Only after that people should have a meeting, if needed. You are wasting everyones time if you just have the meeting without a briefing document presented to the people beforehand to go through. Some people might not need to be in the meeting at all but they join just because they have been asked to join. A briefing document will also help with clarifying who needs to attend the meeting.

Sprints

One of the core strengths of Agile is Sprints. Basically it is the time that you “do” something. At the end of the sprint you should have some result to show your clients/managers. It is quite common that a sprint is usually around 2 weeks long. I have always found the 2 weeks time is extremely limiting and causes for a lot stress. There is simply not enough time to thoroughly think about a solution. Now, when we are working remotely and sharing the home at the same time with our families, it is even more difficult to bring any completed results within a 2 week frame. I would suggest to increase the time that you are working on a solution. The guys at basecamp has a good idea on how to do this. They are using 6 week cycles. It is long enough to come up with a proper solution. It is short enough to track what is going. Of course the idea is not to add more on the plate just because you are working on a longer time frame. Just work on the same issue for 6 weeks time. If you want to know more about it, I would encourage you to read Shape Up

So…

Overall, for many of us this is quite an exceptional time. try to understand that people are going through some tough times in their lives. Productivity is going to suffer and we need to create some new norms. Many people will not be in the headspace where they can be productive. Asking them to work harder is going to put additional stress that they don’t need. Try to find ways to help them, be kind, and respect their situation.

The all devouring overwork

I really don’t understand the obsession on working long hours every single day, and sacrificing your personal life. What for?

Personally for me, in my best day, I can get 4 hours of productive work per day in an 8 hour work day. Anything beyond that I will start to make mistakes, I will have to double check everything that I do and start doubting my abilities. It is a slippery slope after that.

Mentally the extra hours that I put means that I will be less happy about what do and feel exhausted with every additional hour I put into my work. I don’t even want to mention the quality of the work I produce in those extra hours.

This self realisation did not come easily. I had to feel the burn.

Few years ago I used to work for a startup that took the mental of changing the world, as it was the trend at the time. The people that I worked with were great entrepreneurs and over all great human beings. So when it came to work ethics, I used to feel like every body around me working tirelessly. It seemed like I was the only one who was slacking. I felt guilty. I felt guilty when every one around me worked really hard and for such long hours while I was just leaving work at 6-7pm to have some dinner and continue working at night for couple of more hours.

Finally my body started to act up. My brain started to be in constant state of fuzziness. I couldn’t do my job and I kept disappointing my family and friends. I was constantly unhappy and unfulfilled. I thought I didn’t have the grit for it.

Then it hit me out of no where when I was arguing with my boss about the deliverables and the impossible deadlines that I had to meet. I have realised that I was burning out. At that moment I have come to the conclusion that something had to change or I was going to lose my own sanity.

The solution came easy and with such a relief. I was lucky. Some people spend months and years until they understand what they need to do. The next day I gave my notice. After that I rescheduled my work so I stoped working at 4pm. A solid 7-8 hours a day of work and after that the rest of the day was mine. Spent time with my family or met with friends for a coffee, maybe even dinner. My mental state followed soon after. I was suddenly happy again. I was lucky. I had good colleagues and a boss who understood what I was going through. I know some who weren’t that lucky.

When ever I see someone is bragging that they didn’t sleep the night because of work or saying that they work 18 hours a day and spend the night at the shitty office futon bed for a week, the only thing that comes to my mind is to shake them up and tell them “You are going to fuck your life up. STOP IT!”

Over working is not something to brag about. Working your self to grave is not a sure measure of success. Over work does not determine a persons success or value as a human being. If anything, it determines a persons failure to understand what they are working for and for whom.

The toxic culture of over work has to stop. If you have people working for you, or under your supervision, you need to make sure that they do not sacrifice their personal life so they can work couple of extra hours.

If you want to change the world and make it a better place, go for it. If you want to make it so big that you are the most rich person alive, good for you. It doesn’t matter what your ideals and hopes and aspirations are. If you can’t enjoy your very own life, what is the point of working at all!

Poverty and violence

For many years I have always assumed that violence is a natural extention of poverty which is the cause for the violent behaviour in a society.

Recently I have realized that is not entirely true. Even though violence is most common in poor communities it is not the symptom of poverty according “Gary Haugen” who spent his entire life as a human rights attorney who changed my views all together.

According to Haugen, violence is one of the key reasons for poverty. In fact it is the most significat contributor.

I have always thought that any person can get out of poverty if they had the courage and will to pull them selfs out of the hole they have found themselfs in. I was wrong.

Even if a person is brave enough to do the work and change their life for the better, The environment where they are trying to change their life is equally important and curucial.

I am not talking only about some dude coming and beating you sensless kind of violence. I am talking about things like belittling a person, or constant threat of a husband who is insecure about himself or a wife who keeps telling their husband “you can not do it”. I am talking about the fact that today in 2015 we have legal slavery in many Arab countries or we are forcing people (indrectly) to work for almost nothing to make our t-shirts and jeans in Bangladesh. I am not even talking about the people who lives under the threat of dying every single day because of wars or acts of terrorism from the likes of Boko Haram. I am talking every day violence that wouldn’t make it to the news. I am talking about a girl whose raped and murdered because she dared to go to school in a society failed to protect her. I am talking about a child forced to marry a man aged 12. I am talkign about a person who had to leave his childhood, friends, family to move to another country to earn $400 so he can send it to his mother.

We are talking about every day violence that we are all guilty of and the only way we can fix it is to stop and open our eyes!

We are living in 2015 and people are still dying out of hunger. We are as guilty as those who physically harm women and children for simply turning a blind eye.

Hi my name is Nur Sah Ketene and I am a Muslim

I usually do not introduce my self like this. But after all that has happened I felt like I have to. My religion that I love so very much has been hijacked by thugs, murderers, and half wits. I am sick and tired to see my religion and muslims are talked in the same sentence with terrorists, murderers, and rapists. I am sad to see that islam and terrorism are becoming synonyms. Even though there are a lot of people like me, who are passionate about equality, freedom of speech, and many other things. These people most often fight silently. Not with choice but rather a necessity. It is difficult to break through the wall that is made out of noise and to be heard.

I am tired of seeing my religion everyday on news with a picture of a guy I would consider a monster.

I am tired to see a number on the screen telling how many people has died because of some ultra-radical nut job who calls himself a jihadist who blew himself, when in fact many of the muslims are actually struggling everyday to make their own lives and lives of other more meaningful by adding value.

People like my mother who teaches at the University. People like my father who builds the future of his own country. People like Malala who has been shot just for the right to learn.

Most of these people are fighting silently. Making a difference. Teaching tolerance and understanding. But I am tired of being silent. We need to speak up and call our selfs muslims to show the world that there are some of us, a lot of us, who are not murderers, who are not self destructive, and who wants leave this world a better place than how we found it, and show to those idiots who call themselves muslims that we do not accept them. They are not one of us. Therefor:

I am Nur Sah Ketene and I am a Muslim

Day One App Review

Today I wanted to write about an app that I am using to keep journal. It is called Day One. It has a really clean design that simply lets you to write about your day, life or a moment that you had. Now a days all of the applications that we are using are based on sharing. Like what we ate or about wordily views, but mostly simple stuff that use about 150 characters. It is far from begin genuine and that is normal. When we talk, write or have an interaction with other human beings, we tend to hide our real thoughts. It is a defines mechanism. Although I use Twitter or Facebook I also need a way to write about my self just for my self. Day One helps with that.

The first think that drew me to the app is its beautiful design. It is so simple.

image

The second thing is that I can add posts using markdown. This would allow me to just focus on my experiences, my thoughts, and not worrying about anyone if they would understand it differently.

It would just let me write and thats it. Even though Day One gives you the ability to share your entries on social media I don’t think I wouldn’t use it but I am sure there are some who would as well.

It is always nice to go back in time and see what you have been thinking or what you have done in that particular time.

The app is available on App Store for iPhone and Mac OS X.

Updating openssl from source

image

It has been discovered that there is a security vulnerability with openssl heartbeat extension. The bug would allow the attackers to steal all of the keys stored in the server like it hasn’t been encrypted at all. There is no way for the system admins to detect the attacks or find where the attacker has targeted since this vulnerability does not leave any trails. 

The bug only effects the versions 1.0.1 and above until 1.0.1f

Updating your openssl to 1.0.1g or downgrading it will fix the problem.

Follow the instructions to update openssl from source; 

Get the package: 


$ wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz

Unzip the package, configure and build openssl:


$ tar xzvf openssl-1.0.1.g
$ cd openssl-1.0.1.g
$ ./config
$ make
$ make test
$ sudo make install

Add Line to your MANPATH before MANPATH_MAP in /etc/manpath.config:


MANPATH_MAP /usr/local/ssl/bin /usr/local/ssl/man

Update MAN:


$ sudo mandb

Update your path in your /etc/environment


PATH="/usr/local/sbin:/usr/local/bin:/usr/local/ssl/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

And you are done. If you write openssl version it should give you 1.0.1g

I have found a nice restaurant in Punavuori at Iso Robertinkatu. The place is called “Vivo’s” and they are serving Lebanese food. The food is nice and great value for the price. The only bad part is, the restaurant is more for take away and if you want to eat at the restaurant food is served with plastic plates, forks and knives. 

But otherwise it was a nice atmosphere and the Moussaka was delicious. 

Democratic Dictators

Today, after reading the news about the Turkish PM decided to ban Twitter. I wanted to write about dictators and why or how they become dictators and also why social media usually is the target. 

There are several types of dictatorships but the one that I want to focus on is “Democratic Dictatorships”.

In these cases the dictators would come to power right after the country is in a turmoil like economic depression or post war time and the government is weak.Usually the country is some sort of a democratic country. The dictator would benefit from freedom of speech and are capable to convince people that they are the right choice for fixing the current problems. They can relate to people and they speak in a simple language that everybody understands. The promises that they make are exactly what the public was waiting for. When they come to power they do deliver on their promises. I mean when they are first elected they come to power with big support of the people. For few years the dictators are doing great. The economic problems goes away, national pride returns, scientific and technological advances are at its highest. For few years people love the new leadership and the leaders slowly gets the idea that they are doing everything right and they are the solution for every problem.

The problem starts when the dictator or his close circle starts to make mistakes. It is difficult for a person who is glorified by his surroundings to take criticism.  A dictators mentality is to suppress the voices that criticising him. Simply to put an end to it. When that does not work they start to grab power. Like taking control of the judiciary system or the military system by appointing people loyal to the regime. Let me remind you. This is a normal evolution of dictator. The weakest side of a democracy is the public opinion and deflecting the real issues. Often democracies are victims to the majority vote. If a leader is popular amongst the public they can usually pass any law without much effort or convincing.

The democratic dictatorships usually ends by the death of the leader (Hugo Chavez’s death) or military intervention (coup d'etat), internal revolution (uprising), or an external intervention caused by a mistreatment of the people (like holocaust/massacre) or invading/attacking another country (like Hitler) and undermining their sovereignty. It is very rare for a civil dictator to leave power without a fight. In-fact the only example that I can come up with for a dictator to leave power of authority is in 1950 by Turkish PM Ismet Inonu. But then again this action would take him out of the list of dictator, so I am not really sure. 

So the question now is why the Turkish PM has banned Twitter? 

Controlling the public through newspapers, TV’s, and radios are some what easy. They are easy targets. You can silence the journalists by either buying them to write for you or scare them by throwing the few to the jail and the rest will be scared to write agains you. The news papers are based in the country, with an owner who does this job usually for profit. You can silence them by putting them in jail or threaten their income sources (advertisement), buying the newspaper or just shut them down, plain and simple.

On the other hand Social Networks, like Twitter, Facebook, etc. are not based in the same country. The owners do not have relationships with their audiences or in this case users. The source of information is decentralised. Instead of dealing with hundreds of writers/journalists the dictator has to deal with millions of authors. Simply to put, it is impossible to control. There is no way for the dictators to buy the company and even if they did some other company will pop up to fill the vacuum. You can not buy all the authors/writers to cheer for you and you can not scare people by just throwing them to jail. You need to surround the whole country with walls. For dictators that do not understand the frustrations of the public, Social Media is an evil that must be stopped at all costs.

The irony is when a website is banned the dictators/government/regime thinks that the information will not reach the public. On the contrary people will always find new ways to reach the information which is censored/banned and I think that is just funny… 

Women, Man & Technology

I have been coaching or teaching around for almost 4 years now and quite often there is a question of why there is fewer female developers, scientists or engineers and ultimately there is always a questions of “how can we increase the number of women?”. 

In my opinion this question is wrong. We should rather ask the question “how can we raise our children in a more gender neutral society?”, so when it comes to choose a career gender won’t be an issue any longer. 

Unfortunately we are raising our children subconsciously to take risks, be brave, have an adventure and be the providers if they are boys. On the other hand if we have daughters we raise them the opposite way.

We have to teach our children to be what ever they want and encourage them in their choices regardless of their gender.

One of the arguments that I constantly run in to is why we implement a positive discrimination towards women. Specifically in universities or work. Positive discrimination only hurts chances of women progress in their careers. It will only hurt a persons chance to become a good developer or engineer and will not help her career if you admit a student or hire a person just because she happens to be a woman.

The right thing to do is not to treat women any differently than man. Just acknowledge that she is a person like any other and consider the skills, intellect, and experience of the person instead of her gender. 

At the end of the day we need to treat women like any other person. 

TESTUNIT + GUARD + SPORK + GROWL

Intro

It is a cumbersome job to run your tests manually every single time you want to check wether your tests are doing what you intended to do, or are they failing. So I wanted to find out how I can automate it.

Spork

Spork is a server which is meant for your tests. So that means spark forks a copy of the server each time you run your tests instead of unloading every single time when you run them. This makes the time that you spend on running your tests much shorter. You can find more information about spork from this link http://rubydoc.info/gems/spork/0.9.2/frames

Guard

Guard is a command line tool to easily handle events on file system modifications. Guard supports FSEvent on Mac OS X, Inotify on Linux, and Directory Change Notification on Windows. You can also poll on other operating systems and fast file modification detection when polling is not used. Guard supports visual system notifications too. All on all it is awesome.

Growl

First of all I am using Mac thats the reason I am also using Growl. But feel free to search for Notification systems. So as I said, Growl is a notification system for Mac OS X. It allows applications to send you notifications in certain events. So most commonly you will see a bubble on the right top corner of your screen with some information regarding your application.

TestUnit

Unit testing as it is stated in its name is teasing the smallest part of your code. TestUnit comes by default when you create a rails application and find it in your “test” folder. So no need to explain in detail. If you would like to have more information about unit testing, you can check this link: http://en.wikipedia.org/wiki/Unit_testing

Lets do it…

Gem File

FIrst we need to modify our gem file a little.

Add those lines to your gem file

group :test do
  gem 'spork' #Spork gem 
  gem 'spork-testunit' #test unit support
  gem 'guard-spork' #guard support
  gem 'growl' #for growl notifications
  gem 'guard-minitest' #guard minitest support
end   

Terminal

After this run

bundle install

When you are done installing the gems run the following:

bundle exec spork --bootstrap
bundle exec guard init spork
bundle exec guard init test

Now when we are done creating our files and stuff lets make some modifications.

Guardfile

Make your file look like this. here we have added a cucumber and rspec support besides test_unit but you can get rid of them if you like.

guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, :rspec_env => { 'RAILS_ENV' => 'test' }, :test_unit_env => { 'RAILS_ENV' => 'test' } do
  watch('config/application.rb')
  watch('config/environment.rb')
  watch(%r{^config/environments/.+\.rb$})
  watch(%r{^config/initializers/.+\.rb$})
  watch('Gemfile')
  watch('Gemfile.lock')
  watch('spec/spec_helper.rb') { :rspec }
  watch('test/test_helper.rb') { :test_unit }
  watch(%r{features/support/}) { :cucumber }
end

guard 'minitest', do
  # with Minitest::Unit
  watch(%r|^test/unit/(.*)\.rb|) ### DO NOT FORGET TO ADD THIS LINE
  watch(%r|^test/(.*)\/?test_(.*)\.rb|)
  watch(%r|^lib/(.*)([^/]+)\.rb|)     { |m| "test/#{m[1]}test_#{m[2]}.rb" }
  watch(%r|^test/test_helper\.rb|)    { "test" }   
end

test_helper.rb

Go to your test folder and open test_helper.rb file. You should see some things that spork has been adding which we need to modify to make it work a little better. So your file should look something like below after you modify it.

require 'rubygems'
require 'spork'
#uncomment the following line to use spork with the debugger
#require 'spork/ext/ruby-debug'

Spork.prefork do
  # Loading more in this block will cause your tests to run faster. However,
  # if you change any configuration or code from libraries loaded here, you'll
  # need to restart spork for it take effect.

    ENV["RAILS_ENV"] = "test"
    require File.expand_path('../../config/environment', __FILE__)
    require 'rails/test_help'

    class ActiveSupport::TestCase
      # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
      #
      # Note: You'll currently still have to declare fixtures explicitly in integration tests
      # -- they do not yet inherit this setting
      fixtures :all

      # Add more helper methods to be used by all tests here...
    end       

end

Spork.each_run do
  # This code will be run each time you run your specs.

end      

Terminal Again.

So after all the configuration are done and we are ready to go wrote all of our tests and stuff just run the following command;

bundle exec guard

and you should start seeing some notifications :)

Good luck