Nugroho's blog.

Friday, October 30, 2015

Read HFS+ from Linux

 The OS X filesystem, HFS+, by default is in read-only mode in my ubuntu.

 So I installed hfsprogs using
  
sudo apt-get install hfsprogs

 (you have to enable universe package-source)

 to mount the "Macintosh HD", use this

$cd 
$mkdir osx
$sudo mount -t hfsplus -o force,rw /dev/sda2 osx


 Nevertheless, it still mounted as read-only, and some folders refused to open at all.

 Here the trick. We have to have same uid as the os x.

 so, create new user

sudo useradd -d /home/newuser -m -s /bin/bash -G root newuser

sudo passwd newuser

sudo usermod --uid 501 newuser

sudo chown -R 501:newuser /home/newuser
.

 by default the first user on OSX has an uid 501.

 Now, as we have the same uid on linux and OS X. We could freely read the filesystem.

Wednesday, October 28, 2015

#MelawanAsap



 Sepertinya tahun depan tidak akan ada kebakaran hutan,

 tak ada asap, 

 karena tak ada lagi yang bisa dibakar.





Monday, October 26, 2015

List Folders and Files Recursively using Google App Script.

 I got the problem because using 'recursive' as function name, :)

 At least now I know that, :)

 The next? Beautifying the result, :D 

.
function listFilesNFolders(form) {
var list = [];
var lv = 0; //lv for level or depth
list.push(['tadaa...<br>']);
list.push(['heheh...']);
var row = [];
row.push('<br> Hello World!!! ');
list.push(row);

var home = DriveApp.getFolderById('0BxZS62a5NdNYUGxySmp2QW41OUU');
list.push('<br>');
list.push(home.getName());
crawl(home,list,lv);
return list;
}

//don't use 'recursive' as function name, it won't work
function crawl(home,list,lv){
lv++;
list.push('<br>tadaa...'+lv+'...');

var files=home.getFiles();
while (files.hasNext()){
var file=files.next();
list.push('<br>f '+file.getName());
}

var folders=home.getFolders();
while (folders.hasNext()){
var folder=folders.next();
list.push('<br>d '+folder.getName());

crawl(folder,list,lv);
}
}

function doGet(e) {
return HtmlService.createHtmlOutputFromFile('form.html');
}



.



Minggu Pagi.

 Sepuluh hari gak ketemu, :)








Saturday, October 24, 2015

#MelawanAsap

 Jika MotoGP Sepang gagal karena asap, maka Rossi cukup finish ketiga di Valencia untuk jadi juara dunia, :)

#MelawanAsap

 Trik Old Shatterhand di Llano Estacado untuk mendatangkan hujan sepertinya tak berhasil di sini.

 :(

 (ingat Karl May)

Friday, October 23, 2015

Global Variable on Google App Script

 I have trouble accessed it within function,

 so I pass it to every function,
 not so elegant solution, but it works, :) .

 In the code below, I have global variable named list.

 I have to passed as parameter on function dummy in order to edit its value or it wouldn't affected or have error message or undefined (I experienced both, :) )

function listFilesNFolders(form) {
var list = [];
list.push(['tadaa...<br>']);
list.push(['heheh...']);
var row = [];
row.push('<br> Hello World!!! ');
list.push(row);

var home = DriveApp.getFolderById('0BxZS62a5NdNYUGxySmp2QW41OUU');

dummy('<br> test',list);
return list;
}

function dummy(d,list){
list.push(d);
}


The form

 <form id="myForm">
<input type="submit"
value="OK"
onclick="
this.value='Proses';
google.script.run.withSuccessHandler(fileUploaded).listFilesNFolders(this.parentNode);
return false;
"
>
</form>
.





323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)