Чтобы добавлять сообщения и комментарии, .

@mabu:
mabu

Scope
		Dim hDC As HDC = GetDC(hWin)
		
		ReleaseDC(hWin, hDC)
End Scope

@oxpa:
oxpa

echo 'КПРФ' | iconv -t cp1251 | iconv -f koi8-r

@segfault:
segfault

octave:3> a = 8000 / 12380664
a =    6.4617e-04
octave:4> b = 300 / 720575
b =    4.1633e-04
octave:5> a / b
ans =  1.5520

Интересный факт, население Москвы в среднем в 1.552 раза тупее населения Тюмени.

@Strephil:
Strephil

Я написал дурацкий быдлокод!
Вставка вот такого фрагмента не помогает. Всё равно программа не работает.
for (i = 0; i < 100; i++)
  {
    _asm nop;
  }

А вот вставка:
for (i = 0; i < 2; i++)
  {
    _asm nop;
    _asm nop;
  }
Помогает, всё работает. Может быть, дело не в задержке, а в выравнивании адресов?..

@SannySanoff:
SannySanoff

Открыл для себя Vert.x, плюс Kotlin = полностью асинхронное всё: http сервер, https (!!) клиент, кафка, постгрес, вебсокеты уже то понятно. В котлине 1.1.1 все на корутинах.. прямо скала. Адопшн кажется будет побольше чем у скалы, поэтому ожидаем вскорости бум. С небольшим набором корутинных врапперов пишем буквально следующее:

    suspend fun graphAPI(request: String, access: String) : JsonObject {
        val resp = VX.getJson("https://graph.facebook.com/v2.3/$request&access_token=$access")
        when(resp.statusCode) {
            200 -> return JsonObject(resp.response)
            else -> throw IOException("Facebook invalid response: "+resp.toString());
        }
    }

        when (req.path()) {
            "/register_server" -> {
                exec("delete from other_servers where ip_address=${v(param("ip"))}")
                exec("insert into other_servers(ip_address, hostname) values(${v(param("ip"))},${v(param("host"))}) ")
                commit()
                output(JsonObject(Pair("result","OK")))
            }

(во втором куске кода sql bindings безопасные если шо)
(может можно кое что еще проще, пока не знаю как)
(обработка ошибок, выделение коннекшнов, транзакциы всякие итп - все снаружи)
(ексепшны в котлине отлично дружат в асинхронном коде)
(а и не скажешь, что асинхронный, верно?)

21 век настал.

@ndtimofeev:
ndtimofeev

import Data.Proxy
import Data.Kind

type family Saturate (f :: k) (v :: a) :: Type where
    Saturate (f :: a -> Type) v = f v
    Saturate (f :: a -> k)    v = Saturate (f v) v

data Select f = Select (forall a. Saturate f a -> a)

sel :: Proxy f -> (forall a. Saturate f a -> a) -> Select f
sel _ = Select

data T a b c = T { x :: a, y :: b, z :: c }

Есть такой кусочек кода. Всё как всегда:
Select x — реджектится компилятором (без явной аннотации типа) потому что из Saturate f a нельзя вывести f.
sel x — работает, но таскать Proxy (или явную аппликацию типа) не хочется.
Есть шанс сделать красиво?

@trapdoor:
trapdoor

type Oh = IO
type Shit = ()

main :: Oh Shit

@den-po:
den-po

баловались в фидо

      ,gSS$$SSg,
    ,J$$$$$$$$$$S,     шуршал себе по лесу неспеша,
   ,Y'  `$$$$$$$$$L             топтал дорожки, любовался елкой...
   $'g$$b`$$$$$$$$B    вдруг на меня, такого малыша,
   `j'$'$h`$$$$$$$Y             свалилось яблоко,
@,.d$g$g$$ $$$$$$Y'                     чуть-чуть помяв иголки :)
 "╚S$$' Y╝'`''''

@trapdoor:
trapdoor

Можно увеличить границу сброса тегов в подвал до 990 (>920)?

@lurker:
lurker

забавный ascii-комикс из твиттера

(• • )                    (°- ° )

(• • )          HEY> (°0° )

( • •) <?               (°- ° )

( • •)                   t(°^°t)

@ndtimofeev:
ndtimofeev

λ> type family Null :: Constraint where Null = ()
λ> type AddShow a b = (Show b, a)
λ> :kind! FoldL AddShow Null [Int, Char]
FoldL AddShow Null [Int, Char] :: Constraint
= (Show Char, (Show Int, () :: Constraint))
λ>

Так и живём.

@ndtimofeev:
ndtimofeev

Довольно забавно, но вот такой тест:

quickCheck $ frequency [(0, pure True)]

Очень плохо воспроизводится.

@ndtimofeev:
ndtimofeev

В догонку к #2862204

isDiscard :: AnException -> Bool
(discard, isDiscard) = (E.throw (E.ErrorCall msg), isDiscard)
 where
  msg = "DISCARD. " ++
        "You should not see this exception, it is internal to QuickCheck."
  isDiscard e =
    case E.fromException e of
      Just (E.ErrorCall msg') -> msg' == msg
      _ -> False

Ну вот примерно так всё там внутри и выглядит.

@lurker:
lurker

лучше и не скажешь

@waterlaz:
waterlaz

Ну отлично, блеать //_-)

 # rmmod osscore
rmmod: ERROR: Module osscore is in use

 # lsmod
Module                  Size  Used by
osscore               552069  -1
e1000e                164574  0

@qnikst:
qnikst

1.hs:46:44: error:
    • Could not deduce: q ~ (a0 -> q0)
      from the context: Cxq t q
        bound by the type signature for:
                   foo :: Cxq t q => V t -> [Def] -> [Val] -> q -> Exq t q
        at 1.hs:44:1-55
      or from: t ~ 'S a
        bound by a pattern with constructor:
                   :. :: forall (a :: S). String -> V a -> V ('S a),
                 in an equation for ‘foo’
        at 1.hs:46:6-12
      ‘q’ is a rigid type variable bound by
        the type signature for:
          foo :: forall (t :: S) q.
                 Cxq t q =>
                 V t -> [Def] -> [Val] -> q -> Exq t q
        at 1.hs:44:8
    • In the second argument of ‘(.)’, namely ‘q’
      In the first argument of ‘(=<<)’, namely ‘foo ss df vals . q’
      In the expression:
        foo ss df vals . q =<< fs =<< getValue s defs vals
    • Relevant bindings include
        q :: q (bound at 1.hs:46:23)
        foo :: V t -> [Def] -> [Val] -> q -> Exq t q (bound at 1.hs:45:1)


проблема т.к. у меня kind q зависит от значения (и типа) V t, если это V Z то kind *,  если V (S t) то * -> *.
это как-нить вообще обходится?

@lurker:
lurker

изощрённенько

<div ng-if="init">{{init()}}</div>

function SomeController ($scope) {
	$scope.init = function () {
		delete $scope.init;
		init ();
	};
}

@lurker:
lurker

https://pbs.twimg.com/media/C2V9PoEWIAA1gma.jpg:large jck, т прнс?

@ndtimofeev:
ndtimofeev

Господа java-программисты, по этому бэктрейсу можно сказать чего не хватает этому куску говна скомпилированному в 2014ом году?

ERROR: Uncaught Exception: java.lang.ExceptionInInitializerError
        at com.bric.swing.QDialog.createOKButton(Unknown Source)
        at com.bric.swing.QDialog.createDialogFooter(Unknown Source)
        at com.bric.swing.QDialog.showDialog(Unknown Source)
        at com.bric.swing.QDialog.showDialog(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.lib.dialogs.SDialogs.notify(Unknown Source)
        at com.treestar.flowjo.main.Main.javaCheck(Unknown Source)
        at com.treestar.flowjo.main.Main.initMain(Unknown Source)
        at com.treestar.flowjo.main.Main.main(Unknown Source)
Caused by: java.lang.NullPointerException
        at com.treestar.lib.FJCommand.<clinit>(Unknown Source)
        ... 10 more

Нет, исходников у меня нет.

@segfault:
segfault

Тупой вопрос: есть готовое, чтобы заменить имя файла вида

~/file/path

на

/home/user/file/path

Чтобы правильно, с учётом всех подводных камней и самому не писать?

@segfault:
segfault

Prelude> divMod 5 60
(0,5)
Prelude> divMod (-5) 60
(-1,55)

Я как-то не правильно понимаю целочисленное деление?

@segfault:
segfault

А я тут хаскельным квикчеком нашёл весёлый кейс

> d = new Date(2006, 02, 26, 02, 28, 53);
Sun Mar 26 2006 03:28:53 GMT+0600 (+06)
> d = new Date(2006, 02, 26, 0, 0, 0);
Sun Mar 26 2006 00:00:00 GMT+0500 (+05)
> d = new Date(2006, 02, 26, 1, 0, 0);
Sun Mar 26 2006 01:00:00 GMT+0500 (+05)
> d = new Date(2006, 02, 26, 2, 0, 0);
Sun Mar 26 2006 03:00:00 GMT+0600 (+06)
> d.getHours()
3

Работает в последнем хромаче, в фоксе, наоборот, час становится на 1 меньше. Гуголь чет ни чего не говорит по этому поводу. Я первооткрыватель?

@lurker:
lurker

начинаю ощущать трудности при отладке проектов с глубокими стек-трейсами. пока как-то спасает опыт, но дальше, видимо, будет хуже.

@qnikst:
qnikst

все что вам хотелось знать о жуйке:

wget -qO- http://api.juick.com/messages?tag=programming | runhaskell 1.hs  > programming.csv
wget -qO- http://api.juick.com/messages?tag=мж | runhaskell 1.hs  > mjo.csv


> p <- read.table("programming.csv",header=TRUE)


> summary(p)
         author     replies          likes
 qnikst     :9   Min.   : 0.00   Min.   :0.00
 SannySanoff:3   1st Qu.: 0.75   1st Qu.:0.00
 max630     :2   Median : 6.00   Median :0.00
 OCTAGRAM   :2   Mean   :11.15   Mean   :0.25
 drvlat     :1   3rd Qu.:10.25   3rd Qu.:0.00
 justonemore:1   Max.   :81.00   Max.   :2.00
 (Other)    :2

> mjo <- read.table("mjo.csv",header=TRUE)


> summary(mjo)
       author     replies           likes
 provaton :5   Min.   :  0.00   Min.   :0.0
 Monstreek:4   1st Qu.:  0.00   1st Qu.:0.0
 Bounty   :3   Median :  2.50   Median :0.0
 O01eg    :2   Mean   : 28.45   Mean   :0.2
 Strephil :2   3rd Qu.: 17.75   3rd Qu.:0.0
 lex2d    :1   Max.   :151.00   Max.   :1.0
 (Other)  :3

@ndtimofeev:
ndtimofeev

type family TestTail t where
    TestTail (HList xs) = xs
    TestTail t          = '[t]

data HList xs where
    HCons :: x -> y -> HList (x ': TestTail y)

Интересно, зачем я всегда добавлял Nil в гетеросписки?

@lurker:
lurker

 

@ndtimofeev:
ndtimofeev

Есть тип data Box (xs :: [*]) where { Box :: (KnownNat n, Elem a xs ~ 'True) => a -> Proxy n -> Box xs }, есть типофамилия что-то вроде ForAll (cxt :: * -> Constraint) (xs :: [*]), которая конструирует констрейнт путём применения cxt ко всем типам в списке xs. Теперь я хочу функцию вида withBox :: ForAll cxt xs => Proxy cxt -> Box xs -> (forall a. cxt a => a -> t) -> t, которая будет применять функцию про констрейнт к содержимому коробки при условии, что для всех возможных вариантов содержимого коробки констрейнт определён.

@Shchvova:
Shchvova

вставлять видосики с ютубчика что бы выглядело ОК

<div style="position:relative; width:100%; height:0px; padding-bottom:56.25%;">
    <iframe style="position:absolute; left:0; top:0; width:100%; height:100%" frameborder="0" allowfullscreen="allowfullscreen"
        src="https://www.youtube.com/embed/peyo_97BOmI">
    </iframe>
</div>


@ndtimofeev:
ndtimofeev

У меня тут регионопроблемы. Пусть у меня есть функции вида:

doWith :: Shit res -> (forall s. res s -> Reg s ()) -> IO ()

traverseRes :: (Generic (res s), Magic (Rep (res s))) => res s -> Reg s ()

По отдельности всё хорошо, но если сделать что-то вроде:

\hnd -> doWith hnd traverseRes

Незамедлительно наступает ад, поскольку функции очень нужен констрейнт от traverseRes, но s уже стёрто и задать его никак нельзя. Собственно два вопроса: можно ли как-то убедить компилятор что констрейнты справедливы для любого s и как с этим борются при использовании регионов здорового человека?

@don-Rumata:
don-Rumata

В догонку к #2853614 .

nmap -sV -p22,80,443 packages.microsoft.com

Starting Nmap 7.01 ( https://nmap.org ) at 2016-11-17 01:02 MSK
Nmap scan report for packages.microsoft.com (13.80.10.205)
Host is up (0.059s latency).
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http     nginx 1.10.0 (Ubuntu)
443/tcp open  ssl/http nginx 1.10.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.02 seconds

Балмера бы удар наверное хватил.

@AlexVK:
AlexVK

CVE-2016-2183
Block cipher algorithms with block size of 64 bits (like DES and 3DES) birthday attack known as Sweet32

This is a cipher vulnerability, not limited to any specific SSL/TLS software implementation. DES and Tripple DES (3DES) block ciphers with a block size of 64 bits, have a birthday bound of approximately 4 billion blocks (or 2 to the power of 32, hence the name of this vulnerability). A man-in-the-middle (MitM) attacker, who is able to capture a large amount of encrypted network traffic, can recover sensitive plain text data.
CVE: CVE-2016-2183
NVD: CVE-2016-2183
CVSSv2: AV:N/AC:L/Au:N/C:P/I:N/A:N

Reference:
https://sweet32.info/
https://access.redhat.com/security/cve/cve-2016-2183
https://www.openssl.org/blog/blog/2016/08/24/sweet32/
Evidence:
Cipher Suite: TLSv1_1 : DES-CBC3-SHA
Cipher Suite: TLSv1_2 : DES-CBC3-SHA
Remediation:
This issue can by avoided by disabling block ciphers of 64 bit length (like DES/3DES) in all the SSL/TLS servers. Exact procedure depends on the actual implementation. Please refer to the documentation of your SSL/TLS server software and actual service software (http server, mail server, etc).

@AlexVK:
AlexVK

Ну вот что ему надо...
51255 error Linux 4.8.6-201.fc24.x86_64
51256 error argv "/usr/bin/node" "/usr/bin/npm" "install"
51257 error node v4.6.1
51258 error npm  v2.15.9
51259 error code EPEERINVALID
51260 error peerinvalid The package [email protected] does not satisfy its siblings' peerDependencies requirements!
51260 error peerinvalid Peer [email protected] wants csslint@^0.10.0

@waterlaz:
waterlaz

p = problem $ do
    x <- newVar
    y <- newVar
    x >| 0
    x <| 10
    y >| 0
    y <| 10
    (x*x + y*y) >| 9
    minimize $ x*x - 2*x*y + 4*x + y*y - 4*y + 4 + 7


*Main > last $ take 1000 $ optimize p
(7.000000322085075,array (1,2) [(1,0.8733208989876261),(2,2.872753373591708)])


ня?

@Darwin:
Darwin

https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

@axl:
axl

Только хардкор
#content>.col-xs-8 .tab-content .panel .panel-body table tr td .wrappert .wrapper .btn:nth-child(2){margin-right:10px; overflow: hidden; text-overflow: ellipsis;}

@ndtimofeev:
ndtimofeev

λ> ['-','A'..'H']
"-A"

Я что-то не соображу что бы это значило.

@mabu:
mabu

В логах сервера нашёл. Зачем так много заголовков?

GET / HTTP/1.1
OSVersion: 6.1
vendor: Google Inc.
userAgent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
appName: Netscape
BrowserName: Chrome
language: ru
Accept-Encoding: gzip, deflate, compress
productSub: 20030107
BrowserEngine: WebKit
vendorSub: 
isMobile: no
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
Accept: */*
product: Gecko
appVersion: 5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
isBrowser: yes
OSFamily: Windows
BrowserBaseVersion: 43.0.2357.132
platform: Win32
normalizedBrowserName: Google Chrome
appCodeName: Mozilla
x64: yes
OSName: Windows 7
BrowserEngineVersion: 537.36
BrowserBase: Chromium
BrowserVersion: 43.0.2357

@waterlaz:
waterlaz

Ленивые вычисления + Y-комбинатор с мемоизацией = динамическое программирование (не совсем =)

y lim f = let a = listArray lim $ map g (range lim)
               g = f (a!)
           in (a!)

fib = y (1, 100) $ \f n -> if (n<=2) then 1 else (f (n-1)) + (f (n-2))

@Balancer:
Balancer

nginx ppa сломали. Не апгрейдится штатно. Вот простейшее решение:

Work-around fix:

Edit /var/lib/dpkg/info/nginx-common.config

and add a return on the first line of the log_symlinks_check function.

e.g.:

 log_symlinks_check() {
     return                <---- here
     # Skip new installations
     [ -z "$1" ] && return

@segfault:
segfault

> var c = function(x) { return x; };
undefined
> typeof(c);
'function'
> c.vnezapno = 'govno';
'govno'
> c.vnezapno
'govno'
> typeof(c)
'function'
> typeof(c.vnezapno)
'string'