The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,862 other subscribers

Posts Tagged ‘software’

Nat Friedman – Instant Company

Posted by jpluimers on 2013/07/08

Totally forgot to post this at the end of 2011: it ended up in the drafts on 2012-12-13. So here it is: Nat Friedman at the start of Xamarin, comparing it to the time when they started Ximian.

It is fun to see which things are still there, and how they function now.

Nat Friedman – Instant Company.

Instant Company

Starting a company in 2011 is great. Back in 1999, when we started Ximian, the only tools a small startup could afford for their internal infrastructure were mailman and perl. It was ugly.

In 2011, the best tools on the planet cost $25/month, billed to your credit card. In just a few minutes you can have better infrastructure than most fortune 500 companies. It’s incredible.

So part of my first three weeks as CEO of Xamarin has felt like a trip to a toy store. Everyone loves window shopping, so here is a list of some of the tools we’re using to run our startup:

Google Apps. Mail, calendar, internal wiki, and shared document editing. Cost: $5/user/month.

Github Bronze. All of our code is stored in github’s private repositories. We love github. $25/month.

Asana. This is our task management tool and it’s fantastic. It’s the only distributed task system I’ve ever used that’s as fast as typing into a text editor. Asana is a new startup from Dustin Moskovitz, the founder of Facebook, and their product is in Beta. Our team loves using it and we predict great things for Asana as it rolls into launch.

Stripe. Stripe is a payment system designed for programmers. They have a beautiful API that’s so simple you can integrate it into your site in less than ten minutes. If you’ve ever had to use Paypal Payments Pro, you will have a deep appreciation for stripe. They don’t require a merchant account and their JavaScript API allows you to transmit credit card information directly from the customer’s browser to stripe’s servers without redirecting the user to a stripe.com page. This reduces your PCI compliance burden without hobbling your payment workflow. Stripe will power our online store and future transaction systems. These guys are in beta too. They’re going to take over the world.

Themeforest. When I first discovered themeforest I thought it would be a wasteland of machine-generated CSS and generic templates. But the site is full of hand-coded, cross-browser gems for $15-30 a pop. There’s no substitute for high-end design, but if you need to get a decent-looking site up quickly, it’s your best bet, and far cheaper than it should be.

IRC bip. We’re a distributed team, and having a place we can all hang out together online is very important to us. We wanted to find a for-pay, hosted group chat system that we loved, but campfire was too laggy, HipChat didn’t allow you to signin multiple places, and we didn’t feel we could trust a free solution like Convore. In the end we setup ngircd on a low-end, dedicated linode, configured to force SSL. A lot of us use bip as a proxy to maintain a persistent connection and show a backlog when you reconnect.

UnlimitedConferencing. For phone conferencing, we setup a $49/month account with unlimitedconferencing.com. We don’t pay a per-minute fee and international people can dial-in over skype to save money on long distance. It works fine.

Assistly. To handle incoming support requests from our future customers, we’ve looked at TenderApp, ZenDesk, and Assistly. We settled on Assistly after a support tech who’s worked with all three told us she prefers Assistly because it’s faster and easier to use. $69/support agent/month.

Linode and RackspaceWe use linode to setup quick Linux servers, and Rackspace for Windows servers. They’re cheap, reliable, and fast. If you need more power, a dedicated server from somewhere like 1and1 will do the trick. It’s surprising how far you can go on a $30/month linode. I’ve been using Linode for years and love them.

EFaxScanner Pro for iPhone, and PDFPen. It’s a dwindling fact of life that you need to send and receive faxes to do business. These three items have eliminated fax machines for us. We use EFax to forward incoming faxes to an email address. You can also use it to send faxes online. PDFPen is a mac app that blew me away when I took a JPEG and converted it to an OCR’d PDF in just a few seconds. You can also use it to mark up and to edit PDFs. And you can use Scanner Pro to convert a phonecam photo into a PDF that looks like it came off a scanner. You can even fax it directly from the phone (for a fee). It’s been a lifesaver.

BizSpark. BizSpark is Microsoft’s program to give startups free licenses to basically any piece of Microsoft software, including access to MSDN. If you plan to use any piece of Microsoft software, it’s a great program.

Ravix Group. One of the things we learned from Ximian is the value of signing on a part-time CFO from day one. At the very least you want a controller to keep your books in order and setup payroll and insurance, or you’ll have a big cleanup process later on. A higher-level finance person can also be very useful in helping you think through cap tables and convertibles notes and online billing and taxes and so on. We interviewed a bunch of individuals doing part-time CFO consulting for various startups. Their fees varied from a $6,000 monthly retainer plus 0.25% of post-series A equity, to $125/hour flat. In the end, we got some great references from Ravix Group, a firm that do outsourcing of financial and HR tasks for startups. They have a deep team and can assign various individuals to your tasks as appropriate. We’ve only just started working with them but it looks great so far.

Ropes and Gray. There’s no substitute for a great lawyer, and we have one of the best firms in the country with Ropes and Gray. Our team there is incredibly responsive, works weekends and late nights, and knows their stuff. Like working with a CFO, having a great lawyer has some benefits you might not expect: in addition to their legal expertise, they see a lot of deals, and can tell you what’s “market” and what isn’t. We never would have raised our Series B financing at Ximian without Ropes and Gray, and we’re happy to be working with them again.

I’m sure there are some other great products out there, but this is our list. Hopefully it’s helpful to someone who’s just starting to do the research. It really is a wonderful time to start a company.

17 June 2011

Show comments

Copyright © 1998 – 2011 Nat Friedman

Posted in Uncategorized | Tagged: , , | Leave a Comment »

Vintage Dave is working on a new multithreaded memory manager for Delphi that does not have a global lock

Posted by jpluimers on 2013/06/19

The comment thread at via [WayBack] The Oracle at Delphi » Give in to the ARC side (now at [WayBackplace 1 and [WayBack] 2) is very interesting.

So soon after writing a StackOverflow [WayBackanswer on Delphi Memory Managers yesterday, [WayBack] this one by [WayBack] David M (aka vintagedave) caught my eye:

This is unannounced at the moment, but I am working on a new memory manager which does not have a global lock, and is designed for multithreaded usage, including cases where memory is allocated in one thread and freed in another, and many threads are allocating and freeing at once. It also uses a more secure design than FastMM4, which may be important for world-facing code, eg web servers. It’s a personal project which I have not yet announced, but if you are interested (Allen, Guenther, others) please feel free to contact me at vintagedave@gmail.com.

I wonder if it is better than the multithreaded Delphi memory managers I mentioned in the answer:

As a side note:

One of the reasons for using FastMM is the excellent debugging capabilities. It looks like – though not free – DDDebug extends this a lot!

I found it in Wanted: live leak detection for FastMM – DelphiFeeds.com and [WayBackTURBU Tech » Blog Archive » Wanted: live leak detection for FastMM.

–jeroen

via The Oracle at Delphi » Give in to the ARC side.

Posted in Delphi, Delphi XE4, Development, FastMM, Software Development | Tagged: , , , , | 9 Comments »

Delphi XE4 Update 1 is out (via: Installing the Platform Assistant on a Mac – RAD Studio)

Posted by jpluimers on 2013/06/12

Over the last couple of days, I was asking myself

“wow, the docwiki has been updated for the Delphi XE4 update 1 version of the Mac edition of the Platform Assistant, how long until the official update is out?”

These URLs from Installing the Platform Assistant on a Mac – RAD Studio didn’t work for a couple of days:

Now they do!

The reason is that yesterday Embarcadero released 29446 Update 1 for Delphi, C++Builder and RAD Studio XE4 that fixes lots of stuff: Fix list for Update 1 for RAD Studio XE4, Delphi XE4 and C++Builder XE4.

Note it is not referring to Readme – Help Update 1 for Delphi and C++Builder XE4 – RAD Studio which got released last week as 29436 Help Update 1 for Delphi, C++Builder and RAD Studio XE4. It is the real Delphi XE4 Update 1.

The cool thing: finally it is a binary patch. Not fast about as fast as a full uninstall/reinstall), but at 336 megabytes a much smaller download than the 3.7 gigabytes of 29451 Delphi XE4 and C++Builder XE4 ISO (including Update 1).

Patched update versus full uninstall/install is a trade off:

  • Patch can take a couple of hours, and is CPU bound (too bad most of it is bound to a single CPU core)
  • Uninstall/reinstall is disk-speed and disk-size bound (make sure you have 15+ gigabytes free; an SSD improves this process a lot)

altd, ftpd, keeping off-line downloads Read the rest of this entry »

Posted in Delphi, Delphi XE4, Development, Software Development | Tagged: , | 2 Comments »

ASUS RT N66U did not update DDNS with changed IP addres

Posted by jpluimers on 2013/06/11

Today my router had an IP-address change, but didn’t update the DynDNS.org information in my My Host Services | My Dyn Account. Which meant I could not “phone home”, as I didn’t know the new IP-address**.

Lesson re-learned:

During initial router configuration, watch the router logs, as you might have accidentally updated the DynDNS.org by hand, not by your router

Had this in the ASUS Wireless Router RT-N66U – General Log:

Jun 11 08:01:53 notify_rc : restart_ddns
Jun 11 08:01:53 ddns: clear ddns cache file for server setting change
Jun 11 08:01:53 ddns update: connected to members.dyndns.org (204.13.248.111) on port 80.
Jun 11 08:01:53 ddns update: server output: HTTP/1.1 200 OK^M Date: Tue, 11 Jun 2013 06:01:53 GMT^M Server: Apache^M X-UpdateCode: X^M Content-Length: 7^M Connection: close^M ^M notfqdn
Jun 11 08:01:53 ddns update: malformed hostname: myhostname

The problem: hostname should not only be the name of the host, but the FQDN of the host. Read the rest of this entry »

Posted in ASUS RT-N66U, Network-and-equipment, openSuSE, Power User, SuSE Linux | Tagged: , , , , | 2 Comments »

FMX is not a VCL replacement

Posted by jpluimers on 2013/05/01

This is more elaborate English version of a short Dutch message I recently sent to explain the differences between VCL and FMX:

Do not regard FMX as a replacement for VCL: they are different kinds of frameworks.

VCL is a wrapper around Windows Controls. In itself, it has not much functionality: it exposes the underlying Windows functionality. The exception are data aware controls that provide basic functionality for writing data aware applications. There is a huge 3rd party market for extending VCL support, for instance providing extra Windows functionality, enriching data aware behaviour (look at all those fancy data aware grids), and many more.

FMX  is the FireMonkey X-platform framework. Major functionalities are vector based 2D, 3D drawing and controls, and support for styles and composition.

When introducing FMX in Delphi XE2, Embarcadero also introduced a new way of data binding that is shared with FMX and VCL. FMX extends this a bit to some basic data aware controls.

Gone are most of the platform specific features like drag & drop, full blown Windows Shell ListViews, etc. There are some controls that manifests themselves differently on each supported platform (like Pickers), but most of that is currently left to the 3rd party FMX component market.

So if you want FMX to replace VCL, then be prepared for quite some shopping in the 3rd party market.

CLX tried to be a full blown cross platform VCL replacement, but that didn’t work very well.

–jeroen

Posted in Delphi, Delphi XE2, Delphi XE3, Delphi XE4, Development, FireMonkey, OS X FMX, Software Development | Tagged: , , , , , , | 1 Comment »

Windows 8 and Windows 7 keyboard shortcuts (via: Brian Long, a blong, blong, blong road…)

Posted by jpluimers on 2013/04/26

Found a while ago that Brian Long wrote a few nice pages and posts on Windows keyboard shortcuts:

Thanks Brian

–jeroen

Posted in Keyboards and Keyboard Shortcuts, Power User, Windows, Windows 7, Windows 8, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | Tagged: , , , , , | Leave a Comment »

New Java update available: patch all your machines for yet another zero-day fix: Security Alert CVE-2013-1493

Posted by jpluimers on 2013/03/05

It starts to be not so funny any more: almost every week a new Java security update.

Time to update again, to stay secure and install the patch: Security Alert CVE-2013-1493.

On the funny side: Java 0day countdown.

–jeroen

via: Security Alert CVE-2013-1493.

Posted in *nix, Apple, Development, Java, Mac OS X / OS X / MacOS, Mac OS X 10.4 Tiger, Mac OS X 10.5 Leopard, Mac OS X 10.6 Snow Leopard, Mac OS X 10.7 Lion, OS X 10.8 Mountain Lion, Power User, Software Development, Windows, Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP | Tagged: , , , , | 2 Comments »

Please write dates and times so that everyone understands them, not just you. xkcd: ISO 8601

Posted by jpluimers on 2013/02/28

ISO 8601 was published on 06 05 88 and most recently amended on 12 01 04

ISO 8601 was published on 06 05 88 and most recently amended on 12 01 04

Boy, am I glad with the xkcd: ISO 8601 post and image on the right.

One reason:

Please write dates and times so that everyone understands them, not just you.

The alt-text of the comic is hilarious (ISO 8601 was published on 06 05 88 and most recently amended on 12 01 04) showing the confusion of using 2 digit years not knowing which field means which (I thin XKCD author Randall Munroe and Mathematics of the ISO calendar got some of the dates, see PDF search dates below).

I found out in the mid 1980s that people I was communicating with internationally (back then the internet was forming and you already had BITNET Relay chat and email) were using different date formats than I did.

Ever since that, I’ve used the YYYY-MM-DD format of writing dates, encouraging others to use as well and as soon as I found out that was a standard, started to evangelize ISO 8601 (there is an ISO 8601 category on my blog), which – at the time of writing this – had had revisions in 1998 (on 1998-06-15), 2000 (on 2000-12-15) and 2004 (on 2004-12-01).

A lot later I found out that back in 1971, this date format was a recommendation, and in 1976 already a standard. Not nearly as old as Esperanto though (:

Speaking about languages:

At the end of last century, after Delphi 5 added year 2000 support (which made the 16-bit Delphi 1 disappear from the box as the effort to prove the product including all libraries was year 2000 proof), Delphi went cross platform.

The Delphi team working on both Kylix 1 and Delphi 6, the also added a DateUtils unit which provides a lot of cuntionality, including support for weak numbers. The first test version always assumed week 1 was the one with januari first in it. As ISO 8601 also indicates how the first week of a year should be determined, a couple of people (Jeroen W. Pluimers, Glenn Crouch, Rune Moberg and  Ray Lischner) provided code that fixed this and a few other things in the unit. We even got mentioned by Cary Jensen!

That code is now also part of the RemObjects ShineOn library. That DateUtils unit is now on GitHub.
A Delphi XE version of the code (and a Delphi 2007 one) are now at NickDemoCode (Thanks Nick Hodges!).

Delphi is not the only environment having ISO 8601 support. XML has, .NET has, etc: it is now wide spread.
So follow your tools, and start using it yourself as well (:

Too bad the ISO 8601 standard text is not available publicly:

I remember the Y2K preparation era where the ISO-8601 standard was freely available at http://www.iso.ch/markete/8601.pdf, soon after the Year 2000, the PDF got locked behind a payment engine.
ISO suffers from heavy link rot too, for instance the ISO 3166 country codes used to be at http://www.iso.org/iso/prods-services/iso3166ma, but are now at http://www.iso.org/iso/home/standards/country_codes.htm. What about HTTP 303 or 302 redirect here guys?

Luckily people keep cached copies:

  1. “ISO 8601” “First edition” “1988-06-15” filetype:pdf
  2. “ISO 8601” “Second edition” “2000-12-15” filetype:pdf
  3. “ISO 8601” “Third edition” “2004-12-01” filetype:pdf

–jeroen

via: xkcd: ISO 8601.

Posted in .NET, Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 6, Delphi 7, Delphi 8, Delphi x64, Delphi XE, Delphi XE2, Delphi XE3, Development, ISO 8601, Power User, Prism, Software Development | Tagged: , , , , , , , , , , , , , | 10 Comments »

Adobe Photoshop 1.0 Source Code About 75% is in Pascal, get it from the Computer History Museum

Posted by jpluimers on 2013/02/15

Thanks Lennart Aasenden for sharing this on FaceBook: Mariuz’s Blog: Adobe Photoshop 1.0 Source Code About 75% is in Pascal.

This was back when I was already a professional Turbo Pascal for PC programmer, not yet a Mac programmer, but doing Pascal on VMS to assist a client in the scaleable font industry.

The 1990 version 1.0.1 of Photoshop code was written in Object Pascal, and based on MacApp.

Back then Apple’s Object Pascal was one of the few IDEs available to develop Macintosh software. Later on, you also had Turbo Pascal and THINK Pascal (which many Macintosh developers preferred, was later acquired by Symantec, and died). A big reason they liked it so much was the THINK integrated debugger, which was lightyears ahead of any Pascal product on any other platform.

Apple had great documentation, not only on their compilers and libraries, but also one that everyone should hav read: Apple Human Interface Guidelines: The Apple Desktop Interface: Inc. Apple Computer: 9780201177534: Amazon.com: Books.

The Adobe Photoshop 1.0 source code can be downloaded (for non-commercial use) from the Computer History Museum | @CHM : Adobe Photoshop Source Code page.

The source is a very interesting read, and a great comments on it by Grady Booch.

This is how everyone should think about their code.

–jeroen

PS: A nice introduction to Object Pascal for a Macintosh is at MacTech | The journal of Apple technology..

Posted in Delphi, Development, Object Pascal, Pascal, Software Development, Think Pascal | Tagged: , , , , , , , , , | 4 Comments »

Technical Debt: BBC News – Why banks are likely to face more software glitches in 2013

Posted by jpluimers on 2013/02/01

Yet another interesting article on Technical Debt: BBC News – Why banks are likely to face more software glitches in 2013.

Note that this is not limited to Banks. I’ve seen quite a few companies in the Financial domain, and they all suffer from it.

Even stronger: all companies I visited suffer from Technical Debt, including my own workplace, hence I created a special Technical Debt post category and tagged some previous posts with it.

It is hard to produce software without any Technical Debt, even though I try the best I can or am allowed to spend.

Therefore it is very important as a developer to be aware of Technical Debt, and help spread knowledge about it.

–jeroen

Posted in Development, Opinions, Technical Debt | Tagged: , , , , , , , | Leave a Comment »