{"id":4476,"date":"2010-04-19T17:52:14","date_gmt":"2010-04-19T22:52:14","guid":{"rendered":"http:\/\/www.redmonk.com\/cote\/2010\/04\/19\/makeall001\/"},"modified":"2010-04-19T17:52:14","modified_gmt":"2010-04-19T22:52:14","slug":"makeall001","status":"publish","type":"post","link":"https:\/\/redmonk.com\/cote\/2010\/04\/19\/makeall001\/","title":{"rendered":"Front-end development with Rails, Visual Studio 2010 &#8211; make all #001"},"content":{"rendered":"<p class=\"pic\"><a href=\"http:\/\/www.flickr.com\/photos\/cote\/4514954991\/\" title=\"Serial Solutions Austin by cote, on Flickr\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/farm3.static.flickr.com\/2141\/4514954991_07c6aaf6e2.jpg\" width=\"500\" height=\"375\" alt=\"Serial Solutions Austin\" \/><\/a><\/p>\n<p><b>Update:<\/b> I&#8217;d been pointing to the wrong audio file below (<a href=\"http:\/\/media.libsyn.com\/media\/redmonk\/makeall001.mp3\">here&#8217;s the right one<\/a>). Corrections have been made!<\/p>\n<p>In this inaugural episode, I talk with the developers next door to RedMonk Austin (see picture above &#8211; <a href=\"http:\/\/twitter.com\/cowboyd\">Charles<\/a>, <a href=\"http:\/\/twitter.com\/mandoescamilla\">Mando<\/a>, and <a href=\"http:\/\/twitter.com\/thatdutchguy\">Dani\u00ebl<\/a>) about their use of Ruby on Rails as a front-end layer. We spend a lot of time discussing UI toolkit choices and customizing, JavaScript and Ajax coding, using rails as sort of glue-layer to their UI, and heavy GUI development. Additionally, we talk about Pivot and Visual Studio 2010.<\/p>\n<p>Download the episode directly <a href=\"http:\/\/media.libsyn.com\/media\/redmonk\/makeall001.mp3\">right here<\/a>, subscribe to <a href=\"http:\/\/feeds.feedburner.com\/MakeAllPodcast\">the feed<\/a> in iTunes or other podcatcher to have episodes downloaded automatically, or just click play below to listen to it right here:<\/p>\n<p class=\"embed\">\n<h2>Transcript<\/h2>\n<p><i>(I haven&#8217;t checked this transcription in detail, so if you notice something funny looking, ask before assuming it&#8217;s &#8220;funny.&#8221; For example, everyone but me quickly devolve into &#8220;Male Speaker.&#8221;)<\/i><\/p>\n<p><b>Michael Cot\u00e9:<\/b> Well, hello everybody! I thought I would embark on a new podcast generalizing from RA Weekly and I haven\u2019t really checked the availability of these names yet but I am thinking I am going to call it Make All which is a little nerdy and retro and everything, and the idea is I just wanted to start a podcast where I can just talk about software and software development, sort of unrestricted by category.<\/p>\n<p>So we will see if that name is available, if not we will come over with something else. But I thought for the inaugural episode, we would start here with &#8212; I guess you could call them my co-officers.<\/p>\n<p><b>Male Speaker:<\/b> Reporting for duty, Commander Cot\u00e9!<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So here is the RedMonk Austin Office. We are right next to the Austin branch for Serial Solutions. And when they are not working on the next Blueberry\u2019s competitor, they are working on a software that is used in libraries. They do a lot of development and there is actually three of them here now, usually there is just two. Why don\u2019t we introduce people? Why don\u2019t you start?<\/p>\n<p>Charles Lowell: Well, my name is Charles Lowell and my mother is calling me.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And this is the call that the clients have heard about. You actually are a very popular person on the iPhone, always getting calls, and yourself?<\/p>\n<p><b>Daniel:<\/b> I am Daniel. I am visiting Charles here at the office.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> You are from like the Amsterdam office, right?<\/p>\n<p><b>Daniel:<\/b> Yup, I am.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And yourself?<\/p>\n<p><b>Mando Escamilla:<\/b> My name is Mando Escamilla. I am here with Serial Solutions. We are all focused on the UI side of our application.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So like the UI that &#8212; so first off you are doing like library and stuff?<\/p>\n<p><b>Mando Escamilla:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Or is it library? I never know how to say it?<\/p>\n<p><b>Male Speaker:<\/b> I have to spend much time in a library, so I can tell you the proper pronunciation.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So what&#8217;s the technology that you guys are using mostly for the front-end stuff?<\/p>\n<p><b>Male Speaker:<\/b> So we focus mostly in Ruby on Rails as kind of server-side software and then lot of JavaScript, a lot of HTML, CSS.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So when you are using Rails nowadays, like is it mostly like a front-end centric thing or do you have it like doing all the backend stuff? Are you like all the way down to the metal or you like Rails or is there other stuff that you typically innovate with nowadays?<\/p>\n<p><b>Male Speaker:<\/b> Yeah. So our application is probably a little bit different than most Rails implementations. Ours is a very thin layer on top of this, really big search engine backend. So we don\u2019t talk to a database, we talk to this big set of solar indexes and these kinds of things.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Like the Open Source project?<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, that&#8217;s interesting. But you have sort of a non-relational deal in the backend if you will?<\/p>\n<p><b>Male Speaker:<\/b> Oh, absolutely. We don\u2019t have users. It&#8217;s like if you go to your university and you search the library catalogue, you usually have to log-in for that. You just go up to a computer, sit in there in the library and you type-in.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And do you think that&#8217;s common for Rails applications nowadays, like I mean, Rails has been around for what like five years now?<\/p>\n<p><b>Male Speaker:<\/b> It&#8217;s been five, yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> I mean it kind of started out as like a &#8212; you had your database schema or whatever, there was some model and a database somewhere or in your head even and the point was like you would like spin up your magic Rails stuff and say oops! When you type things wrong and everything like in the screen cast and like boom! You would have your application, right?<\/p>\n<p>It seems like there was a lot of contention in the Rails world along that it is a whole database like in the code it was great but it wasn\u2019t always like fantastically performed and things like that. So I wonder like what you guys have seen the evolution of where Rails fits in the stack if you will?<\/p>\n<p><b>Male Speaker:<\/b> Well, that was always the magic of Rails, that you could start with your model, in your code, and then the Rails stack would come bark out your database schema, and create your tables and migrate them as you change them.<\/p>\n<p>So you can work on solving the domain problem and that was kind of the big relation I think to a lot of developers about Rails. Nowadays I mean that&#8217;s still well, and good and true, but I think Rails has kind of started to fill in other areas of the development landscape.<\/p>\n<p>It&#8217;s not just these kinds of applications. It fits in like with our stuff which doesn\u2019t have a backend database. So we don\u2019t use ActiveRecord which is the Rails ORM, we just don\u2019t use it. We use RubyGems that we wrote to talk to our search API and it works just fine.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So like when you are using Rails like what do you end up spending like what are the top three things you end up spending a lot of time doing like do you have to make like custom like webpage? Do you have to do a bunch of custom like JavaScript and Ajaxy stuff or is it sort of like the integration you spend a lot of stuff time in or like what is it kind of push you into as far as work you actually do? Like why do you programmers still have to do stuff when you are using Rails?<\/p>\n<p><b>Male Speaker:<\/b> I submit, I haven\u2019t really used Rails for about four years now and I got pulled into this project, so I had to start all over again. But, I still think it\u2019s very database-dependent. If you get the new Rails knowledge, you still need to do some stuff to have it work without a database.<\/p>\n<p>That said, I spend most of my time on the JavaScript side of things, not too much on Rails. I have been doing Ruby straight up and haven\u2019t meddled with the real framework that much.<\/p>\n<p><b>Male Speaker:<\/b> That\u2019s true. We do spend a lot of our time either writing Ruby libraries that get called by a very thin layer within Rails itself, right? And then we spend a lot of time presenting that data in HTML and JavaScript.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So we just say, you do more &#8212; the code work that you end up doing, end up being more not UI-centric, but like directly related to rendering stuff on the screen, or is it more of the &#8212; for the lack of a better phrase, it\u2019s kind of like the middleware that gets to that point, when it comes to the JavaScript stuff that you do and the Ruby thing you do. Like you spend a lot of time like, here\u2019s a great way to validate a block of text that works in the UI, or here\u2019s like a way we lay things out. Are you doing UI framework coding or more like business logic you kind of coding?<\/p>\n<p><b>Male Speaker:<\/b> No, this is probably for our product &#8212; specific to our product. We spend a lot more &#8212; I spend a lot more time worrying about the presentation side and we just get &#8212; we have these kind of magical data structures that come to us from the magical end of the API.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Oh, yeah.<\/p>\n<p><b>Male Speaker:<\/b> And we have to massage it every now and then.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah.<\/p>\n<p><b>Male Speaker:<\/b> Very light on the business rules.<\/p>\n<p><b>Male Speaker:<\/b> But very light on the business rules.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, it\u2019s like way back when, when I used to like do real work in program, like I think one of the best situations I ever got, it was like a really good DBA I was working with and he was like, just tell me the data structure you want. I was like, all this line of code. He made like some stored procedure and everything, it was great, because it was just like boom! He would give me like an XML thing, a document of stuff that I wanted. Now I didn\u2019t have to worry about any of that.<\/p>\n<p>So, then like the JavaScript you do it, it\u2019s all sort of like around presentation, wrangling and things like that, like what &#8212; like what do you like pushing JavaScript to do beyond like rotate images and things like that? Like, that\u2019s a pretty wide question, but like I mean, would you say that you\u2019re JavaScript developers in the same way that you could be a Java Developer?<\/p>\n<p><b>Male Speaker:<\/b> Let\u2019s say that the majority of the interesting parts of the application are in the JavaScript or a large portion of it.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And are they sort of like business logicky things or UI things or &#8211;?<\/p>\n<p><b>Male Speaker:<\/b> We just push to the HTML or what\u2019s around the way we want them.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, it\u2019s all about manipulating the user interface to us, right?<\/p>\n<p><b>Male Speaker:<\/b> It\u2019s a UI programming language for us.<\/p>\n<p><b>Male Speaker:<\/b> The funny thing is, I think the end users actually see the least of this, but the people who administer besides get to see the cool parts.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Oh! So it\u2019s sort of the admin tool where you see a lot more of the stuff then.<\/p>\n<p><b>Male Speaker:<\/b> Yes.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right. Well, those are close for the people who actually pay for the software. So, it\u2019s always nice to make them happy.<\/p>\n<p><b>Male Speaker:<\/b> Yeah. Well, I mean, I guess we use JavaScript to maintain our own component library.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> So we\u2019ve got &#8212; we just have these little bits of display code that are little bundles of CSS and HTML and JavaScript that you can embed in one another, which is pretty standard, no matter what it is that we\u2019re working with.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So like, I mean, using my own wacky words here like what are like examples of like widgets or things you would make with JavaScript, CSS and HTML?<\/p>\n<p><b>Male Speaker:<\/b> Really, anything that you would want to reuse more than once.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, right.<\/p>\n<p><b>Male Speaker:<\/b> For instance, we have a dialogue window component. So whenever we want to present stuff to the user like a model fashion. So we have one of those. We have a date-slider that lets us group sensible search results and then select them by date ranges as opposed &#8212; instead of having the type-in dates.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, right.<\/p>\n<p><b>Male Speaker:<\/b> What else do we have? We have &#8212; our search result display is another JavaScript.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> I mean, are these things that you can\u2019t like get &#8212; I mean, there is no shelf anymore, but you can get them off-the-shelf like you\u2019ve got to build it on your own, I mean what\u2019s your experience as far as &#8212; what\u2019s your sense of like we need to build this from scratch versus we can go out and find something that does it.<\/p>\n<p><b>Male Speaker:<\/b> I\u2019m always inclined to build it from scratch. I actually find something that does it, and then either use it and eventually re-implement it yourself or just do it from scratch. Find out how it works, and then do it from scratch, because you almost always end up being more lightweight and timely integrate with what you\u2019re doing.<\/p>\n<p><b>Male Speaker:<\/b> I guess it\u2019s also part of being a programmer, you want to have control and you want to do it yourself.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> Now just throwing stuff together to get it done.<\/p>\n<p><b>Male Speaker:<\/b> And part of the truth is pragmatic, right? I mean part of that is when if it doesn&#8217;t work, which is a lot of times, stuff [?] shelf. It kind of works or is close to working but you are running to an edge where it doesn&#8217;t, right? But if you implement it today, it will probably be a lot linear like Charles said and how it works.<\/p>\n<p><b>Male Speaker:<\/b> Probably be faster and also it&#8217;s going to look like you did it yourself.<\/p>\n<p><b>Male Speaker:<\/b> It wasn&#8217;t like you are trying to make someone else&#8217;s stuff look like your stuff.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> You can tell when someone is using jQuery UI?<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, how often?<\/p>\n<p><b>Male Speaker:<\/b> You can tell when someone is using ExtJS, you are like, oh! They did that with ExtJS.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> yeah, I just talked to those guys this morning.<\/p>\n<p><b>Male Speaker:<\/b> Yeah?<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> It&#8217;s really cool.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> It&#8217;s ExtJS, right?<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, they had a pretty wide array of interesting customers.<\/p>\n<p><b>Male Speaker:<\/b> Yeah, you can build some really crazy cool stuff with that, but then it&#8217;s like, that definitely makes it look more like an application, because I think what, I think &#8212;<\/p>\n<p><b>Michael Cot\u00e9:<\/b> More-and-more like an application than a website?<\/p>\n<p><b>Male Speaker:<\/b> Yeah, because when you talk about like rich Internet applications and stuff like that, you are bringing the analogy of the desktop to the web. But I actually like the kind of middle ground where a lot of the web lives, where you have got documents that are just weirdly interactive. It looks like a page but then all of a sudden this paragraph leaps out and starts dancing, if that&#8217;s what the situation demands. You know what I mean?<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah. So, it seems like the point is, you guys want complete control over what the UI looks like and behaves like. And so if you are to use off-the-shelf stuff or just whatever, libraries are available, like you would be compromising the look-and-feel essentially?<\/p>\n<p><b>Male Speaker:<\/b> Sometimes, I mean, it depends on the components, right? There are some components that really lend themselves long, implement it well.<\/p>\n<p><b>Male Speaker:<\/b> And I don&#8217;t know why that is on the web, because I mean, if you would say that I am going to use my &#8212;<\/p>\n<p><b>Michael Cot\u00e9:<\/b> You are going to write your own Charles Swing \u2013<\/p>\n<p><b>Male Speaker:<\/b> Right, or Charles Coco or &#8212;<\/p>\n<p><b>Male Speaker:<\/b> You would never do that.<\/p>\n<p><b>Male Speaker:<\/b> Or heard Charles Foundation classes. Punch me!<\/p>\n<p><b>Michael Cot\u00e9:<\/b> This is always a big debate we had like teams I was on is that, is the web isn&#8217;t constrained enough. So like people are trained with desktop applications, that there is only 30 things you can do, or whatever, and they all look this way. Like there is not any variation, and the counter-example of that is like, Winamp, right? If anyone remembers that.<\/p>\n<p><b>Male Speaker:<\/b> [?].<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, it\u2019s just like &#8212;<\/p>\n<p><b>Male Speaker:<\/b> We make our buttons 4\u00d74.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Or more modern day thing might be, I don&#8217;t think anyone uses it anymore, but the OS X dashboard widgets, like those were like many applications and they are always sort of like murderous. But I mean, that&#8217;s sort of example of customizing things.<\/p>\n<p>I mean, it seems like on the web, the expectation is the opposite that people don&#8217;t really like standardized interfaces on the web, despite &#8212; I mean, even when you go to like the big standards, all that&#8217;s out there, every site they make tends &#8212; well, first of all most standard people are not application people, they are document-oriented people and they are making very nice brochures on the website. But then also the way you look at is most of their stuff, it varies pretty widely between sites.<\/p>\n<p><b>Male Speaker:<\/b> Yeah, I mean think about it. I guess you think about it, you find the diversity of on the web of &#8212; interfaces of the web within the same level of diversity if you have in like objects you fined in the world, like this white-board, this table. Can you imagine if every object that we used was comprised out of 30 widgets? You have like buttons and drop-downs and stuff on my coffee mug.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> That&#8217;s like one of the things with Apple and the iPad that I am curious to see how it trickles out as far as the idea of like, not single uses and you only use it once, but like single type of use devices that are out there, right?<\/p>\n<p>Like instead of having a laptop that does everything, you are cursed with like five different devices that specialize in each of the different things I do. I don&#8217;t know it would be an interesting different approach, it&#8217;s kind of like, I think I was ranting about this the other day, how I hate multifunction printers, those things drive me crazy.<\/p>\n<p><b>Male Speaker:<\/b> Oh yeah.<\/p>\n<p><b>Male Speaker:<\/b> Really?<\/p>\n<p><b>Male Speaker:<\/b> Well, I never &#8212; you always tell me some damn HP Printer I need to go.<\/p>\n<p><b>Male Speaker:<\/b> Have you bought it yet?<\/p>\n<p><b>Male Speaker:<\/b> But every single multifunctional printer has been terrible. I mean, just like it doesn&#8217;t really multifunction well.<\/p>\n<p><b>Male Speaker:<\/b> Mine has been awesome.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, this is the last question on this topic. It was, so like you said, you guys do a lot of your own JavaScript work and custom stuff, but what are like the libraries and stuff that you would use, like what are the things that you haven&#8217;t written that you guys rely on?<\/p>\n<p><b>Male Speaker:<\/b> jQuery?<\/p>\n<p><b>Male Speaker:<\/b> jQuery is the base.<\/p>\n<p><b>Male Speaker:<\/b> See, that&#8217;s really is just a, that&#8217;s DOM. It&#8217;s basically a better interface to your DOM. So, it&#8217;s not really a set of &#8212;<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So would you say you guys don\u2019t write your own middleware, I mean, in the sense that there is middleware for the UI, right, and jQuery is kind of like a way of making, dealing with the DOM and all this.<\/p>\n<p><b>Male Speaker:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> Because that\u2019s the point, yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> I mean, would you say like you use middleware a lot or &#8211;?<\/p>\n<p><b>Male Speaker:<\/b> If you call jQuery middleware, then yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So what are other things that you guys source from others?<\/p>\n<p><b>Male Speaker:<\/b> In terms of JavaScript, I mean, right now we\u2019re using that color chooser, it\u2019s a hacked version.<\/p>\n<p><b>Male Speaker:<\/b> Almost we have in there. I mean, there is a bunch of stuff that we load, I\u2019m trying to remember what we use it though.<\/p>\n<p><b>Male Speaker:<\/b> Well, we do that, we use the thing for color animation although that\u2019s not necessary in jQuery 4. See there is that we use the Low Pro, but then we\u2019re trying to get rid of that now.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> A part of it is, if you use third-party components and you have a problem, you have to read all of the code, understand what it\u2019s doing and that will fix the problem. If you go to yourself, you pretty much know what\u2019s going on and you can fix it, no problem.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, right.<\/p>\n<p><b>Male Speaker:<\/b> You raised a good point Mr. Cot\u00e9, because if you look at things that way, you could draw analogy between jQuery and Rails. We don\u2019t actually spend a whole, whole lot of time in Rails, right?<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> We spend a lot of time writing Gems or other Ruby libraries to talk to what we need to talk to. We just use Rails as kind of this way to manipulate the data we get from there.<\/p>\n<p><b>Male Speaker:<\/b> We use Rails basically in the URL Mapper.<\/p>\n<p><b>Male Speaker:<\/b> Pretty much.<\/p>\n<p><b>Male Speaker:<\/b> We probably did get away with Sinatra.<\/p>\n<p><b>Male Speaker:<\/b> We could have written \u2013 yeah absolutely.<\/p>\n<p><b>Male Speaker:<\/b> We could have written.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> When does Sinatra do?<\/p>\n<p><b>Male Speaker:<\/b> It is a really, really lightweight Ruby server.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> It solves the problem of mapping URLs to content.<\/p>\n<p><b>Male Speaker:<\/b> It\u2019s a micro &#8212;<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Kind of like a [?] for the Ruby.<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> Yeah, it\u2019s a micro web framework.<\/p>\n<p><b>Male Speaker:<\/b> It\u2019s a micro framework.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, yeah. So when you look at all the technology and the stuff you guys code day-to-day, would you say it\u2019s like &#8212; is it the same as it was like 12 or 24 months ago or is it like completely different? Like how often do you feel like you\u2019re cycling two things? Like I feel like to do it I like doing over-contextualize, I feel like back in the Java.net days like you wouldn\u2019t actually use new things very often. But it seems like nowadays, with some of my theory is, people are always \u2013 it\u2019s like framework fragmentation, so you\u2019re always using new stuff.<\/p>\n<p><b>Male Speaker:<\/b> You\u2019re just using new stuff.<\/p>\n<p><b>Male Speaker:<\/b> Even when I was doing .NET like a couple months ago, we would still write our own stuff.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> But for what.<\/p>\n<p><b>Male Speaker:<\/b> Control?<\/p>\n<p><b>Male Speaker:<\/b> But I mean what would you &#8212; like as opposed to using the stuff that you get from Microsoft or is this also like &#8211;?<\/p>\n<p><b>Male Speaker:<\/b> Maybe don\u2019t, for UI things, yes, definitely, you want to go on your own, but you do get to use most of the .NET framework. You get that for free and you can build from there, but you don\u2019t use components that are built with .NET in occupation.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right.<\/p>\n<p><b>Male Speaker:<\/b> I think that might be something very specific to both, Serial Solutions and Medialab to be honest, the companies that you two guys came from. The place that I was at before, that wasn\u2019t the case.<\/p>\n<p><b>Male Speaker:<\/b> So you have a lot of off-the-shelf stuff.<\/p>\n<p><b>Male Speaker:<\/b> A lot of stuff that I came with whatever I was working on.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So you are sort of extending existing &#8212;<\/p>\n<p><b>Male Speaker:<\/b> Yeah, absolutely.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Building something from the ground up.<\/p>\n<p><b>Male Speaker:<\/b> Right, right. I think that a lot of my colleagues, a lot of people that I know, kind of end up in that same pattern. We\u2019re talking about this little bit of dinner last night, talking about how the company that we\u2019re at now at, Serial Solutions, they have a special way with developers, and they allow a certain level of freedom that\u2019s actually pretty rare to find. They can have a lot of top-down architectural (Voice Overlap) like you will use these components for these types of things.<\/p>\n<p><b>Male Speaker:<\/b> Yeah, yeah.<\/p>\n<p><b>Male Speaker:<\/b> And I imagine you guys like that.<\/p>\n<p><b>Male Speaker:<\/b> Absolutely! Yeah. I mean, there is a lot of rope.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Sure.<\/p>\n<p><b>Male Speaker:<\/b> And it\u2019s easy to hang &#8212;<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, I know a lot of knots.<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> We carry a pocket-knife.<\/p>\n<p><b>Male Speaker:<\/b> That\u2019s right.<\/p>\n<p><b>Male Speaker:<\/b> But that\u2019s also a read and learning experience.<\/p>\n<p><b>Male Speaker:<\/b> That\u2019s right.<\/p>\n<p><b>Male Speaker:<\/b> And you have to learn fast.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So before we were recording, you were saying that you saw this pivot thing, which I have no idea what it is. But I think you\u2019re saying is restoring your faith in humanity or something?<\/p>\n<p><b>Male Speaker:<\/b> No.<\/p>\n<p><b>Male Speaker:<\/b> It\u2019s still at all times.<\/p>\n<p><b>Male Speaker:<\/b> It\u2019s literally the first thing in 15 years that Microsoft has produced that have been like, wow, I might actually consider getting an instance of Windows running.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So what is it, tell me what this pivot deal is?<\/p>\n<p><b>Male Speaker:<\/b> Well, I don\u2019t know if I\u2019m ready to give a demo.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> You don\u2019t have to give a demo, it\u2019s only audio here. So just tell me what\u2019s going on with this pivot?<\/p>\n<p><b>Male Speaker:<\/b> I\u2019m imagining the gathering. Basically it\u2019s a way to visualize data.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Oh, yeah, I\u2019ve seen this thing. Is this part of the Seadragon stuff? I haven\u2019t like &#8212; I\u2019ve actually &#8212;<\/p>\n<p><b>Male Speaker:<\/b> I think it\u2019s based on their technology.<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> I\u2019ve actually like red &#8212; I do &#8212; I track a lot of like big data and analytic stuff and I haven\u2019t\u2019 gotten around to checking out pivot in depth, but now that I\u2019m seeing it, I\u2019m remembering that I have.<\/p>\n<p><b>Male Speaker:<\/b> That\u2019s pretty cool!<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Oh, yes. So basically what it is, is Seadragon is &#8212; I forget what they &#8212; it\u2019s called Deep Zoom nowadays.<\/p>\n<p><b>Male Speaker:<\/b> Yeah. That\u2019s the Photosynth part of it.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, and it\u2019s a way of like &#8212; I mean, sort of canonical Deep Zoom, Seadragon, whatever example is, like what we just saw where you\u2019ve got all these little Magic: The Gathering Cards and you have the super zoomed out view, you might be seeing thousands of them and you can like keep zooming in at higher-and-higher quality on each thing.<\/p>\n<p><b>Male Speaker:<\/b> But the cool thing about pivot is, it lets you zoom out again as well. So when you drill down to an item and you go &#8212; you get the properties and you can select one of the properties.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So true to its name it lets you filter or pivot on various attributes of the data that you\u2019re seeing. So, like these cards like you just selected at green so now you can see the collection of all green cards. And I guess you could also see all cards involving goblins or something and stuff like that.<\/p>\n<p><b>Male Speaker:<\/b> Yeah, all these on the side are basically your facets.<\/p>\n<p><b>Male Speaker:<\/b> Right, that\u2019s what they call them.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> There is always all this fancy vocabulary of things, always love the facets. And so this, you are like, oh, and this is &#8212; they do this on Silverlight, I guess.<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And so you\u2019re thinking like now I need to get some Silverlight?<\/p>\n<p><b>Male Speaker:<\/b> Well, no I was just like, wow, that\u2019s compelling.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> And then you were telling me about this and right afterwards, I think you said HTML5 can do that, which is kind of funny.<\/p>\n<p><b>Male Speaker:<\/b> You even have to implement it.<\/p>\n<p><b>Male Speaker:<\/b> You have to roll up your sleeves, yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> I mean, you guys are pretty big HTML5 believers, right, would you say?<\/p>\n<p><b>Male Speaker:<\/b> Believers?<\/p>\n<p><b>Michael Cot\u00e9:<\/b> You all for it?<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Male Speaker:<\/b> We can\u2019t wait to move to it.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah, definitely.<\/p>\n<p><b>Male Speaker:<\/b> It\u2019d be nice. It\u2019d be nice.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, while we are on top, like Silverlight here, so we were kind of talking the other day how you have been using early editions of Visual Studio 2010, which is the big combo. So, what do you think? What were using it for?<\/p>\n<p><b>Male Speaker:<\/b> .NET development, ASP.NET.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah.<\/p>\n<p><b>Male Speaker:<\/b> I have to say, I was coming from 2008, I was pretty impressed. It feels snappier. The interface is nicer. They\u2019ve built in a bunch of re-factoring tools that you have to use slow external tools before.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> What were the external tools you used to use?<\/p>\n<p><b>Male Speaker:<\/b> ReSharper mainly.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Okay.<\/p>\n<p><b>Male Speaker:<\/b> I probably used only 10% of it, but the 10% that I used, I could not live without like looking up symbols, files, just not having to use the mouse and just being able to keep in the flow. I think they pretty much nailed it this time.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah. And are there good ASP.NET improvements or like what\u2019s going on in that area?<\/p>\n<p><b>Male Speaker:<\/b> I honestly could not tell you because we were still using ASP.NET 2.0 for our stuff. So I haven\u2019t been able to really dive into that. Although, I have been dabbling with Windows 7 trying to use some of their new UI components and they look a lot better than those stuff, like more like the Apple Cocoa.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, when you\u2019re looking at those new components, like what are you &#8212; and taking from like &#8212; what are some things you\u2019re kind of imagining would be good things to put in applications that Windows 7 gives you as far those components? Like what are things you\u2019d like to take advantage of, if you could?<\/p>\n<p><b>Male Speaker:<\/b> Yeah, in the Toolbar, when you right-click an icon, you get a whole list and you can pin it to the \u2013 you\u2019ve got all these talks in there, I think that\u2019s really neat.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> It\u2019s sort of like &#8212; I forgot what they call it, but it is like the contextualized task or something like that. And you can extend that, right?<\/p>\n<p><b>Male Speaker:<\/b> Yeah.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> So, instead of relying on like &#8212; it is always that hokey thing, as tend to services or something. It always seems like a place where there is a lot potential, but never really gets taking advantage of, because &#8212; I think it\u2019s because you have to know AppleScript, which seems terrible. But it looks like if you\u2019re probing something in Windows 7, when you get to this task list, you can basically build workflows in from the menu there, which is kind of interesting.<\/p>\n<p><b>Male Speaker:<\/b> Or even like recently used stuff for LAN application, not being &#8212; not having to drill down in the menus and just having it available from the toolbar.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Right, right.<\/p>\n<p><b>Male Speaker:<\/b> It just makes working with it too much faster.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah, that is interesting.<\/p>\n<p><b>Male Speaker:<\/b> You have to think less about how you\u2019re going to do it and you just do it. I think that\u2019s a big improvement in Windows 7 and APIs, you\u2019re building into that.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah. So do you do a lot of stuff in Visual Studios nowadays or it\u2019s just in the past?<\/p>\n<p><b>Male Speaker:<\/b> Nothing nowadays.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, did you like doing like Microsoft world development, what was that like?<\/p>\n<p><b>Male Speaker:<\/b> Now I\u2019m back in the Ruby world, I have to say Ruby, I miss it. It\u2019s not as dynamic and once you get used to that, it\u2019s hard to go back.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, so it\u2019s not necessarily that tools or whatever, it\u2019s sort of the characteristic of the language, like you like dealing with Ruby as a language versus the ASP.NET stuff or C# or the more statically type things.<\/p>\n<p><b>Male Speaker:<\/b> The thing I do like are the Compile-Time Warnings, the early catching of problems. But the amount of profits you get for having &#8212; just for having that, it\u2019s not worth in my opinion.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Yeah, yeah, well, that\u2019s great! Did you guys have anything else you want to do or pile on?<\/p>\n<p><b>Male Speaker:<\/b> [?].<\/p>\n<p><b>Michael Cot\u00e9:<\/b> As happened.<\/p>\n<p><b>Male Speaker:<\/b> As happened.<\/p>\n<p><b>Michael Cot\u00e9:<\/b> Alright! Well, thanks everyone for joining me in the inaugural Make All edition podcast episode, whizbang here.<\/p>\n<p>Total Duration: 26 Minutes.<\/p>\n<p>makeall001<\/p>\n<p>Transcribed by Tech-Synergy Page 1 of 16<\/p>\n<h2>End Note<\/h2>\n<p>While doing <a href=\"http:\/\/www.riaweekly.com\/\">RIA Weekly<\/a> I&#8217;ve been passing on some great chances to cover more general software development topics. Also, I&#8217;ve been falling behind on keeping RIA Weekly, well, <i>weekly<\/i>. Last week, I decided to kill two birds with one stone and start a new podcast. I&#8217;m calling it <code>make all<\/code> and if you think that&#8217;s even remotely funny, it&#8217;s probably a good podcast for you. Be sure to <a href=\"http:\/\/feeds.feedburner.com\/MakeAllPodcast\">subscribe to the podcast feed<\/a> to catch all the new episodes! As the name implies, I want it to be about all sorts of programming, coding, and the more nerdy side of software.<\/p>\n<p>I&#8217;ll still be doing <i>RIA Weekly<\/i> for sure &#8211; I&#8217;m just going to fold it up into this new podcast &#8211; a sub-show if you like. Hopefully this will mean more, regular content instead of the blockage I currently have. In truth, RIA Weekly has been trying to expand beyond its RIA beginnings for awhile and the more recent episode show that in an exciting way.<\/p>\n<p>If you&#8217;ve got some development topics you&#8217;d be interested in seeing, pass &#8217;em along. I&#8217;m looking to make this more of a variety show (lots of little segments) than my usual gonzo, long-form style &#8211; so I&#8217;ll be on the hunt for lots of little conversations in addition to the longer ones as in this first episode.<\/p>\n<p><b>Disclosure:<\/b> Microsoft is a client &#8211; see <a href=\"http:\/\/www.redmonk.com\/clients\/\">the RedMonk client list<\/a> for other clients mentioned.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this inaugural episode, I talk with the developers next door to RedMonk Austin about their use of Ruby on Rails as a front-end layer. We spend a lot of time discussing UI toolkit choices and customizing, JavaScript and Ajax coding, using rails as sort of glue-layer to their UI, and heavy GUI development. Additionally, we talk about Pivot and Visual Studio 2010.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,23],"tags":[],"class_list":["post-4476","post","type-post","status-publish","format-standard","hentry","category-makeall","category-programming"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/4476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/comments?post=4476"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/posts\/4476\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/media?parent=4476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/categories?post=4476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/cote\/wp-json\/wp\/v2\/tags?post=4476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}