Page: 0 1 2 3 4 6 7 8 9 ... 10 ... 15 ... 20 ... 25 ... 30 ... 35 ... 40 ... 45 ... 50 ... 55 ... 60 ... 65 ... 70 ... 75 ... 80 ... 85 ... 90 ... 95 ... 100
|MC2 Progress #2|
This week I've been working on the screen layouts. A fair bit of mucking around with CSS and resource file formats was required to get it all working but here is what it looks like now:
Working from the hand drawn ideas I had last week I'm mocking all the dialogs up in the graphical editor:
Also in the mean time I'm working out if I can hide the boot time of the Raspberry Pi behind a custom splash screen. A static image is easily doable but something with a progress spinner might be a bit tricky.
|(0) Comments | Add Comment|
|Removing Suggested Tiles from Firefox New Tab Page|
|So in recent builds of Firefox new tabs have collected "suggested" site tiles. Now being marketed to and having my meta-data sold to the highest bidder is why I moved back to Firefox from Chrome about a year ago, so the appearance of "marketing" in Firefox's UI is quite concerning.|
Of course you probably want to know how to turn those suggested site tiles off right? Well see that little gear icon in the top right hand corner:
Unselect the "Include suggested sites" and you're good.
|(0) Comments | Add Comment|
So the other day I was at rehearsal and the MC1 that built started to have some issues with the External control knobs (along the top). They were jumping all over the place and making it annoying to use. I did get around to pulling all the circuitry around those pots off and doing it properly later. But it occurred to me that I'm using gear that I have no backup for. There is no 2nd controller to swap out if this one dies at a gig.
And because I'd rather custom build one out of parts I [mostly] have lying around that means building the MC2.
For starters the MC1 uses a tiny micro-controller with no USB or network or any modern connectivity at all. I have an old XP computer JUST to reflash the damn thing (needs a REAL parallel port). For any new system I wanted an easy way to do software development and ethernet/USB connectivity. And because I had a Raspberry Pi already I settled on that as a platform to run everything. I already had a little touchscreen to go with it and some RGB led rings with encoders that I built for a different project that I never got around to. So with all those parts just lying around I got to making some bits to glue it all together. Here's a family photo:
1) The Raspberry Pi. This is the "old" B rev 2 version... which has the slower processor.
2) The touchscreen. This interfaces with the SDL api using the Linux framebuffer. Touch events show up as mouse clicks. It's all quite straight forward to be honest. The only gotcha is you HAVE to set the video mode back to text if you crash... otherwise you're stuck in video mode without a working console.
3) LED rings + encoders: These I built for someone else but was too slack to finish that project. They basically are an extension of the Mayhew LED ring except that I'm running Red/Green/Blue LEDs instead of just one colour. It also is designed to fit in a 1U rack box, so they are nice and compact. I'll have 3 pairs of these across the top of the box, giving me 6 independent continuous controllers. Just like the old MC1 box, but importantly I'll be able to update their "position" using software when the preset changes.
4) Neopixel chain: Each foot switch on the controller will have an associated LED. I settled on the Neopixels because they wouldn't require a lot of support circuitry and there is now a software library to make them work on the Raspberry Pi. Which I've used successfully on a bread board.
5) MIDI in and out ports. This is a direct implementation of the circuit used in the MC1. All I really have to do is connect it up to the Raspberry Pi's UART pins and then program the right frequency. *fingers crossed*
6) This is a bunch of extra GPIO (general purpose input/output) for connecting the foot switches and encoders up to. It runs on the I2C bus from the Pi so it's easy to chain lots of things and address them in software. (I love software solutions).
7) Some analog inputs for the expression pedals. I'll be able to have up to 4 connected at once.
8) This is the break out board for the expression pedals. It connects to (7) via a 4 wire bus and basically sets up the right voltages for the 3 pins on the socket. It allows me to detect when the pedal is connected and disconnected by limiting the valid ranges of input voltage when the pedal is connected to less than 0-3.3v...
That's an overview of the hardware side. But what about the software? Well I already have a lot of cross platform C++ code that will come in handy. Firstly I have written a library called LGI that allows the same code to run on Windows, Mac and Linux without much changes. So why not extend that to SDL on the Raspberry Pi? So that's what I did this month. Which gives me access to a whole bunch of little controls like, edit boxes, check boxes, labels, buttons, table layout controls, graphical design tools etc. Stuff I've already written.
But I still needed to work out the general look and feel of the user interface. Check it out:
Basically I'm drafting up the flow of buttons and the layout of the controls to get a feel for what I need to write in the software. I have this control that does layout for me, kinda like a HTML table in that it works out the spacing of everything based on the size of the content. And I can style all the controls with CSS which will make for a nice consistent look over the product.
I expect though it'll be some months before I get this all working. Only a few parts of this are tested and none of it has been integrated into a working system. I'll try and post updates when I can.
|(1) Comment | Add Comment|
|It's been a fantastic week at Memecode headquarters...|
|I bought a cheap new Win8.1 tablet. Which was amazing for about 24 hours until I decided that I didn't want the 5gb restore partition and tried to remove it and resize the C: to fill the available space. Yeah that didn't go so well and I think I've bricked it.
To add insult to injury my main Windows 7 install on the desktop PC died tonight. It boots to a blank black screen. Safe mode hangs with lots of disk activity. It got stuck on the Paragon HFS+ driver, so I booted into Mac and removed that (copied elsewhere). And I'm trying to fix the disks one at a time with Disk Manager. Currently it's in some sort of infinite loop verifying my Win7 NTFS partition. Sigh.
Seems like all my PCs hate me at the moment.
One thing to be happy about is the fixes to HTML table layout I implemented today. There were some bugs related to table layout for spanned cells that have non-dynamic width specifications that are larger than the available space. And also an off by one error in the block element flow code. Slowly that HTML control is getting quite solid.
|(1) Comment | Add Comment|
|SourceForge to Github Migration|
|You may or may not already be aware of this but SourceForge has started taking control of popular apps that have abandoned their SourceForge project and moved elsewhere for the purpose of injecting adware into the installer for said products. The Gimp and nmap are some high profile examples.|
This of course goes directly against my principles. And I can't in good conscience continue to use SourceForge to host any of my Open Source apps or libraries. So as of today Lgi, i.Ftp, i.Mage and i.Hex are all hosted on Github.
I need some experience using git anyway.
My main concern is that I can't actually delete the projects on SourceForge, and they may decide to take them over and zombify them in the same manner as the Gimp. There is very little I can do about that unfortunately. Personally I will consider SourceForge as a point of last resort when getting software.
|(0) Comments | Add Comment|
|It seems that a few things have gradually become a problem. Firstly customers with accents in their name are getting bad key's generated off the InScribe purchase page that they land on after buying the software. This is caused by less than stella coding on my part. But something that I'm trying to fix. The issue is that the data coming from PayPal is URL encoded and is in an unknown Charset. I've implemented some PHP in the purchase page to find the charset in the headers and do all the conversion for the $name. However in trying to test it I ran into a fairly annoying PayPal sand box bug.
The PayPal Sand Box BugIf you go to create a new test user with an accent in their name you'll get a field validation error along the lines of "Only use letters". Which makes it hard to test purchase scripts with non-latin characters in the buyers name. I did however find a way around this, and that is to use the bulk upload tool to create the users. You can download a .tsv template direct from the PayPal sand box site on the "Create New User" page. From that fill out the details, and supply whatever name you want. Because the file is saved in unicode it bypasses the broken field validation stuff. Then upload that and you got a test user with accents. (Haven't tried Asian characters yet, but I will at some point). My new problem is that even after doing that and putting a sandbox button on my site the purchase script gets an empty response from PayPal when it checks the transaction. Fun times.
The Installer/UninstallerEveryone knows that the official way to uninstall a Windows application is to use the Control Panel uninstall page. It had completely escaped my attention until now that Scribe provides no such uninstaller entry in that list (Thank you dear user for reminding me). So I've gone and added the right registry entries to list the uninstaller, with help / support links, and the current version. The version is read straight from the .exe during installer compile time so it's always correct. Also the installer has been refactored to have a Desktop/Portable switch baked right in. Huzzah.
The HelpAlso the help files shipping with Scribe have drifted from reality. So I'm in the process of reading through everything and updated all the parts that aren't correct anymore. Some areas might need fleshing out as well.
OAUTH2 SupportAn initial draft implementation of OAUTH2 support for Gmail IMAP was shipped in the most recent build of Scribe. I'm quite keen to get feedback about it. So if you have tried to get it working and either succeeded or failed. Let me know.
|(3) Comments | Add Comment|