Sponsored Content
Top Forums Programming Wuhan Coronavirus Status for China - Rapid Prototype Blynk App with ESP8266 Post 303043591 by Neo on Saturday 1st of February 2020 11:14:06 AM
Old 02-01-2020
Update:

According to the network, Blynk has apparently responded to my honest opinion and review of their product and business model by blocking our two apps we are running, but that is OK, I expected as much from the Blynk team.

I woke up this morning and built an app using Blynk to help the good people of China in a national crisis.

Now, at the end of the day, I am very unhappy, 100% of that unhappiness is because of Blynk.

Both my apps are now blocked from the Blynk network because I provided an honest assessment of their business model.

Blocked Wuhan Virus in China App (Blocked By Blynk):


Wuhan Coronavirus Status for China - Rapid Prototype Blynk App with ESP8266-blocked_blynkjpeg


My mistake in this task was in choosing Blynk for this app. I will not make that mistake again.
 

6 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Function prototype declaration

Hi All, I have the script as below #!bin/bash let k=9 if then echo "Start" Hello echo "End" else echo "failed" fi function Hello() { echo "hello !!!!" } I got the below error : (4 Replies)
Discussion started by: Balasankar
4 Replies

2. Programming

Embarcadero Rapid SQL query for dependency

Team I am using Embarcadero Rapid SQL V8 . When we right click on any procedure/table/view and open the contents. It has dependencies tab, which tell what all are the dependents used . My question is how does this information captured in backend to retrieve the dependency objects in... (0 Replies)
Discussion started by: Perlbaby
0 Replies

3. What is on Your Mind?

Major Changes in New UserCP (v0.63) Prototype

Regarding the latest version of the UserCP prototype (version 0.63) I have made a lot of major changes, including Added a "Posts Timeline" table for the recent posts, complimenting the non-table version earlier, which has been moved off the main menu (link at the bottom of the table). Added a... (4 Replies)
Discussion started by: Neo
4 Replies

4. Programming

NodeMCU ESP8266 Blynk SSL Application for Linux Server Load Averages

Here is a useful SSL (HTTPS) application for anyone with a remote Linux server they want to keep an eye on using Blynk and the NodeMCU ESP8266. This little app also works (have tested as well) on the WeMos D1 ESP8266 Arduino board. The NodeMCU setup could not be easier, just find a... (8 Replies)
Discussion started by: Neo
8 Replies

5. Programming

Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App

With a little bit of work, was able to build a nice "Wuhan Coronavirus Status" app using MQTT and the IoT-OnOff app. More on this technique here: ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages The result turned out nice, I think. I like the look and... (10 Replies)
Discussion started by: Neo
10 Replies

6. Programming

A Slightly Better NTP Client for the ESP8266

Was not really happy with the NTP clients for the ESP8266 because, after a few years of game engine programming, I am not a fan of a lot of code and delays in the main loop, so here is a "slightly better NTP client" for the ESP8266. In a nutshell, instead of having a delay in the main loop as a... (1 Reply)
Discussion started by: Neo
1 Replies
Jifty::Manual::ObjectModel(3pm) 			User Contributed Perl Documentation			   Jifty::Manual::ObjectModel(3pm)

NAME
Jifty::Manual::ObjectModel -- An overview of the Jifty object model OVERVIEW
Jifty applications are generally built in a similar way. There's no reason you need to use the model we've built, but we find it a reasonably OK way to do things. This document should serve as a roadmap to the Jifty class library, as well as an introduction to the way Jifty applications are put together. We start with the classes in your application and move on to the bits of Jifty itself. If you create a brand new application, let's call it "MyWeblog", and create one model class called "MyWeblog::Post", you'll end up with the following files and directories: MyWeblog/ etc/ config.yml lib/ MyWeblog/ Model/ Post.pm Action/ bin/ jifty web/ templates/ static/ t/ #some test files. At least that's the scaffolding Jifty creates for you. Behind the scenes, Jifty is actually doing a lot more. Rather than create a bunch of little "stub" classes and libraries for you, Jifty generates them on the fly. It's always possible to actually create these libraries when you need to customize the default behavior, but we work really hard to make sure you don't need to. Right now, Jifty is automatically creating libraries, static web pages and web templates. We're not 100% satisfied with how Jifty automatically creates web templates and static pages and are working to redesign that. The library you see when creating a Jifty app is: MyWeblog::Model::Post "MyWeblog::Model::Post" describes the schema and business logic of your post class. It uses two namespaces, "MyWeblog::Model::Post::Schema" that has actual column definitions and "MyWeblog::Model::Post" that contains the (optional) business logic, access control and so on. That's it. But if you look carefully at "MyWeblog::Model::Post", you'll see the line: use base qw/MyWeblog::Record/; How can that possibly work? There is no "MyWeblog::Record" class in your application. And Jifty, while it tries to be a comprehensive framework, draws the line somewhat short of including application-specific base classes for every application you might possibly contrive. The answer lies in Jifty::ClassLoader, a utility module Jifty uses to create the boring stuff for you when you need it. It'd certainly be possible for Jifty to create every class you might need as a file on disk when you first create your application (and indeed we may decide to do so if enough people yell at us), but when the stub classes we'd provide are just little shims that inherit from or call to the Jifty core, it doesn't make much sense to create them before you need them. You could build a Jifty application without these shims by having your model classes inherit directly from Jifty::Record, but then you'll run into trouble the second you want to add application-specific code and have to go back and retrofit each and every one of your classes to use your new base class. It's a little thing, but one that can save you a bunch of pain and suffering later on. "MyWeblog::Record" is the first autogenerated class you'll run into but probably not the last. A full list of everything Jifty provides for your new application follows: You get one each of the these: MyWeblog::Record This class is, as discussed above, a thin wrapper around Jifty::Record. You might choose to create your own "MyWeblog::Record" if you want to build in custom access control by overriding "current_user_can" in Jifty::Record or want to implement methods that every model class should have access to. MyWeblog::Collection We haven't talked much about collections yet, but as their name implies, collections are bundles of Jifty::Record objects that match some set of criteria. It's relatively uncommon that you'll want to override this, but if you want the rope, it's here. MyWeblog::Notification "MyWeblog::Notification" is an app-specific implementation of the Jifty::Notification email driver. You might want to override this class if you want to set an application-specific header or footer for all outgoing email. MyWeblog::Dispatcher "MyWeblog::Dispatcher" is an application-specific "dispatcher" class that allows you to write code that runs when a client makes a request to the server before Jifty runs actions or renders templates. See Jifty::Dispatcher for more information about the dispatcher. MyWeblog::CurrentUser Most every web application that grows past a personal hack eventually starts to provide personalization, require access control or otherwise want to know who's currently in the driver's seat. The "current user" for an application is a first-class object in Jifty. To get user-based authentication working out of the box, you'll have to override the default "MyWeblog::CurrentUser". (Out of the box, it treats everyone as the same user.) We're working to generalize the authentication system we've used in a few Jifty apps so far to the point where it feels "right" as a core Jifty component, but we're not quite there just yet. Most of what you'll need to override in "MyWeblog::CurrentUser" is the "_init" function, which needs to load up an application-specific model class that represents one of your users into its "user_object" accessor. To make all this work, you'll also need an application- specific "MyWeblog::Action::Login" and likely also a passel of user-management code. (And yes, this is the topic of a future generalization and a future tutorial. At that point, a bunch of this documentation will be extracted to Jifty::CurrentUser.) But wait! There's more! You also get one each of these for your default model class: MyWeblog::Model::PostCollection It's no fun having a weblog that only shows you one post at a time, is it? Jifty provides you with default Jifty::Collection classes for every Jifty::Record subclass in your model. You get all the standard "limit", "order_by", "columns", paging support and so-on out of the box, but sometimes when you're going to be getting collections matching certain criteria often, it makes sense to actually create your own subclass and start dropping methods in. MyWeblog::Action::CreatePost, MyWeblog::Action::UpdatePost, MyWeblog::Action::DeletePost One of Jifty's strengths is that it makes it easy to build applications by tying application-specific controller functions to your model classes and intuiting what parameters they take by having a look inside the models. For each class in your model, Jifty creates three actions, "Create","Update" and "Delete". They're named, perhaps a bit unadventureously, "MyWeblog::Action::CreatePost", "MyWeblog::Action::UpdatePost", "MyWeblog::Action::DeletePost" and inherit directly from Jifty::Action::Record::Create, Jifty::Action::Record::Update and Jifty::Action::Record::Delete, respectively. Sometimes, it makes sense to override these default actions when you want to change the behaviour of one or more of the actions. One common use is to add or remove AJAX validation or autocompletion for an argument or to change an argument's default value for webforms. This, isn't, however the place to start inserting business logic or access control. That belongs in your model class, which these wrappers will hand things off to. By putting logic in your actions, you make your model classes less useful and run into trouble when you want to start scripting your model outside a web environment. There's no reason you need to stick with these default "implementations" if they're not meeting your needs. Just create your own classes and Jifty will use your real classes instead. perl v5.14.2 2010-12-08 Jifty::Manual::ObjectModel(3pm)
All times are GMT -4. The time now is 01:21 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy