to post messages and comments.

@Ilya-S-Zharskiy:

C:\Users\mathi\> .\docker.exe run -it ubuntu

https://tutorials.ubuntu.com/tutorial/tutorial-windows-ubuntu-hyperv-containers#8

и ведь погромизды так и будут делать!

https://github.com/ionescu007/lxss

https://www.youtube.com/watch?v=_p3RtkwstNk

@qnikst:

Prelude> let x = (id True, id undefined)
Prelude> :sprint x
x = _
Prelude> let x = (True, id undefined)
Prelude> :sprint x
x = _
Prelude> let x = (True, undefined)
Prelude> :sprint x
x = (,) True _
Prelude> let x = (True, undefined::Int)
Prelude> :sprint x
x = (True,_)
Prelude> let x = (True, False)
Prelude> :sprint x
x = (True,False)

кто-нить может мне объяснить почему вывод именно такой?

@otakuSiD:

list scaling policies attached to asg

> aws autoscaling describe-policies --auto-scaling-group-name ASG-NAME-HERE --query "ScalingPolicies[*].{Name:PolicyName,Alarms:Alarms[*].AlarmName}"

@lurker:

заглянул в букмарки, а там такое

javascript:(function()%7Bjavascript:var%20s%3Ddocument.createElement(%27script%27)%3Bs.setAttribute(%27src%27,%27https://nthitz.github.io/turndownforwhatjs/tdfw.js%27)%3Bdocument.body.appendChild(s)%3B%7D)()%3B

попробуйте на главной жуйка, например

@max630:

Чото я не понял. cgi в iis сделал, программу сделал. В песочнице всё работало.
На работе запускаю - пишет:

Unhandled Exception: System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.ArgumentException: Illegal characters in path.
 at System.Security.Permissions.FileIOPermission.CheckIllegalCharacters(String[] str, Boolean onlyCheckExtras)
 at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
 at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String[] pathList, Boolean checkForDuplicates, Boolean needFullPath)
 at System.AppDomainSetup.VerifyDir(String dir, Boolean normalize)
 at System.AppDomainSetup.get_ConfigurationFile()
 at System.Configuration.ClientConfigPaths..ctor(String exePath, Boolean includeUserConfig)
 at System.Configuration.ClientConfigPaths.GetPaths(String exePath, Boolean includeUserConfig)
 at System.Configuration.ClientConfigurationHost.GetStreamName(String configPath)
 at System.Configuration.ClientConfigurationHost.get_IsAppConfigHttp()
 at System.Configuration.ClientConfigurationSystem..ctor()
 at System.Configuration.ConfigurationManager.EnsureConfigurationSystem() --- End of inner exception stack trace ---
 at System.Configuration.ConfigurationManager.PrepareConfigSystem()
 at System.Configuration.ConfigurationManager.GetSection(String sectionName)
 at System.Configuration.ConfigurationManager.get_AppSettings()
.....

залез дебаггером - он ищет путь до конфига как "\\?C:\....exe.config"
Ну и видимо как-то умудряется на этом упасть
Что я не так сделал?

@Kerrigan:

>>> var Kerrigan: Long = 26
>>> Kerrigan += 1
>>> println(Kerrigan)
27

@axl:

       __
     />  フ
     |   _  _ l
     /` ミ_xノ
     /      |
    /  ヽ   ノ
    │  | | |
 / ̄|   | | |
 | ( ̄ヽ__ヽ_)__)
 \二つ

@kitt:

$kitt++;
print $kitt;

>>34

@lurker:

+    switch (fov) {
+    case 15: return size * 7.595754112725151;
+    case 30: return size * 3.732050807568878;
+    case 45: return size * 2.414213562373095;
+    case 60: return size * 1.732050807568877;
+    default: return size / Math.tan(fov / 2 * Math.PI / 180);
+    }

@waterlaz:

Что я делаю неправильно, что чувствую потребность в таких конструкциях?

#define ZIP(__x_, __xs_, __y_, __ys_) \
     for(auto __x_ = __xs_.begin(); __x_ == __xs_.begin();) \
         for(auto __y_ = __ys_.begin(); \
             __y_ != __ys_.end() && __x_ != __xs_.end(); \
             __y_++, __x_++)
int main()
{
     std::vector<int> xs(3);
     xs = {0, 1, 2};
     std::vector<double> ys(4);
     ys = {3.5, 2.5, 1.5, 0.5};
     
     ZIP(x, xs, y, ys){
         std::cout<<(*x)<<" "<<(*y)<<"\n";
     }
}

Вывод:
0 3.5
1 2.5
2 1.5

@AFAIK:

Жуйк, хочу странного:
У меня на удаленной машине есть башевская переменная, пусть она будет $USERS и в ней будет массив с юзернеймами.
Есть ли какой-нибудь способ сделать так, чтобы эта переменная появилась у меня на машине?
Самое умное, до чего я дошел, это:
USERS=$(ssh example.com 'echo ${USERS[@]}')
но тогда массив перестает быть массивом.

@oxpa:

ЖЖ принёс прекрасное:
>#!/usr/bin/perl -w
>use strict;
>
>print ";-)\n" if "foo" =~ //;
>"bar" =~ /bar/;
>print ":-(\n" if "foo" =~ //;

@mismatch:

// Как жить без приватных методов в интерфейсах?
// Например, пишем такое в DefaultsInterface.java:
public interface DefaultsInterface {

	default void test1() {
		DefaultsInterfaceCompanion.INSTANCE.test("S1");
	}

	default void test2() {
		DefaultsInterfaceCompanion.INSTANCE.test("S2");
	}
}

enum DefaultsInterfaceCompanion {
	INSTANCE();

	void test(String suffix) {
		System.out.println("test" + suffix);
	}
}

// Да, замена не равноценная, но проблему дублирования кода 
// в дефолтных методах решает, не загрязняя интерфейс. 

@SannySanoff:

Хотел поделиться радостью, что в плюсцах-то multiline string завезли, вдруг кто прозевал уже несколько лет, в С++14

Вот она мечта идиота (решетка - это произвольный маркер)

                database->update(R"#(
                                                   delete from tab1
                                                   where a=? and c=?
                                                    )#", binds2(number1, string2));

В следующей декаде завезут наверно string interpolation. Доживу, возрадуюсь.

@lurker:


                         ..sSs$$$$$$b.                                       
                       .$$$$$$$$$$$$$$$.                                     
                    .$$$$$$$$$$$$$$$$$$$$$b.                                 
                  .$$$$$$$$$$$$$$$$$$$$$$$$$                                 
                 $$$$$$$$$$$$$$$$$S'   `$$$$                                 
                 $$$$$$$$$$$$$$S'        $$$                                 
                 $$$$$$$$$$$$$'          `$$.                                
                 `$$$$$$$$$$$$$           `$$$.                              
                   `$$$$$$$$$'       .s$$$ $$ $                              
                     $$$$$$$$$.sSs .s$$s"   s s                              
                      $$$$$$$$$$$$           $P                              
                      `$$$$$$$$$$$s          $                               
                        $$$$$$$$$$$.    ",                                   
                        `$$$$$$$$$$sS$                                       
        s$$$.            `$$$$$$$$$$$$.s"'   .$.                             
        $$$$$.              `$$$$$$$$$$.    .$$$Ss.s$s.                      
         $$$$$.              `$$$$$$$$$P   .$$$$$$$$$$$$.                    
         $$$$$$.               `$$$$$$$' .$$$$$$$$$$$$$$$$.                  
         `$$$$$$.                 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$s.          
           $$$$$$.                `$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$s.      
         .s$$$$$$$.                 `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.    
         s  $$$$$$$.                .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.   
         `$$$$$$$$$$.             .$$$' $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.  
          `$$$$$$$$$$.           s$'   $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.
          $$$$$$$$$$$$e         $$$     `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        .' $$$$$$$$$$7         $$$$       `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       "   `$$$$$$$$7         $$$$$       .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      $$Ss..$$$$$$$7        $$$$$$$    .s$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       $$$$$$$$$$$$        $$$$$$$$ .s$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
        $$$$$$$$$$$     .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      .$$$$$$$$$$$$$   .$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      $$$$$$$$$$$$$$  .$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      $$$$$$$$$$$$$$ .$$$$$$$$$$$' `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      $$$$$$$$$$$$$$ $$$$$$$$$$$$   `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      $$$$$$$$$$$$$$$$$$$$$$$$$$$    `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      `$$$$$$$$$$$$$$$$$$$$$$$$$$     `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       $$$$$$$$$$$$$$$$$$$$$$$$$$.     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
       `$$$$$$$$$$$$$$$$$$$$$$$$$$     `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
         $$$$$$$$$$$$$$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
          $$$$$$$$$$$$$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
           $$$$$$$$$$ $$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
            $$$$$$$$$$$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
             $$$$$$$$$$$$$$$$$$$$'      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
             `$$$$$$$$$$$$$$$$$$$       $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
              `$$$$$$$$$$$$$$$$$$.      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
               `$$$$$$$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                 $$$$$$$$$$$$$$$$$.     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                  `$$$$$$$$$$$$$$$$     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                    $$$$$$$$$$$$$$$     `$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
                    $$$$$$$$$$$$$$$      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

@lurker:

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::-'    `-::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::-'          `::::::::::::::::
:::::::::::::::::::::::::::::::::::::::-  '   /(_M_)\  `:::::::::::::::
:::::::::::::::::::::::::::::::::::-'        |       |  :::::::::::::::
::::::::::::::::::::::::::::::::-         .   \/~V~\/  ,:::::::::::::::
::::::::::::::::::::::::::::-'             .          ,::::::::::::::::
:::::::::::::::::::::::::-'                 `-.    .-::::::::::::::::::
:::::::::::::::::::::-'                  _,,-::::::::::::::::::::::::::
::::::::::::::::::-'                _,--:::::::::::::::::::::::::::::::
::::::::::::::-'               _.--::::::::::::::::::::::#####:::::::::
:::::::::::-'             _.--:::::::::::::::::::::::::::#####:::::####
::::::::'    ##     ###.-::::::###:::::::::::::::::::::::#####:::::####
::::-'       ###_.::######:::::###::::::::::::::#####:##########:::####
:'         .:###::########:::::###::::::::::::::#####:##########:::####
     ...--:::###::########:::::###:::::######:::#####:##########:::####
 _.--:::##:::###:#########:::::###:::::######:::#####:#################
'#########:::###:#########::#########::######:::#####:#################
:#########:::#############::#########::######:::#######################
##########:::########################::################################
##########:::##########################################################
##########:::##########################################################
#######################################################################
#######################################################################
################################################################# dp ##
#######################################################################

@lurker:

                   ____==========_______
        _--____   |    | ""  " "|       \
       /  )8}  ^^^| 0  |  =     |  o  0  |
     </_ +-==B vvv|""  |  =     | '  "" "|
        \_____/   |____|________|________|
                 (_(  )\________/___(  )__)
                   |\  \            /  /\    
                   | \  \          /  /\ \      
                   | |\  \        /  /  \ \    
                   (  )(  )       (  \   (  )
                    \  / /        \  \   \  \    
                     \|  |\        \  \  |  |
                      |  | )____    \  \ \  )___      
                      (  )  /  /    (  )  (/  /
                     /___\ /__/     /___\ /__/

@vt:

║KKT_8_14_02_02_Full.EXE                                │  69 M║║
║Read.me                                                │  2715║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║                                                       │      ║║
║
║                                   ╔════════════════════════ Copy ════════════════════════╗
║                                   ║ Copying the file                                     ║
║                                   ║ KKT_8_14_02_02_Full.EXE                              ║
║                                   ║ to                                                   ║
║                                   ║ \\192.168.4.254\C$\Install\KKT_8_14_02_02_Full.EXE   ║
║                                   ║ ███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░   7% ║
║                                   ╟─────────────────────── Total ────────────────────────╢
║                                   ║ Files processed: 0                                   ║
║                                   ║ Bytes processed: 2 097 1524 073 708 503 040          ║
║                                   ╟──────────────────────────────────────────────────────╢
║                                   ║ Time: 00:02:18    Remaining: 00:29:40     37,10 KB/s ║
║                                   ╚══════════════════════════════════════════════════════╝
║
║                                                       │      ║║

@mabu:

ДОМ С ТРУБОЙ               @  @
   МЫ С КОЛЯНОМ НЕГОДУЕМ        @     
                             [email protected]      
    ,,,         _____________| |_     
   ,@[email protected],       / __  \       | | \    
  ,@[email protected][email protected],     / /  \  \      | |  \   
 ,@[email protected][email protected][email protected],   /  \__/   \           \  
 ,@\|| /@,  /___________\___________\ 
,@$ ||/@[email protected]  |  _______  |  .____.   | 
 @,\|| /@   | |   |   | |  |    |   | 
    ||/     | |---|---| |  |   ]|   | 
mabu||      | |___|___| |  |    |   | 
`17 ||      |___________|__!____!___| 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

@qnikst:

http://juick.com/rufuse/2872282 в вебне рендеринг ссылки поломали

```
<a href="https://hackage.haskell.org/package/text-icu-0.7.0.1/docs/Data-Text-ICU-Regex.html ," rel="nofollow">hackage.haskell.org</a>
```

@mabu:

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

@oxpa:

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

@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:

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

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

@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:

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:

type Oh = IO
type Shit = ()

main :: Oh Shit

@den-po:

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

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

@trapdoor:

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

@lurker:

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

(• • )                    (°- ° )

(• • )          HEY> (°0° )

( • •) <?               (°- ° )

( • •)                   t(°^°t)

@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:

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

quickCheck $ frequency [(0, pure True)]

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

@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:

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

@waterlaz:

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

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

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

@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:

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

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

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

@lurker:

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

@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:

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

~/file/path

на

/home/user/file/path

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