- 1
- 2
- 3
- 4
Ку всем
Посоны
Как привязать БД для авторизации к html странице?
Не php а html
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Ку всем
Посоны
Как привязать БД для авторизации к html странице?
Не php а html
Написал мне Вася Пупкин, дипломированный специалист в области информационных технологий
+1
Верните мой WCT!
0
// Private method of server, which dispatches active incoming connection.
// Function receives address string and uses it as key to retrieve cached connection.
// Fetched connection is getting read by bufio.Reader, parsed to header and data string if it's size was pointed in header.
// Next, the parsed data handles by protocol and writes a response message.
// The process turns in loop until whether input stream will get an EOF or an error will be occurred.
// In the last case it will be return some error message to a client.
// Anyway, at the end connection will be broken up.
func (server *Server) dispatch(address string) {
defer server.free_chan()
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_new_cmd"
}
connection := server.connections[address]
connectionReader := bufio.NewReader(connection)
// let's loop the process for open connection, until it will get closed.
for {
// let's read a header first
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_read"
}
received_message, n, err := readRequest(connectionReader, -1)
if err != nil {
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_swallow"
}
if err == io.EOF {
server.Logger.Info("Input stream has got EOF, and now is being closed.")
server.breakConnection(connection)
break
}
server.Logger.Warning("Dispatching error: ", err, " Message: ", received_message)
if !server.makeResponse(connection, []byte("ERROR\r\n"), 5){
break
}
} else {
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].Cmd_hit_ts = time.Now().Unix()
}
// Here the message should be handled
server.Stat.Read_bytes += uint64(n)
parsed_request := protocol.ParseProtocolHeader(string(received_message[ : n - 2]))
server.Logger.Info("Header: ", *parsed_request)
if (parsed_request.Command() == "cas" || parsed_request.Command() == "gets") && server.cas_disabled ||
parsed_request.Command() == "flush_all" && server.flush_disabled{
err_msg := parsed_request.Command() + " command is forbidden."
server.Logger.Warning(err_msg)
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_write"
}
err_msg = strings.Replace(protocol.CLIENT_ERROR_TEMP, "%s", err_msg, 1)
server.makeResponse(connection, []byte(err_msg), len(err_msg))
continue
}
if parsed_request.DataLen() > 0 {
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_nread"
}
received_message, _, err := readRequest(connectionReader, parsed_request.DataLen())
if err != nil {
server.Logger.Error("Error occurred while reading data:", err)
server.breakConnection(connection)
break
}
parsed_request.SetData(received_message[0 : ])
}
server.Logger.Info("Start handling request:", *parsed_request)
response_message, err := parsed_request.HandleRequest(server.storage, server.Stat)
server.Logger.Info("Server is sending response:\n", string(response_message[0 : len(response_message)]))
// if there is no flag "noreply" in the header:
if parsed_request.Reply() {
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_write"
}
server.makeResponse(connection, response_message, len(response_message))
}
if err != nil {
server.Logger.Error("Impossible to send response:", err)
server.breakConnection(connection)
break
}
}
if server.Stat.Connections[address] != nil {
server.Stat.Connections[address].State = "conn_waiting"
}
}
}
memcache на go
0
@ ln -s ${PWD}/${OUTPUT} ../${OUTPUT}; \
make ${OUTPUT};
пытался давеча мэйкфайлы окультуривать. в частности штапеля ln'ов (для девелопмента/отладки искусственное окружение создают) на что то более внятное поменять. только сегодня с утра наконец "увидел" почему мои изменения нифига не работали.
+10
https://pbs.twimg.com/media/CatwlfiUEAAT6-D.jpg
+1
<span style="font-size: 16px; line-height: 12px;">
<b style="color: rgb(255, 102, 102);background-color:rgb(255, 204, 204);">
<span <a href="news/"><b style="color:rgb(153, 102, 0);">Новости</b></span>
________________________________________________________</b></span>
html код на одном сайте
0
parent = Folder.get_parent->do
while not [parent is null] : {
current = parent
parent = Folder.get_parent->do
break
}
так вот ищут корневую папку
−2
type Speaker interface {
SayHello()
}
type Human struct {
Greeting string
}
func (Human) SayHello() {
fmt.Println("Hello")
}
...
var s Speaker
s = Human{Greeting: "Hello"}
s.SayHello()
Отсюда: https://habrahabr.ru/post/276981/
−2
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/1|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/1|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/2|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/2|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
...
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|{{Numbered sequence/9|{{#expr:floor ({{{1|0}}}/2)}}|{{{2|}}}|{{{3}}} }}{{Numbered sequence/9|{{#expr:-floor (-{{{1|0}}}/2)}}|{{{2|}}}|{{#expr:floor ({{{1|0}}}/2)+{{{3}}} }} }} }}
{{#ifexpr:{{{1|0}}}<=1|{{ {{{2|}}}|{{#expr:{{{1|1}}}+{{{3}}} }} }}|<span style="color:red">Превышено количество включений — 1024</span>}}
Циклы нельзя, никаких переменных нельзя, только параметры. Казалось бы, ничего страшного — так и рекурсии тоже нельзя!
+1
-- Few Scum
import Data.Char
import Text.Read
import Control.Applicative
import Data.Ratio
import Numeric
import Data.List
import Data.Maybe
data Token
=TLetter Char
|TNumf Rational
|TOp Char
|LBrace
|RBrace
deriving (Show, Eq)
data Expr
=Letter Char
|Numf Rational
|Op Char Expr Expr
|Diff Expr
instance Show Expr where
show (Letter c) = [c]
show (Op c el er) = '(' : show el ++ ')' :
c : '(' : show er ++ ")"
show (Numf v) = show $ toDouble v
show (Diff e) = '(' : show e ++ ")'"
toDouble r = fromRational r :: Double
readUnsignedRationalMaybe f = getParseResult $ parseValue f where
parseValue f = {- readSigned -} readFloat f :: [(Rational, String)]
getParseResult [(value, "")] = Just value
getParseResult _ = Nothing
-- Разбиваем строку на элементы, возаращает перевернутый список токенов
tokenize "" = Nothing
tokenize sourceExpressionString = tok [] sourceExpressionString where
tok [] (c:s)
| c == '-' = tok [TOp '-', TNumf 0] s
tok r@(LBrace:_) (c:s)
| c == '-' = tok (TOp '-':TNumf 0:r) s
tok r (c:s)
| c == '(' = tok (LBrace:r) s
| c == ')' = tok (RBrace:r) s
| isLetter c = tok (TLetter c:r) s
| isOperation c = tok (TOp c:r) s
| isNumber c = parseNumf r (c:s)
tok r "" = Just r
tok resultParsedTokens sourceExpressionString = Nothing
isOperation = (`elem` "+-*/")
isNumf c = isNumber c || c == '.'
parseNumf r s = maybeNumber >>= makeResult where
(numberString, tail) = span isNumf s
maybeNumber = readUnsignedRationalMaybe numberString--readMaybe numberString
makeResult number = tok (TNumf number:r) tail
-- Дерево выражений из списка токенов
parse reversedTokens = reversedTokens >>= makeTree where
priorityOps = ["+-","/*"]
subExpr = splitIntoOperationAndSubExpressions
splitIntoOperationAndSubExpressions reversedTokens =
id =<< find isJust (map (findOp reversedTokens [] 0) priorityOps)
findOp (LBrace:_) _ 0 _ = Nothing -- dont checked on left expression, probably can safety removed
findOp (RBrace:l) r b ops = findOp l (RBrace:r) (b+1) ops
findOp (LBrace:l) r b ops = findOp l (LBrace:r) (b-1) ops
findOp (TOp c:l) r 0 ops
| c `elem` ops = Just (c, l, reverse r)
| otherwise = findOp l (TOp c:r) 0 ops
findOp leftSubExpression [] b operationsForFind
| b > 0 = Nothing
findOp (c:l) r b ops = findOp l (c:r) b ops
findOp [] rightSubExpression braceAmount operationsForFind = Nothing
makeTree reversedTokens = mt reversedTokens $ subExpr reversedTokens
mt t@(RBrace:tt) Nothing
| last t == LBrace = mt (init tt) $ subExpr (init tt)
mt [TLetter v] Nothing = Just $ Letter v
mt [TNumf v] Nothing = Just $ Numf v
mt _ Nothing = Nothing
mt _ (Just (o, l, r)) = makeOperationExpression leftExpressionTree rightExpressionTree o where
leftExpressionTree = mt l $ subExpr l
rightExpressionTree = mt r $ subExpr r
makeOperationExpression = moe
moe Nothing _ _ = Nothing
moe _ Nothing _ = Nothing
moe (Just leftExpressionTree) (Just rightExpressionTree) operation = Just $ Op operation leftExpressionTree rightExpressionTree
-- Простейшее упрощение выражений
firstSimplify e = simplifyTreeHeightTimes <$> e where
stepSimplify = fs
fs (Op '*' e (Numf 1)) = e
fs (Op '*' (Numf 1) e) = e
fs (Op '+' e (Numf 0)) = e
fs (Op '+' (Numf 0) e) = e
fs (Op '/' e (Numf 1)) = e
fs (Op '-' e (Numf 0)) = e
fs (Op '*' (Numf 0) _) = Numf 0
fs (Op '*' _ (Numf 0)) = Numf 0
fs (Op '/' (Numf 0) _) = Numf 0
fs (Op '/' (Letter l) (Letter r))
| l == r = Numf 1
fs (Op '-' (Letter l) (Letter r))
Новая Специальная Олимпиада объявляется открытой.
https://ideone.com/Bottp0
Реализовать поиск производной по выражению на любом языке. У кого получится компактнее, правильнее и больше функционала, тот и победил. Заявлять кандидата в победители (код и его автора) можно несколько раз если код улучшил или написал на другом языке. Призов, кроме почета и приятного времяпрепровождения, - не будет
Если кто-то что-нибудь поломает, то я буду очень рад.
Пока упрощение не работает на полную катушку и из функций производных только +-*/
Мой друг обещает ещё версию на крестах подогнать.