Logo

Who is talking?

Archive

Cheapest Tablet in the World - Made in India

about 6 years ago | Lalatendu Das: Interpretations of technorealism

Check out "Akash" - World's cheapest tablet.  It is unabashedly optimized for cost. To be priced at $35 a piece (subsidized by Govt of India) for educational institutes and $60 a piece for retail sale. Aakash Tablet from Venturebeat on Vimeo.SpecificationsScreen: 7-inches; 800-by-400 pixels; Resistive touchscreenOperating system: Android 2.2, FroyoProcessor: 366 MHz Connexant; HD Video co-processor (both with graphics accelerators)Memory: 256MB RAM (internal); 2GB Flash (external)Storage: 2GB card included, expandable up to 32GBPorts: Two USB 2.0; 3.5mm audio out jack; 3.5mm audio in jack (No built-in speakers)Connectivity: GPRS; Wi-Fi 802.11 a,b,gPower: Up to 180 minutes on battery; AC adapter, 200-240 voltWeight: 350 grams

"When everything seems to be going against you, remember that the airplane takes off against the wind..."

about 6 years ago | Nirmal Merchant: Urban Gypsy

“When everything seems to be going against you, remember that the airplane takes off against the wind not with it” - ~Henry Ford

Giving two presentations at Agile 2012!

about 6 years ago | Nirmal Merchant: Urban Gypsy

I am thrilled that two of my submissions got accepted for presenting at Agile 2012.  I am giving two experience reports: The Story of Sitting Together (co-presenting with my colleague Zainab Alikhan) Applying Agile to Off the Shelf Product Implementations Bengaluru.. here I come.

"Perhaps imagination is only intelligence having fun."

about 6 years ago | Nirmal Merchant: Urban Gypsy

“Perhaps imagination is only intelligence having fun.” - ~George Scialabba

Using Letter Opener to View Sent Email on a Server (without actually sending anything)

about 6 years ago | Alex Rothenberg: Alex Rothenberg

When developing email functionality you don’t want to send real emails to real people before in production. At the same time you need to send them to ensure they are formatted correctly and contain the proper information. You can (and should) write integration tests to verify this but that helps developers gain confidence, what can we do to show non-technical stakeholders that it all works? Today I’m going to show you how to use Ryan Bates’ letter_opener gem to let you preview your emails without actually sending them. Ryan of course does the always awesome RailsCasts. Let’s think about the different Rails environments and how we want them to behave with email. test should not send emails and allow us to write specs or features against them development should not send emails but provide a UI to view what would be sent staging should not send emails but provide a UI to view what would be sent production should send real emails to real people Looking at this, Rails works really well for test with ActionMailer’s :test delivery method that stores the emails in the ActionMailer::Base.deliveries array so you can then use email_spec to write your specs. Production is also covered as long as you give it your mail server configuration. That leaves development and staging which look identical but we’ll see that they are slightly different. I’ll spend the rest of this article talking about how letter_opener lets us do what we want in these environments. An example Let’s imagine we are working on a new startup in stealth mode. We want to generate buzz and prepare for a beta launch. We’re hiding the fact its all vaporware with a splashy homepage where people can request an invitation to the beta and it sends a “thanks for your interest” email. Lastly, we want to test it in development and staging. Here’s a live demo at http://awesome-site-staging.heroku.com/ if you want to dive in and start clicking. After you request an invitation it shows a page like this Vaporware Homepage Logfile testing (we can do better) When you fill in your email and click the Request Invitation button, our controller uses a mailer to create and deliver the email. class InvitesController < ApplicationController def create @invite = Invite.new(params[:invite]) @invite.save InviteMailer.invite_requested(@invite).deliver redirect_to root_path, :notice => "Thanks for your interest #{@invite.email}. You will hear from us soon." end end The only way to tell whether the email worked is to scroll through the development.log until you see something like this Sent mail to alex@alexrothenberg.com (20ms) Date: Fri, 21 Oct 2011 15:09:16 -0400 From: admin@newstartup.com To: alex@alexrothenberg.com Message-ID: <4ea1c35cc3d5b_6693830916bc43754@Alex-Rothenbergs-MacBook-Pro.local.mail> Subject: Invite requested ... We have received your request to be invited into our awesome site. We'll let you know as soon as its available. Please check back at http://awesome-site.heroku.com You must be very excited! Thanks An Awesome New Startup Ok if you’re a developer and you enjoy reading log files but letter_opener lets us do better. Using letter_opener in development Letter_opener provides us with a UI so we can view the emails right in our browser. It’s super easy to add this gem and I’ll just copy the instructions from its README Preview email in the browser instead of sending it. This means you do not need to set up email delivery in your development environment, and you no longer need to worry about accidentally sending a test email to someone else’s address Rails Setup First add the gem to your development environment and run the bundle command to install it. gem "letter_opener", :group => :development Then set the delivery method in config/environments/development.rb config.action_mailer.delivery_method = :letter_opener Now any email will pop up in your browser instead of being sent. The messages are stored in tmp/letter_opener. Once we’ve done that what happens when we use the site to request an invitation? A new tab opens up with the email right there. Now as a user we can tell it’s correct and any non-technical people on the team can feel their confidence rise. Previewing an Email with Letter Opener in Development How does letter_opener actually work? Rails goes through the standard flow to create the mail object and when it’s ready to deliver the message it calls letter_opener’s deliver! method because we registered letter_opener as the action_mailer.delivery_method. Letter_opener saves the email to your file system as an html file then uses launchy to open it in a browser using the file:// protocol. There will be a couple of problems once we move onto a server which brings us to staging. Using letter_opener on staging If you’re like me you probably have a staging environment where you or your stakeholders can validate your app before releasing it to production and your end users. There are two aspects of this environment that wont work with letter_opener the way it did in development We need to use http:// not file:// to preview the emails because the browser is not on the same file system where the emails are written We may not be able to write to the file system. For example if we have deployed to heroku. I had to make some changes to letter_opener to support this kind of server environment. The fork is available at https://github.com/alexrothenberg/letter_opener/tree/on_a_server and I’ll update the article if my pull requests are merged back in. We need to make a few changes to our application. 1 - Update our Gemfile to use the fork from github gem 'letter_opener', :git => "git://github.com/alexrothenberg/letter_opener.git", :branch => "on_a_server" 2 - Add a debugging UI link so users can get to the “preview emails” page in something like layouts/application.html.haml = link_to 'Preview Emails', letter_opener_letters_path if Rails.env.staging? 3 - If you cannot write to the filesystem let letter_opener know in your config/environments/staging.rb config.action_mailer.delivery_method = :letter_opener LetterOpener.cannot_write_to_file_system! Now we can see it all in action. First, we request an invite. Previewing an Email with Letter Opener in Development Then, we click the link “view the Emails that users would have received” link at the bottom and see an “inbox” of everything the app sent. Previewing an Email with Letter Opener in Development Fincally clicking one message lets us preview it just as we did in devellopment Previewing an Email with Letter Opener in Development We are able to run on heroku without writing to the file system by using the FakeFS gem which simulates the filesystem in memory. FakeFS is designed to be used for testing and one caveat to be aware of is that your old emails will disappear if heroku recycles your dyno due to inactivity. I hope you think letter_opener is useful and give it a try the next time you need to send email. Remember here’s a live demo at http://awesome-site-staging.heroku.com/ of the site we’ve been talking about here.

An IDE for Scala

about 6 years ago | Aishwarya Singhal: Aishwarya Singhal

I have been working on Scala in my spare time for the past ~3 months now and I absolutely love it! It is extremely powerful, the syntax is sleek and it has an API for almost every basic operation! My choice … Continue reading →

Foundation

about 6 years ago | Eduard Moldovan: eduardmoldovan.com - tech

There are a lot of frameworks on the market. Javascript, CSS, PHP. Also, lots of boilerplates. There is a new one, the Foundation from Zurb, which got my attention in tha past few weeks. Let us see what it is capable of.

Experience Maps Identify Inefficiencies and Opportunities

about 6 years ago | James Torio: Designing the experience

An experience map is a holistic view of all of the touchpoints or interactions people have with a brand. It enables you to determine a number of key factors: Frequency and duration of each touchpoint Levels of satisfaction with each touchpoint Points of failure or bad experiences Opportunities to innovate during the experience A foundation for determining […]

Lessons from Magic Kingdom

about 6 years ago | James Torio: Designing the experience

The majority of the products and services we use have no lasting impact in our lives, they are a means to an end. We only think about and talk about those that either don’t meet are exceed our expectations. I noticed a couple of patterns while taking my family to Disney’s Magic Kingdom. 1. Highly orginaized and […]

Chaining ActiveRecord Scopes from Different Models

about 6 years ago | Alex Rothenberg: Alex Rothenberg

You probably know you can chain ActiveRecord scopes together and it combines it all together into one sql statement, but did you know that you can also use scopes from associated models in your chain? Let me show you with an example. Let’s say we have a discussion site where users can post comments with two simple models: class User < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :user end We could display a list of all users with User.all or even display them alphabetically with User.order(:name) (yes I’d create a scope if I were doing this for real). What if I wanted to display the users sorted so that the ones with the most recent comment was first? User.includes(:comments).merge(Comment.order('comments.created_at desc')) There’s a lot going on there, let’s break it down. User.includes(:comments) - tells active record to query both the users and comments tables Comment.order('comments.created_at desc') - sorts the results by the date of the comment (we need to specify the table and column name since created_at is also a column on the users table) merge(Comment.XXX) - lets us use a scope from the Comment model even though we’re dealing with Users When ActiveRecord and ActiveRelation take all this and convert it into a sql statement it will join the users and comments tables and order by the comments.created_at column. Here’s the sql I actually get in irb (boy am I glad I didn’t have to type that sql myself!). > User.includes(:comments).merge(Comment.order('comments.created_at desc')) SQL (0.4ms) SELECT "users"."id" AS t0_r0, "users"."name" AS t0_r1, "users"."created_at" AS t0_r2, "users"."updated_at" AS t0_r3, "comments"."id" AS t1_r0, "comments"."user_id" AS t1_r1, "comments"."body" AS t1_r2, "comments"."created_at" AS t1_r3, "comments"."updated_at" AS t1_r4 FROM "users" LEFT OUTER JOIN "comments" ON "comments"."user_id" = "users"."id" ORDER BY comments.created_at desc Adding Scopes to make it usable It works to type all that but in a real application you’d add scopes to make it easier to work with. Let’s do that! class User < ActiveRecord::Base has_many :comments scope :by_most_recent_comment, includes(:comments).merge(Comment.most_recent_first) scope :with_recent_comments, includes(:comments).merge(Comment.recently(1.month.ago)) end class Comment < ActiveRecord::Base belongs_to :user scope :most_recent_first, order('comments.created_at desc') scope :recently, lambda { |date| where('comments.created_at >= ?', date) } end Now we can write some nice simple scopes like User.by_most_recent_comment to get all users sorted so the ones with recent comments are at the top User.with_recent_comments to get all users who have commented in the past month User.with_recent_comments.by_most_recent_comment to get users who have commented in the past month sorted by the date of their most recent comment. Happy scoping!

How great leaders inspire action

about 6 years ago | Lalatendu Das: Interpretations of technorealism

One of my favorite talks from TED by Simon Sinek.Simple, effective and insightful.

Agile tour pune - 2011

about 6 years ago | Lalatendu Das: Interpretations of technorealism

I delivered a talk on "Scaling agility" in the enterprise at Agile Tour 2011 @Pune. It was a great experience addressing some 70 odd agile enthusiasts, including some renowned thought leaders in the industry.The talk aimed to answer the following questions:- What are the typical challenges faced by enterprises while scaling agility (slides 8 ~ 12)- Why we can not leave it to self organizing teams to manage scaling of agility (slide 14)- What values the agile leaders should espouse for successful scaling of agility, in the form of a manifesto (slides 15-28) Scaling agility - Story of a chicken View more presentations from Lalatendu Das Any suggestion or feedback to further improve the content will be appreciated.

Poems

about 6 years ago | Niranjan Sarade: InLoveWithNature

This is the collection of some of my poems written in my mother tongue - Marathi language :-http://dhundamanasi.wordpress.com/about/http://dhundamanasi.wordpress.com/Enjoy ... :-)

A Chicken's manifesto for scaling agility

about 6 years ago | Lalatendu Das: Interpretations of technorealism

In agile Scrum parlance, the term 'Chicken' refers to those who are involved (but not committed) in the project and stand to benefit from it. Examples: Managers, Leaders, Coaches, Sponsors etc.In a typical Scrum team, the role of Chicken is somewhat marginalized, at times to the extent of being derogatory. However as organizations Scale agility from doing individual pilot projects to enterprise wide Agile adoption, the role of Chickens assumes significant importance. A thoughtful organizational change management by the Chickens, can be the differentiating factor between success and failure.Introducing 'A chickens manifesto for scaling agility':-----------------------------------------------------------------------------------------------------------------------"As responsible agile practitioners, we are optimizing the value delivered  through agile software development by adopting innovative practices. In addition to the manifesto for agile software development, we have come to value:attitude over skilladaptability over predictabilityeffectiveness over efficiencyoptimizing the whole over improvement in partsThat is, while there is value in the items on the right, we value the items on the left more."-----------------------------------------------------------------------------------------------------------------------I picked these values based on my own experience of scaling agility from a small team to be an enterprise wide phenomenon. Keeping your agile adoption journey in context, do you identify with the above mentioned? Do you have any other useful values to add?Please leave a comment.

Where are the Hungarian Articles?

about 6 years ago | Eduard Moldovan: eduardmoldovan.com - tech

Well, if I answer that in a very short way, then they went into the /dev/null.

Set higher goals for yourself

about 6 years ago | James Torio: Designing the experience

It is not another project, this one is going to be game changing. It will revolutionize how people think about the subject, change the way they work, shake up the industry and position us as global leaders in the space. People will line up to spend $350,000 for an annual subscription! Make yourself nervous, uncomfortable and […]

Big Data Enterprisey Analytics and Ruby

about 6 years ago | Amit Kumar: RubyizednRailified

My Ruby Conf 2011 presentation:At speakerdeck:or at slideshare Ruby conf'11 View more presentations from toamitkumar