This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- https://stackoverflow.com/questions/38990950/simulating-esp8266-server-multithreading | |
someint = 5 | |
a = 1 | |
srv:listen(8080,function(conn) | |
conn:on("receive", function(client,request) | |
client:send(someint); | |
client:close(); -- btw, you should wait for 'sent' event before closing, see http://nodemcu.readthedocs.io/en/latest/en/modules/net/#example_6 | |
end) | |
end) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local rotate = function(char, rotateleft) | |
local tab = {} | |
local newTable = {} | |
local numberToString = function(number, base, minLen) | |
local s = "" | |
repeat | |
local remainder = number % base | |
s = remainder .. s | |
number = (number - remainder) / base |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local numberToTable = function(number, base, minLen) | |
local t = {} | |
repeat | |
local remainder = number % base | |
table.insert(t, 1, remainder) | |
number = (number - remainder) / base | |
until number == 0 | |
if #t < minLen then | |
-- "pad" table with 0s | |
for i = 1, minLen - #t do table.insert(t, 1, 0) end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local numberToTable = function(number, base, minLen) | |
local t = {} | |
repeat | |
local remainder = number % base | |
table.insert(t, 1, remainder) | |
number = (number - remainder) / base | |
until number == 0 | |
if #t < minLen then | |
-- "pad" table with 0s | |
for i = 1, minLen - #t do table.insert(t, 1, 0) end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// inspired by a note at http://php.net/manual/en/function.getmxrr.php | |
// further inspiration from https://github.com/webdigi/SMTP-Based-Email-Validation | |
function validateEmail($email) | |
{ | |
$emailValid = false; | |
$domain = extractFullyQualifiedDomainFromEmail($email); | |
$mxHost = findPreferredMxHostForDomain($domain); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
------------------------------------------------------------------------------ | |
-- Net send queueing helper | |
-- | |
-- Created by devsaurus for https://github.com/nodemcu/nodemcu-firmware/pull/1207 | |
-- | |
-- See also | |
-- https://nodemcu.readthedocs.io/en/dev/en/modules/net/#netsocketsend | |
-- | |
-- Based on Vladimir Dronnikov's | |
-- MQTT queuing publish helper |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
... | |
<!-- http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#filter-stack --> | |
<!-- logout w/o CSRF protection if logout filter is placed before the CSRF filter --> | |
<security:custom-filter before="CSRF_FILTER" ref="logoutFilter" /> | |
</security:http> | |
<bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter"> | |
<constructor-arg name="logoutSuccessUrl" value="place-whatever-you-need-here" /> | |
<constructor-arg name="handlers"> | |
<list> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ ssh <user>@<mac-without-screen> | |
$ sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false | |
$ sudo launchctl load /System/Library/LaunchDaemons/com.apple.screensharing.plist | |
/System/Library/LaunchDaemons/com.apple.screensharing.plist: Service is disabled | |
$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- If you have a recent firmware from the dev branch you could do away with that ugly timer | |
-- by relying on WiFi events and (re-)acting accordingly. See wifi.sta.eventMonReg() at | |
-- https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#wifistaeventmonreg | |
-- init all globals | |
... | |
wifiReady = 0 | |
function configureWiFi() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- inspired by: http://www.esp8266-projects.com/2015/03/buttons-pushbuttons-and-debouncing-story.html | |
local GPIO14 = 5 | |
local debounceDelay = <however-many-ms-your-sensor-requires> | |
local debounceAlarmId = <0-6> | |
gpio.mode(GPIO14, gpio.INT, gpio.PULLUP) | |
gpio.trig(GPIO14, "down", doorLocked) | |
function doorLocked() | |
-- don't react to any interupts from now on and wait 50ms until the interrupt for the up event is enabled | |
-- within that 50ms the switch may bounce to its heart's content |