Jump to content

MSPJ

Members
  • Content Count

    100
  • Joined

  • Last visited

Community Reputation

2 Neutral

About MSPJ

  • Rank
    member

Profile Information

  • Industry
    Pharmaceutical
  • Gender
    Male
  • Location
    Boston, MA
  • Interests
    Astronomy, Photography, Martial Arts, Amateur Radio (KB1PIE)

Contact Methods

  • Website URL
    http://www.fhcmsoftware.com

FileMaker Experience

  • Skill Level
    Intermediate
  • FM Application
    16 Advanced

Platform Environment

  • OS Platform
    Windows
  • OS Version
    Win 10

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. This is obviously a very old thread. I love Evernote, but I've never felt security was good enough for business information. If love to use it for more but i mostly use it as a place to save stuff i find on the web .
  2. Fitch - happy to give something small back, I've gained so much from these forums. Also I've been jealous of all the developer tools available for conventional languages, so I'm always on the lookout for these kinds of things. If FMI would offer either a true ide for scripts, calcs, etc or an easier way to interface, or even go back and forth to pure text, we could use merge and branch tools. I'll do another post on what I've come up with in that arena. Olger - I remember trying draw.io, as well as a few other web-based apps. Don't remember now why i rejected it. Is there a subscription cost? I still prefer desktop software when it's a good option.
  3. I thought it might be helpful to offer a series of posts on tools I've found helpful (or, not helpful, in some cases). Some of these will be of use primarily for newer developers, but perhaps others will be of more general interest. This first post will focus on tools for documenting the development process and associated decisions. As I've learned filemaker and developed my solutions, I've found myself looking for a way to record my process - especially regarding the relationship graph. I find the sticky notes woefully inadequate for what I'd like to record: why I created a table occurrence group, what scripts relate to it, what assumptions were involved, etc. (I freely admit that this could be an indicator that my relationships are not sufficiently intuitive - perhaps others don't need additional descriptions). Ideally, I'd also like to be better able to document changes to the graph over time. Scripts, calculations, and CFs can certainly be more easily documented through comments - but these are still isolated. I can open up each calculation and read the comments -but I can't in one place describe which calcs, scripts and CFs were intended to work together for a particular function. I also wanted a better way to describe what I had done at a more overview level, and why I had decided to do something one way and not another way. This falls under the category of Architectural Knowledge Management, or Architectural Decision Recording. And I hoped to be able to tie all these different pieces together in some reasonably intuitive fashion. So all that said - here's a list of what I've tried and how well they've worked for me. Hopefully this will be helpful to some folks. I'll start with what I've found most helpful and mention the less successful ones after. 1. Enterprise Architext (Sparx) - this is a multipurpose UML modelling tool . It's quite affordable compared to most other such tools and very flexible. The learning curve is fairly steep - though if you have a lot of UML experience, you'll just need to learn the quirks of EA. You can create conceptual, logical and physical entity relationship diagrams or do database modelling, and re-use tables. Initially, I tried to recreate my structures in some detail, entering columns (fields), and creating specific connections. This ended up being much too time-consuming, and it was hard to model the idea of table occurrences effectively. I found it more helpful to create diagrams that documented key elements of relationship groups at a more conceptual level. EA allows many ways to add documentation - free floating notes, notes attached to elements, detailed documentation within elements, configurable tags and stereotypes, or connected external documents. It also allows creating maintenance elements for tasks, defects, issues and many others. An addin allows integration with Trac. (I initially used EA for bug tracking along with Trac – but I’ve now switched to Target Process, as described in another post). It is also an excellent tool for requirements, features, user stories etc – which can be tied to other elements (such as models of relationships). EA also supports a variety of approaches to version control. In addition, there are free addons to EA that allow more sophisticated architectural issue logging and decision recording, allowing for structured logging of problems, context, options considered and reasons for the chosen solution. Here are links for two of them. The decision architect add-in is no longer updated and does not work perfectly with the current version of EA but I’ve still had some luck with it. https://github.com/IFS-HSR/ADMentor/releases https://community.sparxsystems.com/white-papers/879-documenting-software-architecture-in-enterprise-architect The primary disadvantage of EA is effort – you need to invest time in learning it, configuring it to match your process and needs, and then maintaining it with enough discipline to remain useful and up to date. The big advantage of EA – if you have the time and patience – is the ability to use one tool to model and link user stories, use cases, features, requirements, releases, database structures, decisions and considerations, issues, defects, tasks linked to elements, change history, and more. I’ve also pasted in some calculations that required more explanation and scripts (you need to find a way to get the script into a pure ascii version that will be readable – I think I used FM Perception as an intermediary. Again - a lot of work.) If you need to generate formal documentation, again EA is incredibly powerful – and very time-consuming to master. 2. OneNote + SnagIT + ADR Templates A less structured but less time-consuming approach would be using a free-form tool like OneNote with some help. Rather than trying to recreate models of key elements of the relationship graph, one could grab screenshots of TOGs from the relationship graph and annotate them directly with something like SnagIt. Those could be then pasted into OneNote, which also offers simple tagging and excellent search. One could use sections and sections groups to document the graph, and another section to document architectural decisions (which could be hyperlinked to the TOG diagrams within OneNote). There are many templates available for those looking for a little more structure in their decision recording. See here for a good source: https://github.com/joelparkerhenderson/architecture_decision_record#how-to-start-using-adrs-with-tools If you use Git, there are also some Git tools for this purpose. Up until now, I’ve relied heavily on Enterprise Architect, but as I’ve moved a lot into Target Process (bugs, requests, features, user stories, tasks, release planning), there may be less benefit to EA- as such I may consider this lower tech approach, especially if I can find good ways to link back to entities in Target Process. TP also links to my SVN repository which is also helpful. But there's no good way to model the structure in TP (nor is it intended for that purpose), so it's only one part of the package. 3. Visio Visio is of course well-known. I initially tried using it – but found it was too limited and didn’t have enough power to justify the effort. EA is more work but vastly more powerful. You can certainly do conceptual relationship models in Visio, but EA offers far more options and flexibility. You won’t outgrow EA, but you well might Visio. 4. SQL (and other) DB Engineering Tools There are dozens of tools out there such as MySQL workbench, Valentina Studio, and many others. I tried a bunch. Some were able to connect to my FMP database through ODBC or JDBC, but FMI has not allowed the relationship graph to be fully accessible to these tools. DBSchema claimed filemaker compatibility, but at best, I was able to pull in the tables and fields from filemaker – but no relationships or keys. In the end, that wasn’t very helpful, and it didn’t allow updating over time without losing work I’d done to document things. In my experience, these tools don’t offer enough if you can’t actually fully connect to the database. A lot of effort for very little gain. May as well stick with FMP's sticky notes on the graph. 5. DDR Of course, the DDR generated by Filemaker could be used to document the database – that’s what it’s for. But there’s no way to add your own notes to it and maintain those the next time you generate a new DDR. 6. Base Elements I had high hopes for using Base Elements for this purpose. After all, it can show you every aspect of your database from about any perspective. And it even has fields for notes. But so far, there is no way to maintain those notes from one version to the next of your solution or of Base Elements itself. Currently, the notes feature in BE is more useful for making notes on desired changes or defects than for long-term documentation. (I’ve spoken to Nick at Goya about this and he appreciates the value of this capability, so perhaps it will be added in the future). 7. Dataedo This tool has some promise but is not quite there. Similar to the various SQL engineering tools it can connect to databases and extract structure and relationships. However, it is designed primarily for the purpose of documentation rather than as a database engineering tool, and as such seems to offer more power for this purpose. In particular, as databases change over time it does not wipe out existing documentation. It does not connect well to FMP either -but the developers have expressed an interest in exploring using the DDR to derive structure, while still maintaining continuity of the model. It remains to be seen if they’ll get there, but it’s worth watching. Please let me know if this is at all helpful. Michael
  4. Currently, I'm running a FM development server (FDS) on a WHS2011 machine (based on Server 2008). This has been working fine. From what I read, FMS 17 will no longer work on Server 2008 based platforms, so I'm assuming WHS 2011 will not work. I figure I have a few options - 1) upgrade to something like Win Server Essentials 2016 that will support FMS 17 - a lot more expensive, may require new hardware, more hassle, and overkill for my needs 2) Consider the possibility of a Win 10 Pro -based machine to run it. I know that officially FMS is not supported on Win 10, but I've seen that people have been running FMS 16 on Win 10 Pro systems, so unless this changes with FMS 17, that might still be an option. 3) Upgrade to FM client 17, but stick with version 16 of the development server, since from what I've read that will work and none of the changes to FMS in 17 are necessary or even desirable for me. If I understand what I've read correctly, the new features in 17 Advanced are dependent on the client version and should still work on files hosted in FMS 16. I'm leaning towards 3, but would value any thoughts from other folks, especially if I'm missing any key issues. Thanks, Michael
  5. In case anyone looks at this in the future, wanted to let you know that I believe I've come up with a decent workaround. I'm still working out the details, but it appears I can sell modules and have the seller use an http post to update the original account in my activation server with the new licensing info. Then, I can use Insert from URL to do an http post to retrieve license information from the server and determine if a user has the upgraded license. It isn't seamless, as the user has to manually enter their original activation key again since I still haven't figured out a way to communicate with the eleckey API from within Filemaker. (It might be that Scriptmaster could do it, but I probably won't invest the time to try right now). But it does get me a way to do a poor man's (person's) version of separately licensing modules .
  6. By the way - can fields off the layout (over on the right) impact performance? Got it isolated to one field, unstored calc with eSQL statement, where it's taking the sum of a value in another table that is itself an unstored eSQL calc.
  7. Yes - eSQL in calcs - been using those a lot to avoid extra table occurrence groups and relationships. Okay - will try what you suggested. Just for my understanding - can these cause this kind of delay even with so little data?
  8. So I have a hosted solution, with a dashboard with a couple portals. When I go to scroll a portal, scrolling even one portal screen has a delay of a few seconds, ie I click the scroll bar or try to drag it, and it takes about 3 seconds before it moves. Running locally, it's instantaneous. Running on a dev server on my LAN, there's a slight delay, but minimal. Having read various threads about this situation, my first thought was it's due to a filtered portal, so I removed filtering, but that made no difference. I also read various posts about unstored calcs and other factors that would cause all the data to have to be transferred to the client over the WAN. But here's the thing - at the moment, there are about 20 records in the database, related to the particular portal. Clearly, moving that data can't be the primary issue - right? I do have a lot of Execute SQL calculations in related tables, and I've read that can cause poor performance. But wouldn't that only be a factor when there are a lot of records? Are there design /schema choices that would cause significant lag regardless of the amount of data? Thanks, Michael
  9. Yes FMP/GO is enabled for the file. I did enable the local network sharing in the file before uploading to avoid getting errors about sharing not being enabled. Any chance that could cause problems?
  10. Hi - I've had something odd happen a few times after uploading a local file to Filemaker Server. The server instance is being hosted by Soliant in their cloud, but I'm assuming this is not an issue of their particular configuration. I had enabled the fmapp privilege for appropriate privilege sets before uploading. It worked at first, but then later, users were unable to access the hosted file. I discovered that the fmapp extended priv was disabled for their priv set. I thought maybe I hadn't set it when I thought I did. However, today - the same thing happened with my full access priv set and I was unable to get in on the server to fix it as a result. Fortunately, it's a new db and no real data was entered yet, so I could fix locally and replace on the server. What's stranger is that the local file had lost the privilege too - so it's not something that happened just to the file on the server - but rather, it appears to be something that is happening as a result of the upload process. I'm not sure yet if it's getting cleared on the local file and then impacts the server the next time I do an upload or if it happens on both. But it definitely is getting disabled. I did find a couple other mentions of this on the web but no real explanation or solution. Any thoughts from you all? Is this a bug or is their some particular way one should upload files to server that I'm not doing? Thanks, Michael
  11. Hi - I'm developing a business solution to be hosted on FM Server. It will be hosted on Soliant Cloud. This is my first time developing for Server. I read Steven and Wim's whitepaper on FM 16 security, which was very helpful. In the past, when I've created upgrades to my solution, I've imported data from the previous version into the new one. Each update is a modified version of the previous file. I read about the benefits of using File Access Protection. My solution is a single file solution so I can basically exclude any other file having access - except I'm not sure what impact that will have on import from previous versions. I assume both files will have the same ID - but not sure if that means that FM will see the older version as trusted or not. Thanks!
  12. Hi - thanks for the input and link to that (long!) discussion. Not sure this totally relates though to what I'm trying to do. I have successfully implemented a commercial exe wrapper. That is, users install the trial version, and in order to get more than 30 days use, they have to activate it with a code they get when they purchase. However, there's no way using the wrapper to interact with the solution itself so that my runtime can determine if someone paid for additional features - and enable them if they did. That's the part that must be implemented in C++, C#, etc. I suppose I could look into creating my own plugin using the code from Sciensoft. I suspect that won't be particularly easy. So I wondered if there was instead a way for Filemaker to interact with a separate program that implemented that API. I'm not sure if that even makes sense though. Michael
  13. I wasn't sure how to title this question, but here's my question: I have a software protection solution for my runtime product - I use Eleckey from Sciensoft. The basic licensing function works as an EXE wrapper. and I have that implemented fine, integrates with my software seller and my self-hosted activation server. All good. However, advanced features (such as being able to activate specific features) require adding code to the solution - they support several languages, including C#, VB.NET, VC.NET, VB, VC++, Delphi, and C++ Builder. I'm trying to figure out if there's any way a filemaker runtime could communicate with an external program built using one of these. In other words, if I could build a separate application that incorporated the advanced license code, is there some way a runtime could talk to it - as an alternative to actually incorporating that code in the filemaker solution itself. Even better would be some kind of plugin that let me incorporate that code directly in the solution in some way - but I haven't come across anything like that. Any thoughts? Thanks, Michael
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.