<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for bblimke</title><link>http://disqus.com/by/bblimke/</link><description></description><atom:link href="http://disqus.com/bblimke/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Fri, 12 Jul 2013 14:05:44 -0000</lastBuildDate><item><title>Re: How to disable ElasticSearch-Calls in RSpec Tests</title><link>http://www.neckhair.ch/2013/07/disable-elasticsearch-in-rspec/#comment-960126375</link><description>&lt;p&gt;If you want to achieve the same behaviour with WebMock, just call WebMock.allow_net_connect! in a before block.&lt;/p&gt;&lt;p&gt;With WebMock you can also selectively declare for what url patters real network requests should be allowed, by passing options to allow_net_connect! or disable_net_connect! methods.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Fri, 12 Jul 2013 14:05:44 -0000</pubDate></item><item><title>Re: Cloudinary - Blog - API for extracting semantic image data - colors, faces, Exif data and more</title><link>http://cloudinary.com/blog/api_for_extracting_semantic_image_data_colors_faces_exif_data_and_more#comment-721665505</link><description>&lt;p&gt;Nice features. Is there any way to also retrieve number of pages for the uploaded multipage pdf?&lt;br&gt;It is returned in the upload request but it would be great to be able to receive it from Cloudinary::Api.resource call.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Wed, 28 Nov 2012 11:50:12 -0000</pubDate></item><item><title>Re: Bartosz Blimke's Blog: DCI Is Not Against Inheritance</title><link>http://www.bartoszblimke.com/2011/09/dci-is-not-against-inheritance.html#comment-304524596</link><description>&lt;p&gt;Thanks for your feedback.&lt;br&gt;It's very possible risk you mentioned. DCI is still immature and there are many unanswered questions. &lt;br&gt;How to guarantee compatibility of roles and data?&lt;br&gt;How to guarantee that all required roles are always added to correct objects in the right context?&lt;/p&gt;&lt;p&gt;I have some experience with OOP but I haven't seen any large enough DCI based system to compare code readability and maintainability.&lt;br&gt;Although DCI looks promising and definitely solves some OOP problems, I'm not able to say it doesn't create more yet (but maybe it solves more)&lt;/p&gt;&lt;p&gt;Regarding the @wings and Flyable Vehicle you mentioned, I think the only way to guarantee compatibility is to have tests in place, same as in OOP.&lt;br&gt;Testing in DCI is actually another area to investigate. Some scenarios which would be covered by unit tests in traditional OOP, now require data, context and roles combinations.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Wed, 07 Sep 2011 17:56:39 -0000</pubDate></item><item><title>Re: Bartosz Blimke's Blog: DCI Is Not Against Inheritance</title><link>http://www.bartoszblimke.com/2011/09/dci-is-not-against-inheritance.html#comment-303796277</link><description>&lt;p&gt;Yes, passing ship and plane as parameters is an option.&lt;br&gt;I wanted to show simple examples, not necessarily executable code. How these data objects are accessible within the context may differ.&lt;/p&gt;&lt;p&gt;There are no rules of what context exactly is and it can be defined in many different ways. Hopefully we are going to find some nice patterns for defining it in Ruby.&lt;/p&gt;&lt;p&gt;mixin and unmix come from mixology gem&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Tue, 06 Sep 2011 17:34:27 -0000</pubDate></item><item><title>Re: Bartosz Blimke's Blog: DCI Is Not Against Inheritance</title><link>http://www.bartoszblimke.com/2011/09/dci-is-not-against-inheritance.html#comment-303578479</link><description>&lt;p&gt;Thanks for the first comment :)&lt;/p&gt;&lt;p&gt;One could indeed extract many other roles from the Airplane example. Mover role with move operations is a good choice.&lt;/p&gt;&lt;p&gt;If I understood DCI correctly, one thing from your example is incompatible with DCI. The fact that "Mover" role has speed.&lt;br&gt;By definition, Roles in DCI are just collections of operations and they are stateless. Roles can't add or remove state from objects.&lt;br&gt;If we take Airplane data object as an example, whether you add or remove Mover role to it, and not perform any operation on it, it still has the same "speed" state.&lt;/p&gt;&lt;p&gt;The Boeing747 you provided, is a very interesting example. How to reuse code across role objects is a very interesting topic to investigate.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Tue, 06 Sep 2011 11:44:57 -0000</pubDate></item><item><title>Re: Class vs instance methods</title><link>http://mlomnicki.com/programming/ruby/2011/07/20/class-vs-instance-methods.html#comment-260529813</link><description>&lt;p&gt;Michal,&lt;/p&gt;&lt;p&gt;Thank's for the code sample. It's indeed a very good example showing why modifying state on classes is very dangerous. I do agree that modifying state of a class, changes the global state that would propagate across tests. It's then very difficult to trace the reasons for failing tests or bugs despite passing tests.  &lt;br&gt;Mocking wouldn't help here either as it would require mocking object under a test, which is not desirable.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Fri, 22 Jul 2011 03:34:40 -0000</pubDate></item><item><title>Re: Class vs instance methods</title><link>http://mlomnicki.com/programming/ruby/2011/07/20/class-vs-instance-methods.html#comment-259918678</link><description>&lt;p&gt;Nice article. I'm happy to see some examples, showing worse usages of class methods, without just showing delegation.&lt;br&gt;Point about stateless vs stateless you made, makes sense to me in case of Java, but it's not necessarily valid in case of Ruby. In Ruby actually everything is an object. Classes are just singleton objects and they can store state which can be used in class methods. You can store a class state in class instance variables. I get your point here anyway.&lt;br&gt;I indeed like the second example of code more than the first one.  I wouldn't go as far saying that passing arguments from one method to another creates procedural-like code though.&lt;br&gt;There are many cases where there is no need to keep the state or where passed arguments differ each time, and class methods work as fine as instance methods (or better due to arguments 1 and 2 you mentioned)&lt;/p&gt;&lt;p&gt;My bottom line is, there are good usages and bad usages of class methods, but it doesn't make them all evil. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Thu, 21 Jul 2011 16:31:33 -0000</pubDate></item><item><title>Re: Automatic Reconnection of MySQL Connections in Active Record @ Bamboo Blog</title><link>http://new-bamboo.co.uk/blog/2010/04/11/automatic-reconnection-of-mysql-connections-in-active-record#comment-99408046</link><description>&lt;p&gt;This is ActiveRecord own configuration option, not Rails configuration option so it works whether you use ActiveRecord with Rails or without.&lt;/p&gt;&lt;p&gt;"reconnect" =&amp;gt; "true" needs to be passed as one of the options to&lt;br&gt;`ActiveRecord::Base.establish_connection`&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Fri, 19 Nov 2010 06:39:34 -0000</pubDate></item><item><title>Re: Copying code from Textmate to Keynote with style @ Bamboo Blog</title><link>http://new-bamboo.co.uk/blog/2010/03/18/copying-code-from-textmate-to-keynote-with-style#comment-70659149</link><description>&lt;p&gt;Have you tried changing the TextMate theme?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Sun, 22 Aug 2010 19:40:07 -0000</pubDate></item><item><title>Re: Localized external services</title><link>http://robots.thoughtbot.com/post/595666104#comment-50200518</link><description>&lt;p&gt;ShamRack looks really nice. I like the fact you get request parameters parsing for free from Rack. I can find cases where I would use it.&lt;/p&gt;&lt;p&gt;Since you mentioned problems with Mocha and WebMock based solutions I would like to point out some differences in comparison to WebMock. I also think that the way you mock http requests with Mocha and WebMock is very different.&lt;/p&gt;&lt;p&gt;WebMock has now quite advanced way of stubbing requests based on request headers, method, url and request body, not only method and url.&lt;br&gt;In ShamRack you can code Sinatra action to give different responses based on request params and headers. It can be quite convenient, because you get access to parsed i.e multipart params inside sinatra action. The downside is that Shamrack doesn't allow you to specify which requests should not happen at all.&lt;/p&gt;&lt;p&gt;Have you had any problems with changing tests when you moved from Net::HTTP to HTTParty? WebMock creates abstraction and hides the interfaces and internals&lt;br&gt;of specific http clients so in most cases there is no need to change tests when switching http libraries, same as ShamRack.&lt;br&gt;WebMock also supports HTTPClient(i.e used in soap4r) and Partron, in addition to just Net::HTTP based libs.&lt;/p&gt;&lt;p&gt;The big difference is that WebMock also verifies request expectations. You can not only stub responses from http requests, but you can actually assert that&lt;br&gt;certain requests happened (i.e some callback request was called).&lt;/p&gt;&lt;p&gt;Regarding repetitive code issue, you mentioned regarding Fakeweb, it only depends on where you put your stubs. If you prefer to declare your stubs globally, for all tests, there is no need to repeat code. You can i.e put them in a spec_helper or cucumber env.rb&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Thu, 13 May 2010 18:47:32 -0000</pubDate></item><item><title>Re: Localized external services</title><link>http://robots.thoughtbot.com/post/595666104#comment-50189057</link><description>&lt;p&gt;Dan,&lt;/p&gt;&lt;p&gt;WebMock actually supports all Net::HTTP based libraries, HTTPClient and Patron.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Thu, 13 May 2010 17:51:18 -0000</pubDate></item><item><title>Re: Guiding a Self Organising Team into Efficiency</title><link>http://wildfalcon.com/archives/2009/10/23/guiding-a-self-organising-team-into-effeciency/#comment-21061551</link><description>&lt;p&gt;I guess, self-organized teams also require specific kind of people, with specific character, ambitions and skills. At least some people working together can form good self-organised teams much easier that others.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Mon, 26 Oct 2009 18:14:54 -0000</pubDate></item><item><title>Re: Guiding a Self Organising Team into Efficiency</title><link>http://wildfalcon.com/archives/2009/10/23/guiding-a-self-organising-team-into-effeciency/#comment-21060912</link><description>&lt;p&gt;I think that we brought into the idea of leaving the team alone because it just worked! It very often worked much better than externally managed team, even if there was still lot of place for improvement.&lt;br&gt;Team members take more responsibility for the success of the project when they know that they are in charge of success. &lt;br&gt;It's also probably because many managers are just simply not capable of managing their teams. Self-organised teams manage themselves very often much better that under a bad management.&lt;br&gt;That's why there is such a focus in self-organised teams to let them emerge the best team structure naturally. Artificially created team structures and management structures often lead to disasters.&lt;br&gt;I agree on the other side that teams require in some cases outside facilitation and this facilitation can be very useful. It's always good to get external opinion. But how to find a person adequate to fulfill facilitator role correctly? It probably either has to emerge naturally from self-organized team, or come from outside with enough authority.&lt;/p&gt;&lt;p&gt;It's also very difficult to find external observer who doesn't work in a team and has enough knowledge or experience to efficiently spot the problems and intervene.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Mon, 26 Oct 2009 18:01:54 -0000</pubDate></item><item><title>Re: Bamboo Blog - Ruby on Rails development</title><link>http://new-bamboo.co.uk/blog/2009/09/16/time-traveling#comment-16847126</link><description>&lt;p&gt;This kind of organization of focus makes a lot of sense and also seems to be an idealistic scenario.&lt;/p&gt;&lt;p&gt;Developers are of course not just coders, placed in a cage of a current iteration and controller by some management control panel. They are essential members of a project team, fully committed and fully responsible for the success of a project. With this assumption they are time travelers like everyone else. Only a person without any ambitions is not traveling in time.&lt;/p&gt;&lt;p&gt;Developers travel to the past - for example to investigate the quality of previous software releases or simply to fix bugs. They continuously retrospect the past, they learn, and based on these experiences they plan, how to improve the future.&lt;br&gt;Developers are experts in a project. Product owner is not able to plan the future without this expertise and a companionship of a scrum master doesn't change much in this matter. Devs are essential to gather the requirement, to analyze them and prioritize. The whole team attends user story workshops and the whole team estimates the user stories. There is just no way for developers not to look in the future.&lt;br&gt;Finally, developers think about the future like everyone else. Since they are committed and responsible for the future of the project, they need to think about it - at least, because it is their own future.&lt;/p&gt;&lt;p&gt;Also a product vision is not only in the interest of the strategists. It is essential for the strategists for business purposes but it is important to everyone else in the project from the psychological point of view.&lt;/p&gt;&lt;p&gt;On the other side it's not only developers who focus on the current iteration. Agile is based on continuous feedback, so a product owner, a scrum master or designers need to be involved in a current iteration same as developers.&lt;/p&gt;&lt;p&gt;In agile environment there is a project team and a whole team travels in one time machine together. Since agile is about communication and close collaboration, people having different roles continuously take each other for trips to the past or to the future all the time.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Thu, 17 Sep 2009 19:41:06 -0000</pubDate></item><item><title>Re: Bamboo Blog - Knowledge sharing I: open workspace and code reviews</title><link>http://new-bamboo.co.uk/blog/2009/08/06/knowledge-sharing-I-open-workspace-and-code-reviews#comment-14453687</link><description>&lt;p&gt;Good point! The open workspace environment can be sometimes noisy and disruptive. To reduce this problem we use the private room, where people can go and make a call, have a meeting or simply make a lot of noise.&lt;br&gt;Regarding the feeling of being watched, I've heard this argument in the past from people who used to work in cubicles. This indeed seems to be a psychological issue and it can be problematic to someone who is not used to work in an open office.&lt;br&gt;We actually use the fact that people observe each other at work as an advantage, but more about it in the next article. &lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Bartosz Blimke</dc:creator><pubDate>Fri, 07 Aug 2009 17:49:35 -0000</pubDate></item></channel></rss>