Sunday, March 21, 2010    
Home My Books Blog ColdFusion About Me Back    

Calendar
<< Dec 2003 >>
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Search

Categories
 • Acrobat (3) [RSS]
 • Adobe (90) [RSS]
 • AdobeMAX06 (45) [RSS]
 • AdobeMAX07 (59) [RSS]
 • AdobeMAX08 (66) [RSS]
 • AdobeMAX09 (39) [RSS]
 • AdobeMAX10 (1) [RSS]
 • AIR (219) [RSS]
 • Appearances (191) [RSS]
 • Books (72) [RSS]
 • CFEclipse (15) [RSS]
 • ColdFusion (1381) [RSS]
 • Data Services (34) [RSS]
 • Fish Tank (5) [RSS]
 • Flash (197) [RSS]
 • Flex (498) [RSS]
 • Home Automation (5) [RSS]
 • Jobs (116) [RSS]
 • JRun (14) [RSS]
 • Labs (43) [RSS]
 • LiveCycle (34) [RSS]
 • MAX (232) [RSS]
 • Mobile (120) [RSS]
 • Regular Expressions (17) [RSS]
 • RIA (21) [RSS]
 • SQL (40) [RSS]
 • Stuff (536) [RSS]
 • Tips (CF Studio) (80) [RSS]
 • Tips (CF) (795) [RSS]
 • Tips (Dreamweaver) (91) [RSS]
 • Tips (Flex Builder) (2) [RSS]
 • Using CF (162) [RSS]

Other BLOGs
 • Charlie Arehart
 • Lee Brimelow
 • Ray Camden
 • Christophe Coenraets
 • Sean Corfield
 • Mihai Corlan
 • Cornel Creanga
 • Mark Doherty
 • John Dowdell
 • Danny Dura
 • Enrique Duvos
 • Steven Erat
 • Kevin Hoyt
 • Serge Jespers
 • Adam Lehman
 • Duane Nickull
 • Miti Pricope
 • Andrew Shorten
 • Ryan Stewart
 • James Ward
 • Greg Wilson
 • Full As A Goog

RSS Feeds
 • Feed
 • Subscribe

Join my mailing list and find out about new books and other topics of interest.

Thoughts, ideas, tips, musings, and pontifications (not necessarily in that order) by Ben Forta ...
NOTE: This is my personal blog, and the opinions and statements voiced here are my own.

Viewing By Month : December 2003 / Main
December 30, 2003

Changing the JRun JRE

I recently needed to change the JRE used by JRun (to a newer version). No problem, just stop JRun, remove the old JRE, install the new one and restart JRun. Right? Nope. JRun stores the JRE path, and that needs to be updated to reflect the new JRE location. It took a few minutes to find where this information is stored, so in case anyone else needs this (or for the next time I need it myself), it is in {JRun root}/bin/jvm.config.

December 29, 2003

ColdFusion for IBM zSeries

Macromedia and IBM are pleased to announce the availability of ColdFusion MX Enterprise 6.1 for IBM zSeries mainframe. This integrated infrastructure is designed to provide the most productive, scalable and powerful web application platform for enterprise customers. This new product offering is targeted at companies looking to generate cost savings by consolidating servers onto the mainframe. The ColdFusion MX and IBM zSeries solution can help reduce infrastructure complexity and create an environment designed to be more flexible and responsive to the capacity requirements for large scale deployments. Details at http://www.macromedia.com/go/cf_zseries.

December 28, 2003

Mad Cows or Mad Policy?

I've been a Red Cross Blood Donor since the 80's, and have given gallons of blood. Blood donation is mildly inconvenient, not painful, and saves lives. It is something I feel very strongly about, and I regular encourage others to become donors too (especially in the winter when blood supplies run dangerously low). About 7 or 8 years ago I stopped giving blood, and instead become an aphaeresis donor. I had never even heard of aphaeresis before then, but a friend of the family needed bone marrow, I took the blood test and did not match, but I was an HLA match and was thus able to give him platelets. And that's how I learned about aphaeresis, a slightly more complicated form of blood donation that allows for the collection of specific blood components (most commonly platelets and plasma). Aphaeresis collection usually involves two needles, one in each arm, whole blood is drawn from one arm, passed through a centrifuge where the parts can be separated and collected, and then returned into the other arm. Like blood donation, the process is not painful, but unlike blood donation, it is very inconvenient as the process takes up to 2 hours (as opposed to 15-20 minutes for whole blood). Another important difference, donors must wait 56 days between whole blood donations, but aphaeresis donors may donate every 3 days if needed, and so aphaeresis donors often get emergency requests to donate when specific components are needed for specific patients (often the same patients to whom they just donated too). There are very few aphaeresis donors, and so my 39 aphaeresis donations were important, even more so as isolated blood components have a very short shelf life (far less than that of whole blood).

But I am no longer a donor. On my 40th visit to the local collection center, I was rejected. The reason? Fear of variant Creutzfeld Jacob Disease, more commonly known as Mad Cow Disease. New guidelines dictate that persons living for more than 3 months in England (and some additional locations) since 1980 are ineligible to donate so as to "keep vCJD out of the blood supply by avoiding collections from those who have been where this disease is found". This, even though (quoting from the Red Cross) "There is no evidence that vCJD can be transmitted from donors to patients through transfusion" (the EU is reported to have received the first report of infection via transfusion, but this has yet to be verified). So, as a potential Mad Cow victim I am no longer eligible to donate blood or platelets. Sound policy? I am not so sure; to date the number of Mad Cow victims worldwide is estimated at under 150, compared to over 20,000 leukemia related deaths in 2003 in the USA alone. So, because of a far-fetched and as yet uncorroborated concern that may affect a very small number of people, thousands of leukemia patients risk not having the platelets they need to help they fight infection while undergoing therapy or recovering from transplants, or risk having to receive donations from multiple donors which greatly increases the odds of serious immune system reactions. And that is just leukemia patients, and just aphaeresis. The Red Cross has announced that its blood supply is "critically" low, and at the same time turns away donors due to rather far-fetched concerns.

The truth is that this is not the Red Cross' fault. They have to follow Center for Disease Control guidelines, and when I contacted the CDC they basically said "sorry, that is policy for now, but it may change in the future". But I have to wonder, is this policy driven by science and sound thinking or by fear of litigation? After all, there have been recent lawsuits against Blood Services by recipients who tragically contracted HIV via contaminated transfused blood. (I am not going comment on the validity of these lawsuits, frivolous litigation is a subject unto itself, um, oops, I guess I just did comment on it). I believe that the CDC has done a serious disservice to those most needing help by literally throttling the blood supply. Put it this way, if a leukemia patient was offered platelets and told that "the donor comes from a country where 100 people (.00016% of the population) died from contaminated cows, but there is no evidence that the donor did indeed ingest a Mad Cow, the odds are less than 0.01% that he did, and even if he did there is no evidence to suggest that the disease would be passed on to you, so do you want the platelets?", what do you think the patient would say? Ironically, the Bone Marrow Registry does just this; although I can no longer give blood, I am still listed in the National Registry, and if I am ever found to be a match, the potential recipient will be given the choice of whether or not to accept my marrow; that makes lots of sense to me.

So why bring this up now? The US has its first mad cow (up in Washington State). Thousands of pounds of beef have been recalled in 8 states, the public is starting to panic, Japan has already banned US beef imports, and health officials are torn between the need to contain the potential risk and the fear of crippling the $40 billion a year beef industry (the impact on the economy and jobs in an election year must be terrifying the administration). But thus far I have yet to see what the CDC plans to do; should everyone living in the US be banned from blood donation too? That would be devastating, and is unlikely to happen. But maybe this new concern could force the CDC to rethink those guidelines that eliminated thousands of donors (including me). I hope so, as soon as they'll accept me, I'll be back in line!

December 26, 2003

Bluetooth Digital Camera

This was long overdue, take pictures on a Concord digital camera, and then send them to your PC (or PDA, or phone) via integrated Bluetooth (http://www.concordcam.com/products/wireless/wireless.htm). I have no idea if this is a decent camera or not, but I'd look at it just because of the Bluetooth. The other camera vendors need to do the same, and quickly.

December 24, 2003

ColdFusion Study Guide in Turkish

I received a package today, it contained copies of the Turkish translation of my "Certified ColdFusion MX Developer Study Guide" (I had no idea that it was being translated, so a pleasant surprise indeed). The translation is by Medyasoft (at http://www.medyasoft.com.tr/) who also translated my "ColdFusion MX Web Application Construction Kit".

December 22, 2003

Vertabase Project Management Application Now Runs on CFMX

Standpipe Studios has upgraded Vertabase Pro, its Web-based project management application. This new version runs on ColdFusion MX 6.1, and provides new graphical reporting capabilities, increased flexibility of individual task reports and improved data entry. Vertabase Pro, available in hosted and server-side installations, allows companies to keep better track of their resources, and facilitates streamlined communication on projects. More information is available at http://www.vertabase.com/.

December 19, 2003

Adding File Extensions to Dreamweaver

Dreamweaver features color coding and language awareness for lots of languages, all built in. Files are associated with a language by file extension, but what if you wanted to add an extension? I recently needed to edit an XML file as an XML file, but it did not have an XML extension, and so Dreamweaver treated it as text only (and would not even open it when clicking on in the Files panel). Some users save ColdFusion files with extensions other than CFM or CFML, and Dreamweaver won't recognize those by default. It took some digging around (and e-mailing the Dreamweaver team) to find out how to add my file extension, and now that I have it working I thought I should share the info in case others want to do the same. So:

1) The list of files that Dreamweaver edits are stored in Configuration\extensions.txt (under the Dreamweaver root). This is a plain text file, and you need to add the extension to two places, the "All Documents" line, and the specific file type line ("XML Files" for my file). Doing this allows you to click on a file in the Files panel so as to edit it.

2) You may have a second copy of this file in the user configuration directory (for example, mine is in C:\Documents and Settings\ben\Application Data\Macromedia\Dreamweaver MX 2004\Configuration), and you'll need to make the same changes to that file.

3) Next, edit file \Configuration\DocumentTypes\MMdocumenttypes.xml (this is the file that associates color coding with file extensions), locate the document type ("XML" in my case), and add the extension to the extension list.

4) And then restart Dreamweaver.

That should do it!

December 18, 2003

Real, Don't Blame Microsoft, Blame Yourselves

So Real Networks has jumped on the "we can't compete in the market, gee, let’s resort to litigation" bandwagon, and filed an antitrust suit against Microsoft (lots of details and links at news.com). As per the filing, Microsoft used "monopoly power to restrict how PC makers install competing media players while forcing every Windows user to take Microsoft's media player, whether they want it or not." And that is why people are not using Real? With all due respect Mr. Rob Glaser, I am one of those users who did download the Real Player, and even paid for a copy at one point. But that was a long time ago, I stopped when the player started becoming intrusive, popping up windows and ads, embedding itself in my taskbar despite my having removed it a short while earlier, nagging me to buy add-ons and newer versions, continuing to send me e-mail despite my having checked the "don't e-mail me" box, and worse. And that is nothing to do with Media Player being included with Windows, I installed QuickTime, and have installed Windows Media Player updates, so apparently there are indeed users who don't mind downloading, installing, and even paying for software, despite what comes pre-installed with the operating system. The reason I don't use Real now is because it is big and bloated and intrusive, and that Mr. Glaser is your problem, not Bill Gates' problem.


SearchDatabase.com: Databases NEQ Objects

SearchDatabase.com just posted an editorial on databases and object abstractions, stating quite emphatically that object design should not be mapped to database design (I agree). The author also lists three rules (all of which I agree with); keep your business rules in the database, use the proprietary features of your particular DBMS, and control your own SQL. This is not a ColdFusion article (actually, it is intended to be a Java Data Objects article, ColdFusion is mentioned in passing as one of several presentation layer options), but it is worth the read. See http://searchdatabase.techtarget.com/originalContent/0,289142,sid13_gci942025,00.html.

December 17, 2003

Geek.com: AMD Opteron Runs CFMX Faster Than Intel Xeon

Geek.com is running a story on how the AMD Opteron 248 outperforms Intel Xeon 2.8GHz MP in server benchmarks. So what has this to do with ColdFusion? The test was performed using a ColdFusion application. To quote: "In a two CPU head-to-head comparison running a stressful Web server script and a stressful database server script, the AMD Opteron devastated the Xeon MP, outscoring it by 45% in the ColdFusion MX server responsiveness test." I am not sure what is more interesting, the assertion that the much cheaper AMD Opteron runs ColdFusion apps quicker, or the ColdFusion MX was picked for the "stressful Web server script and a stressful database server script". Story is at http://www.geek.com/news/geeknews/2003Dec/gee20031217023126.htm.

December 16, 2003

Impressive Flash Video

See how 25 companies such as Comcast, Ben and Jerry's, and the Washington Post use Flash to integrate video right into their site designs. The video quality is very impressive. See http://www.macromedia.com/go/fvg/.


My Notebook Resurrected

As many of you know, my notebook fried (or baked, or grilled, or something like that) in Houston on the way to MAX 2003. Fortunately, the hard drive was fine, and so Macromedia IT dug up a similar machine and dropped my hard drive in it so that I'd have something to use. Last night I received my repaired T30, although "repaired" might not be the appropriate term, they replaced the motherboard, the PCMCIA slots, and the display, and updated the BIOS while they were at it (which basically means that they left the keyboard and case). I am sure that some shrink would have a field day with this, but there really is something very unsettling about not having your own computer, and I feel much better now.

December 15, 2003

Acura TL Bluetooth Support: 3 Week Report

I have been driving my new 2004 Acura TL with integrated Bluetooth for three weeks to the day (I blogged this car back in early November), and thought that I'd share my experiences thus far:

* First and foremost, this is the perfect use for Bluetooth, the integration is smooth and clean, and in the not so distant future this will undoubtedly be a standard feature on lots of cars.

* Pairing (the process of linking Bluetooth devices) was really simple (even easier then pairing my laptop or headset), press the mic button, say "phone setup pair" and follow the audio prompts, simple as that.

* Sound quality is great, I hear callers perfectly, and can use the car volume controls (stereo or steering wheel) to adjust sound volume. Remote parties all seem to hear me well (a couple of times I was asked if I was using a speakerphone or something, so callers occasionally can detect that I am using something other than my phone).

* Not all phones publish the same data via Bluetooth, I have a Sony Ericsson T68i which publishes cell strength, battery life, roaming status, and more, and so all of that information shows up on the car display (I still get a kick out of seeing the cell and battery indicators on the LCD display under the mileage, too cool!). Other phones publish less data.

* The voice control works very well, no training required, and when my daughter said "call home" it understood her even though it had recorded me saying "home".

* The phonebook is not as clean as it should be, managing entries feels clumsy, and too often new entries are rejected because the name (the recorded name) too closely resembles some other recording (or digits, or one of the predefined terms). I often have to record the same entry several times for it to "take", that's a pain.

* Bluetooth does not expose the phonebook on your phone, that is a shame, it would be nice to be able to synch the phone and car phonebooks. The truth is, I should be able to use the phone phonebook, if your phone has voice control (as the T68i does) and the headset already allows calling by saying the name, then the Acura should also pass that request to the phone the same way. This is technically doable, but the Acura does not support it (and only allows dialing local phonebook entries by name). This is a flaw, and one that I hope other implementations will fix.

* Yesterday the car would not detect the phone, and I had to re-pair the two (although, to be fair, I have to do that sporadically with my Sony Ericsson Bluetooth headset).

* All in all, I love this feature, and would recommend that any heavy cell phone user who is in the market for a new car seriously consider Bluetooth connectivity. Cell phones in cars is not a new idea, but not needing a specific phone or specific carrier or a specific phone number is very new and long overdue.

December 12, 2003

Bluetooth GPS Device

Navman Europe has released a GPS receiver that connects to your PDA via Bluetooth (so no dangling cable). Info at http://www.navman-mobile.com/product_details.php?id=AA005403. Now if they come out with software for other platforms (like Symbian) then I'm sold!


Wanted: Flash Advisory Board Members

The Flash Pro team is forming an advisory group to better understand the needs of developers and to determine how these needs should impact future product development. Those participating will have direct contact with the Flash team and other advisory board members and will be provided with free Macromedia software. The team is looking for developers from a wide variety of backgrounds and disciplines. If you are interested in participating, please complete an application found at http://www.surveymonkey.com/s.asp?u=68433340144.

December 11, 2003

Lots Of New Pics

I finally got around to updating the "On The Road" section of this site. Lots of new pics posted to http://www.forta.com/about/theroad.cfm.


Java Boutique Reviews Flex

One of the first reviews of Macromedia Flex, online at http://javaboutique.internet.com/reviews/macro_flex/.


Don't Name CFC Arguments "T"

This one was found by a ColdFusion user at Lockheed Martin who sent me a CFC that could not be invoked via SOAP, on every call it threw "Duplicate declaration of local variable t" errors. The problem? "t" is kind of reserved, the CFC to Java conversion code defines "t" as java.lang.Throwable. This is a bug, and has been filed as such, for now, just don't name CFC arguments "t".


What's Paul Colton Up To?

Paul Colton was one of the creators of JRun (originally by Live Software, later acquired by Allaire, and now part of the Macromedia family of products). I'd lost touch with Paul since he left Allaire, but French online magazine dotnet-fr is running an interview with him. As per the interview (which you can read at http://www.dotnet-fr.org/sections.php3?op=viewarticle&artid=61), Paul's new company, XAMLON, is creating a XAML runtime library for .NET 1.1.

December 10, 2003

SecretAgents.com HomeSite Add-Ons

Steve Nelson has created some really nice HomeSite (and ColdFusion Studio) add-ons. He has a documentation generator, a test generator, and several utilities specifically for Fusebox users. The full tool list is at http://www.secretagents.com/index.cfm?&fuseaction=tools.listtools.

December 6, 2003

Amazon.com Buys my Name

Back in September I blogged that I had discovered that Barnes and Noble had bought Google keyword sponsorship for the term "Ben Forta". Well, Amazon.com has just done them one better and bought keyword sponsorship for the word "Forta". Hey, maybe I should be auctioning off my name on eBay or something? Just kidding! In all seriousness, I am quite flattered by all of this (and more than a little amused too).

December 5, 2003

Christophe On the Flex Beta Process

Lots of you have been asking about the inner workings of the Flex beta program, and Christophe Coenraets explains things at http://www.markme.com/cc/archives/003936.cfm.


Manage Debugging IP Address Without CF Admin Access

Pre CFMX days, I wrote a CFX tag for adding and deleting debugging IP addresses without needing ColdFusion Administrator access. That tag simply manipulated the registry, and obviously it will not work with CFMX (which thankfully no longer uses the registry to store those settings). So, after some frustration yesterday and not being able to get to a ColdFusion Administrator when I needed to, I wrote a ColdFusion Component that allows you to list, add, and delete IP addresses from the debugging IP address list, without needing any access to the ColdFusion Administrator. Here is the code for debugip.cfc:

<!---
Name: debugip.cfc
Description: List, add, and delete ColdFusion MX debugging
IP addresses (without needing CF Admin access).
Usage: This is a CFC, use with <CFINVOKE> or as an
object. List returns current IP list as a
query, Add adds an IP address to the list, and
Delete deletes an address.
Author: Ben Forta, ben@forta.com
History: 12/04/2004, initial version.
12/04/2004, changed IsIP() to use a regex.
--->


<CFCOMPONENT>


<!--- Constructor --->
<CFSET fObj=CreateObject("JAVA",
"coldfusion.server.ServiceFactory")
>

<CFSET dbObj = fObj.getDebuggingService()>


<!--- List IP addresses --->
<CFFUNCTION NAME="List"
RETURNTYPE="query"
OUTPUT="no"
HINT="Get current debug IP addresses">

<!--- Init variables --->
<CFSET VAR i=0>
<!--- Create result query --->
<CFSET VAR q=QueryNew("ip")>
<!--- Loop through IP addresses --->
<CFLOOP INDEX="i" LIST="#dbObj.iplist.iplist#">
<!--- Add each one to the query --->
<CFSET QueryAddRow(q)>
<CFSET QuerySetCell(q, "ip", i)>
</CFLOOP>
<!--- And return the list --->
<CFRETURN q>
</CFFUNCTION>


<!--- Add an IP address to the list --->
<CFFUNCTION NAME="Add"
RETURNTYPE="boolean"
OUTPUT="no"
HINT="Add an IP address to the list">

<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes"
HINT="IP address to add">

<!--- Init variables --->
<CFSET VAR result=FALSE>
<!--- Check valid IP and not already in list --->
<CFIF IsIP(ARGUMENTS.ip)
AND (dbObj.iplist.ipList EQ ""
OR NOT dbObj.isValidIP(ARGUMENTS.ip))>

<!--- Add it --->
<CFSET dbObj.iplist.ipList=
ListAppend(dbObj.iplist.ipList, ARGUMENTS.ip)
>

<CFSET result=TRUE>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


<!--- Delete an IP address from the list --->
<CFFUNCTION NAME="Delete"
RETURNTYPE="boolean"
OUTPUT="no"
HINT="Delete an IP address from the list">

<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes"
HINT="IP address to delete">

<!--- Init variables --->
<CFSET VAR result=FALSE>
<CFSET VAR i=0>
<!--- Check valid IP and in list --->
<CFIF IsIP(ARGUMENTS.ip)
AND dbObj.isValidIP(ARGUMENTS.ip)>

<!--- Find it --->
<CFSET i=ListFind(dbObj.iplist.ipList, ARGUMENTS.ip)>
<!--- Delete it --->
<CFIF i>
<CFSET dbObj.iplist.ipList=
ListDeleteAt(dbObj.iplist.ipList, i)
>

<CFSET result=TRUE>
</CFIF>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


<!--- Internal function, check IP is valid --->
<CFFUNCTION NAME="IsIP"
RETURNTYPE="boolean"
OUTPUT="no"
ACCESS="private">

<CFARGUMENT NAME="ip"
TYPE="string"
REQUIRED="yes">

<!--- Init variables --->
<CFSET VAR result=FALSE>
<!--- Check if valid IP address --->
<CFIF REFind("^(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))$",
ARGUMENTS.ip)>

<CFSET result=TRUE>
</CFIF>
<!--- Return result --->
<CFRETURN result>
</CFFUNCTION>


</CFCOMPONENT>
Usage is simple, to add your current IP address you could do the following:
<CFINVOKE COMPONENT="debugip"
METHOD="Add"
IP="#CGI.REMOTE_ADDR#">

Or use the CFC as an object:
<!--- Get debug component --->
<CFOBJECT COMPONENT="debugip" NAME="dObj">

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">

<!--- Add an address --->
<CFSET result=dObj.Add("1.2.3.4")>

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">

<!--- Remove just added address --->
<CFSET result=dObj.Delete("1.2.3.4")>

<!--- Get and display IP list --->
<CFSET ipList=dObj.List()>
<CFDUMP VAR="#ipList#">
Enjoy!


PakTribune: Allaire Macromedia Merger Proves that Web is a Business Tool

PakTribune.com, the online version of the Pakistan Tribune, is running a story today on how, with the merging of powerful back-ends and usable front-ends, the true power of the Internet is just now becoming a reality. To quote: "One of the most recent signs of this new evolutionary phase is the merger of Macromedia, creator of Flash, and Allaire, creator of ColdFusion. This merger of user interface and data management is the picture perfect example of the dawn of a new era." Recent? Humm. The story, at http://www.paktribune.com/news/index.php?id=47100, turns out to be a semi-indirect and no-so-subtle ad for a specific product from a specific partner. Still, I kind of like the premise: CF+Flash=Web as a Profitable Business Tool.

December 4, 2003

Coming Soon: MAX 2004 Japan

MAX is heading to Tokyo, Japan. DevCon Tokyo last year was an incredible success, and I have every reason to believe that MAX (February 19-20, 2004) will be too. I am not sure exactly what I'll be presenting there yet, but if you're in that part of the world, I hope to see you there. Details are at http://www.macromedia.com/jp/macromedia/conference/.

  © Copyright 1997-2009 Ben Forta, All Rights Reserved