-
+5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
template<typename T>
T* sanitize(T* p)
{
return reinterpret_cast<T*>(
reinterpret_cast<uintptr_t>(p) & ~(alignof(T)-1));
}
template<typename T>
constexpr size_t avaliable_width()
{
switch(alignof(T))
{
case 1: return 0;
case 2: return 1;
case 4: return 2;
case 8: return 3;
case 16: return 4;
case 32: return 5;
case 64: return 6;
case 128: return 7;
case 256: return 8;
default: return 0;
}
}
template<size_t bit, typename T>
T* set_tag(T* p, bool tagged = true)
{
static_assert(bit < avaliable_width<T>(), "bad_width");
if(tagged) {
return reinterpret_cast<T*>(
reinterpret_cast<uintptr_t>(p) | 1 << bit);
}
return reinterpret_cast<T*>(
reinterpret_cast<uintptr_t>(p) & ~(uintptr_t(1) << bit));
}
template<size_t bit, typename T>
bool get_tag(T* p)
{
static_assert(bit < avaliable_width<T>(), "bad_width");
return reinterpret_cast<uintptr_t>(p) >> bit & 1;
}
Младшие биты указателей на выравненные типы всегда нулевые. Из за этого (по формуле Шеннона) указатель несёт в себе меньше информации, оставаясь того же размера. Битоёбов это расстраивает.
Soul_re@ver,
16 Июня 2016
-
+7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
<?php
$ip=$_SERVER[REMOTE_ADDR];
if ($_GET['hash']="ae2b1fca515949e5d54fb22b8ed95575") {
file_put_contents("deviceupdate.log","DATE: ".date("Y-m-d H:i:s")." IP: ".$ip."\n",FILE_APPEND | LOCK_EX);
file_put_contents("homeip.log",$ip,LOCK_EX);
print "DATE: ".date("Y-m-d H:i:s")." IP: ".$ip;
}
?>
http://wiki.mikrotik.com/wiki/Dynamic_DNS_on_private_DNS_server_(Route r_OS,_Bind,_Apache,_and_Shell_script)
> Web server reads the IP from the router and if the hash is ok, it writes the IP into two files in the same folder
> if the hash is ok
Ок.
zombiee,
16 Июня 2016
-
−1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
public function getRegProductDetails($product_id = '', $status = 'yes'){
$this->db->select('*');
if ($product_id != '') {
$this->db->where('product_id', $product_id);
}
if ($status != '') {
$this->db->where('active', $status);
}
$query = $this->db->get('registration_package');
foreach ($query->result_array() as $row) {
$product_details[] = $row;
}
return $product_details;
Работаю с коммерческой системой, писали Индусы. У меня 100 Мб анекдотов в исходном коде. В БД есть столбец статус, они туда пишут статус yes OR no. И проверка везде тоже идет через строку. а выборку делают вот такой функцией. Зачем тут проверять статус на пустоту? В других подобных функциях встречаю RETURN в форейче
traney,
16 Июня 2016
-
+1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
PreparedStatement ps = conn.prepareStatement(
"SELECT * FROM Task;");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
logger.info(rs.getInt(1));
this.projects = new ProjectCollection.Project[rs.getInt(1)];
}
rs.getInt(1) - индексный столбец
arny,
16 Июня 2016
-
+3
- 1
- 2
- 3
- 4
- 5
if(substr($_POST['id'], -3) == '_id'){
echo mpql(mpqw("SELECT name FROM {$conf['db']['prefix']}{$arg['modpath']}_". substr($_POST['id'], 0, strlen($_POST['id'])-3). " WHERE id=". (int)$_POST['value']), 0, 'name');
}else{
echo $_POST['value'];
}
https://github.com/mpak2/mpak.su/blob/master/modules/users/edit.свойства.php
3_dar,
15 Июня 2016
-
+3
- 1
- 2
- 3
- 4
#define ROOSTER "?"
#define CONDENSED_MILK "."
string kokoko = string(ROOSTER, 1) + string(CONDENSED_MILK);
ЧТО блять мешает написать
string kudkudah(".?");
ЧТО?
codemonkey,
15 Июня 2016
-
−97
- 1
НачисляетсяВЦеломЗаМесяц = СпособРасчета = Перечисления.СпособыРасчетаОплатыТруда.ФиксированнойСуммой ИЛИ БазовыйПериодПрошлыйМесяц;
Типовая конфигурация ЗКБУ, увидев такой код немного смутило или лыжи не едут или ...
rus_LAN,
15 Июня 2016
-
+4
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
public static void Test(__arglist)
{
}
public static void Text2(ref string str)
{
var reftype = __reftype(new TypedReference());
var refvalue = __refvalue(new TypedReference(), string) = "string";
var makeref = __makeref(str);
}
Ты не поверишь, но это реально C#
dm_fomenok,
15 Июня 2016
-
+5
- 1
- 2
int lastletter = MathUtils.random(0, 32);
letter = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ".substring(lastletter,lastletter+1);
всё просто и наглядно.
WaterSmith,
15 Июня 2016
-
+9
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem ] == 'R')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'I')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'N')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'G')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ':')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ' ')
{
cnt_comma = 0;
while(cnt_comma < 2)
{
cntfrommodem = cntfrommodem + 1;
if(buf_modem[cntfrommodem] == ',')
cnt_comma = cnt_comma + 1;
}
cntfrommodem = cntfrommodem + 1 ;
}
}
}else
cntfrommodem -= 4;
}else cntfrommodem -= 3;
}else cntfrommodem -= 2;
}else cntfrommodem--;
}
buf_modem[tmpcntr] = buf_modem[cntfrommodem];
cntfrommodem++;
tmpcntr++;
}
cntfrommodem = 0;
while(1)
{
/// ищем мэдэ5
if(buf_modem[cntfrommodem] == '#')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem ] == 'E')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'R')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'V')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'A')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'N')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'S')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == 'W')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ':')
{
cntfrommodem = cntfrommodem + 1 ;
if(buf_modem[cntfrommodem] == ' ')
{
Парсинг ответа от GSM-модема. Код из реального проекта для STM32.
Tronix,
15 Июня 2016