Giter Club home page Giter Club logo

neowx-material's Introduction

Welcome to Neoground's GitHub πŸš€

This banner showcases our raccoons, working together virtually on a significant project, embodying the spirit of teamwork and innovation in a modern tech environment.

Hello, fellow innovators! Welcome to our world of open-source repositories. Here, you'll discover our passion for open-source projects, our commitment to diversity, and our unique approach to technology, right from the heart of Germany, near Frankfurt am Main.


Greetings from Sven πŸ‘¨β€πŸ’»

As the curator of this account, I bring a fusion of creativity, expertise, and enthusiasm to every project. Our GitHub is a window into our world, showcasing the diverse, inclusive, and dynamic nature of our work.

I'm a German web dev expert & IT aficionado with 15+ years of PHP & Linux mastery. Passionate about server tech & software dev. Founder & Tech Visionary at Neoground. Learn more about me on my personal website R-Digital or on our company's blog.

Our Open-Source Journey 🌟

We at Neoground believe in the power of open-source to revolutionize technology. Our projects are more than just code; they're a testament to our collaborative spirit and innovative mindset. Over the years we also created plenty internal projects - most of them are now becoming open-source as well!

Explore Our Projects: Visit our projects website to see how we're contributing to the open-source community. You can also find all of our project pages and documentations there.

Connecting Communities 🌍

Join us on our journey across digital landscapes:

Our Essence: Embodying the Spirit of Innovation and Diversity 🌈

Neoground is more than a tech company; we are a melting pot of cultures, ideas, and innovations. Located in the dynamic region of Wetterau, near Frankfurt am Main, our essence is deeply rooted in the rich cultural and intellectual heritage of Germany. Our diverse team reflects the vibrant spirit of this area, known for its blend of tradition and modernity, where history meets innovation.

What Defines Us:

  • Cultural Diversity: Our team members and contributors come from various backgrounds, bringing a wealth of perspectives that enrich our work and foster creative problem-solving.
  • Innovation Hub: Situated near Frankfurt, a hub of commerce and innovation, we draw inspiration from our surroundings, infusing our projects with cutting-edge ideas and technologies.
  • Commitment to Excellence: We believe in doing things right. Whether it's a small feature in an app or a large-scale AI project, our commitment to quality and detail is unwavering.
  • Passion for Technology: At our core, we are passionate about leveraging technology to make a positive impact on businesses and society. Our enthusiasm is evident in every line of code we write.

A Glimpse of Our World: Where Technology Meets Humanity 🌍

At Neoground, we see technology as a force for good, a tool to create a more sustainable, inclusive, and connected world. Our vision extends beyond mere business success; we aim to initiate transformative changes that benefit society at large.

Our Vision and Spirit:

  • Tech for Good: We harness the power of technology to address societal challenges, believing in a future where technology serves humanity.
  • Sustainable Innovation: Our approach to technology is intertwined with our commitment to sustainability. From eco-friendly operations to developing green tech solutions, we're dedicated to making a positive environmental impact.
  • Inclusivity in Tech: We advocate for inclusivity in the tech world. Our projects and workplace practices are designed to be welcoming and accessible to all, regardless of background or ability.
  • A Beacon of Thought Leadership: As leaders in the tech community, we share our insights and learnings through blogs, talks, and workshops, inspiring others and fostering a culture of knowledge-sharing.
  • Embracing Regional Identity: Our location near Frankfurt am Main is not just a geographical fact; it's a source of inspiration. We embody the innovation, diversity, and forward-thinking spirit of this region, making it an integral part of our identity.

This banner showcases the raccoons in their nerdy hoodies, deeply engaged in various tech activities in a vibrant, energetic tech environment.

Collaborate with Us: Join the Neoground Open-Source Movement 🀝

At Neoground, collaboration is the cornerstone of innovation. We deeply value the contributions of developers, thinkers, and creators from all corners of the world. Our GitHub is more than just a repository of projects; it's a breeding ground for groundbreaking ideas and a platform where your contributions can make a real impact. We open source more and more of our projects, to contribute, to innovate and to build something sophisticated.

Code Contributions and Feedback

  • Get Involved in Development: If you're a developer, your code contributions are invaluable. Whether it's fixing bugs, adding new features, or improving documentation, your expertise can significantly enhance our projects.
  • Share Your Ideas and Feedback: Have an idea or suggestion? We welcome your input to help us grow and innovate. Open an issue or request on our repositories to share your thoughts.

Financial Support and Sponsorships

  • Become a Financial Contributor: Your financial investments directly support our project development, allowing us to dedicate more resources and time to innovation.
  • Sponsorships: We welcome sponsorships from individuals and organizations. As a sponsor, you'll be supporting a growing open-source community and gaining visibility among our network.
  • Donations: Every donation, big or small, helps us sustain and expand our open-source initiatives.

How Your Support Helps

  • Investing in Open Source: Your contributions, whether code, ideas, or financial, help us maintain and grow our open-source projects. This means better software, more features, and a stronger community.
  • Enabling Continuous Improvement: With your support, we can invest in research, development, and the overall improvement of our projects, ensuring they remain cutting-edge and high-quality.

Join Us in Making a Difference

Your support, in any form, makes a real difference. Together, we can drive innovation and create technology that not only serves our needs but also contributes positively to the broader tech community.


This banner features our red pandas using communication devices. This scene vividly captures the theme of connectivity and engagement in a digital world.

Stay in Touch: We're Just a Click Away! 🌐

Neoground is more than just a company; we're a community of passionate individuals committed to making a difference. We love hearing from you, whether it's feedback, ideas, or just a hello. Staying connected helps us build stronger relationships and better technologies.

Ways to Reach Us:

  • Email & Chat: Have a question or an idea you'd like to share? Drop us an email or send a chat message. See our contact page for all details. We read every message and strive to respond promptly.
  • Social Media Interactions: Follow us on our social platforms for the latest updates, insights, and behind-the-scenes peeks into our work. Engage with our posts, share your thoughts, and be a part of our digital story.
  • Career Opportunities: Looking to take your career to the next level? Check out our careers page for opportunities to work with us. We're always on the lookout for talented and passionate individuals.

✨ Every Message, Every Commit, Every Collaboration Shapes Our Journey. Let's Innovate Together. ✨

neowx-material's People

Contributors

chrismiceli avatar dtalens avatar iiseppi avatar neoground avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neowx-material's Issues

Naming of Chart titles on multiple sensors

Hi,

so far everything is working but now i have added two more sensors to my station.
WeeWX data records it properly, it's also shown in the graphs. But how can i change the generic names of the charts from "extraxxx3" to something more useful?

I was not able to find it in the skin.conf or weewx.conf

image

SoilMoist / SoilTemp charts

I am using WatherLink Live driver in weewx. I have added SoilMoisture and SoilTemp sensors.

The Soilmoist data i see in the left column, but I also want the data in a chart at the right column, but there is no chart coming up. What am I doing wrong?

Station: Oosterweg Nrd, NL

neo1

neo2

neo3

Additional Graph

Hello, I am using neowx ### material. Now I have recorded the values of my electricity meter. The values will be displayed correctly in the tile, including min-max values. My only problem is the graph. The fields are created but no graph is displayed. The value belongs to the group_volt. In skin.conf I have included the graph in charts_order.
In index.html.tmpl I have behind extraHumity

#if $day.Eu1.has_data
$getChartJsCode("Eu1", "Eu1", "area", "Eu1")
#end if

inserted.

Does anyone know what I'm doing wrong?

Thanks.

mfg Michael

Forecast Info & webcam section

I would like if it is possible to add a webcam section to view an image interval of our weather camera and a forecast provider such as aeris or darksky ...Also a record page of all time for all values
One more thing ... I think that in yesterday,week,year tab the min-max temp should be bold and not the average .... you can put a label above values (min , max , average ) so a person easily understand this
Keep up the good work
Thank you in advanced

Rain rate

Come posso inserire il dato di rainrate e il relativo grafico?

Charts, fixed time markers

I wonder if there is any possibility/settings where it is possible to define fixed time markes for the X Axis?

The labels currently show the values like: Mo 16 07:41
Would it be possible to show full hours instead?

neowx_xaxis_marker

cloudbase being calculated but not charted

This is possibly a weewx issue and my lack of understanding. NeoWX is displaying a card for cloudbase and a chart box, however the chart is blank just the x and y axis are show, x-axis is 0-5m and y-axis all points are Thu 01 11:00.

Looking in the sqlite DB, cloudbase is stored in archive_day_cloudbase with 8 records present the first is 8 days ago at midnight. I assume these are being calculated using the daily data. There is not a column for cloudbase in the Archive table, do I need to add a column?

I have a similar ET question but it is definitely a WeeWx question.

Missing translation causing error

If you choose language "ca" (catalan), you get cheetah.generator errors:

  • ERROR weewx.cheetahgenerator: **** Reason: cannot find 'telemetry' while searching for 'telemetry'
  • ERROR weewx.cheetahgenerator: **** Reason: cannot find 'saturn' while searching for 'saturn'
  • ERROR weewx.cheetahgenerator: **** Reason: cannot find 'jupiter' while searching for 'jupiter'

It's fixed by adding translations in skin.conf [[ca]] section:
saturn = Saturn
jupiter = JΓΊpiter
telemetry = Telemetria

Spazio per la webcam

Ciao la skin Γ¨ veramente molto bella.
Sarebbe perfetta se si potesse aggiungere uno spazio per una webcam, tipo una webcam streaming su youtube.
Se hai dei suggerimenti su come modificare la skin per poterla inserire?
Grazie

Transmitter Battery Change to OK, Realtime Data

I like the look of this skin, but can't use it yet.
The transmitter battery under telemetry should not be the raw value, it should be OK for the 1 value and Bad for not 1.
I'd also need realtime data displayed, I use my WeeWX website displayed on a tablet so currently have the Belchertown skin for live weather. Refreshing when I want to view it isn't an option for my household.

With those changes, it would be a complete package to replace Belchertown.

Add air quality charts

It would be nice to see charts for PM2.5 and PM 10 added. Is there any way to add custom charts for things in the weewx extended schema or added from plugins?

v1.8 - graph of ET

Graph of ET in v1.8 is appearing as a text box instead of a graph.

ET does appear correctly in the text box section.
et-graph-error

v1.9 - appTemp graph

appTemp is displaying correctly on the combined Wind Chill/Heat Index/appTemp plot; thank you. However, it also generates an empty appTemp graph. Is it possible to remove that empty graph?

performance issue on raspberry pi 3b with multiple weewx instances

My goal is to run up to 4 weewx-instances with both the seasons skin and the neowx-material skin simultaneously. Some instances have more than one sensor array input (via SDR). But already with 2 seasons skin instances and one of them running neowx-material, the neowx-material reports need up to 40 seconds to generate and ftp uploads appear sometimes 1 to 2 minutes too late (reporting interval set to 1 minute).

Is this the normal performance for additional skins on a raspberry pi 3b or is there something using too much performance or my neowx-material config broken? could i set neowx to only run reports every 10 minutes, while the seasons skin updates every minutes?

Determine Light or Dark Mode for Image Tag

Hi,

Not an issue as such but I have added a sun path diagram to my Ephemeris (Almanac) page:

https://www.360shetland.co.uk/weather/almanac.html

I have two versions of the diagram, light and dark (which is currently loaded). What I would like to do is have the jpg image change depending on whether the colour scheme is in light or dark auto mode. Is there a tag somewhere that picks up whether the device is in light or dark mode?

My ultimate goal is to code a 3D sun path diagram that takes the time and date from the app, similar to this:

http://andrewmarsh.com/apps/staging/sunpath3d.html

Thanks,

Rory

Charts are not starting properly

Now that the first problem fixed and the template is running, i do have another one. Sorry for maybe stupid questions

The date is correct, but the charts are off from the real date:

This is how it looks like. Unfortunately i cannot share as it's installed in my LAN only.
I live in Germany and it's currently Friday 17:05. This is shown in the text boxes properly, but the chart is off the track showing something on thursday (yesterday)

grafik

It's not even an hour (the raspberry does have the correct timezone) but somethin in between

Feature Request: All time records

Hi,
many theme that I used in the past have a all time record page so I can see what's the max temp since we have our weather station (or other examples).

Did I not find it or is it not available? If not, maybe you have time in the near future to make one. :)

Regards and many thanks for your work! I used the "older" neowx theme in the past too.

wind direction arrow the wrong way?

I think the small wind direction arrow is presented the wrong way. I'm running 1.11 on rpi1 and WMR89.

Wind direction is where from the wind is blowing. Wind vector is where to the wind is blowing.
The wind vector graphics show currently the same as wind direction arrow, though they should show just the opposite of each other. Or am I misunderstanding something?

Still this is the best skin by far.

Template evaluation fails - cannot find 'format'

Where should I look to fix the following error? Maybe it's due to a missing python package?

Sep 23 17:40:30 lanserver weewx[9623] ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/neowx-material/archive/NOAA-%Y-%m.txt.tmpl failed.
Sep 23 17:40:30 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/neowx-material/archive/NOAA-%Y-%m.txt.tmpl
Sep 23 17:40:30 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'format' while searching for 'format'
Sep 23 17:40:30 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template
Sep 23 17:40:47 lanserver weewx[9623] ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/neowx-material/archive/NOAA-%Y.txt.tmpl failed.
Sep 23 17:40:47 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/neowx-material/archive/NOAA-%Y.txt.tmpl
Sep 23 17:40:47 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'nolabel' while searching for 'nolabel'
Sep 23 17:40:47 lanserver weewx[9623] ERROR weewx.cheetahgenerator: **** To debug, try inserting '#errorCatcher Echo' at top of template
Sep 23 17:41:24 lanserver weewx[9623] INFO weewx.cheetahgenerator: Generated 10 files for report NeoWXReport in 55.58 seconds
Sep 23 17:41:24 lanserver weewx[9623] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx/neowx-material

-cng

SyntaxWarning

Hi
concratulation to that skin
Y've installed irt by today and got some warrnings regarding Syntax
Might be a Problem of Phyton 3.8

today at 12:21:06_home_weewx_skins_neowx_material_header_inc.py:226: SyntaxWarning: "is" with a literal. Did you mean "=="?
today at 12:21:06_home_weewx_skins_neowx_material_header_inc.py:245: SyntaxWarning: "is" with a literal. Did you mean "=="?
today at 12:21:06_home_weewx_skins_neowx_material_header_inc.py:263: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_header_inc.py:276: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:152: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:170: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:178: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:201: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:212: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:223: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:234: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:295: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:06_home_weewx_skins_neowx_material_footer_inc.py:305: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:412: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:424: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:436: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:487: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:499: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:10_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:511: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:15_home_weewx_skins_neowx_material_index_html_tmpl.py:448: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:15_home_weewx_skins_neowx_material_index_html_tmpl.py:460: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:15_home_weewx_skins_neowx_material_index_html_tmpl.py:472: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:372: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:381: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:390: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:428: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:437: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:18_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:446: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:21_home_weewx_skins_neowx_material_week_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:21_home_weewx_skins_neowx_material_week_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:21_home_weewx_skins_neowx_material_week_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:22_home_weewx_skins_neowx_material_month_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:22_home_weewx_skins_neowx_material_month_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:22_home_weewx_skins_neowx_material_month_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:417: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:429: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:441: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:492: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:504: SyntaxWarning: "is not" with a literal. Did you mean "!="?
today at 12:21:24_home_weewx_skins_neowx_material_year_html_tmpl.py:516: SyntaxWarning: "is not" with a literal. Did you mean "!="?

Best regards
Reto

v1.8 - various 'apparent temperatures'

Would it be possible to add appTemp as a 3rd line in the 'Wind Chill' graph, and then to relabel that graph as 'Wind Chill, Heat Index, Apparent Temperature', please, instead of it being a separate graph? I regard all of these 3 quantities as types of 'feels-like' temperatures, taking account of various met conditions.

Selection Zoom of barometer readings flattens graph

When using the selection zoom tool in v1.11 on barometer readings, the vertical scale of the zoomed graph is too great resulting in essentially a flat line.

For example, the day graph has a vertical scale of 1008 to 1014 hPa.
When I zoom in, the vertical scale becomes 907.5 to 1112.7 hPa.

The other graphs (temperature, wind speed etc.) behave as expected.

Issues with NeoWX-Material on fresh install

Hi,

i've just installed WeeWX fresh with latest version 4.4.0.1

The installation of the skin went through, but after the restart of weewx service i am getting some python errors in my syslog.
No idea how to fix that, might be something with the code

 weewx.cheetahgenerator: Generate failed with exception '<class 'TypeError'>'
 weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/neowx-material/index.html.tmpl
 weewx.cheetahgenerator: **** Reason: '>' not supported between instances of 'NoneType' and 'int'
 weewx.cheetahgenerator: ****  Traceback (most recent call last):
 weewx.cheetahgenerator: ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 324, in generate
 weewx.cheetahgenerator: ****      unicode_string = compiled_template.respond()
 weewx.cheetahgenerator: ****    File "_etc_weewx_skins_neowx_material_index_html_tmpl.py", line 1257, in respond
 weewx.cheetahgenerator: ****  TypeError: '>' not supported between instances of 'NoneType' and 'int'
 weewx.cheetahgenerator: Generate failed with exception '<class 'NameMapper.NotFound'>'
 weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/neowx-material/almanac.html.tmpl
 weewx.cheetahgenerator: **** Reason: cannot find 'next_full_moon' while searching for 'almanac.next_full_moon.raw'
 weewx.cheetahgenerator: ****  Traceback (most recent call last):
 weewx.cheetahgenerator: ****    File "/usr/share/weewx/weewx/cheetahgenerator.py", line 324, in generate
 weewx.cheetahgenerator: ****      unicode_string = compiled_template.respond()
 weewx.cheetahgenerator: ****    File "_etc_weewx_skins_neowx_material_almanac_html_tmpl.py", line 973, in respond
 weewx.cheetahgenerator: ****  NameMapper.NotFound: cannot find 'next_full_moon' while searching for 'almanac.next_full_moon.ra
```w'

Any support would be appreciated

Errore su mobile

Quando vado sul mobile, il nome di intestazione non va a capo e la finestra si allarga. Come posso risolvere?

Screenshot_2021-12-23-12-48-10-442_com android chrome

Drill down for Month [TXT] in archive shows the annual report

Thank you for making it easier to see the TXT report on month

When I drill down into my 2021-03 report I am seeing the annual outputs - rather than the traditional month breakdown?

http://10.1.2.22/weewx/archive/NOAA-2021-03.txt

                 CLIMATOLOGICAL SUMMARY for year 2021

NAME:
ELEV: 738 feet

                                   TEMPERATURE (°C)

                          HEAT    COOL                              MAX    MAX    MIN    MIN
      MEAN   MEAN         DEG     DEG                                >=     <=     <=     <=

YR MO MAX MIN MEAN DAYS DAYS HI DAY LOW DAY 30 0 0 -20

2021 01
2021 02
2021 03 8.3 5.2 6.6 23.8 0.0 10.2 21 5.0 21 0 0 0 0
2021 04
2021 05
2021 06
2021 07
2021 08

Add Wind Run to NOAA Text Reports

Edit, my fault, it was FTPing the files from the local webserver and not updating them. Here's the NOAA-%Y-%m.txt.tmpl to add windrun to the monthly text report:

#encoding UTF-8
## +-------------------------------------------------------------------------+
## |    NOAA-%Y-%m.txt.tmpl   Template for "NOAA month summary" text file    |
## +-------------------------------------------------------------------------+
## | Original version by Tom Keffer in the weewx Standard skin               |
## | See: https://github.com/weewx/weewx/tree/master/skins/Standard/NOAA     |
## +-------------------------------------------------------------------------+
#set $YM="%Y %m"
#set $D=" %d"
#set $M=" %b"
#set $Time=" %H:%M"
#set $NODAY=" N/A"
#set $Temp="%6.1f"
#set $Wind="%6.1f"
#set $Dist="%6.0f"
#set $Count="%6d"
#set $NONE="   N/A"
#if $unit.unit_type_dict.group_rain == "mm"
#set $Rain="%6.1f"
#else
#set $Rain="%6.2f"
#end if
                   MONTHLY CLIMATOLOGICAL SUMMARY for $month_name $year_name


NAME: $station.location
#if $Extras.Appearance.show_coordinates == "yes"
ELEV: $station.altitude    LAT: $station.latitude[0]-$station.latitude[1] $station.latitude[2]    LONG: $station.longitude[0]-$station.longitude[1] $station.longitude[2]
#else
ELEV: $station.altitude
#end if


                   TEMPERATURE ($unit.label.outTemp.strip()), RAIN ($unit.label.rain.strip()), WIND SPEED ($unit.label.windSpeed.strip()), WIND RUN ($unit.label.windrun.strip())

                                         HEAT   COOL         AVG
      MEAN                               DEG    DEG          WIND                   DOM    WIND
DAY   TEMP   HIGH   TIME    LOW   TIME   DAYS   DAYS   RAIN  SPEED   HIGH   TIME    DIR    RUN
----------------------------------------------------------------------------------------------
#for $day in $month.days
#if $day.outTemp.count.raw or $day.rain.count.raw or $day.wind.count.raw
$day.dateTime.format($D, add_label=False) $day.outTemp.avg.format($Temp,$NONE,add_label=False) $day.outTemp.max.format($Temp,$NONE,add_label=False) $day.outTemp.maxtime.format($Time,add_label=False) $day.outTemp.min.format($Temp,$NONE,add_label=False) $day.outTemp.mintime.format($Time,add_label=False) $day.heatdeg.sum.format($Temp,$NONE,add_label=False) $day.cooldeg.sum.format($Temp,$NONE,add_label=False) $day.rain.sum.format($Rain,$NONE,add_label=False) $day.wind.avg.format($Wind,$NONE,add_label=False) $day.wind.max.format($Wind,$NONE,add_label=False) $day.wind.maxtime.format($Time,add_label=False) $day.wind.vecdir.format($Dir,$NONE,add_label=False) $day.windrun.sum.format($Dist,$NONE,add_label=False)
#else
$day.dateTime.format($D)
#end if
#end for
----------------------------------------------------------------------------------------------
    $month.outTemp.avg.format($Temp,$NONE,add_label=False) $month.outTemp.max.format($Temp,$NONE,add_label=False)    $month.outTemp.maxtime.format($D,add_label=False) $month.outTemp.min.format($Temp,$NONE,add_label=False)    $month.outTemp.mintime.format($D,add_label=False) $month.heatdeg.sum.format($Temp,$NONE,add_label=False) $month.cooldeg.sum.format($Temp,$NONE,add_label=False) $month.rain.sum.format($Rain,$NONE,add_label=False) $month.wind.avg.format($Wind,$NONE,add_label=False) $month.wind.max.format($Wind,$NONE,add_label=False)    $month.wind.maxtime.format($D,add_label=False) $month.wind.vecdir.format($Dir,add_label=False) $month.windrun.sum.format($Dist,$NONE,add_label=False)

It looks like this:
https://www.360shetland.co.uk/weather/archive/NOAA-2022-02.txt

Note that you must have windrun in the archive for this to work.

Rain Data not shown

I don't have any rain shown nor in the charts nor in the values. I have configured following in [[[Extras]]] => [[[[Appearance]]]].

# The order of values cards (left column)
values_order = outTemp, outHumidity, barometer, rain, windSpeed, dewpoint, windchill, heatindex, inTemp, inHumidity, UV, ET, radiation, appTemp, cloudbase

# The order of chart cards (right column)
charts_order = outTemp, windchill, barometer, rain, windSpeed, windvec, UV, ET, radiation, outHumidity, inTemp, inHumidity, appTemp, cloudbase

If I add rainRate instead of rain, i get a value 0mm and a chart title only. Is there anything special that has to be made to show the rain?

I'm using https://github.com/michael-slx/weewx-weatherlink-live with the extended schema user.weatherlink_live.schema which then looks like this for the rain:

image

Adding data from a second database

What is the correct syntax for adding in data from a second database to charts in this skin? I had a look around this area - https://neoground.com/docs/neowx-material/dev.index - but don't see a reference to using additional databases.

Thanks,
David


The second database is defined in the config file (wmr88.conf in this case, not weewx.conf) as follows -

[DataBindings]
    [[bresser_binding]]
        database = bresser_sqlite
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.wview_extended.schema
    [[wx_binding]]
        database = archive_sqlite
        table_name = archive
        manager = weewx.manager.DaySummaryManager
        schema = schemas.wview_extended.schema

[Databases]
    [[bresser_sqlite]]
        database_name = bresser.sdb
        database_type = SQLite
    [[archive_sqlite]]
        database_name = wmr100.sdb
        database_type = SQLite

I tried including a chart in index.html.tmpl as follows based on the syntax for the standard Weewx -

 //  $getChartJsCode("bresserTemp", "bresserTempchart", "area", "($data_binding='bresser_binding').inTemp", "($data_binding='bresser_binding').outTemp")

But it failed with this, indicating that the syntax I used was incorrect -

Mar 21 15:00:30 raspberrypi weewx-wmr88[658] ERROR weewx.cheetahgenerator: Evaluation of template /etc/weewx/skins/neowx-material/index.html.tmpl failed.
Mar 21 15:00:30 raspberrypi weewx-wmr88[658] ERROR weewx.cheetahgenerator: **** Ignoring template /etc/weewx/skins/neowx-material/index.html.tmpl
Mar 21 15:00:30 raspberrypi weewx-wmr88[658] ERROR weewx.cheetahgenerator: **** Reason: cannot find 'has_data' while searching for 'day.(data_binding='bresser_binding').inTemp.has_data'

new issue with latest update

After fixing the first problem with the graphs my installation now shows another minor issue:

grafik

I've verified the source code and compared it with the TMPL file, it's the same. So this text block is shown which should be a tooltip:


           <h5 class="h5-responsive indigo-text">Barometer

                <i class="wi wi-direction-up-right" title="Trend: 1.3 mbar" data-toggle="tooltip"></i>
              #elseif 1.3398078924278707 == 0
                <i class="wi wi-direction-right"></i>

            </h5>

Realtime Data

Do you have any plan/ideas to implement realtime data? If yes, would like to assist

Incorrect italian words in Translation section of skin.conf

Using language = it option in skin.conf I found two error in italian translation of english counterparties and asuggestion for a different translation of "set"

[[[it]]]
...
rise = Levata
...
set = Caduta (you can use Tramonto. Tramonto and Caduta are both used but the former is used more often)
...
summer_solstice = Solstizio estate

Obviously I can change them by myself into the file but I will point them out anyway for a future release if you decide to correct the file.

I'll try to translate all the other words (temperature, humidity, rain and so on) as I did in the neowx previous version but it's a my web site customization that I don't expect to be done by anyone :-)

how do i add a chart?

i have custom measurements that i'd like to see in the charts.
how do i add them?

Aerisweather forecast

I wonder how hard it would be to make Aerisweather forecasts work with this theme?
As https://darksky.net does not allow any new registrations and stops providing the free forecast at the end of this year so that would not be an option. If you provide weather data to https://www.pwsweather.com you can use AerisWeather
forecasts. There are couple of templates which have done this. Like Saratoga template https://saratoga-weather.org/index.php and Belchertown skin https://github.com/poblabs/weewx-belchertown .

There is api to use with AerisWeather.
https://www.aerisweather.com/support/docs/api/

A question: What is appTemp?

I have looked around, I checked the code, checked past issues, but I can't work out what appTemp actually is?

v1.9 - appTemp titles

For the variable appTemp, would it be possible to rename the text box, and change the label on the Wind Chill/Heat Index/appTemp combined graph, to Apparent Temp, please?

appTemp on 'Yesterday' page

On the 'Yesterday' page, on the combined Wind Chill/Heat Index/appTemp graph, appTemp is shown for today as well as the previous days. Can this be corrected, please?
yesterday-appTemp

windDir graph not available?

I would like to have a simple graph of wind direction (not the wind rose).
Is that possible?

Using windDir in the skin.conf produces an empty graph.

Configuration value "show_about_data" ignored

Yesterday I downloaded and installed neowx-material. While making changes in the "skin.conf" file I found that the "show_about_data" setting did not turn on/off the "About" text in the screen footer. It appears that an "if/end if" block is missing in the "footer.inc" file. I modified my copy as follows and it solved the issue for me:

           ## Content
            #if $Extras.Footer.show_about_data == "yes"
            <h5 class="text-uppercase">$Extras.Translations[$Extras.language].about</h5>
            #end if
            <table class="d-inline">
                #if $Extras.Footer.show_about_data == "yes"
                <tr>
                    <td>$Extras.Translations[$Extras.language].hardware:</td>
                    <td>$station.hardware</td>
                </tr>
                <tr>
                    <td>$Extras.Translations[$Extras.language].altitude:</td>
                    <td>$station.altitude</td>
                </tr>
                #end if

I used two "if/end if" blocks to allow the "<table class="d-inline" statement to always be visible to allow further customization to be added after the second "if/end if" block. If that is not needed, a single "if/end if" block enclosing all of the statements should work too.

As a separate matter, I also added the following "if/end if" statements to the footer.inc file to suppress display of the "Links" header when no links are defined:

            #if $Extras.Footer.link1_url is not "" and $Extras.Footer.link2_url is not "" and $Extras.Footer.link3_url is not "" and $Extras.Footer.link4_url is not ""
            <h5 class="text-uppercase">$Extras.Translations[$Extras.language].links</h5>
            #end if

Please feel free to adapt this in any way that you find helpful.

rain calculation

it seems, there is a bug in the rain calculation for the page "yesterday". perhaps also others pages.
Text and Graph not equal.

rain

Odd Characters

I'm not sure if it was an update or something that might have changed my site but I have noticed that my charts are displaying the symbol for degree Β° versus showing the Β°. This is a recent occurrence (the past 3 or 4 days) but I was curious if anyone else has come across it.

Almanac Reversed in Southern Hemisphere

Hi, On the Almanac page the Summer Solstice shows a date in June. This is our winter in the southern hemisphere. Similarly, the Winter Solstice displays a date in December, our Summer. And so on... the Autumnal Equinox is in Spring...

Install problem

I have troubles installing (How easy it should be), i've downloaded the ZIP file en put it on mu Rpi.

Then:

"wee_extension --install=/home/pi/neowx-material-latest.zip
Request to install '/home/pi/neowx-material-latest.zip'
Extracting from zip archive /home/pi/neowx-material-latest.zip
Saving installer file to /usr/share/weewx/user/installer/neowx-material
Traceback (most recent call last):
File "/usr/share/weewx/wee_extension", line 88, in
main()
File "/usr/share/weewx/wee_extension", line 80, in main
ext.install_extension(options.install)
File "/usr/share/weewx/weecfg/extension.py", line 125, in install_extension
self.install_from_dir(extension_dir)
File "/usr/share/weewx/weecfg/extension.py", line 228, in install_from_dir
shutil.copy2(installer_path, extension_installer_dir)
File "/usr/lib/python3.7/shutil.py", line 263, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib/python3.7/shutil.py", line 121, in copyfile
with open(dst, 'wb') as fdst:
PermissionError: [Errno 13] Permission denied: '/usr/share/weewx/user/installer/neowx-material'"

SyntaxWarning

Hi, i notice that you current code displays a lot of syntax issues with the latest version of Python
tried to search for the below in the files, but can only find is not that is # out.

Are you planning of updating the syntax to reflect != or can you guide me so that i can correct myself.
Thanx again

_etc_weewx_skins_neowx_material_footer_inc.py:234: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_footer_inc.py:295: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_footer_inc.py:305: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:412: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:424: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:436: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:487: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:499: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year__Y_html_tmpl.py:511: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_index_html_tmpl.py:448: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_index_html_tmpl.py:460: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_index_html_tmpl.py:472: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:372: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:381: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:390: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:428: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:437: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_yesterday_html_tmpl.py:446: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_week_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_week_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_week_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_month_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_month_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_month_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year_html_tmpl.py:417: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year_html_tmpl.py:429: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year_html_tmpl.py:441: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year_html_tmpl.py:492: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_etc_weewx_skins_neowx_material_year_html_tmpl.py:504: SyntaxWarning: "is not" with a literal. Did you mean "!="?

wee_reports shows syntax warnings

on a fresh install of weewx 4.5.1 and neowx-material 1.11 running wee_reports yields the following syntax warnings. not sure how important this is??

_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:406: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:418: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:430: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:481: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:493: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month__Y__m_html_tmpl.py:505: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_head_inc.py:172: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_head_inc.py:184: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_header_inc.py:100: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_header_inc.py:131: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:150: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:169: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:188: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:207: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:226: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:245: SyntaxWarning: "is" with a literal. Did you mean "=="?
_home_weewx_skins_neowx_material_header_inc.py:263: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_header_inc.py:276: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:152: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:170: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:178: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:201: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:212: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:223: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:234: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:295: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_footer_inc.py:305: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:412: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:424: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:436: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:487: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:499: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year__Y_html_tmpl.py:511: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_index_html_tmpl.py:448: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_index_html_tmpl.py:460: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_index_html_tmpl.py:472: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:372: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:381: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:390: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:428: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:437: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_yesterday_html_tmpl.py:446: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_week_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_week_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_week_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month_html_tmpl.py:395: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month_html_tmpl.py:407: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_month_html_tmpl.py:419: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:417: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:429: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:441: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:492: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:504: SyntaxWarning: "is not" with a literal. Did you mean "!="?
_home_weewx_skins_neowx_material_year_html_tmpl.py:516: SyntaxWarning: "is not" with a literal. Did you mean "!="?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.