SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github.

Reply
 
Thread Tools Search this Thread Display Modes
  #21  
Old 10-05-2016, 10:26 AM
NetworkGuy NetworkGuy is offline
Sage Fanatic
 
Join Date: Dec 2009
Location: Central NJ
Posts: 869
I use both the SageTV Web App (desktop) and BMT but for different reasons.

I use the SageTV Web App to make quick changes to media that is already in SageTV. (i.e. change the name of a show, etc.)

I use BMT when the description of a show or movie is missing or wrong and I want to get the correct metadata.

I use PlaceShifter / SageTV Client to perform all of the PVR functions and to change any setup options.

Media Playback
via the web app is an interesting idea. Are you assuming this would only be in a LAN environment, or could it serve as a PlaceShifter replacement?
__________________
Hardware: Intel Core i5-3330 CPU; 8GB (2 x 4GB); 2-4TB WD Blue SATA 6.0Gb/s HDD; Windows 7
Servers: ChannelsDVR, Plex, AnyStream, PlayOn,
Tuner: HDHomeRun Connect Quatro
Tuner: HDHomeRun Connect Duo
Sources: OTA, Sling Blue, Prime, Disney+,
Clients: ShieldTV (2), Fire TV Stick 4K (4)
Reply With Quote
  #22  
Old 10-05-2016, 01:39 PM
Taddeusz Taddeusz is offline
SageTVaholic
 
Join Date: Nov 2004
Location: Yukon, OK
Posts: 3,919
This seems appropriate.

https://hackernoon.com/how-it-feels-...77f#.8h6zcsw6b
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3
Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver
Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD
Reply With Quote
  #23  
Old 10-05-2016, 02:28 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by Taddeusz View Post
That's gotta be the funniest thing I've read in weeks... And they completely missed the fact that to use most of those tools... you really need to have to node installed which is another train wreck

Thanks for sharing.
Reply With Quote
  #24  
Old 10-05-2016, 03:40 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Taddeusz View Post
Welcome to my world. I feel like that every time I need to do something new
__________________

Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders.
Reply With Quote
  #25  
Old 10-05-2016, 06:01 PM
panteragstk's Avatar
panteragstk panteragstk is offline
SageTVaholic
 
Join Date: Oct 2008
Location: New Braunfels, TX
Posts: 3,312
Reading that made me realize how happy I am to not be a coder. I'll take being an MDM admin over that any day.
__________________
SageTV Server: unRAID Docker v9, S2600CPJ, Norco 24 hot swap bay case, 2x Xeon 2670, 64 GB DDR3, 3x Colossus for DirecTV, HDHR for OTA
Living room: nVidia Shield TV, Sage Mini Client, 65" Panasonic VT60
Bedroom: Xiomi Mi Box, Sage Mini Client, 42" Panasonic PZ800u
Theater: nVidia Shield TV, mini client, Plex for movies, 120" screen. Mitsubishi HC4000. Denon X4300H. 7.4.4 speaker setup.
Reply With Quote
  #26  
Old 10-05-2016, 06:21 PM
Taddeusz Taddeusz is offline
SageTVaholic
 
Join Date: Nov 2004
Location: Yukon, OK
Posts: 3,919
As bad as it sounds JavaScript can be a very powerful tool. Much of the complexity has to do with browser compatibility since the community working on the language itself moves faster than the browser developers can implement the changes. If there wasn't that barrier things wouldn't be so complex.

Then again some of the complexity is probably due to it being a scripted vs a compiled language. Babel and Browserfy wouldn't be necessary for transpilation if JS was compiled.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3
Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver
Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD
Reply With Quote
  #27  
Old 10-05-2016, 08:21 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
I am in no way a web coder - but wouldn't server side generation of HTML5 be perfectly fine for this use? Does there need to be JS at all for mostly static display and simple form queries?
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #28  
Old 10-05-2016, 08:56 PM
Taddeusz Taddeusz is offline
SageTVaholic
 
Join Date: Nov 2004
Location: Yukon, OK
Posts: 3,919
Quote:
Originally Posted by Fuzzy View Post
I am in no way a web coder - but wouldn't server side generation of HTML5 be perfectly fine for this use? Does there need to be JS at all for mostly static display and simple form queries?
Kind of referencing that blog post that's just not the way modern frameworks are designed. The Java EE and ASP.NET way of preformatting data server side has just fallen out of favor. This is mainly used to facilitate better utilization of network resources on mobile devices and apps. The server is mainly used to retrieve data using AJAX or Fetch requests. The client side is then responsible for formatting the data for display. Kind of a slight modification of the MVC idea.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3
Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver
Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD
Reply With Quote
  #29  
Old 10-06-2016, 01:50 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by Taddeusz View Post
Kind of referencing that blog post that's just not the way modern frameworks are designed. The Java EE and ASP.NET way of preformatting data server side has just fallen out of favor. This is mainly used to facilitate better utilization of network resources on mobile devices and apps. The server is mainly used to retrieve data using AJAX or Fetch requests. The client side is then responsible for formatting the data for display. Kind of a slight modification of the MVC idea.
Oh, I know that it is the trend, but one isn't required to follow trends. ;-)
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #30  
Old 10-06-2016, 05:02 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Taddeusz View Post
As bad as it sounds JavaScript can be a very powerful tool. Much of the complexity has to do with browser compatibility since the community working on the language itself moves faster than the browser developers can implement the changes. If there wasn't that barrier things wouldn't be so complex.

Then again some of the complexity is probably due to it being a scripted vs a compiled language. Babel and Browserfy wouldn't be necessary for transpilation if JS was compiled.
I started dabbling in JavaScript for the Echo skill I wrote and hate the language. The typing is so weak you never know what you're working with.
__________________

Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders.
Reply With Quote
  #31  
Old 10-06-2016, 05:34 AM
Bagal Bagal is offline
Sage Advanced User
 
Join Date: Apr 2006
Location: Surrey, UK
Posts: 183
Quote:
Originally Posted by tmiranda View Post
I started dabbling in JavaScript for the Echo skill I wrote and hate the language. The typing is so weak you never know what you're working with.
The lack of typing can be a problem at times but it's also one of JavaScript's strongest features, for instance let's say I'm calling a REST service and I then want to display that data, in C# or Java I'd need to create a bunch of model classes in order to deserialize* the response and then pass those into the view engine etc, etc, basically a lot of boilerplate that doesn't do much, whereas in JavaScript I call the REST service and just pass the response in to my view directly, no extra code needed.

This is a fairly trivial example but the speed you can create apps in JS is pretty impressive at times, especially compared to standard backend JSP** or ASP.NET web apps.

*I know I could use the dynamic keyword in C# if I really wanted to, but in my experience it's a lot slower than deserializing to a plain object (not sure if there's the equivalent to dynamic in Java these days)

**It's been a long time since I did any Java so I have no idea what the latest frameworks in use are.
__________________
Server: Win7 64bit; i5 2500; 32GB ram; Blackgold BGT3595; 18TB + 120GB SSD; Edgestore DAS401T; DVBLink; Oscam; Omnikey 3121
Lounge Client: HD300; Yamaha RX-V765 connected to 55" Furrion 1080p LCD; Logitech Harmony One remote
Kitchen: HD300 32" LCD, Bed 1: HD300 - 40" LCD, Bed 2: HD300 - 24" LCD, Bed 3: HD300 - 22" LCD
Reply With Quote
  #32  
Old 10-06-2016, 05:58 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by Fuzzy View Post
I am in no way a web coder - but wouldn't server side generation of HTML5 be perfectly fine for this use? Does there need to be JS at all for mostly static display and simple form queries?
That's so 2000

Quote:
Originally Posted by Fuzzy View Post
Oh, I know that it is the trend, but one isn't required to follow trends. ;-)
You have to realize, for some of us, working on open source projects (or addons to open source projects) is a means to keep our skill sets relevant, play with new technologies/ideas in a non-enterprise environment, etc. All of my Android experience comes from working on things like this... and in every project, I tend to try and learn something new... just because learning is fun. If this is to be treated my day job... I can guarantee that I would likely just stop developing. Many of us could cobble together a bunch of code to quickly get an HTML page serving up SageTV content in a few minutes... and if that's all I wanted, then fine, but for me, it's much more than that.. I want to use the time spent learning something new in the process... I may end up hating it, in the end, but, at least I've learned it

Quote:
Originally Posted by Bagal View Post
The lack of typing can be a problem at times but it's also one of JavaScript's strongest features, for instance let's say I'm calling a REST service and I then want to display that data, in C# or Java I'd need to create a bunch of model classes in order to deserialize* the response and then pass those into the view engine etc, etc, basically a lot of boilerplate that doesn't do much, whereas in JavaScript I call the REST service and just pass the response in to my view directly, no extra code needed.

This is a fairly trivial example but the speed you can create apps in JS is pretty impressive at times, especially compared to standard backend JSP** or ASP.NET web apps.

*I know I could use the dynamic keyword in C# if I really wanted to, but in my experience it's a lot slower than deserializing to a plain object (not sure if there's the equivalent to dynamic in Java these days)

**It's been a long time since I did any Java so I have no idea what the latest frameworks in use are.
I was about to say, it's probably a long time since you looked at Java... but I see you covered that already To Tom's point, "not knowing" is huge. The IDE can't actually help you... a simple typo can lead to hours of troubleshooting. While in Java you can use models to represent that data (and I would certainly), that 10 minutes used to create a model saves hours of time during refactoring, auto-completing, compile time type checking, etc. I use JS daily and I use Java daily... And while JS can be a powerful language... it actually requires much more skill to write "good" javascript code than it does for many other languages.

Javascript is good, in my mind, for small scripts, simple validations, etc, but when you start to get over 100 lines of code, specially across multiple files, it's gets unmanageable. It's no surprise that most of our type safe JS tools, like TypeScript and Dart, come from enterprise companies that have to create web applications AND support them for many years, come from companies like Google and Microscoft, etc.

Javascript is a good language, but for language as old as Javascript, you'd think that in 2016 there would be better tools... but when you have no types... how can a tool actually help you
Reply With Quote
  #33  
Old 10-06-2016, 07:14 AM
Taddeusz Taddeusz is offline
SageTVaholic
 
Join Date: Nov 2004
Location: Yukon, OK
Posts: 3,919
Quote:
Originally Posted by tmiranda View Post
I started dabbling in JavaScript for the Echo skill I wrote and hate the language. The typing is so weak you never know what you're working with.
Not sure your level of JS expertise but when doing comparison and logic operations use "!==" or "===" instead of the traditional "!=" or "==" because the type and value must be the same whereas with the latter operators only the value must be "the same".

Code:
5 == "5" = true
5 === "5" = false
Of course this can give you more power in that if you are comparing a number and a string you don't have to manually cast the string to a number before doing the comparison.

Of course I'm sure there are cons to the way this works.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3
Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver
Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD
Reply With Quote
  #34  
Old 10-06-2016, 08:01 AM
jm9843 jm9843 is offline
Sage Aficionado
 
Join Date: Oct 2003
Posts: 288
Taking a few minutes to setup linting goes a long way to addressing some of these JavaScript 'problems'.

I'm partial to http://standardjs.com/
Reply With Quote
  #35  
Old 10-06-2016, 01:48 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by stuckless View Post
I was about to say, it's probably a long time since you looked at Java... but I see you covered that already To Tom's point, "not knowing" is huge. The IDE can't actually help you... a simple typo can lead to hours of troubleshooting. While in Java you can use models to represent that data (and I would certainly), that 10 minutes used to create a model saves hours of time during refactoring, auto-completing, compile time type checking, etc. I use JS daily and I use Java daily... And while JS can be a powerful language... it actually requires much more skill to write "good" javascript code than it does for many other languages.
I got bit passing a boolean to a Java method. You can't use
Code:
someMethod(someBoolean)
Instead you have to use
Code:
someMethod(someBoolean == "true")
That's pretty ugly.
__________________

Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders.
Reply With Quote
  #36  
Old 10-06-2016, 02:12 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by tmiranda View Post
I got bit passing a boolean to a Java method. You can't use
Code:
someMethod(someBoolean)
Instead you have to use
Code:
someMethod(someBoolean == "true")
That's pretty ugly.
At least you didn't spend hours on it (And yeah, that's pretty ugly)
Reply With Quote
  #37  
Old 10-07-2016, 08:56 AM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 7,491
I am a very heavy user of all three of the web UIs described here and also some of the other plugins like SageAlert, SRE, etc.

I think consolidation is a great idea. Here are my thoughts on this:
I am less interested in doing the initial config via the web UI but there are some config areas where it would be really useful to config via the web such as channel setup. It would be great to be able to see a grid with channels going down and tuners/lineups going across.
Playback via the web UI would be useful for those of us that use iOS devices as there still isn't a great way to play files in this OS.
Modularity would be useful as it would be good to be able to add functionality to the web UI for plugins.
On the main web page I would like to see added information. Currently it shows which clients are connected and what is playing back. I would like to see where you are in the current file and when the last UI interaction took place. For example it would look like this: Kitchen now playing Modern Family - S07E06 Lily's Friend now at 15:25 of 30:05, last UI input 5:02 ago.
It might also be nice to be able to link to external potential sources. Like for a TV show have a link to the TVDB page for that show or the Wikipedia page for that show or a Netflix search for that TV show.

One other thing that is peripherally related to this is that I would like to consolidate information from multiple sources into a "room" web page. Many rooms in my house have IP cameras, SageTV extenders, Harmony connected hubs, plus lights and other devices connected to my Control4 Home Automation systems. So the page would show a picture of the room (or live video screen), indicate the status of the Harmony connected hub, show what SageTV is playing, show the status of light in the room, list any music playing on a Sonos/Echo system. The best place for this may actually be the HA system UI but so far it lacks at doing this.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA
Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA
Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server
Reply With Quote
  #38  
Old 10-07-2016, 10:09 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by wayner View Post
One other thing that is peripherally related to this is that I would like to consolidate information from multiple sources into a "room" web page. Many rooms in my house have IP cameras, SageTV extenders, Harmony connected hubs, plus lights and other devices connected to my Control4 Home Automation systems. So the page would show a picture of the room (or live video screen), indicate the status of the Harmony connected hub, show what SageTV is playing, show the status of light in the room, list any music playing on a Sonos/Echo system. The best place for this may actually be the HA system UI but so far it lacks at doing this.
That all sounds more like a custom situation, but getting that info out of sage via sagex should be totally doable currently.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
JVM Heap Size, Time to discuss what actually happens above 1024MB sacrament055 SageTV Software 16 08-13-2012 02:24 PM
SageTV not creating schedule.txt jcclow SageTV Software 4 10-22-2009 04:41 PM
Creating a Media Center Appliance Proof-Of-Concept Based on SageTV lfilomeno General Discussion 12 05-18-2009 12:14 PM
Poll: Suggestion for creating a 'My SageTV Project' subforum Jabroni General Discussion 5 09-18-2006 11:31 AM


All times are GMT -6. The time now is 02:03 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.