I just discovered Delphree. As the site says, “Delphree goal is to encourage and provide support for Open Source development. Delphree activities are primarily focused on Delphi, but other Borland development platforms are supported as well.”
I read an article that talks about how e-mail is becoming an information database for people. I have been thinking a lot about this over the last year as I have become more dependent on the information stored as e-mail. I keep most e-mails I send and receive especially those related to White Peak Software. I keep every e-mail sent to and received from my wife. I keep the receipts from online purchases, and so on. I even have archives of e-mails that date back to the mid-90s.
It has reached a point were managing all this information is a struggle. Programs I use no longer meet my needs for managing the information I wish to store. And while certain add-in products for the program I use help, I still feel like there has to be a better way.
I have traveled to the far ends of the web searching for a program that will meet my needs. I found many programs that satisfy certain requirements but I have yet to find the one product that addresses all my needs. Or even 80% of my needs. What’s a poor software developer to do?
Well, this poor software developer has decided to take on a new challenge and produce a product that will satisfy the requirements I have for personal information management. This is by no means a simple task. This is not the type of program that I can crank out in a week or two and hope to start selling. The reality is that it will probably take a year or more to be as feature rich as I would like. But I believe this is something that White Peak can produce.
Fyi, the decision to produce this product explains why I have been toying around with Delphi over the last month. I personally believe there is no better development language for Windows development then Delphi.
It’s not often I’m blown away by a non-technical presentation but that’s what happened last night at the ICCA NYC Metro meeting. Jeremy Rawitz presented an “in brief” version of his “Breaking the Rules…and Close more Sells” talk. In my opinion, this was the best presentation to date since I started attending the monthly meetings.
Jeremy uses an interactive approach to get points across. The exercises started with breaking the group up into teams, but instead of saying “Pick 4 people” or “This group of people is Team 1, this group is Team 2” and so on the teams formed themselves.
Pictures of animals were hanging on the walls. Jeremy asked the attendee to go stand by the animals that you feel best reflect yourself. People stood next to an animal of choice and next thing we knew teams were formed.
There was an instance bond on each team since each team member already shared something in common, the belief that the animal best represented him or herself. While the focus on the presentation was on a new sells approach, I was immediately impressed Jeremy’s approach to breaking the group up into teams.
Things continued to get better from there. Teams did different exercises to understand the traditional sells process and the problems associated with it. Additional exercises and roll playing were used illustrating a new approach to sells, which felt like a more natural approach.
At the end of the meeting, I was left with wanting more. Jeremy’s presentation was only a taste of his workshop, which I can only imagine is most excellent.
Jeremy Rawitz will be speaking at tonight’s ICCA NYC Metro meeting on closing more sales. He will present new approaches that “will transfer the selling experience to one that produces win-win results every time.” Click here for more information.
For the last 4 months I have been doing lots thinking about White Peak Software and the direction I want to take the company. I even hired a business coach to help me work through ideas and gain more focus. What I find interesting is that I knew 2 years ago what type of company I wanted. I just didn’t realize it.
I have read a lot of business related books over the last 18 months. I have learned about networking, marketing, and building business relationships. I have talked to many entrepreneurs, some of which have become mentors for me. And I have become active with business related organization such as ICCA NYC, which has taught me a lot about the business of consulting.
With all this learning I feel like I have gotten an MBA without going to school.
While Delphi has the cool hotkeys for navigating source code - Alt+[Up Arrow] to find declaration and Alt+[Left Arrow] to return - it can only find the declaration within the current project. On the other hand, VS.NET can find the declaration across all projects within the solution. And since I partition my C# across multiple projects I have to say VS.NET’s find declaration feature is better than Delphi’s.
Last week Melanie and I made a very special trip to Memphis. My sister Renay and her husband Tommie were expecting the delivery of their first born. Renay was admitted to the hospital around 6:30 am and Baby Noah decided to make his appearance some 13 hours later. Family and friends were able to meet Noah only a short two hours later. It was amazing to think that Melanie and I both got to hold Noah only hours after being brought into this world.
Pictures available in the gallery.
I just discovered another useful key binding in the Delphi IDE. Alt+[Up Arrow] will take you to the declaration of the token and Alt+[Left Arrow] will return you to the previous position. These two bindings are very useful for navigating code. For instance, you can place the cursor on the name of a method anywhere in code, press Alt+[Up Arrow] to go to the implementation of the method, then press Alt+[Left Arrow] to return back to the original cursor position.
I start writing a Delphi application this morning to post entries to my blog. While writing the code, I needed to comment a block of code. VS.NET has a key binding for this, Ctrl+K+C to comment and Ctrl+K+U to uncomment, but I wasn’t using VS.NET. I was using Delphi, so I searched the help file for a list of key bindings. Unfortunately I did not find anything in the help file so I googled for the key bindings. And to my surprise I didn’t find much there either. A key stroke here and a key stroke there was all I found. I decided to search the IDE itself for key bindings by looking at menus and using trial and error. I did evenually find the key binding for commenting/uncommenting blocks of code (Ctrl+/) but not before typing up a list of other bindings, many of which are very useful. Here’s the list. Hopefully others will find it useful. Delphi 2005 Key Binding <table style="color: #336699" border="1" cellpadding="2" cellspacing="2"><tr><td>Keys</td><td>Binding</td><td>Remarks</td></tr><tr><td>Ctrl+K+I or Ctrl+Shift+I</td><td>Indent selected text</td><td> </td></tr><tr><td>Ctrl+K+U or Ctrl+Shift+U</td><td>Unindent selected text</td><td> </td></tr><tr><td>Ctrl+Shift+R</td><td>Start/Stop macro recorder</td><td> </td></tr><tr><td>Ctrl+Shift+P</td><td>Playback macro</td><td> </td></tr><tr><td>Ctrl+F11</td><td>Open project</td><td> </td></tr><tr><td>Shift+F11</td><td>Add file to project</td><td> </td></tr><tr><td>Alt+F11</td><td>Use unit</td><td> </td></tr><tr><td>Ctrl+S</td><td>Save file</td><td> </td></tr><tr><td>Ctrl+Shift+S</td><td>Save all</td><td> </td></tr><tr><td>Ctrl+Z</td><td>Undo</td><td> </td></tr><tr><td>Ctrl+Shift+Z</td><td>Redo</td><td> </td></tr><tr><td>Ctrl+X</td><td>Cut</td><td> </td></tr><tr><td>Ctrl+C</td><td>Copy</td><td> </td></tr><tr><td>Ctrl+V</td><td>Paste</td><td> </td></tr><tr><td>Ctrl+Del</td><td>Delete</td><td> </td></tr><tr><td>Ctrl+A</td><td>Select all</td><td> </td></tr><tr><td>Ctrl+F</td><td>Find</td><td> </td></tr><tr><td>Ctrl+Shift+F</td><td>Find in files</td><td> </td></tr><tr><td>Ctrl+R</td><td>Replace</td><td> </td></tr><tr><td>F3</td><td>Search again</td><td> </td></tr><tr><td>Ctrl+E</td><td>Incremental search</td><td> </td></tr><tr><td>Alt+G</td><td>Go to line number</td><td> </td></tr><tr><td>Ctrl+Alt+F11</td><td>View project manager</td><td> </td></tr><tr><td>Ctrl+Alt+P</td><td>View tool palette</td><td> </td></tr><tr><td>F11</td><td>View object inspector</td><td> </td></tr><tr><td>Alt+0</td><td>View window list</td><td> </td></tr><tr><td>Shift+Alt+F11</td><td>View structure</td><td> </td></tr><tr><td>Ctrl+Alt+B</td><td>View break points</td><td> </td></tr><tr><td>Ctrl+Alt+S</td><td>View call stack</td><td> </td></tr><tr><td>Ctrl+Alt+W</td><td>View watches</td><td> </td></tr><tr><td>Ctrl+Alt+L</td><td>View local variables</td><td> </td></tr><tr><td>Ctrl+Alt+T</td><td>View threads</td><td> </td></tr><tr><td>Ctrl+Alt+C</td><td>View CPU</td><td> </td></tr><tr><td>Ctrl+Alt+F11</td><td>View FPU</td><td> </td></tr><tr><td>Ctrl+Alt+V</td><td>View event log</td><td> </td></tr><tr><td>Ctrl+Alt+M</td><td>View modules</td><td> </td></tr><tr><td>Ctrl+F12</td><td>View unit</td><td>Works with active project only</td></tr><tr><td>Shift+F12</td><td>View form</td><td>Works with active project only</td></tr><tr><td>F12</td><td>Toggle form/unit</td><td> </td></tr><tr><td>Ctrl+Shift+E</td><td>Refactor: Rename</td><td> </td></tr><tr><td>Ctrl+Shift+V</td><td>Refactor: Declare variable</td><td> </td></tr><tr><td>Ctrl+Shift+D</td><td>Refactor: Declare field</td><td> </td></tr><tr><td>Ctrl+Shift+M</td><td>Refactor: Extract method</td><td> </td></tr><tr><td>Ctrl+Shift+L</td><td>Refactor: Extract resource string</td><td> </td></tr><tr><td>Ctrl+Shift+A</td><td>Refactor: Find unit</td><td> </td></tr><tr><td>Ctrl+Shift+F11</td><td>Project options</td><td> </td></tr><tr><td>Ctrl+F9</td><td>Compile project</td><td> </td></tr><tr><td>Shift+F9</td><td>Build project</td><td> </td></tr><tr><td>Ctrl+Shift+F9</td><td>Run without debugging</td><td> </td></tr><tr><td>F9</td><td>Run</td><td> </td></tr><tr><td>F8</td><td>Step over</td><td> </td></tr><tr><td>F7</td><td>Trace into</td><td> </td></tr><tr><td>Shift+F7</td><td>Trace to next source line</td><td> </td></tr><tr><td>F4</td><td>Run to cursor</td><td> </td></tr><tr><td>Shift+F8</td><td>Run until return</td><td> </td></tr><tr><td>Ctrl+F2</td><td>Program reset</td><td> </td></tr><tr><td>Ctrl+F7</td><td>Evaluate/modify</td><td> </td></tr><tr><td>Ctrl+F5</td><td>Add watch at cursor</td><td> </td></tr><tr><td>F5</td><td>Toggle breakpoint</td><td> </td></tr><tr><td>F1</td><td>Help</td><td> </td></tr><tr><td>Ctrl+K+n or Ctrl+Shift+n</td><td>Create bookmark</td><td>where n is some number between 0 and 9</td></tr><tr><td>Ctrl+n</td><td>Go to bookmark</td><td>where n is some number between 0 and 9</td></tr><tr><td>Ctrl+K+P</td><td>Print selection</td><td> </td></tr><tr><td>Ctrl+N</td><td>Insert new line</td><td> </td></tr><tr><td>Ctrl+O+O</td><td>Insert compiler options</td><td> </td></tr><tr><td>Ctrl+K+C</td><td>Copy |
paste selected text</td><td> </td></tr><tr><td>Ctrl+Shift+J</td><td>Sync edit mode</td><td> </td></tr><tr><td>Ctrl+K+W</td><td>Write selected block to a file</td><td>Great for saving code snippets to a text file</td></tr><tr><td>Ctrl+K+R</td><td>Read block from file</td><td>Inserts content from a text file</td></tr><tr><td>Ctrl+K+F</td><td>Upper cases sort of</td><td> </td></tr><tr><td>Ctrl+K+N</td><td>Upper case selected text</td><td> </td></tr><tr><td>Ctrl+Space</td><td>Code Completion</td><td> </td></tr><tr><td>Ctrl+Shift+Space</td><td>Code Parameter Insight</td><td> </td></tr><tr><td>Ctrl+Shift+K+O</td><td>Toggler gutter size</td><td>Seems to turn off code collapse feature</td></tr><tr><td>Ctrl+[left click]</td><td>Navigate to declaration</td><td>Click on the token name, i.e., variable, method, etc</td></tr><tr><td>Alt+[Up arrow]</td><td>Navigate to declaration</td><td>Same as Ctrl+[left click]</td></tr><tr><td>Alt+[Left arrow]</td><td>Return to the previous location</td><td>Used in conjunction with Alt+[Up arrow]</td></tr><tr><td>Ctrl+[Up/Down arrow]</td><td>Scroll page up/down</td><td>Does not move the cursor</td></tr><tr><td>Ctrl+Shift+G</td><td>Generate GUID</td><td> </td></tr><tr><td>Ctrl+J</td><td>Code template</td><td> </td></tr><tr><td>Shift+Alt+[arrow keys]</td><td>Colum select</td><td> </td></tr><tr><td>Ctrl+Shift+C</td><td>Complete class declaration</td><td> </td></tr><tr><td>Ctrl+T</td><td>Delete word right of cursor</td><td> </td></tr><tr><td>Ctrl+Shift+Y</td><td>Delete string right of cursor</td><td> </td></tr><tr><td>Ctrl+Shift+T</td><td>Add to do item</td><td> </td></tr><tr><td>Ctrl+Backspace</td><td>Delete work left of cursor</td><td> </td></tr><tr><td>Ctrl+F4</td><td>Close the page</td><td> </td></tr><tr><td>Ctrl+Enter</td><td>Open file at cursor</td><td> </td></tr><tr><td>Ctrl+/</td><td>Toggle comments</td><td> </td></tr><tr><td>Ctrl+Shift+Enter</td><td>Find reference</td><td> </td></tr></table> |