1.  Ambil mangkok tahan panas,

     masukkan dua telur ke dalamnya, (kulitnya nggak ikut ya),

     masukkan pete sesuai selera,

     masukkan bersamaan dengan menanak nasi di rice cooker,

     tunggu setengah jam hingga 45 menit.

     Selama menunggu akan ada bonus bau harum tercium di seluruh bagian rumah, :)

     Bersamaan dengan nasi yang matang, kita sekaligus mendapatkan lauk.

     Praktis, :)

     #EdisiError




    0

    Add a comment

  2.  I bought Behringer Xenyx QX1202usb, a wonderful cheap small mixer.

     Turn out that it has serial number or code in it case. It allowed us to get full access for Tracktion software.

     So I follow the instruction: register, got confirmation email, download.

     When running the software it prompt me to choose between unlock or continue trial. Of course I went to unlock route. But when I type my email and password it get error.

     Tinkering with it for some hours, the truth's hit me. Tracktion gave me T5 software link in my email. The license is for T4.

     So I download T4 manually (re-register with the same email address). Installed , ran , unlocked, and... succeed.

     And guess what, after I unlocked T4, I ran T5, and it suddenly became unlocked, a little surprise bonus..., :)






    0

    Add a comment


  3.  Apa beda 'umak isa apa', 'aku ora nggawa libom', 'adepes rotom ku lagi mogok', 'umak apa wis nakam?', 'wis beli soak?'

     dengan

     'lesek lop', 'ewul', 'aro utem', 'siw utuk?', 'kawa sanap'

     ?

     Kelompok pertama adalah  bahasa walikan khas aremania jaman dulu, kelompok kedua adalah bahasa walikan aremania jaman sekarang yang sering saya baca di pasting media sosial.

     Apa bedanya?

     Bahasa Ngalam kelompok pertama, yang merupakan generasi awal bahasa walikan; hanya membalik kata-kata serapan; kata-kata non bahasa jawa, misal bahasa indonesia. Konon dulu digunakan sebagai sandi, karena penjajah sedikit banyak tahu bahasa indonesia dan tidak tahu bahasa jawa maka penggunaan bahasa indonesia dibalik. Ada beberapa pegecualian seperti kata 'beli' karena jika dibalik tidak dapat dibedakan antara 'ileb' dan 'ilep', maka kata 'beli' tetap dipakai secara normal tanpa dibalik.

     Karena bahasa ini merupakan bahasa yang berkembang  dan masyarakat pun berkembang. Dengan seiring perkembangan teknologi dan lahirnya generasi baru Ngalamania, bahasa ini juga berkembang, meski menurut saya menuju ke arah yang membingungkan.

     Eh, kenapa?

     Membingungkan karena generasi baru pemakai bahasa ini membalik kata-kata secara membabibuta. Tentu saja sejak awal memang tidak ada kaidah resmi bahasa walikan. Namun jika kita membalik semua kata termasuk bahasa jawa, percakapan akan menjadi mengerikan (setidaknya bagi saya) karena otak dipaksa menganalisis dan membalik secara nonstop.

     Dari dua kelompok contoh di atas, kelompok pertama lebih mudah dipahami (menurut saya), dan saya sudah familier dengan model pembalikan seperti itu selama bertahun-tahun.

     Kelompok kedua? Well, sepertinya saya harus mengkalibrasi otak dulu, :)


     #EdisiGakBisaTidur
    0

    Add a comment

  4.  Di tukang fotokopi, menemukan ini terpajang di dinding.

     Kalau ingin MURAH dan CEPAT, jangan harap BAGUS.

     Kalau ingin BAGUS dan MURAH, jangan harap CEPAT.

     Kalau ingin CEPAT dan BAGUS, jangan harap MURAH.


    Mungkin banyak yang tak setuju, tapi itu tulisan yang bagus.

    :)

    #edisiError
    0

    Add a comment

  5.  Kenapa orang tua jaman dulu melarang kita menyapu rumah di malam hari? Kalaupun terpaksa harus menyapu, sapuannya tidak boleh diarahkan keluar melainkan ke dalam untuk dibuang esok harinya?

     Mungkin (hanya kemungkinan), hal itu untuk menghindari barang-barang kecil berharga semacam anting-anting atau kalung emas tipis, atau simcard, yang tak sengaja terjatuh ke lantai ikut tersapu keluar. Karena pada malam hari disapu ke arah dalam, maka misal barang-barang berharga ikut tersapu, kita masih akan dapat mencarinya esok hari, saat cahaya terang, saat akan membuang hasil sapuan di malam kemarin.
    0

    Add a comment

  6.  Diciptakan untuk ditaati

     ... dan dilanggar.

     Tentu saja pelanggar aturan akan dikenai sanksi.

     Sanksi terhadap pelanggar seharusnya ada di tiap aturan

     Tetapi beberapa aturan dibuat tanpa sanksi untuk pelanggar, entah kenapa

     #edisiError

     (hampir tertabrak kendaraan di area Car Free Day)
    0

    Add a comment

  7.  Yup, that same code but in polar coordinate.

     I use nabla operator for cylindrical coordinate but ditch the z component.

     So, what's the z-axis for? It's represent the u value, in this case, temperature, as function of r and phi (I know I should use rho, but, ...)



    import scipy as sp
    
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    from matplotlib.ticker import LinearLocator, FormatStrFormatter
    import matplotlib.pyplot as plt
    
    import mpl_toolkits.mplot3d.axes3d as p3
    import matplotlib.animation as animation
    
    #dr  = .1
    #dp  = .1
    #nr      = int(1/dr)
    #np      = int(2*sp.pi/dp)
    
    
    nr  = 10
    np  = 10
    
    r       = sp.linspace(0.,1.,nr)
    p       = sp.linspace(0.,2*sp.pi,np)
    
    dr  = r[1]-r[0]
    dp  = p[1]-p[0]
    
    a   = .5
    
    tmax    = 100
    t       = 0.
    
    
    dr2     = dr**2
    dp2     = dp**2
    
    dt      = dr2 * dp2 / (2 * a * (dr2 + dp2) )
    dt      /=10.
    print 'dr = ',dr 
    print 'dp = ',dp 
    print 'dt = ',dt
    
    
    
    ut      = sp.zeros([nr,np])
    u0      = sp.zeros([nr,np])
    
    ur      = sp.zeros([nr,np])
    ur2     = sp.zeros([nr,np])
    
    
    #initial
    
    for i in range(nr):
        for j in range(np):
            if ((i>4)&(i<6)):
                u0[i,j] = 1.
    #print u0
    
    def hitung_ut(ut,u0):
        for i in sp.arange (len(r)):
            if r[i]!= 0.:
                ur[i,:]     = u0[i,:]/r[i]
                ur2[i,:]     = u0[i,:]/(r[i]**2)
        ut[1:-1, 1:-1]  = u0[1:-1, 1:-1] + a*dt*(
                (ur[1:-1, 1:-1] - ur[:-2, 1:-1])/dr+
                (u0[2:, 1:-1] - 2*u0[1:-1, 1:-1] + u0[:-2,1:-1])/dr2+
                (ur2[1:-1, 2:] - 2*ur2[1:-1, 1:-1] + ur2[1:-1, :-2])/dp2)
        #calculate the edge
        ut[1:-1, 0]  = u0[1:-1, 0] + a*dt*(
                (ur[1:-1, 0] - ur[:-2, 0])/dr+
                (u0[2:, 0] - 2*u0[1:-1, 0] + u0[:-2, 0])/dr2+
                (ur2[1:-1, 1] - 2*ur2[1:-1, 0] + ur2[1:-1, np-1])/dp2)
        ut[1:-1, np-1]  = u0[1:-1, np-1] + a*dt*(
                (ur[1:-1, np-1] - ur[:-2, np-1])/dr+
                (u0[2:, np-1] - 2*u0[1:-1, np-1] + u0[:-2,np-1])/dr2+
                (ur2[1:-1, 0] - 2*ur2[1:-1, np-1] + ur2[1:-1, np-2])/dp2)
    
    
    #hitung_ut(ut,u0)
    #print ut
    
    def data_gen(framenumber, Z ,surf):
        global ut
        global u0
        global t
        hitung_ut(ut,u0)
        u0[:] = ut[:]
        Z = u0
        t += 1
        print t
        
        ax.clear()
        plotset()
        surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
        return surf,
    
    
    fig = plt.figure()
    #ax = fig.gca(projection='3d')
    ax = fig.add_subplot(111, projection='3d')
    
    P,R = sp.meshgrid(p,r)
    
    X,Y = R*sp.cos(P),R*sp.sin(P) 
    
    Z = u0
    print len(R), len(P)
    
    
    
    def plotset():
        ax.set_xlim3d(-1., 1.)
        ax.set_ylim3d(-1., 1.)
        ax.set_zlim3d(-1.,1.)
        ax.set_autoscalez_on(False)
        ax.zaxis.set_major_locator(LinearLocator(10))
        ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
        cset = ax.contour(X, Y, Z, zdir='x', offset=-1. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm)
    
    plotset()
    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
    
    fig.colorbar(surf, shrink=0.5, aspect=5)
    
    ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=4096, interval=4, blit=False)
    #ani.save('2dDiffusionfRadialf1024b512.mp4', bitrate=1024)
    
    plt.show()    
    
    
    
    
    
    
    .






    100x100 size

    0

    Add a comment

  8.  It means to compute 2d diffusion equation just like previous post in polar/cylindrical coordinate, and all went to wrong direction, :)

     Still trying to understand matplotlib mplot3d behavior


    import scipy as sp
    
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    from matplotlib.ticker import LinearLocator, FormatStrFormatter
    import matplotlib.pyplot as plt
    
    import mpl_toolkits.mplot3d.axes3d as p3
    import matplotlib.animation as animation
    
    #dr  = .1
    #dp  = .1
    #nr      = int(1/dr)
    #np      = int(2*sp.pi/dp)
    
    nr  = 10
    np  = 10
    
    dr  = 1./nr
    dp  = 2*sp.pi/np
    
    a   = .5
    
    tmax    = 100
    t       = 0.
    
    
    dr2     = dr**2
    dp2     = dp**2
    
    dt      = dr2 * dp2 / (2 * a * (dr2 + dp2) )
    dt      /=10.
    print dt
    
    
    
    ut      = sp.zeros([nr,np])
    u0      = sp.zeros([nr,np])
    
    ur      = sp.zeros([nr,np])
    ur2     = sp.zeros([nr,np])
    
    r       = sp.arange(0.,1.,dr)
    p       = sp.arange(0.,2*sp.pi,dp)
    
    #initial
    
    for i in range(nr):
        for j in range(np):
            if ( (i>(2*nr/5.)) & (i<(3.*nr/3.)) ):
                u0[i,j] = 1.
    #print u0
    
    def hitung_ut(ut,u0):
        for i in sp.arange (len(r)):
            if r[i]!= 0.:
                ur[i,:]     = u0[i,:]/r[i]
                ur2[i,:]     = u0[i,:]/(r[i]**2)
        ut[1:-1, 1:-1]  = u0[1:-1, 1:-1] + a*dt*(
                (ur[1:-1, 1:-1] - ur[:-2, 1:-1])/dr+
                (u0[2:, 1:-1] - 2*u0[1:-1, 1:-1] + u0[:-2,1:-1])/dr2+
                (ur2[1:-1, 2:] - 2*ur2[1:-1, 1:-1] + ur2[1:-1, :-2])/dp2)
    
    
    #hitung_ut(ut,u0)
    #print ut
    
    
    def data_gen(framenumber, Z ,surf):
        global ut
        global u0
        hitung_ut(ut,u0)
        u0[:] = ut[:]
        Z = u0
        
        ax.clear()
        plotset()
        surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
        return surf,
    
    
    fig = plt.figure()
    #ax = fig.gca(projection='3d')
    ax = fig.add_subplot(111, projection='3d')
    
    R = sp.arange(0,1,dr)
    P = sp.arange(0,2*sp.pi,dp)
    R,P = sp.meshgrid(R,P)
    
    X,Y = R*sp.cos(P),R*sp.sin(P) 
    
    Z = u0
    print len(R), len(P)
    
    
    
    def plotset():
        ax.set_xlim3d(-1., 1.)
        ax.set_ylim3d(-1., 1.)
        ax.set_zlim3d(-1.,1.)
        ax.set_autoscalez_on(False)
        ax.zaxis.set_major_locator(LinearLocator(10))
        ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
        cset = ax.contour(X, Y, Z, zdir='x', offset=0. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm)
    
    plotset()
    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
    
    fig.colorbar(surf, shrink=0.5, aspect=5)
    
    ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=500, interval=30, blit=False)
    #ani.save('2dDiffusionf500b512.mp4', bitrate=512)
    
    plt.show()    
    
    
    .








    0

    Add a comment

  9.  Baca komen seperti  "Permainan gitar Eross pecah banget...." di Youtube, hati langsung panas.

     Berani-beraninya menghina sang maestro, sana, ke comberan sana, tempat asalmu, ...

     Eh, tunggu...

     Itu bukan hinaan, itu pujian...

     Pecah? Pujian?

     Yeah, beberapa dari kita sering menggunakan kata tak pada tempatnya, :)

     Penggunaan kata 'pecah' sebagai pujian datang dari Maia Estianty saat menjadi juri The Remix.

     Tentu saja penggunaan kata 'pecah' di dunia DJ atau remix sangat cocok; merujuk pada sunyi yang lambat laun menjadi semakin ramai seiring dengan penumpukan nada-nada sampling yang makin banyak, tempo yang makin cepat dan diakhiri dengan sebuah hentakan..., pecah..., 

     OK, itu pujian, bagaimana kalo kata 'pecah' digunakan di permainan gitar. Yeah, kami menganggap kata pecah sebagai kata berkonotasi buruk; merujuk pada suara gitar yang seharusnya clean namun karena setting yang buruk jadi terdengar 'brebet' atau 'pecah'.

     Bukannya efek gitar Telecaster-nya Eross mempunya karakter pecah?  Ehm, EDrive-nya Eross, seperti namanya, 'drive', hanya bertugas sebagai booster saat permainan lead, bahkan kalo kita lihat di penampilan live, Eross jarang sekali menggunakan stompbox, dia memainkan knob volume untuk efek crunch atau crisp. Jika  ingin suara clean, dia mengecilkan volume gitarnya.

     Suara Telecaster Eross 'pecah'? Well, lebih baik pakai kata crunchy, crispy, ..., lebih diterima oleh banyak gitaris, :)



    0

    Add a comment

  10.  I wrote the code on OS X El Capitan, use a small mesh-grid.  Basically it's same code like the previous post.

     I use surface plot mode for the graphic output and animate it.

     Because my Macbook Air is suffered from running laborious code, I save the animation on my Linux environment, 1024 bitrate, 1000 frames.

    story
    import scipy as sp
    import time
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    from matplotlib.ticker import LinearLocator, FormatStrFormatter
    import matplotlib.pyplot as plt
    
    import mpl_toolkits.mplot3d.axes3d as p3
    import matplotlib.animation as animation
    
    
    
    dx=0.01        
    dy=0.01     
    a=0.5          
    timesteps=500  
    t=0.
    
    nx = int(1/dx)
    ny = int(1/dy)
    
    
    dx2=dx**2 
    dy2=dy**2 
    
    dt = dx2*dy2/( 2*a*(dx2+dy2) )
    
    ui = sp.zeros([nx,ny])
    u = sp.zeros([nx,ny])
    
    for i in range(nx):
     for j in range(ny):
      if ( ( (i*dx-0.5)**2+(j*dy-0.5)**2 <= 0.1)
       & ((i*dx-0.5)**2+(j*dy-0.5)**2>=.05) ):
        ui[i,j] = 1
    def evolve_ts(u, ui):
     u[1:-1, 1:-1] = ui[1:-1, 1:-1] + a*dt*( 
                    (ui[2:, 1:-1] - 2*ui[1:-1, 1:-1] + ui[:-2, 1:-1])/dx2 + 
                    (ui[1:-1, 2:] - 2*ui[1:-1, 1:-1] + ui[1:-1, :-2])/dy2 )
            
    
    def data_gen(framenumber, Z ,surf):
        global u
        global ui
        evolve_ts(u,ui)
        ui[:] = u[:]
        Z = ui
        
        ax.clear()
        plotset()
        surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
        return surf,
    
    
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')
    
    X = sp.arange(0,1,dx)
    Y = sp.arange(0,1,dy)
    X,Y= sp.meshgrid(X,Y)
    
    Z = ui 
    
    def plotset():
        ax.set_xlim3d(0., 1.)
        ax.set_ylim3d(0., 1.)
        ax.set_zlim3d(-1.,1.)
        ax.set_autoscalez_on(False)
        ax.zaxis.set_major_locator(LinearLocator(10))
        ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
        cset = ax.contour(X, Y, Z, zdir='x', offset=0. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='y', offset=1. , cmap=cm.coolwarm)
        cset = ax.contour(X, Y, Z, zdir='z', offset=-1., cmap=cm.coolwarm)
    
    plotset()
    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
                           linewidth=0, antialiased=False, alpha=0.7)
    
    
    fig.colorbar(surf, shrink=0.5, aspect=5)
    
    ani = animation.FuncAnimation(fig, data_gen, fargs=(Z, surf),frames=1000, interval=30, blit=False)
    ani.save("2dDiffusion.mp4", bitrate=1024)
    
    #plt.show()    
    
    
    .

    0

    Add a comment

Archive
Label
Popular Posts
Popular Posts
Loading