- 1
$ npm install ember-cli-phone-number --save-dev
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
$ npm install ember-cli-phone-number --save-dev
Всё достаточно просто. Нам нужен текстовый инпут, в который пользователь вводит свой номер мобильного телефона. Предназначение: sms-оповещение. Проблема в том, что все существующие решения привязываются к определённому формату номера (US, Canada), а при использовании международного формата для US-номера выясняется, что в нём 11 цифр, а не 12. Пользователь же может иметь номер хоть в ёбаном Вануату. Текущее решение: принимать любой текст в инпут, делать .replace(/[^0-9]/g, ''), схоронять в базу и ебаться с этим потом. Чувствую запашок, но не могу понять откуда. Швабрашвабр про телефонные номера читал. inb4, js не нужен.
Запашок наверное всё-таки от стандартов телефонных номеров...
+2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="format-detection" content="telephone=no"/><title>MINI-MBA Professional</title></head><body style="-webkit-text-size-adjust: none; margin: 0; padding: 0; background-color: #f5f5f5"><img src="http://outlineagency.go2cloud.org/aff_i?offer_id=14&aff_id=1004&aff_sub=release_1&source=mailing" width="1" height="1" />
<table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#f5f5f5"><tr><td valign="top" style="border-collapse: collapse"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td style="border-collapse: collapse"><table width="600" border="0" align="center" cellpadding="0" cellspacing="0"><tr>
всего-то две строчки поправить
https://gyazo.com/1a9d5a74da2212b7f758adbf908d2c1c
+2
while (s != null)
{
s = fs.ReadLine();
//arr line example <rect x="0" y="0" rgba(92,41,235,0.9921568627451
String[] arr = s.Split('(');
arr = arr[1].Split(',');
int fourPart = (int)(float.Parse(arr[3].Replace('.',',')) * 0xFF);
var binaryFour = Convert.ToString(fourPart, 2);
while(binaryFour.Length < 8)
{
binaryFour = "0" + binaryFour;
}
int threePart = int.Parse(arr[2]);
var binaryThree = Convert.ToString(threePart, 2);
while (binaryThree.Length < 8)
{
binaryThree = "0" + binaryThree;
}
int twoPart = int.Parse(arr[1]);
var binaryTwo = Convert.ToString(twoPart, 2);
while (binaryTwo.Length < 8)
{
binaryTwo = "0" + binaryTwo;
}
int firstPart = int.Parse(arr[0]);
var binaryfirst = Convert.ToString(firstPart, 2);
number = Convert.ToInt32((binaryfirst + binaryTwo + binaryThree + binaryFour),2);
Write("number", number.ToString());
}
Хз как такое вообще появляется в голове
+2
CharT getline(std::istream& i, string& s, const CharT* delim) {
...
if (!i.operator void*())
break;
...
}
Библиотека Apache UIMA-CPP.
Что могло заставить написать так, вместо обычного if (i)? Какой-то древний компилятор, который не использует каст к указателю в условии?
Ну и, разумеется, в C++11 ios::operator void*() заменили на explicit ios::operator bool(), так что работать перестало.
+2
using System;
using System.Collections.Generic;
using System.Linq;
namespace Lens.Stdlib
{
/// <summary>
/// Standard library randomizer methods.
/// </summary>
public static class Randomizer
{
#region Fields
/// <summary>
/// Random seed.
/// </summary>
public static readonly Random m_Random = new Random();
#endregion
#region Methods
/// <summary>
/// Gets a random floating point value between 0.0 and 1.0.
/// </summary>
/// <returns></returns>
public static double Random()
{
return m_Random.NextDouble();
}
/// <summary>
/// Gets a random integer value between 0 and MAX.
/// </summary>
public static int Random(int max)
{
return m_Random.Next(max);
}
/// <summary>
/// Gets a random integer value between MIN and MAX.
/// </summary>
public static int Random(int min, int max)
{
return m_Random.Next(min, max);
}
/// <summary>
/// Gets a random element from the list.
/// </summary>
public static T Random<T>(IList<T> src)
{
var max = src.Count - 1;
return src[Random(max)];
}
/// <summary>
/// Gets a random element from the list using a weighter function.
/// </summary>
public static T Random<T>(IList<T> src, Func<T, double> weighter)
{
var rnd = m_Random.NextDouble();
var weight = src.Sum(weighter);
if (weight < 0.000001)
throw new ArgumentException("src");
var delta = 1.0/weight;
var prob = 0.0;
foreach (var curr in src)
{
prob += weighter(curr) * delta;
if (rnd <= prob)
return curr;
}
throw new ArgumentException("src");
}
#endregion
}
}
Ну что сказать, 3,4-Метилендиоксиамфетамин
+2
<script>
var x = [];
var y = [];
x = [<?php foreach ($chart as $word => $f) echo "'$word', " ?>];
y = [<?php foreach ($chart as $f) echo "$f, " ?>];
</script>
JS
+2
private long m_IsExecuting;
// ...
public virtual void Execute(object parameter)
{
try
{
if (Interlocked.Read(ref m_IsExecuting) != 0)
return;
Interlocked.Increment(ref m_IsExecuting);
m_Execute(parameter);
}
finally
{
Interlocked.Decrement(ref m_IsExecuting);
}
}
А за то, что ты меня не пустил, я пущу следующего.
+2
<?
$lasturl = ($_GET[url]) ? $_GET[url] : $CONFIG[site_url]; // последний урл
$expire = ($_GET[expire] == 1) ? time() + 365*24*60*60 : 0;
$domain = str_replace('www.', '', $_SERVER['HTTP_HOST']);
if (preg_match('/^[\d\.]*$/', $domain)) $cookie_domain = $domain; // ip-домен
else {$temp = explode('.', $domain); $temp = array('', $temp[count($temp)-2], $temp[count($temp)-1]); $cookie_domain = implode('.', $temp);}
setcookie($CONFIG[cookie_name], serialize(array($_GET[user_id],$_GET[password])), $expire, $CONFIG[cookie_path], $cookie_domain,
$CONFIG[cookie_secure], true);
if($_GET['iframe'])
{
setcookie('iframe', '1', $expire, $CONFIG[cookie_path], $cookie_domain,
$CONFIG[cookie_secure], true);
}
$i = array_search('www.'.$domain, $CONFIG[domains]);
if ($i && $CONFIG[domains][$i] && $i == count($CONFIG[domains]) - 1) $url = $lasturl;
else
$url = 'http://'.$CONFIG[domains][$i+1].'/domain_login/?user_id='.$_GET[user_id]
.'&password='.$_GET[password].'&expire='.$_GET[expire].'&url='.rawurlencode($lasturl).'&iframe='.($_GET['iframe']?'1':'0');
header("Location: $url");
ScriptEnd();
?>
... когда хочется бросить все и уехать в деревню. Наслаждаться утренней свежестью, слушать пение птиц. День за днем восстанавливая психику так беспощадно порушенную жестокими людьми-самозванцами, порочащими нашу профессию богов!
© "PHP. Немного боли и страдания"
+2
template <typename T, typename ...Args>
std::future<T> looped_thread::add_task(std::function<T(Args...)> func, Args ...args) {
std::packaged_task<T()> task(std::bind(func,args...));
std::future<T> fut = task.get_future();
std::lock_guard<std::mutex> lock(_mutex);
/*std::queue<std::function<void()>>*/ _tasks.push(/*std::packaged_task<T()> -> std::function<void()> ??*/);
/*std::condition_variable*/ _cv.notify_one();
return std::move(fut);
}
Задача: написать собственный пул потоков с блекджеком и шлюхами
Подзадача: реализовать метод, добавляющий функтор в очередь команд и возвращающий std::future
Что не так: std::packaged_task не конвертируется в std::future. Он не копируется, а поэтому:
а. его нельзя передать через std::bind;
б. при захвате через с++14 lambda capture expressions (аля
auto f = [t = std::move(task)](){/**/};
) мы получаем t типа const std::packaged_task (мб это особенность mingw, конечно, но один фиг работать должно везде). Ни выполнить, ни мувнуть, ни скопировать. mutable в спецификации лямбды не помогает+2
int CHud :: DrawHudNumber( int x, int y, int iFlags, int iNumber, int r, int g, int b)
{
int iWidth = GetSpriteRect(m_HUD_number_0).right - GetSpriteRect(m_HUD_number_0).left;
int k;
if (iNumber > 0)
{
// SPR_Draw 100's
if (iNumber >= 100)
{
k = iNumber/100;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw 10's
if (iNumber >= 10)
{
k = (iNumber % 100)/10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
k = iNumber % 10;
SPR_Set(GetSprite(m_HUD_number_0 + k), r, g, b );
SPR_DrawAdditive(0, x, y, &GetSpriteRect(m_HUD_number_0 + k));
x += iWidth;
}
else if (iFlags & DHN_DRAWZERO)
{
SPR_Set(GetSprite(m_HUD_number_0), r, g, b );
// SPR_Draw 100's
if (iFlags & (DHN_3DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
if (iFlags & (DHN_3DIGITS | DHN_2DIGITS))
{
//SPR_DrawAdditive( 0, x, y, &rc );
x += iWidth;
}
// SPR_Draw ones
SPR_DrawAdditive( 0, x, y, &GetSpriteRect(m_HUD_number_0));
x += iWidth;
}
return x;
}
int CHud::GetNumWidth( int iNumber, int iFlags )
{
if (iFlags & (DHN_3DIGITS))
return 3;
if (iFlags & (DHN_2DIGITS))
return 2;
if (iNumber <= 0)
{
if (iFlags & (DHN_DRAWZERO))
return 1;
else
return 0;
}
if (iNumber < 10)
return 1;
if (iNumber < 100)
return 2;
return 3;
}
Программишка, я тут тебе принёс ещё кода из Half-Life 1.
https://github.com/ValveSoftware/halflife/blob/master/cl_dll/hud_redraw.cpp#L252
Собственно, что код-то делает? Рисует спрайты с циферками. Те, что показывают текущее количество HP, брони, амуниции.