Best way to connect a spreadsheet to web database [closed] - spreadsheet

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I'm using web based database for which I need to add spreadsheet capabilities to its front end. I was thinking that I could use Google Docs Spreadsheets. Their Google App Script seems to have the functionally that I need. In particular I can use the URLFetch service combined with onEdit events to keep the spreadsheet and DB in sync -- AJAX style. It also allows me a lot of flexibility in constructing, saving, and sharing the spreadsheets
However some things about Google App Script gave me pause. It runs server-side so it's difficult to debug locally. It doesn't have any sort of debugger with breakpoints or stepping. It can't import external modules or libraries. No JSLint. Without these I started getting that "Uh, oh, this is going to hurt" feeling.
So I'm wondering if there's a better way to bolt on browser accessible spreadsheet functionality to an existing web based database? Or are there best practices for getting the most out of Google App Script?
EDIT:
These are the potential solutions in order of what would be best for my application:
Browser based JavaScript spreadsheet engine. (May not exist.)
Python spreadsheet engine module that I can install on Google App Engine. (I haven't seen this either.)
An more robust and AJAXian approach to Google Spreadsheets. (See original question.)
Open source spreadsheet engines that I can install on EC2. (These seem to exist -- possibly SocialCalc, or Simple Spreadsheet. Recommendations?)

We use spreadsheet functionality on a web page, but rather than scripting all the features of a spreadsheet, we use a calculation engine which gives us the programmatic heart of spreadsheet functionality. A calculation engine knows how to calculate hundreds of types of formulas, handle dependencies (and the order between dependencies), cell formatting etc.
In my particular case, we use SpreadsheetGear - http://www.spreadsheetgear.com/products/spreadsheetgear.net.aspx
We create a HTML representation of a spreadsheet with cell navigation and various other features using some javascript. When we need the sheet to recalculate (eg F9 in Excel) we send the entire spreadsheet to the server, ask it to calculate everything and then refill the web page representation with the results. This may also write to the database depending on what's on the spreadsheet.
Perhaps I need your input at this point, to see if my answer is not too far off track.

So I did dig into this myself, and it did hurt a bit. Here are the particulars:
The bad:
You have to use their editor, no JSLint.
No debugger. The scripts run server side, so Firebug and other browser tools are zero help. The "View->Execution transcript" and "View->Logs" are a little help. But they don't seem to function in "onEdit" events.
The connection to the web goes through their UrlFetch Service which is doesn't have an asynchronous mode. And it doesn't function at all within "onEdit" events: http://code.google.com/p/google-apps-script-issues/issues/detail?id=185
They basically have three event types. "onLoad", "onInstall", and "onEdit". In particular I badly missed an "onClick" event.
No external library support.
The good:
It is real JavaScript, so it functions predictably, and I can use an external JSLint tool.
Shallow learning curve. Understanding sheets, ranges, and set/get values are the key concepts.
Lots of functionality for manipulating spreadsheet items, formatting, etc.
Google Data API Support? I haven't used this, but it looks like the way to go for connnecting to external web resources.
Well integrated, scripted updates on my spreadsheet are immediately visible to others viewing the spreadsheet.
Overall this environment has a ton of potential, with lots of UI capabilities, but it still seems to miss on some key functionality for doing real production development.

Related

Google Big Query: alternatives to browser SQL editor? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
I'm currently working a lot with Google Big Query and I absolutely hate querying in-browser. I'm used to connect to regular DB's through editors like Toad, Microsoft SQL Studio, Teradata Studio Express or Databeaver. I'm look for a similar tool that you guys would recommend for using on Google Big Query.
Only alternative I've found so far are razorsql and jetbrains datagrip (whereas the latter requires a custom connection (https://blog.jetbrains.com/datagrip/2018/07/10/using-bigquery-from-intellij-based-ide/)
Any idea's on alternatives out there?
Thanks in advance
There's a thread on reddit with some recommendations.
I personally like the UI and there's a new UI coming (but doesn't seem to change much in functionality, only styling).
Some of the recommendations are:
DataGrip
Aquafold
Metabase
Potens
PopSql
Plus a few other tools that aren't RDMBs per se but have the components to "run queries" not in the UI, like Mode Analytics.
I haven't personally used any of them, but take it for a spin and see which one you like the most! (share your insights here later as I'm also curious about it)
I'd recommend http://potens.io/, specifically Goliath which a great tool for data exploration. My team of ~20 non engineers uses Potens for data exploration and user friendly workflow automation (Magnus). Let me know if you have any questions.
I tried PopSQL (popsql.com) which looks like a nice alternative for the Web-UI and has the best Bigquery support of all the other tools. However it does not have many features and is not much better than the Web-UI. The main advantage is you can organise your stored-queries better, as you can use folders instead of the long list of stored queries in the webui.
There are some cons however: There is no autocomplete with table names and attribute names, and it does not have "save" buttons so you overwrite everything and sometimes things are not saved at all. It feels a bit beta, with some bugs and raw edges, so the payed full version is overpriced. The free version can only save 15 or so queries so it is of no use.
As for the other options I have tried:
Datagrip does not have a bigquery driver. There are some hacks to write your own driver but this has limited support.
Currently there is no official independent editor for BigQuery, but the BigQuery Web UI that you can use as the graphical web UI to query your data. However, you can file a feature request per instructions at Report Bugs and Request Features with Issue Trackers to request the independent editor tool for BigQuery.

Tool to archive techniques and lessons [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I need a personal archive tool to archive the programming algorithms, lessons, techniques and codes.
Something like a "Personal Wiki" that supports images attachments, code decoration, content categorization and search for any content at any time.
I know i can use an open source tool like forums or media wiki but i need something customized for this personal purpose.
Desktop tool or web tool.
For those who are search for the same purpose, I found some tools:
Here are some things I've tried with their pros and cons:
OneNote
Pros
Excellent ability to organise notes. You have have books containing section groups containing sections containing pages and subpages. I've got a book for Development, then a section group for Languages, then a section for Ruby, then pages for every topic within Ruby. The highlight here is that there's no penalty to creating dozens and dozens of pages on a given topic, helping you keep things organised when you get really deep into a specific topic. It's an easy mistake to just say "Yeah, a section for Languages, then a page for PHP", but before you know it the PHP page is half a mile long and you'll never sit down to properly re-read it again, it becomes a pain to find the info you want, etc.
Great support for multi-user notebooks. It properly keeps track of who added what and what got changed when, making co-operation easy.
Syntax highlighting can be done with the OneTastic plugin, which lets you define custom styles. Just define a custom style in a monospaced font with a special colour, and call it Code.
Support for tabular data, attached files, audio, video, etc, if you need that sort of thing.
Cons
Need to use a special app to consult it, so you can't just hit it from a work computer or the like.
Web app is clunky and lacking full features, I still haven't gotten a desktop notebook to properly sync as a web app notebook.
Search isn't the best.
MediaWiki
Pros
If you make it public, you can use Google on your notes, which is better than any other search.
CSS means it's easy to style and present it how you want without manually altering every bit of text like you'd need to in OneNote.
Because it's just a website like any other, you can access it from any device without installing anything or having to log in.
Export as ePub file, meaning you can read all your notes on your Kindle/ereader, really good for refreshing.
Any page can belong to multiple categories, which is nice.
Built in syntax highlighting with code tags.
Cons
Limited/clunky ability to organise in tiers, ultimately a fatal flaw for me.
Becomes a pain to quickly add notes to pages. (I would kill for a no-page-reload transition between read/edit modes!)
Reliant on an internet connection (usually not a problem, but something to be aware of).
Plaintext files in folders
Pros
Zero learning curve/adaptation.
Read them anywhere with no special software (tip: put them in a shared Dropbox folder, map an address on your domain to that folder).
Read natively on ereaders or convert to ebook format with no real effort.
Cons
No syntax highlighting, no image/audio/video media, no tabular data.
Hard to fuzzy search.
Edit conflicts if you're studying alongside someone.
Google Drive
Pros
Excellent support for sharing/co-operation
Good search
Good mobile support
Supports a lot of media
Cons
Tends to be slow to use
Presentation options tend to be frustrating
Reliant on internet connection
My personal recommendation: OneNote + Onetastic plugin, using all tiers/dividers, exported to PDF or multiple PDFs regularly so you can consult them from elsewhere.
Quoted from this link:
https://www.reddit.com/r/learnprogramming/comments/3acusr/how_to_take_notes_while_learning_programming/

SAP GUI scripting disabled on server - other automation options? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
SAP GUI scripting is disabled on my employer's servers and I'm not in a position to change that, but I would very much like to automate some routine tasks of mine using some kind of scripting. I don't have (and I don't need) administrative access to the server, so this automation [afaik] has to revolve around SAP GUI in one way or another.
As an example, most repetitive task of mine that lacks automation is loading numerous reports with different parameters and exporting them to plain text files (to be aggregated and analyzed later in Excel).
What options should I look at? Mouse-and-keyboard automation tools come to mind first, but they are the least appealing ones at the moment.
For most of the options that are available, you will need at least the cooperation of the system administrators, and usually for good reasons - automation always gives you the option of destroying vast amounts of mission-critical data very fast. Depending on what you need to do - your question was not very clear on that - you might want to explore the following options:
Try to automate the data entry on the selection screen using selection variants. You can not only save static sets of data, but also include dynamic date calculations, and you can reduce the fields displayed until only the relevant fields are left.
Check whether you can schedule background jobs to have the reports run automatically at a given time and get the contents downloaded or mailed to you, depending on the capabilities of the report in question and the settings of your system.
For more complex flows, use the transaction recorder to check whether the task can be automated using batch input techniques. If this is possible, you could try to use the Legacy System Migration Workbench (LSMW) - although designed for data migration, you can use this tool as a "CSV-to-User-Command-Converter".
If you've come this far, it's not that hard to start writing ABAP programs, and we're back on topic for Stack Overflow... :-)
You can use Sikulli to automate tasks in SAP. They have a image recognition system where it can click buttons based on what it looks like. If you need to scroll through tables or something you are probably out of luck.
In my previous job I had to explain what SAP GUI scripting is to at least 2 dozen people and wait/follow for months to use it. Let say many people are still using my scripts there. It is always better to show your skills, So you better go proper channels. Also Using similar tools might not be welcomed If they are not enabling on their servers.

Google Apps macros - how do they compare to Office VBA macros?

Do any of you use the javascript macro capabilities of Google Apps, particularly for spreadsheets? How do the capabilities compare? Is there anything that Google Apps can't do that can be done with VBA macros?
I am in the middle of conversion of a complex project from VBA to Google Apps Script as an experiment to see what can be done and what can't.
In general, the development environment for google apps script is primitive and frustrating. The language is of course javaScript so if you already know that then you have a head start. The problem though is that many of the advantages of javaScript are not realizable since you don't actually have access to DOM elements, and neither do you have an equivalent of Excel shapes - except through the UI object- which is essentially the same as an excel form, with the same kind of events and objects etc.
Another issue is general slowness. You need to be careful how you structure, so that you minimize calls to the spreadsheet data (I got round this by building a values cache), and scalability is very questionable.
I am equally at home with javaScript or VBA, so putting language aside, VBA is currently more fulfilling and quicker to get things done, although there are increasing capabilities built in to apps script to make it extremely promising.
I am logging the progress of my migration, and the things I come across and the battles to figure out how to minimize structural change (I am trying to see if I can come up with something that would allow dual maintenance on both platforms), so if you are interested, you can follow along here
http://ramblings.mcpher.com/Home/excelquirks/gooscript
Bruce
The VBA in Office has been the same for about 10 years now, still using old VB6. The limitations of that language are endless. No data structures, no logic short-circuiting, limited types, non-object oriented. Google Apps and javascript are presumably on the forefront of technology and so it should not have many of these limitations.
As for what each is capable of doing that the other can't, that's a little more difficult to assert. I would argue that both languages are more or less turing complete, so while it may be more or less difficult to do something in each language, in theory, a good enough team of programmers could do just about anything in either.
Cheers :D
I'm trying to create charts in google spreadsheet using google apps script and is seems not possible... It is fairly easy in VBA, maybe vb6 is 10 years old but on the other hand you're able to do everything what you need with your spreadsheet. This is not the case in google scripts though.
One of the major hurdles is that Google Apps is web based. Thats were most companies cringe at the thought that you would have your own data not stored securely within your own network. I would never trust Google with that sort of data. I'm sure they have secure data connectors, but why take that risk?
Sure VBA is outdated, and not as sexy as javascript. However, its a great tool for quickly writing small applications, and getting it to the user fast. You only really hear nightmare stories about applications that were built by non-programmers using VBA.
It really depends on your project, and what you want to accomplish. Both have their limitations.
Having taken a quick look at Google Spreadsheet API I get the impression that its currently somewhat limited, for instance:
fewer Events, no control of calculation?, no way of writing UDFs?
Has anyone tried using it for serious work?
By its nature, a Google spreadsheet will not be able to do many things a local program will do. Example: a macro that would import all csv files in a user specified folder and consolidate them.
One thing that springs to mind is that VBA has full access to the WinAPI through 'Declare Function' declarations. Google Apps script won't have this access. This is something to watch for if you're converting a spreadsheet between the two.

Biztalk port/orchestration documentation [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
We have a large biztalk EAI setup (+- 70 orchestrations, 200 send ports,...). Almost none of the orchestrations/ports have direct bindings. Every route is configured through filters.
Unfortunately, the time has come to document the integration scenario understandable to non-biztalk techies.
I wondered if there're any tools / word-excel-visio-... templates to document such a scenario.
It is not necessary to document orchestrain/map/code technical details, just the message flow.
(rcvport/location(with maps) -> orchestration(filter) -> sendport(s)(with filter, maps)
Thx;
Bart
You could use Business Process Modeling Notation (BPMN). I use it all the time to design and document Orchestrations.
Visit http://www.bpmn.org/documents.htm
Scroll down to Other Documents. The are stencils for Visio.
In my company we designed a documentation style for message flows based on UML.
We represent the BizTalk applications as components, and use the Ports and Interfaces on these components to represent connection points. We then use the Information flow connection between these interfaces.
We use Enterprise Architect from Sparx Systems to create these artifacts and views. The benefit of this tool is that it uses a repository based approach, so all artifacts can be reused for multiple views.
The downside to this appraoch is that you need to create all the views yourself. There is no easy way to generate this data from the source code or deployed BizTalk applications (that i know off), so you will need to create this documentation by hand.
I've always just used Visio to draw my own diagrams. In my opinion, having done this for 10 years, you have to be creative and not follow any one set standard. And from one client to the next, I don't always do it the same way. I'm trying to improve, but I don't think there is a "one size fits all" answer.
As with any doc, first, try to do something very high-level. Then zoom-in on the details in the next diagrams.
What is missing in general is how to describe data flow to/from port to port. For example, what if you debatch a file in a Receive Port? I used standard Visio flowcharting shapes, for example cylinder for pipeline, box for Port, etc... then connected them with lines. If you have just one map you can put that on the line. If you have a bunch of them, then it's difficult to represent. I try to put the map or the pipeline on the arrows.
I usually use the Cloud Symbol for sending data to other vendors or trading partners.
Sometimes I use the Server boxes of Visio, to indicate sending data to another server within our company, or even to an FTP server or Web Server at another company.
I also show the "MessageBox" has a port. For example, Receive Port is a box, then line to "MessageBox", then each Send that has a filter on it, comes out of that MessageBox. (I end up drawing a new "MessageBox" typically for each flow, to keep them separate.
For orchestrations, I have used SnagIt to screen capture the doc, then annotate with captions and arrows, and text in a Word document after the picture. (The problem is if you have wide or very complex orchestrations.)
Unfortunately, most the doc I do is not automated and not connected to the code or the bindings, so it can quickly become stale. I've never found "BizTalkDocumenter" to be that useful.
I sometimes use Tables in Word to show the developer artifacts and how they related (maps, schemas, pipelines...), and include a verbal description/commentary for each.
I agree with HSedidin above that BPMN might be worth trying, but even that, the audience would have to learn.
There is a "Stencil" pack for BizTalk avaiable for Vizio here: https://gallery.technet.microsoft.com/Collection-of-Visio-2013-0283d5f4, but I must admit that I haven't used it yet.