Showing posts with label development environments. Show all posts
Showing posts with label development environments. Show all posts

24 November 2016

Links roundup: 4

  • Flavio Ribeiro et al. have released components of the video processing workflow at the New York Times to the open source community.
  • Adam Conner-Simons describes Gitless, developed at MIT. The tool is intended as a gentler introduction to the Git mindset—no stashing required.
  • Phil Sturgeon makes a succinct comparison between REST- and RPC-based APIs. One isn't better than the other; they're just different.
    • RPC-based APIs are great for actions (that is, procedures or commands).
    • REST-based APIs are great for modeling your domain (that is, resources or entities), making CRUD (create, read, update, delete) available for all of your data.

14 June 2012

Decentralized

For those of us silverbacks still making the transition to subversion, Diomidis Spinellis offers a short introduction to Git, its terminology, and its way of looking at the problem of distributed version control.

18 February 2012

Home base

booting upBack at Siteworx Reston after an extended stay onsite, and after a couple of moves and cubicle reconfigurations, here's what most of my work surface looks like now. Oh, and after receipt of peachy Valentine's Day flowers from Leta.

A really nice chair, a big Kensington trackball that they don't make anymore, a monitor and a half (the laptop), and a good-sized shelf for books above. Need to do something about that tangle of USB cables.

07 December 2011

dmr

Nice recap by Warren Toomey of the genesis of the ultimate under-the-radar project, Unix.
But [Ken] Thompson and the others helping him knew that the PDP‑7, which was already obsolete, would not be able to sustain their skunkworks for long. They also knew that the lab's management wasn't about to allow any more research on operating systems.

So Thompson and [Dennis] Ritchie got crea­tive. They formulated a proposal to their bosses to buy one of DEC's newer minicomputers, a PDP-11, but couched the request in especially palatable terms. They said they were aiming to create tools for editing and formatting text, what you might call a word-processing system today. The fact that they would also have to write an operating system for the new machine to support the editor and text formatter was almost a footnote.

13 October 2010

'N Sync

At this shop, a developer uses a Windows laptop to shell into a virtualized machine running Linux where the source code is compiled into a web application. Most of us use Eclipse as a development studio. I had set up my Eclipse to edit my working copy of the code base directly on the virtual machine, mounting it as an SMB network drive. But over time, I found that some serious latencies would occur sporadically--Eclipse would take several minutes to open a short file of JavaScript, that sort of hassle. So, after some cajoling from colleague Jared, I followed his lead and moved my setup so that my working copy is on my laptop's hard drive. So now, instead of an edit-build-test-think cycle, I have an edit-rsync-build-test-think cycle, but the edit step is much faster.

But I was faced with a new annoyance. Every rsync or ssh to the VM required me to type my password. (The other way with SMB, I just left a shell window open already logged in to the VM.)

(Hunh. I suppose I could have set up rsync to pull from the VM rather than push from the laptop. Never thought of that.)

Anyway, the team's wiki links to a helpful crib on how to make RSA keys to perform an automatic login with ssh, but my first efforts failed. Colleague Harold provided the missing piece. He checked /var/log/auth.log on the VM and found an error message that indicated the file permissions on my home directory were too open. We did a chmod 755 on my home directory, and I was in!

12 March 2010

DISP=(NEW,CATLG,DELETE)

Along time ago, when I was just getting started in this career, back in the days when an interviewer would take you to lunch at the Capital Hilton on 16th Street, I was trying to schmooze my way into a COBOL job. My interviewer knocked me around with some basic principles questions (like, "what's a pointer?") and then he went in for the kill:

Do you do your own JCL?


I understood the question, at least. And I answered truthfully that, no, I wasn't equipped for that, not yet. But what I kept to myself was, "JCL? How hard can that be? It's just a command language for batch jobs." (I had already mastered one DEC command shell and thought I knew nearly everything.) Dan Wohlbruck illustrates how naive I was.

I didn't get the job, of course, but nearly ten years later I finally made my acquaintance with OS JCL. We have since parted, but we have agreed to remain friends.

15 December 2009

All your database are belong to us

The current number of IEEE Annals of the History of Computing is loaded with tasty pieces: the theme is early DBMSs, and there are articles on the roots of Adabas, IDS, Total, IDMS, System 2000, IMS -- all those pre-relational acronyms that once filled the job listings for programmer/analysts. I once had limited familiarity with Adabas and IMS: in each case I was writing application code in COBOL and I used some glue-layer code (macros called Adamints, IIRC; and proprietary code written by AMS) to talk to the DB.

Plus, for dessert, Dan Murphy writes about the origins of TECO. Back in graduate school, the guy that turned over to me the project supporting the marketing research study tried to teach me TECO, but I bailed out and made do with SOS.

09 October 2008

Toolable?

Naomi Hamilton continues her randomly alphabetical interviews of language architects with a visit with Anders Hejlsberg, leader of C# development for Microsoft:
[I also learnt to] design the language to be well-toolable. This does impact the language in subtle ways – you’ve got to make sure the syntax works well for having a background compiler, and statement completion. There are actually some languages, such as SQL, where it’s very hard to do meaningful statement completion as things sort of come in the wrong order.

14 July 2008

My Toolbox

Back when I was a wee graduate student tapping away at a borrowed Texas Instruments Silent 700 terminal for beer money, the scope of my development environment was rather small. One language to code in (SPSS), one text editor (SOS—I tried to teach myself TECO and failed), the SPSS executive, and the DEC-10 command shell—DCL, I think it was. I have more gear to manage now.

Languages

My assignments in this Microsoft shop call for declarative and/or imperative code in the following languages:

  • C#: we're using version 2.0 of the .NET framework
  • SQL: both DDL and DML; we do most of our development against SQL Server, but we also support Oracle
  • HTML: the app itself uses XHTML 1.0 Transitional, and the generated surveys are HTML 4.0 Transitional
  • JavaScript: we don't rely heavily on JavaScript, at least not directly, but we do use it as a glue language
  • CSS
  • XML


We use the little languages regular expressions and XPath expressions. ASP.NET markup to declare a server control or to code a @Page directive is a little language too, but isn't it interesting that it doesn't have its own name?

We have legacy code that uses Delphi and XSL/T.

Compilers, etc.

At any given moment, my desktop may have windows open for the following tools. In the course of a week, it's almost certain that I will use all of these.

  • Visual Studio 2005
  • SQL Server Management Studio
  • Perforce Windows Client, for access to the source code repository

    Perforce's means for coding client specs is its own perplexing little language. We depend a lot on the context menu pick Create/Replace Using as Template...

  • Firefox 2, equipped with ColorZilla, Firebug, Flashblock, View Source Chart, and Web Developer
  • Internet Explorer 7, equipped with IE7Pro and IE Developer Toolbar
  • a VMware workstation running Internet Explorer 6, for more browser compatibility testing
  • Remote Desktop Connections to other servers
  • a paint program for managing screen shots: my GUI team lead likes Jasc Paint Shop Pro
  • UltraEdit: clunky like a Swiss Army knife with too many blades, but it handles .csv files that Excel can't, and it can make XML readable
  • any of two or three different file compression utilities
  • a command line


We're starting to use Team City for automated builds. Some people on the team swear by ReSharper, but I find that it just slows down my compile and test cycle. Every once in a while I'll need to pop open the Windows Services manager, or the IIS Manager to set up a new web site. My boss likes Beyond Compare, so it's installed on my machine, but I'm lazy and never bothered to learn how to use it; I depend on the default comparison tool provided by Perforce. Now that I look in there, I see that there's a lot of stuff in my Start Menu that I've never used. And sometimes I'll have a pattern-search chore than I can't use Visual Studio or Windows Explorer's Search for (maybe wading through web server log files), and then I'm glad that I have a copy of Windows Grep.

Third Party Controls and Libraries

For everything from managing Ajax interactions, to business graphics, to file-format translations, to fancy web controls, we license tools from ComponentArt, Dundas, Aspose, Telerik, and Steema Software. And, as I posted earlier, we built the Community Builder Module with DotNetNuke.

Communication

When I log in, Microsoft Outlook and AOL Instant Messenger automatically launch. I treat IM software as a necessary evil, as most of the rest of the team likes to use it.

We use FogBugz for bug tracking, and we've just started using its integrated wiki for documenting procedures, tracking issues that are more complicated than individual software defects, and advance planning. I really prefer wiki software that puts you in control of the final product (like MediaWiki, which powers Wikipedia), but we chose a tool that could be picked up by a broad base of users.

Lest we forget, for project specs and planning: Microsoft Office, primarily Word, Excel, and Project, with a smattering of Visio.

The Desktop

Sitting on my desk, holding up my telephone, is a PC running Windows Server 2003. The shelf over my monitors is holding about a dozen books, but I only pull out three or four of them. The one I go for most is Spainhour & Eckstein's Webmaster in a Nutshell. For more details, I rely on my Safari subscription. And, perhaps most importantly, a big desk pad loaded with paper.

15 February 2008

DotNetNuke: Early returns

We did our first code drop to QA last week on our first project that employed DotNetNuke. DotNetNuke is gaining popularity because it allows developers and administrators to take a Chinese menu approach to web site design. It's a framework for developing apps within ASP.NET: developers code modules of functionality (traditionally in VB.NET, but C# works just fine) which can be rearranged on web site pages without recoding.

Typically, a module is written as three user controls: a View, an Edit, and a configuration Settings combination view/edit. The View control might present a grid or list of entities (blog posts, say), and then the Edit control would be used to edit one existing entity or create a new one. Or the View module might just be a widget that encapsulates content from another source, like a stock ticker or a Google map, and there would be no Edit module.

DotNetNuke (ugly name, that) is open source, and the weak API documentation reflects this fact. The search engine is often overloaded, so I've taken to using Google to search within the site. And it's usually the case that a method or property just isn't described in sufficient detail. Sometimes the only hits are someone's unanswered question in a forum: "Does anybody know how this thing works?" There is a book from Wrox of middling quality, Professional DotNetNuke 4.

One of the services that the DotNetNuke framework provides is caching of module content. If your module is serving semi-static text (like a Welcome box) or slowly-changing data like automobile traffic reports, you probably don't need the content to be refreshed second-to-second, and the admin can configure an appropriate cache timeout. But if your module provides any interactivity and validation (for instance, a new user registration control that collects name and address), you really don't want anything to be cached. When you, the developer, prepare a module for deployment, you can specify a default cache timeout of 0 seconds. But you can't count on that value being used in all deployments. I predict that a lot of our support calls will center on caching issues.

We've also noticed some problems, not well-described, with ASP.NET validator controls running client-side, and so we've specified EnableClientScript="false" for everything.

25 June 2007

Stone soup

Joel Spolsky takes a little time getting to the point, but it's a good one: A top-quality software product is achieved incrementally:
Commercial software—the kind you sell to other people—is a game of inches.

Every day you make a tiny bit of progress. You make one thing just a smidgen better. You make the alarm clock default to 7:00am instead of 12:00 midnight. A tiny improvement that will barely benefit anyone. One inch.

There are thousands and tens of thousands of these tiny things.

This past week I began contributing to the development team's wiki: a compendium of product management information that includes everything from profiles of our competitors, to product plans for the next year or so, to resources for software engineers like tips on debugging. Just a few pages, but they will make the wiki just a bit more useful, and therefore make it just a bit more likely that other people on the team will contribute and read. And ultimately, our product line will be just a bit better.

13 June 2007

Version 22?

Good Lord, EMACS is still being actively maintained. Who knew?

Back in the day, I could hack my way to a couple of useful macros: reformatting tricks, and I seem to remember making a VT100 act like a Prime Computer block-mode terminal, something like that. But I never drained the cup of Kool-Aid, like using the editor to run the COBOL compiler and my regression test suite.

(Link via Compiler.)

09 April 2007

New FogBugz plugin

I've just downloaded the FogBugz for Visual Studio 2005 plugin, and I'm taking it for a spin. Generally, I don't mind switching windows to get things done, and I find the multiplicity of tabs sprouting up in a Visual Studio window to be one big fumble. But I thought I'd give it try, anyway.