In my opinion this is the coolest feature since Regex Hero first launched. Soon this will be making its way into the paid version.
I still have some more work to do to perfect it. I want to make it a little more intelligent. And of course I need to provide tool tips for everything. Once that's done this should be a very helpful addition.
Sunday, January 31, 2010
Monday, January 25, 2010
Improper Highlighting Bug Fixed
Apparently I introduced a bug with the last major update to Regex Hero. The multi-threading I put in place had a few problems. On rare occasions you'd see highlighting that made no sense at all.
I'm doing multi-threaded auto-saving, multi-threaded benchmarking, and even multi-threaded initialization in Regex Hero. But I need to set aside more time to figure out a way to do multi-threading for the real-time highlighting more reliably.
For now I had to revert back to the old way of doing things. It may not be fast when dealing with massive amounts of text. But at least it's reliable.
I'm doing multi-threaded auto-saving, multi-threaded benchmarking, and even multi-threaded initialization in Regex Hero. But I need to set aside more time to figure out a way to do multi-threading for the real-time highlighting more reliably.
For now I had to revert back to the old way of doing things. It may not be fast when dealing with massive amounts of text. But at least it's reliable.
Sunday, January 24, 2010
Account Recovery with OpenID
I made some improvements to the login system this weekend. The biggest improvement is the new ability to recover an account when you can't login through your primary OpenID provider. I asked a question on StackOverflow a couple months ago about how this should be implemented. This is something I've been meaning to do for awhile but on Friday there was a sense of urgency as there were some peculiar issues with MyOpenID.com occasionally preventing you from authenticating.
So I made a video to explain OpenID as well as the new account recovery feature:
I am pretty happy with the way things turned out at this point. I've been using OpenID logins on Regex Hero for several months now. The excellent DotNetOpenAuth project has simplified things from my end tremendously. And now that this account recovery feature is in place I can sleep a little easier.
So I made a video to explain OpenID as well as the new account recovery feature:
I am pretty happy with the way things turned out at this point. I've been using OpenID logins on Regex Hero for several months now. The excellent DotNetOpenAuth project has simplified things from my end tremendously. And now that this account recovery feature is in place I can sleep a little easier.
Sunday, January 17, 2010
New Videos Section, Improved Responsiveness, and Better Memory Efficiency
Videos
After I created the new library section which allows voting and comments I now have some very useful pieces to build upon. So this weekend I created a new videos section to complement the library. To start off with I created a video to demonstrate the process of writing a Strong Password Regular Expression. I decided to host the videos myself and use a Silverlight video player. The player I used is open-source and very slick. I made a few modifications to it for my own use. I primarily worked on the media controls auto-hiding behavior and I think I finally have it the way I want it.
Improved Responsiveness
While that would ordinarily be a productive weekend, I've been meaning to make a couple technical improvements to the tester for some time now. The first issue is a general slowness when you're dealing with a huge target string with real-time highlighting on. The trouble is that the application has to run the regular expression, calculate the positions to highlight, and update the GUI after every keypress. Ordinarily this would be very responsive. However, when the target string is over 100,000 characters long or so you might start to notice it slow down and even prevent you from typing as fast as you'd like. So I've added some multi-threading to the app utilizing a BackgroundWorker. I had to write this very carefully to get the most out of it, but I think it's working quite well. The benefit here is that the real-time highlighting won't slow your typing nearly as much as it did before.
Better Memory Efficiency
Lastly, I made yet another update to my undo/redo system. I've talked before about how I had to implement my own multiple undos/redos for Regex Hero because Silverlight didn't ship with that feature. Well, in order to improve efficiency I've made a small change to the way it works. It'll now add undo history on the KeyUp event. This means that if you hold down Enter, for example, to create a bunch of line breaks then the undo history will not record every line break individually. Instead, it'll only record the history after you release the key. This is hard to measure because it depends so much on your typing habits, but this should reduce memory consumption significantly.
After I created the new library section which allows voting and comments I now have some very useful pieces to build upon. So this weekend I created a new videos section to complement the library. To start off with I created a video to demonstrate the process of writing a Strong Password Regular Expression. I decided to host the videos myself and use a Silverlight video player. The player I used is open-source and very slick. I made a few modifications to it for my own use. I primarily worked on the media controls auto-hiding behavior and I think I finally have it the way I want it.
Improved Responsiveness
While that would ordinarily be a productive weekend, I've been meaning to make a couple technical improvements to the tester for some time now. The first issue is a general slowness when you're dealing with a huge target string with real-time highlighting on. The trouble is that the application has to run the regular expression, calculate the positions to highlight, and update the GUI after every keypress. Ordinarily this would be very responsive. However, when the target string is over 100,000 characters long or so you might start to notice it slow down and even prevent you from typing as fast as you'd like. So I've added some multi-threading to the app utilizing a BackgroundWorker. I had to write this very carefully to get the most out of it, but I think it's working quite well. The benefit here is that the real-time highlighting won't slow your typing nearly as much as it did before.
Better Memory Efficiency
Lastly, I made yet another update to my undo/redo system. I've talked before about how I had to implement my own multiple undos/redos for Regex Hero because Silverlight didn't ship with that feature. Well, in order to improve efficiency I've made a small change to the way it works. It'll now add undo history on the KeyUp event. This means that if you hold down Enter, for example, to create a bunch of line breaks then the undo history will not record every line break individually. Instead, it'll only record the history after you release the key. This is hard to measure because it depends so much on your typing habits, but this should reduce memory consumption significantly.
Categories:
Development / Technical,
Release Announcements
| Reactions: |
Saturday, January 16, 2010
SQL Server Didn't Start This Morning
I apologize for the downtime this morning.
ORCS Web took the virtual dedicated server down early this morning for some security patches. As usual they are really good about being proactive with server maintenance. And fortunately they typically choose a time when nobody's really using the site anyway. However, when the server came back up this morning the SQL Server instance didn't. So they are investigating why that is so it won't happen again.
UPDATE:
I just got word back from ORCS Web:
"I changed the server to 'Automatic (Delayed Start)' which usually fixes this problem. SQL will sometimes not start if there are not enough resources available, delaying the start generally resolves that problem."
So hopefully that'll fix it.
ORCS Web took the virtual dedicated server down early this morning for some security patches. As usual they are really good about being proactive with server maintenance. And fortunately they typically choose a time when nobody's really using the site anyway. However, when the server came back up this morning the SQL Server instance didn't. So they are investigating why that is so it won't happen again.
UPDATE:
I just got word back from ORCS Web:
"I changed the server to 'Automatic (Delayed Start)' which usually fixes this problem. SQL will sometimes not start if there are not enough resources available, delaying the start generally resolves that problem."
So hopefully that'll fix it.
Wednesday, January 13, 2010
Improving the Library
I've been spending some time the past several days working on a new page of the site, the .NET Regex Library. I wanted to set the groundwork for this section of the site so that it may grow into something substantial. So I borrowed some ideas from StackOverflow by incorporating a rating system. And then I added the ability to add comments as well. At some point it's going to require a search engine, and for that I already have some ideas from another recent project. The idea then is that the order of the search results will be based of votes and relevance, hopefully making it much easier to find what you're looking for. The same search engine will make its way into the Regex Hero tester itself.
Anyway, allow me to back up a bit. The regular expressions in the library were all created within Regex Hero. As such they have been tested with the .NET regex engine, which is kind of cool. On top of that, anyone can contribute to this library, which is very cool. You must create a log in if you haven't already. And then you can save an expression inside Regex Hero with "include in public library" checked. It's as simple as that.
Anyway, allow me to back up a bit. The regular expressions in the library were all created within Regex Hero. As such they have been tested with the .NET regex engine, which is kind of cool. On top of that, anyone can contribute to this library, which is very cool. You must create a log in if you haven't already. And then you can save an expression inside Regex Hero with "include in public library" checked. It's as simple as that.
Saturday, January 2, 2010
Year in Review 2009
I spent most of my weekends in 2009 working on Regex Hero. I've enjoyed working on it more than any other project last year. Regex Hero also has the distinction of being the first product I've ever sold on my own.
I gave away 105 licenses during a promotional giveaway, and then I sold one copy in December. As I promised, I gave the proceeds from December (all $14.11 of it) to the Alliance for Children Everywhere organization. They'll use it wherever it's needed most. And although it isn't much, I know every little bit helps.
Of course I wish I had done better in December. But I think I know why I didn't. There still isn't enough incentive to buy Regex Hero. There are some very cool features I'm working on which should help. Some of these will only be available to licensed customers. I'm constantly trying to figure out which features should be free and which shouldn't. Those decisions can be tough. But as always, I'll blog about every feature as I release it.
This is still a part-time gig for me. That's one thing I hope to change this year. If I have it my way I'll begin dialing back my day job this year so that I may focus more on Regex Hero. When that happens, I'll be getting a lot more done.
I gave away 105 licenses during a promotional giveaway, and then I sold one copy in December. As I promised, I gave the proceeds from December (all $14.11 of it) to the Alliance for Children Everywhere organization. They'll use it wherever it's needed most. And although it isn't much, I know every little bit helps.
Of course I wish I had done better in December. But I think I know why I didn't. There still isn't enough incentive to buy Regex Hero. There are some very cool features I'm working on which should help. Some of these will only be available to licensed customers. I'm constantly trying to figure out which features should be free and which shouldn't. Those decisions can be tough. But as always, I'll blog about every feature as I release it.
This is still a part-time gig for me. That's one thing I hope to change this year. If I have it my way I'll begin dialing back my day job this year so that I may focus more on Regex Hero. When that happens, I'll be getting a lot more done.
Subscribe to:
Posts (Atom)
