Archive | Rants and Raves RSS feed for this section

The Go Language

9 Jul

I am primarily a Python and JavaScript developer  (I throw in an occasional C# application which is usually for creating REST endpoints on the server side). But recently, I have started looking more seriously at Go.  The Go language is not replacing JavaScript for me, but it could replace a big chunk of my Python and C# code.

I see two big advantages in using Go – besides being fast and the whole concurrency brouhaha:

  1. Cross platform
  2. No dependencies.

Before you yell that Python is cross platform too, let me explain. The same Go code runs on Windows, MAC and Linux. So does Python, right? Well, Go code compiles to binaries for each of the operating systems. This is a big deal for me and one of the reasons I like C#. I can just deploy the .exe and it runs. No command line. No .bat file to pretend it is an .exe. This brings me to the second advantage.

Everything you need to run a Go application is in the binary. C# is great, but I can’t count the number of times I deployed an application and the user had an old version of .NET and it didn’t work. With Python it’s even worse. My development machine has every third party library I need, but getting this setup on every machine I want to deploy to is a nightmare (Docker looks like it could help with this).

There are other things I like about Go – godoc, gofmt, goget. There are also things I don’t like (I am not proficient with)  – pointers.

In later posts, I will share my Go code. For now, here is the obligatory Hello World application.

package main

import “fmt”

func main() {
fmt.Println(“Hello, World”)

Why Your Org Should Develop Software

11 Jun

If only there was a way to move this to here and make this load automatically in there and all I have to do is press a button, then I could get straight to the part of my job that requires personal attention and knowledge and not have to keep doing the same ten steps over and over.

I hear this a lot. When someone has been in a position long enough, they quickly discover routine tasks that could be automated or ways to make them more efficient. What started as a desire to simplify my job and not waste time performing rote tasks turned in to a career out of writing simple applications to make everyone’s routine tasks easier.

This worked well for me in small companies that lacked resources – and were forward thinking. They didn’t know python from perl and didn’t care. They knew a task that took days now took hours – with no money being spent – and that was enough.

Enter the large organization.

The large organization buys its applications. They have accounting software, web servers, databases, Cognos, SharePoint, and GIS applications. When you have a task that needs to be accomplished, you use one of these applications. If you can’t, go buy something that will.

This line of thinking results in inefficient workplaces.

Joe needs to grab a field from a database and put it on a website. Great, our organization has software for that – Cognos. Does Joe really need a massive Cognos report to display data that really only takes 3 lines of code?  No. So what are his options? Build it or buy it.

These daily tasks that are needed by individuals are often too specific to be solved by off the shelf applications and also simple enough that they could be built in house – the sad part is they aren’t.

The Case Against In House Development

In house development is prevented for a variety of reasons. My favorites are:

Who will maintain it?

  • We can’t have an employee wasting time fixing applications, that costs money.
  • When the employee leaves, who will maintain it then?
  • When we need updates, who will do it.

What about security?

  • In House applications are not secure.

Who is accountable?

  • If we buy it, we have someone to blame when it all goes wrong.
  • We have someone to sue if something goes wrong.

The Case for In House Development

These reasons for not pursuing in house development seem reasonable enough, but we need to examine them and the alternatives.

Who will maintain it?

You need someone to maintain it and it should be your in house development team. It is not a waste of money. If the application results in efficiency gains, they need to be measured with the costs of building and maintaining the application. Who maintains vendor applications? The vendor. But do they maintain it for free? Not always. Need something fixed in your application because you got rid of your image server for ESRI Rest and now your vendor applications don’t work? Too bad. You broke it, not them. Pay, and maybe they will fix the application for you. Did you upgrade to IE 9 because of another application and now your primary doesn’t work. Oh well. Your vendor doesn’t have an IE 9 version yet. If you need a new feature, will your vendor add it? Will they charge you for it? What if your vendor discontinues the product? No support for you – unless you buy the new version or application.

What about security?

I hate this argument. I understand that you have no confidence in your in house developers but to think that because a developer works for a vendor somehow makes their applications more secure is absurd. Let’s just assume that they are more secure for now. Security is measured in what we know today.In 1995, developers were not thinking about SQL Injections. Their applications were secure – as far as they knew. Time proved them wrong. While many rewrote them, we still find these insecurities today. The point is, as technology changes, we see new security holes. While you can protect yourself with what you know today, protecting against the future is difficult. And if you need a fix, will your vendor provide it quickly and cheaply?

Security is not a function of company size and reputation. Microsoft produces software that has numerous vulnerabilities. Of course their software is huge, but so is the company. ESRI ArcServer 10 is subject to cross site scripting vulnerabilities. ESRI has no updates for 10 so you need to buy a newer version. But I haven’t been using 10 for very long and my budgets are tight. Can’t I just get a patch? Nope.

Software is hard and hackers are looking for ways to exploit it. You can code with what you know to be best practices but the key to security is fixing known issues as soon as they arise – not waiting on purchasing to approve a contract for a fix – if your vendor has got around to writing one.

Who is accountable?

Organizations like to be able to point the finger at someone else, but this doesn’t make you function better. If you are a government and are providing a service that doesn’t work, the public could care less who built it, they just want it to work. If they find out you paid a large sum of money for the complicated, buggy, requires a plugin application they are using they are going to be more upset that their tax dollars when toward it.

Go ahead, pass the buck, but your users don’t care. They want to get their jobs done, or interact with your organization. And if it has your logo on it, it’s you even if you didn’t build it. So if you are going to let a vendor control your image and reputation, good luck. At least you can spend even more money to sue them when it fails or when they lose all your customers social security numbers.

One word for you:

The feds paid millions for a website that was a complete failure. Nobody cared that the government didn’t build it. The government got the blame for hiring an inept vendor and for spending millions and getting nothing. Can you name the vendor? No, because even you don’t care – it was the governments fault. In response to this fiasco, the feds started 18F and the US Digitial Service – in house developers. But your organization doesn’t need developers because you’re special.


The best software is software you use.

The best software is software you use. Basecamp is a popular project management application that started out as the developers internal project management app. They wrote it for themselves. Now, over 15,000,000 people have used it. Git is another example. Git is a revision control system that was developed by Linus Torvalds for his work on maintaining the Linux kernal. It is the most widely used software management system.

Your organization knows what it needs. If it can build it, you will be better off. I am also a realist. I do not think you should build everything. But for the small tasks that make everyone more efficient, why not?


Data and Design

8 May

If you have read any of the posts on this blog, you should know I love data. But what you may not know is that I love architecture, design and a good sketch. I spent five hours getting Study For The War Coffer by Eugene Delacroix tattooed on my chest.


Often these two worlds collide. I came across a tweet today:

Mindlessly drawing with data? How dare she. I once thought it a good idea to write computer code that could read an architectural program and develop the floor plan automatically. While I still favor some of this thinking, I have had to think it through. And slowly I have come out against it, and I have sided with Tara on this issue.

There is something to be said for hand drawing. The lines made by a pen, with their varying weights, show movement in a still image. There is something beautiful about them. About the process of sketching. Freely moving your hand across the canvas. The AIA had a podcast on Didactic Drawing that really brought it all home for me. On a computer, scale can change. You can draw a hundred foot line and based on your zoom level (scale) it could be a millimeter long. On paper, your scale is fixed. The movement of your hand across the page lets you know how long the line is.

I am not against BIM. But without pre-sketching designs, these program make it easy to create boxes, squares and overall bland buildings, to draw without a set scale, to fully understand and feel the building you are creating.  To design with data is an idea I am still deeply attached to. But I think we walk a fine line between letting data inform design- on how people use buildings for example – to creating the design for us – as in my program example earlier.

Applications like Revit or Grasshopper make it east to start with a simple form – a box – and twist, pull, rotate and skew it to come up with a whole host of possible forms. The results are soulless – though some look really cool. I do not see the art in it. If we are just going to feed some data in to a model to generate a form and say “look at this cool form I created from using the coordinates of all tweets that had the word Gehry in it” then we might as well give up – though I find these kinds of experiments interesting.

Data is, of course, valuable for facility maintenance. I also find value in data on movements of individuals within buildings and with modeling designs for things like airflow, heat, sunlight, etc. These are the kinds of data that can inform design – or confirm that a specific design is a functional design.

I do not want to live in a City full of bland buildings, just as much as I do not want to live in a world full of monuments to the architect that are outrageously out of context. There needs to exist a balance of the art and the science, of architecture and data. And each needs to compliment the other.



Open Data Disclaimers and Terms of Service

7 Apr

I saw a tweet by @waldojaquith that commented on the State of NY Open Data Portals TOS. The TOS states that you cannot access the page

“…by using an automated device, script, bot, spider, crawler or scraper”

I can guess their intent is to prevent people from hitting the site with bots and overloading the server. But a device and script? This seems at best, too broad, at worst, ignorance as to how people will want to use the data. Furthermore, will I be prosecuted from doing so or will my IP address be blocked? Is this even enforceable? Can a government block a private citizen from a civic website?

This tweet made me curious about the city I live in – Albuquerque. I was dumbfounded by the content of their disclaimer/TOS. It read

“The City may require a user of this data to terminate any and all display, distribution or other use of any or all of the data provided at this website for any reason…”

Really? The City can call me and tell me to remove the bar chart of car thefts by month from my website because it is based on their data? Or, that I can no longer send the PublicArt.kmz file to someone?

I love Albuquerque Open Data. I find it quite useful and very good. So when the page says that

“The City makes no warranty, representation, or guaranty as to the content, accuracy, timeliness, or completeness of any of the data provided at this website.”

it makes me question the quality of the data. I get it, the data might be wrong, don’t hold it as gospel. Seems to be common sense to me. But this statement creates a distrust in the data. Is it authoritative? After reading the TOS, I would not take it to be.

If I were a gambling man, I would bet this is the work of the Legal Department. The same people that probably have email signatures saying if they send you confidential information by mistake you are in trouble for not deleting it. Yeah, I don’t think so Matlock. Saying it doesn’t make it true.

Government is made up of many departments. Those departments create a bunch of data. That data finds its way to an open data website probably run by the IT Department. The IT department just puts it out there and doesn’t really know anything about the data. They don’t make it so why would they stand by it? They point you to the department that made it. But that department probably didn’t care to release it in the first place and don’t want to be bothered exporting it or updating it. Or worse yet, fielding calls from citizens about it. But if someone is going to put out some data, there needs to be a level of trust or quality in the data.

Is it better to put out some data of quality by choice than to be legally obligated to provide it as the result of a FOIA request? I would imagine open data cuts down on a lot of those requests, saving a lot of time in money.

Once you put it out, please don’t think you have any control over what I do with it or who I send it to.

I do not know the answer so I am putting the question out there, and I did so on Twitter as well:

Has a City ever been sued for the quality of their open data?


ESRI JavaScript API and DOJO – I Hate You.

8 Nov

I am by no means a JavaScript expert and herein may be my problem, but I will rant anyway – if I am wrong, feel free to explain why or just troll me (I will approve your comment).

I hate the ESRI JavaScript API and I have finally figured out why – I do not like Dojo. I may be the old man yelling “get off my lawn!” but I like simplicity. I am not the only one. So does Vladimir Agafonkin – check out his talk at FOSS4G “How Simplicity Will Save GIS.” Vladimir is the creator of Leaflet.js. I love Leaflet. It is simple, but it can do complicated things. There are several plugins listed on the Leaflet website and you can always write your own.

The ESRI JavaScript API does not feel simple (their Leaflet.js plugin is. That’s right. They have a plugin for Leaflet too, so why Dojo?). Maybe it is just my lack of knowledge in Dojo and I am going through the 7 Stages of Learning Dojo. I refuse to learn Dojo. Not because there is anything wrong with Dojo, but because I think ESRI chose it for all the wrong reasons.

I think ESRI always goes down the wrong road and for the wrong reasons. When ESRI decided to get a “modern” web platform, what did they do? They released Silverlight and Flex APIs. Maybe you like them, I do not. Just like Dojo, it is not the technology I have an issue with but rather my issue is with why I think ESRI chose them.

Why Did ESRI Choose Silverlight, Flex and Dojo?

They wanted it to look pretty and have a bunch of widgets already built.

Therein lies the reason for my hatred of all three of those ESRI APIs. They did it for looks – bells and whistles – first and foremost. You don’t have to build everyhting, just provide the framework for users to do so. Leaflet has a way to create user controls: var MyControl = L.Control.extend …

It always seems like ESRI is in a hurry to put something out. I am almost surprised they didn’t just use GeoEXT.js. I mean, you can move a frame around the screen!

I will continue to use ESRI applications on a daily basis. I will also use Leaflet and the ESRI Plugin – I actually use Leaflet Vector Layers plugin more. I will not use the JavaScript API and I will not learn Dojo (at least anytime soon).

I will end the post on a positive note – I have read that ArcObjects is dead and in ArcGIS Pro, the .NET coding is much simpler. I found ArcGIS Desktop Explorer to have an easier API than ArcMap so if it is anything like that, I will be a happy camper.

Here is to ESRI abandoning Python, JavaScript and .NET and making us all program in Go.


Making Money With BIM

29 Oct

Once in a while I will post something nontechnical- a rant if you will. Today is one of those in a whiles. My experience in architecture has led me to believe that architecture firms care only about construction drawings and the tools that are immediately required to produce said drawings. That is being a bit harsh, they might throw in a render here or there. Research and development are nonexistent as is exploring new technology. Maybe I should restate my previous claim that architects care only about CDs and say that: If it ain’t billable, it ain’t doable. Architects also seem interested in selling their design services only. The economic downturn should have taught them that they possess more than design skills and there is money to be made in other areas – but I fear it did not. Let’s explore making money with BIM in light of these observations about architecture firms.

BIM is expensive – if you buy Revit – and has a learning curve. Training doesn’t come cheap and lots of firms want to hire a BIM specialist to train everyone to keep costs down. This just results in slower learning and inefficiencies in projects. Firms tend not to give the model away and can’t command higher commissions because they use BIM. The client only wants the CDs anyway so why would they pay extra for anything else? If all this is true, how do we make money with BIM?

The usual way to justify BIM is that you will save money by decreasing the number of change orders or competing your project faster. This is the old sell my design skills thinking. Why not leverage the model to sell additional services on the back end.

Architectural data a a service.

The architect has a model that can be updated throughout the lifecycle of the building. Repairs and maintenance on the building can be updated in the model and given back to the client. The BIM can be sold as a subscription based software package for facility management through a web based front end. The client doesn’t need, nor do they often want, the BIM in some proprietary format like .RVT. They want a schedule and maybe an image showing where something is. This makes the task even easier. 90% of a clients needs will be updated properties of the building – not changes to the geometry. Simplifying the job even further. Data is valuable. Data is worth $$. The architect holds more data about a building than the owner. Multiplied by the number of buildings the firm has built.

Why let a client go when a building is done? Architects need to expand their services. Architects hold data that is vital in operating the building for decades to come. The data was created and paid for during the design of the building. Any money made off of it after design is profit. How easy with all the tools available today to stand out and find additional revenue streams based off work that is already being done. It could be something as simple as handing over an HTML version of an owners manual – not a pdf. Or if a pdf, at least embed hyperlinks or other interactive features.

The future of architecture is data. Those that have it and can use it will win. Design is important, and always will be, but the services you can provide above and beyond that is where value resides for you and the client.

This concludes my rant. It is lacking in detail but it is my preliminary thoughts on the issue. The ideas need to be flushed out and elaborated on but the meat is there.

Architectural Criticism

29 Nov

Make no little plans. They have no magic to stir men’s blood and probably themselves will not be realized…Think big. –Daniel Burnham

Architectural Criticism is dead, and so is the architectural critic. We just don’t read about architecture. I pre-ordered Alexandra Lange’s book “Writing About Architecture.” I even wrote a short piece on it at The Urban Times. I care about the built environment but I am not an architect. And I know far too many architects who have no interest in architectural criticism. Who think Ada Louise Huxtable was Bill Cosby’s wife on the Cosby Show and that Bjarke Ingels wore a swan dress to the 73rd Academy Awards.

Bjork: Icelandic Singer

Bjarke: Danish Architect

If architects show little interest in the current state of their field, why should the rest of us? Because we are forced to live in it, to look at it, to work in it. Architecture affects our lives more than almost any other discipline. What gets built is of crucial importance to all of us. It is the role of the architecture critic to educate us, the non-architects, about what is built and why we should or shouldn’t like it.

Do I need Paul Goldberger to tell me whether a building is good or bad? While he may provide a context or background I was unaware of, I can come to my own conclusions as to the aesthetic of the building. If I think it’s ugly, Goldberger is not going to change my mind. What he, and so many other architecture critics are doing, is writing for each other, for the architect, for the intellectual. The rest of us don’t know all the jargon. I couldn’t tell you Bauhaus from my house. The jargon and the pseudo-intellectualism is the primary reason that we do not read about architecture.

Another reason that we don’t read architecture is because we don’t care about a building in Qatar or China – even if it is by Hadid or Gehry. Did you know Zaha Hadid is designing the new National Stadium in Japan? Did you care? Does this change the way you live your life? Do you now have a strange desire to see all buildings NURBy? Buildings go up in every city. The majority of which receive no fanfare. They are designed and built by local architects, that nobody could name. There are no movies about these architects. They are not celebrities. But they impact our lives. These are the architects we should care about. That we should be reading about. I spend more time in Home Depot than the Bird’s Nest Stadium. Should a critic write a review of Home Depot or Starbucks?

Beijing National Stadium: The Bird’s Nest

Architectural critics write about new buildings by starchitects. Goldberger, in a speech “Architectural Criticism in the Age of Twitter,” said:

Crowdsourcing is not the express train to wisdom. The most popular is not always the best. The new is not always easy to understand. And the last word will always be history’s. But this is always the critic’s challenge. In an age in which attention spans are ever shorter, it is the critic’s job to take the long view.

This sounds fantastic! The critic takes the long view. But does he? He reviews a building when it’s built, or maybe when it was designed and planned. But does he ever go back and re-review the building. Does the building function? How has the building aged? Does it still function as intended or was it modified? His long view is one of more thought – not just initial reactions and tweets of images. But this intellectual thought does not improve the building. In a few years we will all know what we think of the building and nobody will remember the critics review.

If a building is a failure, does criticism prevent the same mistakes in the future, or are we too late? A failure of a building is an expensive mistake that we must live with for decades. If criticism doesn’t educate us, it does nothing.

Pruitt-Igoe: A massive failure that lasted 20 years.

While we may not be reading about architecture, we are reading about the City and the Urban. Maybe this larger view is the future of architectural criticism. The design of buildings is important in what they contribute or take away from the system. Some critics and writers, Lewis Mumford and Jane Jacobs, have always looked at the surroundings of a building – the impact that it had on the city. Jane Jacobs also has more of a mass appeal than Paul Goldberger. The rest of us care about our surroundings. But we see them as larger than a single address. They are our cities and towns. This is the puzzle we are putting together and trying to understand.

Architects and critics need to expand their view. To look beyond the property line.

… think Big.