2013-03-27

[Technology] Amenities

One nice thing that will come shifting away from Google web services will be the ability to define <tt> as a quick formatting function (shortcut key or toolbar button) for the blogging interface.  Hooray!

[Technology] Vala and simply returning structures from functions

So, earlier today I was working on binding malloc_stats and mallinfo from malloc.h for Vala by hand-writing a simple .vapi file.  Interestingly, mallinfo () returns a structure, struct mallinfo.  Apparently, Vala doesn't like having a method and a structure with identical identifiers, so I renamed the struct to Mallinfo.



[CCode (cheader_filename = "malloc.h")]

public Mallinfo mallinfo ();



[CCode (cname = "struct mallinfo", cheader_filename = "malloc.h")]

public struct Mallinfo {

  ...

}






However, with that, my calls in Vala to mallinfo,



Mallinfo info = Malloc.mallinfo ();




were transformed into C code like



mallinfo (&_tmp26_);




when in reality, it should be



_tmp26_ = mallinfo ();




After googling a little, I found this, https://mail.gnome.org/archives/vala-list/2010-April/msg00051.html



Basically, I wanted to add the attribute [SimpleType] before my structure's definition.  Whoops.  I had spent a fair amount of time studying the [CCode] attributes, hoping that there was one that controlled how a return value was returned (parameter or simple return).  Oh well!

[Technology] Using GMail from Evolution: labels and folders

I'm testing out using GNOME's mail client, Evolution, to manage my
GMail. I've been uncertain how GMail labels would play with Evolution's
folders, so reading this guide helped me out:

http://thegreyblog.blogspot.ca/2009/06/configuring-evolution-for-gmail.html


  • Basically,
    every label becomes a folder.  

  • You can label a message by copying it
    into the corresponding folder.  

  • If you move a message, you remove the
    label from the originating folder and replace it with the destination.  

  •  Inbox is a label and a folder.  

  • To archive something from the inbox,
    just move it away from the Inbox folder/label, which can easily be done
    by deleting it, moving it to the Evolution trash (but not the GMail
    Trash label/folder).  

  • Deleting a message only removes it from the folder
    you're immediately deleting it from (removing that label), and because
    all mail arriving in GMail is automatically labelled with All Mail, you
    still retain a copy there.  

  • If you want to truly delete a message, you'd
    label it with GMail's Trash label (move or copy it into that folder).  

  •  It will actually stick around in your other labels/folders for 30 days
    (unless you remove it from each one), but then be completely purged from GMail (and thus the other labels).


2013-03-24

[Technology] Computing Independence Project

That's not a real project name (well, it might be, but it would be someone else's).



Largely due to the inevitable Breaking of Trust between Google and myself (that is, their cancelling of Google Reader), I'm compelled to re-establish my technological independence, which is to say I need to shift myself towards open source solutions that I control.



In the short term, it will mean finding or creating open source software that handles my common tasks.  One interesting challenge is, because I now use a mobile phone, I can't rely simply on desktop applications, of which many exist.  I can't simply use Evolution for my calendar, or Liferea for RSS reading, because I want to be able to have that information available and synchronised with my phone.



I don't think I'll find a perfect solution in a timely manner, but I need to at least start moving in that direction.  It's not just for my benefit; I feel like it's preferable for users to not be at the mercy of a distant party who controls both access to your data and access to the software you use with it.  Very importantly, it needs to be easy to switch to and use.  A solution isn't a good alternative if a user has to read a manual and spend half a day setting something up.



Here are some things that I want


  • a personal data store that I can host myself


    • needs to store calendaring data, mail, contacts, tasks, RSS items, perhaps even photos, and basically the state of any application information

    • needs to be "secure"


  • a set of mobile apps that can access my data


    • they need to be open source

    • right now, run on Android


  • a set of desktop/web apps that can access my data 


    • right now, run in GNOME or Firefox

    • ideally, they should be able to replicate all my favourite functionality




Task Management


I've been surprised that after a decade of waiting, Google still hasn't released a good task/todo list manager.  In some ways, I've been holding back my digital management of tasks because of this.  I've used a few different apps, but they haven't had good synchronisation between my desktop experience and my phone experience.   Google provided a token Tasks pop-up in Gmail and hasn't done much since.  I'm generally better off e-mailing myself to-do items, using the calendar to schedule some, and a spreadsheet to collect long term goals. It's a mess.


Photo Sharing


PicasaWeb has already been scheduled for sunsetting, but that was nominally alright because Google+ subsumed that functionality.  I was initially wary that G+ would be cancelled soon (like Wave) but as it became more integral to the identify portion of Google, I thought I'd be safe. Given that Reader has been cancelled despite having more active users than G+, I'm not sure my photos are really safe there.



One problem with hosting my own photos is bandwidth.  I'm with TekSavvy, but I'm not sure what experience running a webserver sharing my photos will give.  I'm not sure how to make albums easily sharable on existing social networks.  I'd like photo to still be instantly uploaded from my mobile device to the photo sharing service.



At the very least, I could back-up regularly all my album information from G+/PicasaWeb right now, so I could recreate them later when I absolutely had to.  I wouldn't really need to re-download most photos because they're generally already saved to my hard drive, save some that were web-edited.


Blogging


Oh boy.  I really do like Blogger.  Ah well!


Mail, Calendaring, Office, etc.


Basically, I need to do a lot of research for existing options.  Of course I don't want to create anything new or large.  I just want to identify major entities that have promising futures.  (At least with open source, if they're future collapses, what you've already had isn't taken away from you.)



Let me know if there's any sort of web activity that I might want to re-evaluate.  I'd be happy to hear your suggestions.





[Technology] Playing with technology





Last year I acquired a nice, free Sanyo television from the OCUS
lounge.  It is a CRT, but it's 36" and has good picture and sound
quality.  It did not come with a remote control, but I seldom used a
television, except to watch the occasional film or anime episode with
friends, so I never really minded.


TV Usage


Recently,
however, I moved to and now have a housemate or two, and I have
discovered the YouTube app for Wii.  Also, over the past two years, I've
finally interested myself in Internet video, largely in part to
Nerdfighteria (Vlogbrothers, the Lizzie Bennet Diaries, Crash Course,
SciShow, the Brain Scoop, etc.)  So, now the TV has two new uses:
feeding a housemate's insatiable urge for Netflix, and becoming a
preferred way to enjoy my YouTubery.



One issue that's
been had is variable volume.  A video is too quiet, so we turn it up,
manually, and then afterwards, the television is too loud.  Or, we turn
off the Wii, but then the TV is still on, and people leave it on.  An
unused, on TV is a tragic waste of energy.


Dollarama






So,
today I was in Dollarama and saw they sold a $2 Universal Remote, the
Electra RM-V301 (which supposedly works identically to Sony's RM-V301). 
Since I hadn't found one previously at the local thrift stores, I
acquired it.  Also, I found that Dollarama now sells $2 pairs of
rechargeable batteries branded as Sunbeam.   Despite traumatic memories
of the portable phone battery I had purchased from a dollar store in the
Quebec St. Mall which started smoking once used (and instantly killed
the portable phone), I decided that Sunbeam (and Dollarama) were just
reputable enough that I would risk their rechargeable batteries in my
battery charger and this universal remote.  What's the worst that could
happen?  Death?  Pa!


Remote programming


Once
home, I was initially disappointed to discover that none of the codes
for a Sanyo television worked correctly.  The first would do things to
the TV, but all the wrong things, and none of the others had any
response.  I ended up doing the code search technique, which after going
through 120 codes or so had no reaction (even though I should have
encountered some reaction when I hit the one that worked incorrectly).  I
remained hopeful that I could find a code set for the remote that could
effectively control the TV, though, as I've had good luck in the past
with remote controls working across brands.



Eventually,
I started applying the stupid brute force method of attempting them all
starting from 000 and going up.  Eventually I found a working code:
025.  Much to my chagrin, though, the code was one of the ones originally listed for my television.  I clearly recall trying it a
few times.  I believe it may have failed because my attempts to push the
buttons were inaccurate; they're these floppy rubbery things that leave
you doubtful of whether the press registered, and there is no red light
to provide feedback either.


Thoughts


So, that might seem pretty boring, but it leaves me with some thoughts.



It's
interesting that televisions all end up with their own sets of infrared
signals to control them, though one brand will reuse a small set of
them. It's interesting that some brands will use compatible sets, which
is probably intentional.  However, there's no apparently attempt to
standardise the codes.  I would imagine you could create a code set that
was extensible for the future but mostly standard, and yet there's no
real pressure for it.



If there was a standardised
control set, then people could more easily substitute controls, which
would be nice.  The universal remote market would probably shrink, but
it would also be simpler, and perhaps people could have fewer remotes in
their homes to begin with.



I also find it interesting
that universal remotes are primarily simple, dumb, closed devices.  I
briefly tried to search for discussion on how to reprogram the codes on a
universal remote.  The first code that I had tried that did not
correctly work but had a response was 054.  I can imagine having a mode
on the phone to calibrate a remote for a particular TV.  Perhaps first
you'd program power, and you'd press power, and it would send a signal,
and then you'd affirm or deny it whether it worked, and then after
finding the signal for power, you'd move to channel up and down, volume
up and down, numbers, and then perhaps a few other common ones.  It
would end up requiring a lot of time for the user, but it would help
guarantee that the device could remain useful for many more cases and scenarios than were originally anticipated. 



Alternatively,
it would be nice if modern universal remotes could interact with a
computer and be reprogrammed from there.  A little USB port, or
bluetooth, or even IR (two of my old computers could do IR, though not
my current one).  Perhaps you could then program them to do many more
things involving IR, like controlling a garage door.  Basically,
increasing usefulness by not restricting the device to a single purpose,
and allowing the willing to use the technology as they like.  Perhaps
some already do this.



For a brief while, I had
considered acquiring a Nintendo Wii U, as its game pad can operate as a
Universal Remote apparently.  Unfortunately, IR isn't as popular as it
once was, or perhaps more smartphones would have IR
blasters/transmitters.  I feel like installing an app to your phone to
use it as a remote control for electronics would be very natural.  I
haven't paid too much attention to new televisions, but since many of
them are basically a giant monitor with a tiny computer built in,
hopefully that's possible.



I basically enjoy
programmable devices that can be used for a broad range of functions,
rather than simply having single-purpose devices.  I also enjoy open
devices where the user is allowed to go beyond the original intent.  I
was thinking about how neat it would be if I had the equipment readily
available to reprogram existing universal remotes.  I sort of expect it
might be possible to remove the casing and flash the ROM inside, if
there is one.  I think that's why I've never gotten too in to hardware:
the cost of equipment.  Software, thanks to Open Source, allows you to
go many places very inexpensively.



So, hooray for technology.  Hooray for users.  And hooray that my household can now switch content and be able to adjust for the shocking variations in volume. :)

2013-03-04

[Technology] HTML5, CSS, and the web of the future

So, I've been a bit too busy with my Masters to keep up with all the neat innovations happening everywhere, but Google has a recent blog post talking about some new stuff that Chrome is supporting, and I'm delighted by two of them.



Templates

Basically, you can include a snippet of HTML that won't be displayed; that way, the rest of your page can make use of it later when it wants to.  So, for example, I might build a table in JavaScript, but I don't want to define the HTML for the rows in the JavaScript (because it's a bit clunky that way), so I get to write it naturally inside the template, and then just query for the row's template later, customise it, clone it, and append it.  Yay.



In fact, I already basically do this by including elements whose display is set to hidden, so I guess this just more formal.



Calculations inside CSS!

Now attributes can be set to a value like "width: calc (100% - 10em);".  I've been dying for something like this for a while.  Currently, I just tamper with sizes with JavaScript once the page is loading

Dieses Blog durchsuchen

Labels

#Technology #GNOME gnome gxml fedora bugs linux vala google #General firefox security gsoc GUADEC android bug xml fedora 18 javascript libxml2 programming web blogger encryption fedora 17 gdom git emacs libgdata memory mozilla open source serialisation upgrade web development API Spain containers design evolution fedora 16 fedora 20 fedora 22 fedup file systems friends future glib gnome shell internet luks music performance phone photos php podman preupgrade tablet testing typescript yum #Microblog Network Manager adb apache art automation bash brno catastrophe css data loss debian debugging deja-dup disaster docker emusic errors ext4 facebook fedora 19 gee gir gitlab gitorious gmail gobject google talk google+ html libxml mail microsoft mtp mysql namespaces nautilus nextcloud owncloud picasaweb pitivi ptp python raspberry pi resizing rpm school selinux signal sms speech dispatcher systemd technology texting time management uoguelph usability video web design youtube #Tech Air Canada C Electron Element Empathy Europe GError GNOME 3 GNOME Files Go Google Play Music Grimes IRC Mac OS X Mario Kart Memento Nintendo Nintendo Switch PEAP Selenium Splatoon UI VPN Xiki accessibility advertising ai albums anaconda anonymity apple ask asus eee top automake autonomous automobiles b43 backup battery berlin bit rot broadcom browsers browsing canada canadian english cars chrome clarity comments communication compiler complaints computer computers configuration console constructive criticism cron cropping customisation dataloss dconf debug symbols design patterns desktop summit development discoverability distribution diy dnf documentation drm duplicity e-mail efficiency email english environment estate experimenting ext3 fedora 11 festival file formats firejail flac flatpak forgottotagit freedom friendship fuse galaxy nexus galton gay rights gdb german germany gimp gio gjs gnome software gnome-control-center google assistant google calendar google chrome google hangouts google reader gqe graphviz growth gtest gtg gtk gvfs gvfs metadata hard drive hard drives hardware help hp humour ide identity instagram installation instant messaging integration intel interactivity introspection jabber java java 13 jobs kernel keyboard language language servers languages law learning lenovo letsencrypt libreoffice librpm life livecd liveusb login lsp macbook maintainership mariadb mario matrix memory leaks messaging mounting mouse netflix new zealand node nodelist numix obama oci ogg oggenc oh the humanity open open standards openoffice optimisation org-mode organisation package management packagekit paint shedding parallelism pdo perl pipelight privacy productivity progress progressive web apps pumpkin pwa pyright quality recursion redhat refactoring repairs report rhythmbox sandboxes scheduling screenshots self-navigating car shell sleep smartphones software software engineering speed sql ssd synergy tabs test tests themes thesis tracker travel triumf turtles tv tweak twist typing university update usb user experience valadoc video editing volunteering vpnc waf warm wayland weather web apps website wifi wiki wireless wishes work xinput xmpp xorg xpath
Powered by Blogger.