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..., :)
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()
.
I used textfile variable to write to a file (or create it if it don't exist).
CSV file? Just make sure that the name at assignfile command had .csv extension, :)
Of course we have to format the output to meet the CSV standart; separated by comma.
procedure TForm1.Button1Click(Sender: TObject); var fileku:textfile; i,j,n:integer; begin n:=10; assignfile(fileku,'data.csv'); rewrite(fileku); writeln(fileku,'tadaa...'); for i:=1 to n do begin for j:=1 to n do begin writeln(fileku,i,',',j,',','data',i,j); end; end; closefile(fileku); end;
.
Sepatu basah kena hujan.
Gak bawa serep.
Nyalakan AC, gantung di depan kipas, tunggu dua jam, :)
Here's the WineSkin version.
I found it's way smoother than WineBottler version, ...., but hard to figure how to use it
To install Delphi in OS X using WineSkin, we have to download and install Wineskin, of course, :)
Open Wineskin Winery.app Make sure you have a Wrapper version and an Engine Select the Engine you want to use (I use WS9Wine1.7.52) Press the Create Wrapper button Enter in the name Delphi (or whatever you have in mind) for the wrapper and press OK When its done being created, click the button to view it in Finder in the finished window Close Wineskin Winery.app. Right click Delphi.app in Finder and select “Show Package Contents” Double click and run Wineskin.app. Now click on the Install Software button Select to choose a setup executable Navigate to the Delphi setup exe file you downloaded in step one Select the setup exe file and press the choose button At this point Delphi setup should begin, go through the Delphi setup like a normal install After the setup is done, back in Wineskin.app, it should pop up asking you to select the .exe file Choose the delphi32.exe file in the drop down list and press the Select Button Now press the Quit button to exit Wineskin.app Back in Finder, double click Delphi.app and start coding
It has the same problem with WineBottler, the toolbar tab's seem order by itself alphabetically, so the default toolbar tab is not ' standard ' tab but 'additional' one
code unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; jalan:boolean=false; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin jalan := not jalan; if jalan = true then button1.Caption:='Stop' else button1.Caption:='Run'; end; procedure TForm1.FormCreate(Sender: TObject); begin button1.Caption:='Run'; end; end.
.
I use WineBottler to install Delphi 7 on my El Capitan.
It's installed, it can run.
The one that tickle me is the toolbar list is scrambled, it's sorted alphabetically, so additional toolbar is in the first and act as default toolbar.
Senjata ujian jaman dulu, :)
:)
Yeah, I use OS X El Capitan in My Macbook Air and use Wine Bottler to install it.
Make sure that flash option is ticked in winetriks part
...and display it in html format using div tag with border so the files in subfolders will displayed in box, and files in other subfolder will displayed in other box. If subfolder have subfolder, then files inside that sub-subfolder will displayed inside box inside box, :s :P :D
The Algorithm itself is bit like this previous post. OK, I copy and paste a little bit of,..., ok most of code from it.
All by Google App Script.
I use string variable named text to receive all output.
Basically, after the script is completely executed, the content of variable text is complete html source code.
:)
Here it is
Code.gs
:)
Xcode update,
iTunes,
and Command Line Tools
Here it is.
I used getFolderById() to determine the folder I want to list the files and folders inside. I used home as variable name of the folder
home.getFiles() is used to gets a collection of all files in home.
home.getFolders() is used to gets a collection of all folders in home.
I have list and row as array or tuple or 'list' to accommodate the result. Maybe it's wasting time to have two variable, but I plan to write code to list 'files and folders inside subfolders' recursively. I know maybe it didn't even need that array variable, :). But just in case...
Google App Script is fun, :)
Here's my simple hello world, :)
What I did is create "form", which actually have no form at all, just submit button to activate listFilesNFolders(form) function on script (Code.gs file)
The code will return output 'tadaa...', 'heheh...', and 'Hello World!!!'.
Notice the html formatting, :)
I heard it's powerful,
it could be integrated with Google Drive,
so I decided to give it a try.
Try to make a form Name, NIM, Offering, and a button to upload a file.
Basically, it's super simple form.
It will upload file to my Google Drive, place it in folder NIM (or create it if there's no folder match with NIM).
As addition, I created spreadsheet manually and update its content, the list of files in the folders. (still got a trouble)
function uploadFiles(form) { try { var dropbox = "Testing"; var folders = DriveApp.getFoldersByName(dropbox); if (folders.hasNext()) { var folder = folders.next(); } else { var folder = DriveApp.createFolder(dropbox); } folders = folder.getFoldersByName(form.myNIM); if(folders.hasNext()){ var anak = folders.next(); } else{ var anak = folder.createFolder(form.myNIM); } var blob = form.myFile; var file = anak.createFile(blob); file.setDescription("Uploaded by " + form.myName); listFilesInFolder(folder) return "File uploaded successfully " + file.getUrl(); } catch (error) { return error.toString(); } } function listFilesInFolder(folderName) { //var ssNew = SpreadsheetApp.create("Rekap"); //https://drive.google.com/open?id=11AzGyCcWfvcE_mUltyjAx17wJDghOS-YH5e_zrHT-zc //https://docs.google.com/spreadsheets/d/11AzGyCcWfvcE_mUltyjAx17wJDghOS-YH5e_zrHT-zc/edit#gid=0 //var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc1234567/edit'); var ss = SpreadsheetApp.openById("11AzGyCcWfvcE_mUltyjAx17wJDghOS-YH5e_zrHT-zc"); SpreadsheetApp.setActiveSpreadsheet(ss); var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); /* var myNewSheet = activeSpreadsheet.getSheetByName("Rekap"); if (myNewSheet != null) { activeSpreadsheet.deleteSheet(myNewSheet); } myNewSheet = activeSpreadsheet.insertSheet(); myNewSheet.setName("Rekap"); */ //0BxZS62a5NdNYUGxySmp2QW41OUU //var folder = DriveApp.getFoldersByName(folderName).next(); var id = '0BxZS62a5NdNYUGxySmp2QW41OUU'; var folder = DriveApp.getFolderById(id); var contents = folder.getFiles(); var file, data, sheet = SpreadsheetApp.getActiveSheet(); sheet.clear(); sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]); //sheet.appendRow(["Tadaa..."]) for (var i = 0; i < contents.length; i++) { file = contents[i]; if (file.getFileType() == "SPREADSHEET") { continue; } data = [ file.getName(), file.getDateCreated(), file.getSize(), file.getUrl(), "https://docs.google.com/uc?export=download&confirm=no_antivirus&id=" + file.getId(), file.getDescription(), file.getFileType().toString() ]; sheet.appendRow(data); } }; function doGet(e) { return HtmlService.createHtmlOutputFromFile('form.html'); }
What I did is read a .wav file, extract the raw audio data, (I use first 1/20 data for sample), transform it using Fast Fourier Transform, manipulate it (I only use the first cluster frequency spectrum ), transform it back using InverseFFT.
I use matplotlib and numpy module to plot and compute.
I also use sys and wave module as 'interface'.
import matplotlib.pyplot as plt import numpy as np import wave import sys spf = wave.open('violin2.wav','r') #Extract Raw Audio from Wav File signal = spf.readframes(-1) signal = np.fromstring(signal, 'Int16') fs = spf.getframerate() print fs #If Stereo if spf.getnchannels() == 2: print 'Just mono files' sys.exit(0) Time=np.linspace(0, len(signal)/fs, num=len(signal)) sample = [] st=[] for i in np.arange(len(signal)/20): sample.append( signal[i]) st.append(Time[i]) ft=np.fft.fft(sample) pft=[] for i in np.arange(len(ft)): if i<500: data-blogger-escaped-ample="" data-blogger-escaped-else:="" data-blogger-escaped-from="" data-blogger-escaped-ft="" data-blogger-escaped-i="" data-blogger-escaped-ift="" data-blogger-escaped-ignal="" data-blogger-escaped-ime="" data-blogger-escaped-pft.append="" data-blogger-escaped-pft="" data-blogger-escaped-plt.figure="" data-blogger-escaped-plt.grid="" data-blogger-escaped-plt.plot="" data-blogger-escaped-plt.show="" data-blogger-escaped-plt.title="" data-blogger-escaped-pre="" data-blogger-escaped-rue="" data-blogger-escaped-sample="" data-blogger-escaped-signal="" data-blogger-escaped-st="" data-blogger-escaped-wave...="">
.
My Pages, Number and Keynote received new feature.
...and hey, my view is increased twofold, :D
(And my Keynote on iPhone 4s is upgraded as well)
It's not Discrete Fourier Transform.
Instead, I use continue definition (using Integral, not Sum) to compute the transformation. I know, it's weird, but it's worth a try, :)
What I did is transform signal with 3 frequency, remove the two frequency and trasform back to time-signal.
Yang tak terlupa, saat ada acara pembacaan surat YaaSin di rumah, ikut tradisi setempat, saat bapak meninggal.
Yeah, bapak meninggal, itu sulit dilupakan.
Tapi beberapa minggu ini ada yang mengungkit-ungkit kenangan itu lagi, kebakaran di Sumatera dan Kalimantan.
Bukan tentang bapak yang diungkit (mudah sekali mengingat kejadiaan itu), tetapi tentang asap.
Apa yang terjadi saat pembacaan surat YaaSin? Tentu saja, membaca surat YaaSin bersama-sama, diawali surat-surat pendek untuk pemanasan, Yaasin, trus doa-doa yang dipimpin secara estafet oleh dua pemuka agama.
Yang terungkit oleh kebakaran di SwarnaDwipa dan Borneo justru sebelum acara. Ketika tamu mulai datang dan menunggu yang lain. Harus menemui tamu itu jelas, dan kebanyakan mereka adalah perokok! Hm, mereka merokok sebelum mendoakan seseorang yang meninggal akibat rokok, ckckck.
Ketika acara akan mulai, tamu sudah semakin banyak, delapan puluh lebih. Ruangan sudah penuh hingga meluber ke halaman. Juga asap rokoknya.
Sehari, ..., OK
Dua hari, OOOOK...
Hari ketiga, KO..., ke bidan, kena radang tenggorokan parah, harus minum 7 jenis pil.
“I have an uncle and cousin in Boston”.
(Excerpt From The Blood of Olympus).
“...a teenager wouldn’t be wrapped in a stinky old sleeping bag, stuck outside in the middle of a Boston winter”.
“Annabeth. Which meant the sandy-haired man was … Uncle Frederick?”.
“You’re lucky you live with your momma. Annabeth stacked another domino on......” {Annabeth's not live with her mother (Athena) and/or have problem with her stepmother}
"Annabeth looked at me. Her grey eyes..."
"Frederick and Annabeth still lived in Virginia..."
Here's the code.
The slider act as..., well..., slider... to change the value on TextCtrl. On slight modification, it'll able to change any variable value.
The code below's from vpython example program, modified here and there, of course, :). It plots 5.0+5.0*cos(-0.2*t-p)*exp(0.015*t). Notice that p is act as phase, so the plot will 'walk'. The essential part is
funct1.gcurve.pos=[]
without it, the graph wont refresh the old curve (the old plot wouldn't be erased)
DPR tidak digaji? Mungkinkah? Adakah yang mau jadi wakil rakyat jika demikian?
Buat aturan/larangan pembabatan hutan, atau pembakaran, dengan alasan apapun. Oh, sudah ada ya.
Anu, terus kalo negara membutuhkan lahan untuk pangan gimana hayo? Ehm, Jepang sagat kekurangan lahan untuk tanaman pangan, tapi tak ada kabar mereka membakar hutan. Mereka punya jalur aspal mulus ke semua puncak gunung, hingga ada "Hashiriya", istilah untuk "downhill driver". [Kita nggak mungkin downhill di aspal pegunungan di Indonesia, (misal Panggul, atau Munjungan, Trenggalek, :) )]. Namun meski jalan ke gunung dan hutan sudah mulus, tak ada truk pengangkut kayu illegal hasil pembabatan hutan di sana.
Buat sensor asap, juga sudah banyak tersedia atau buat sendiri, hubungkan ke microcontroller.
Gunakan arduino versi kecil (nano atau mikro), lengkapi dengan modul gsm untuk berkomunikasi dengan pengontrol (yang bisa diletakkan di semacam kantor pengawas/pengendali kebakaran hutan).
Untuk daya dapat digunakan panel surya kecil (sekaligus pelindung unit dari sinar matahari dan hujan). Kelebihan daya dapat disimpan dengan baterai Li-Ion atau Li-Polymer atau semacam powerbank yang banyak terdapat di pasaran. Baterai ini berfungsi sebagai sumber daya di malam hari.
Unit harus melaporkan status secara berkala, bisa setiap hari atau setiap jam. Informasi yang dilaporkan ke pangendali melewati modul GSM dapat berupa level asap di sekitar unit, suhu (jika ada). Pelaporan ini juga berfungsi sebagai monitor unit itu sendiri. Jika unit tidak melapor maka kemungkinan unit rusak atau dirusak sehingga perlu ada petugas (mungkin dengan beberapa polisi hutan bersenjata) yang mengecek alat tersebut.
Terbangun karena cubitan di bibir
...
Lagi, terbangun karena cubitan di bibir,
dicubit Alfa.
"Ayah, maem nasi"
...
Dicubit lagi, "Ayah, maem nasi".
Bangun, grogi, terhuyung ke dapur, ngelirik jam, setengah duabelas,
hampir tengah malam.
By natural, its positioning on the keyboard is unique, oh right then... easy positioning, without touching black tuts.
Of course we already knew three notes "natural" chord
Starting with C chord, a major one, with C-E-G notes, we could shift our fingers positioning to the right (the white keys, we won't touch the black here) and we have Dm and then Em, F, G, Am, Bdim.
Now, add one more note so we have C-E-G-B, yup, thats Cmaj7.
Shift to the right we'll have Dm7, Em7, Fmaj7, G7, Am7 and Bdim7
What about adding fifth note? No problem, we have C-E-G-B-D, the Cmaj9 chord
Again, shift to the right to get Dm9, Em7b9, Fmaj9, G9, Am9, Bdim7b9
Di beberapa "buku lagu beserta kunci", terdapat kunci-kunci "tidak standar" semacam Cadd9, sangat sering, tapi tidak sesering C7.
Yang kurang sering adalah Cmaj7, kecuali di lagu-lagu yang agak nge-jazz.
Yang langka di buku-buku lagu yang kita lihat di toko buku adalah kunci-kunci semacam C7#9, hehehe...
Bagaimana pembentukan kunci-kunci sehingga mendapatkan nama demikian? Well, lumayan mudah, setidaknya jika kita menggunakan keyboard.
(tapi juga bukan keyboard aneh macam gini, :D )
Saya termasuk terlambat mengenal gitar, akhir kelas satu smp, naik ke kelas dua.
Dari uang saku dari sunat, jadilah satu gitar akustik merek 'lain', :). Belum bisa beli semacam Yamaha atau Osmond atau entah apa merek terkenal lain.
Tentu saja sekalian buku "cara cepat bermain gitar" dan buku "mudah bermain gitar".
Buku yang membuat kecewa.
Tentu saja setelah beli gitar saya pengin segera gitaran sambil nyanyi lagu-lagu keren sambil nogkrong di teras rumah, dan berharap dua buah buku gitar bisa membantu.
Sejak kecil saya terbantu oleh buku, saya telah hafal isi tiap buku di perpustakaan SD, kecil sih.
Perpustakaan SMP sudah terjelajahi di caturwulan kedua kelas satu.
Main-main di loteng, :)
"Kerja adalah cinta, yang ngejawantah.
Dan jika kau
tiada sanggup bekerja dengan cinta;
hanya dengan enggan
Maka lebih baik jika kau meninggalkannya.
Lalu mengambil tempat di depan gapura candi.
Meminta sedekah dari mereka.
Yang bekerja dengan suka cita.
Dari sang Nabi,
[Kahlil Gibran] "
.
Jalan kaki dari Atma Jaya ke Ambarrukmo, heheh...
A photo posted by Aravir Rose (@nugnux) on Jun 16, 2015 at 3:26am PDT
.
Tak ingin tahu detail pembunuhannya.
Tak ingin tahu perlakuan apa saja yang dialami sebelum dibunuh.
Tak ingin baca berita itu lagi. Trauma tau!!!
Tak bisakah berita itu tidak dimasukkan berita utama? Mungkin tidak karena itu adalah "berita heboh", tak peduli bahwa berita kekerasan itu dapat diakses siapapun, bahkan anak SD.
Memangnya bagaimana perasaanmu jika anak atau saudaramu yang digitukan, dan beritanya muncul berulang-ulang. Wajahnya muncul di hadapanmu berkali-kali.
Tak bisakah membuat kolom khusus kriminalitas? Atau sekalian kolom perkosaan? Atau sekalian kolom pelecehan seksual dan pembunuhan, sepertinya berita-berita jenis ini banyak sekali, lebih banyak dari yang lainnya. Kolom yang diberi batasan umur bagi pengakses.
No, sepertinya rating lebih penting.
(Sepertinya sindiran Steve Vai berpuluh tahun yang lalu masih berlaku.)
Kecelakaan besar terjadi di Sentul beberapa hari yang lalu.
Dan debat pun muncul di mana-mana, youtube, forum-forum, kolom komentar. Debat tentang siapa yang sebenarnya salah.
Susah dicari,
banyak bukti di dua sisi,
di era informasi, justru sulit cari informasi.
Kita akan sulit memastikan bahwa, misal, sebuah makanan itu berbahaya tuk kesehatan. Kita akan mendapatkan makanan tersebut baik tuk kesehatan di sebuah situs, namun ketika lihat laman lain, kita akan melihat bahwa makanan tersebut harus dihindari. Itu dalam satu kajian, dari sisi kesehatan. Lebih seru lagi jika dilihat dari sisi religius misalnya. Akan ada perang kitab di forum tentang boleh tidaknya dimakan. Lha treus kesimpulannya apa? Sehatkah? Bolehkah dimakan?
Ayah datang.
"Ayah, ... mas Yayan sudah mandi"
"Wah, pinternya" (dia jarang mau mandi sore)
Ibuk dan adek berangkat ke acara DasaWisma
"Ayah, mandi lagi"
"Lha kenapa?"
"Nyuci Truk"
Dan jadilah mas Yayan mandi lagi satu jam sampai ibuk dan adek pulang, :)