Tuesday, January 01, 2019

Image To ZX Spec 2.0.2 Maintenance Release



Release Overview:

This maintenance release fixes video frame dropping (thanks to David at arbitraryfiles.com for finding it) and corrects source code copyrights.
UPDATE 4/1/2019: Recent 2.0.2 builds did not have the build version correctly displayed in the UI - this has been fixed but otherwise functionality remains identical.

What is Image to ZX Spectrum?

Image to ZX Spec(trum) is a utility to convert image and video files to a REAL ZX Spectrum as a slideshow/video, to a Spectrum compatible file format for games development (SCREEN$ "scr" format) or create retro art posters or gifs (images of any size - memory limited - can have a Spectrum effect applied to them).

For more info and examples have a look at previous release posts or the early version tutorial

Source:

https://github.com/KodeMunkie/imagetozxspec

Downloads (nb all builds are x64 - 64 Bit CPUs only):

Windows:
imagetozxspec-windows-2.0.2.zip (sha1: 576B30757F9653A13EEAAB0181F352F608F43594)
MacOS:
imagetozxspec-macos-2.0.2.zip (sha1: 07F75548ECF9F58100965E4C0B68BDE0FE59D9AD)
Linux:
imagetozxspec-linux-2.0.2.zip (sha1: ABD008A50800A4F08C03C64AC270F3B9BA5F560D)

Changelog for 2.0.2:
  • Fixed related bugs to do with output image naming and missing output images
  • Updated copyright
  • Minor code clean up

Monday, April 17, 2017

Image To ZX Spec 2.0.1 Release & Source Code



What's new?
As mentioned in my last post this project is in maintenance stage for me (or as little work as I can get away with) so I can concentrate on other things. However... it's having a rebirth as a new project on Github! I'm a bit tentative about Github as previously I had exclusive distribution of the source via my blog but now it's easy for anybody to fork and improve. This is a double edge sword as others' improvements can be pushed back up stream and the project won't die - still it's letting go of my pride and joy!

What still needs work for the source release?
Over the next few weeks I hope to document the architecture and build instructions that I've simply not yet had the time to do - these will follow on a fixed blogger page and the project readme markdown respectively. There are areas that I'm not happy with (as with any project) that are downright ugly but the processing pipeline is sound and has had many refinements. Hopefully others will help improve the bad areas!

So what else has changed?
This release sees UI improvements for niggling issues like the image being too large and going off screen and a fix for serious bug in SCR export. It also has improvements to Gigascreen rendering on a real Spectrum.

Source:

https://github.com/KodeMunkie/imagetozxspec

Downloads (nb all builds are x64 - 64 Bit CPUs only):

Windows:
imagetozxspec-windows-2.0.1.zip (sha1: 9be463c17e4a26231e45a39250bceba9)
MacOS:
imagetozxspec-macos-2.0.1.zip (sha1: 4e5e213755c9bd4258ef6aee13330adf)
Linux:
imagetozxspec-linux-2.0.1.zip (sha1: 748b7cc8bd726f001d89761587de0625)

Changelog for 2.0.1:
  • Fixed bug with main window extending off screen
  • Fixed image labelling bug
  • Fixed bug adding last frames of video to a new video if conversion manually stopped
  • Fixed bug with multi image popup preview's image being too large when unscaled
  • Fixed bug in SCR converter that would fail to output some images/second Gigascreen image
  • Added 2 new Gigascreen export attribute orders
  • Added pre-processing slider reset to defaults button
  • Removed some redundant dither processing
  • Removed test framework from production build
  • Cleaned up some code

Saturday, January 28, 2017

Reebok i-Run Disassembly / Maintenance / Repair

I recently needed to open my Reebok i-Run treadmill thanks to my toddler son "posting" a DVD into the mechanism, so whilst I was inside it I also decided to give it a quick check and clean.

Information on opening this treadmill is almost non existent so I've documented it here - hope you find it useful. If it saves you time and money please consider buying me a coffee.



DISCLAIMER

I accept no responsibility for this guide. its accuracy or its safety. Any work you undertake in relation to this guide is done at your own risk, if in doubt call a professional out!

WARNING

  • Leave the machine off and unplugged for at least 48 hours before attempting this guide - there are large capacitors inside that can hold charge even after the machine has been off for some time.
  • Ensure that the treadmill is disconnected from the mains before doing any work (it should be if you followed the above point!).
  • The treadmill is heavy, make sure you have somebody to help you move it.
  • Make sure you have plenty of light to do work.
  • Do not touch any electronics inside as you may damage them, and there may still be some residual charge left in them.
  • You will void your treadmill warranty.
  • Read this entire guide first before you start.

Things you'll need

  • The manual (you may find yours here)
  • Long screwdriver set
  • Bracket Allen key (you will have received this with the treadmill, it's not the one used for tightening the belt)
  • Can of compressed air
  • Vacuum cleaner
  • Kitchen tissue
  • Somebody to help you move the treadmill
  • Lots of space to move the treadmill

Steps for removing the top molding (motor access)

  1. Ensure the treadmill is standing correct, with the arms at the vertical, perpendicular, non-storage position.
  2. Remove the plastic leg feet from the top of the treadmill.
  3. Underneath where the plastic feet were, unscrew (with the Allen Key) and remove the white square metal leg brackets - they just pull out when the screws inside of them have been removed.
  4. Unscrew and remove both of long screws, one on each side of the top molding, in front of the arms (just the right side screw hole shown on photo below).
  5. Turn and rest the tread mill onto the side without the power connector (so you have access to the underneath of the treadmill).
  6. On the side of the treadmill unscrew the 2 small power connector screws attached to the molding - not those inside on the socket next to the terminal pins (as the treadmill is on its side the connector will be facing the ceiling as you do this). Be careful not to lose these screws. Note removing just the top screw on the connector may be sufficient but I removed both just to be certain.
  7. Underneath the treadmill remove 4 screws located in the plastic base molding found nearest the edge. These screws hold the top piece of molding on. These screws may take longer than you expect to remove owing to them being long and they may not just fall out - as long as the top molding is released you should be okay. (Note photo shows in green circles where these screws underneath thread through to the top molding).
  8. Return the treadmill to its original position, watching for any screws falling that you adjusted in the last step that you were unable to remove.
  9. Slide the top molding away from the treadmill by gripping it near the Reebok logo, pulling it up and backwards slightly away from the running surface and foot plates. This may be difficult so inserting a flat screw driver to separate the seams between the molding and the treadmill foot plates might help. If you've missed removing any essential screws in the previous step you'll notice it now - double check if the molding doesn't come away easily because it's very likely you missed something! (Note photos show area to grab near the logo and where to separate the seams for one side - they were taken after the treadmill was reassembled. You'll need to separate both left side and right side foot plate seams simultaneously).
  10. Finally your treadmill should be open!

General Checks

See disclaimer above - I am not an electrician, these are just general checks I personally attempted and do not cover the motor or mains transformer parts, if in doubt get a professional to check!

If you find any of the following problems DO NOT USE YOUR TREADMILL - it could be a serious safety risk!
  1. Inspect (but do NOT touch) the large cylinder capacitor on the circuit board. If this is swollen or leaking on top it will need professional replacement. (see red circle in photo below this list)
  2. Look for signs of any frayed wire or missing wire insulation.
  3. Look for any signs of electrical wire being disconnected.
  4. Ensure that the ground wire is still attached to the metal frame (see green circle in photo below this list)
  5. Look for any signs of burnt material.
  6. Look for any signs of melted or warped plastic.
  7. Look for any signs of liquid damage.

Steps for cleaning

  1. Use the can of compressed air to remove sediment around the electronics (IMPORTANT: make sure you don't blast freezing cold liquid onto the electronics by holding the air canister incorrectly).
  2. Repeat the above step but for the motor housing, don't clean or attempt to adjust the belt if you can avoid it/don't need to.
  3. Use the kitchen tissue to wipe off any dirt/sediment/dust on the metal work.
  4. Use the vacuum cleaner to suck all the dirt/sediment/dust that has now accumulated in the bottom molding whilst you've been cleaning.

Re-assembly

Reverse the instructions in "Steps for removing the top molding" above. Ensure that you don't trap any wires and don't over tighten the screws in the molding base because it can break the screw threads in the molding top half.

That's it! If this has been any help please feel free to buy me a coffee!

Thursday, January 05, 2017

SOLID Principles for Dummies

As an OO programmer one of the things you're meant to practise is good OO design, and the SOLID principles embody that.

If you've read the SOLID wikipedia article it's a little long winded, so here's the SOLID principles simplified and written as negative reinforcement to help curb bad practices!

S - Single Responsibility Principle

Don't have classes do many things - a class should have a single purpose, I would go so far as to say a method should also have a single purpose. For example a DatabaseService class only interacts with a database, a save method only persists a value (as opposed to a method such as validateValueAndSave)

O - Open Closed Principle

Don't write decision logic based on sub class or sub class properties in the parent class - i.e. have sub classes make the sub type specific decisions. Make sure you extend classes, don't break the original abstract classes by modifying them,

L - Liskov Substitution Principle

Don't return an incompatible type in sub classes (or anything that suggests the sub class cannot support the operation as exactly defined by the parent class). For example in a Java method don't throw not supported exceptions in sub classes, in other languages, don't return types incompatible with the base type return value. By doing this it ensures any method (or iterator etc.) that takes a subclass argument and has no specific subclass feature usage, is able to have its argument substituted for the parent class without modification.

I - Interface Segregation Principle

Don't lump all functionality into one interface and thus have implementing classes provide functionality they can't support, instead create fine grained interfaces.

D - Dependency Inversion Principle

Don't use concrete types if there's an interface available for dependencies (in general coding to an interface is best practice anywhere). For example use List myDataList = createList(), not ArrayList myDataList = createList(), where List is an interface on ArrayList. This allows easy substitution of the dependency implementation later to another list type without breaking the code receiving the dependency. In short, a high level class should not depend on a low level class.

Saturday, December 24, 2016

Image To ZX Spec 2.0.0 Released!

Santa comes early with an Image To ZX Spec 2.0.0 release!



This will be the last major revision of Image To ZX Spec as I'm moving on to other projects. The two major features of this release are high speed native video decoding (requiring separate platform builds) and some critical bug fixes for MacOS, the full changelog is below.

Downloads:

MacOS:
imagetozxspec-macos-2.0.0.zip (sha1: d76b6507f8f8a16e2e03b58d7b8c7ffb)
Windows:
imagetozxspec-windows-2.0.0.zip (sha1: b3269054d40fc1a09ae92aebcc4c31a6)
Linux:
imagetozxspec-linux-2.0.0.zip (sha1: bd8e3a1a569d630f9aa7701a42eaae7a)

Changelog for 2.0.0:
  • Updated for Java 8.
  • Squashed MacOS directory bug causing files not to be saved (Java bug).
  • Integrated native video decoding via HumbleVideo.
  • Massive performance improvement for processing video.
  • Improved code quality with tests, logging and Java 8 features.
  • Fixed Gigascreen original scale conversion crash bug.
  • Fixed original scale conversion converted edge pixels bug.
  • Fixed black threshold scaling range.
  • Added warnings for poor options combinations.
  • Changed text output behaviour for multiple images - many files now instead of one.
  • Modified About to show free memory.
  • Fixed small graphics memory leak.
  • Added turbo mode.

Thursday, December 15, 2016

Re-igniting the blog

Over the last few years my professional and home life has meant this blog dropped off to a mere trickle, as did the audience.

Today this changes - the site has a new design, the downloads, most of which are out of date have gone and the site will be getting back to it's roots of random new tech product rants, tech hacks and custom free software and code.

Image to ZX Spec, an old app, will be getting it's final 2.0.0 build soon before being released to an open source platform (hosting all my open source here is so passé) and I'm happy to say it will be off my hands so I can start on newer more exciting projects which I'm looking forward to sharing here.

Aerofoil will also remain available simply because it is still popular.

If you would like any of the older software; FollowMe, FreeKicker, Gesture Magic, Optimizer or anything else, leave me a message below, alternatively they may still be on the mirror or can be got via wayback machine.

Sunday, June 01, 2014

Image To ZX Spec 1.4 Released

Image To ZX Spec 1.4 has now been released.



For a full description read more here

Version 1.4:
  • Huge improvements to GigaScreen (102 colour) image quality.
  • SCR Gigascreen export image order by Hue/Saturation/Brightness.
  • Added new GigaScreen BASIC ZX Spectrum image loader.
  • Usability improvements and toolbar added to UI.
  • Image quality improvements for prefer detail setting.
  • Accuracy and speed improvements for image pre-processing.
  • Updated VLC4J to allow the video conversion from VLC 2.1.3.
  • Fixed missing character dither.
  • Bug fixes.
Downloads:

Image to ZX Spec 1.4 distribution (direct download, just unzip and double click jar file to start).
Image to ZX Spec 1.4 source code (GPL 3)

Sunday, August 04, 2013

Image To ZX Spec 1.3.4 Released

Image To ZX Spec 1.3.4 has now been released.



For a full description read more here

Changes (since 1.3.4):

Version 1.3.4
  • Updated for Java 7.
  • Added VLC compatible video importing option.
  • Added simultaneous video decode/spectrum encode.
  • Added new prefer detail setting improving output.
  • Added new Sierra error diffusion option.
  • Added automatic preference saving.
  • Added dynamic memory allocation (grabs as much free as possible).
  • Added conversion cancel button (finally!)
  • Removed some redundant localisation code.
  • English text and licenses changes.
Downloads:

Image to ZX Spec 1.3.4 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.4 online.
Image to ZX Spec 1.3.4 source code

Tuesday, October 30, 2012

Image To ZX Spec 1.3.3_02 Released

Image To ZX Spec 1.3.3_02 has now been released.



For a full description read more here

Changes (since 1.3.3_01):

Version 1.3.3_02
  • Fixed an image resize bug which was forcing output to 256x192.
  • Fixed preview image flicker and preview image input-output synchronisation.
  • Removed two video queue bottlenecks (improves video conversion speed).
  • Removed all video pre-buffering (real time loading and conversion replaces it).
  • Removed non-internationalised video buffering message.
Downloads:

Image to ZX Spec 1.3.3 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.3 online.
Image to ZX Spec 1.3.3 source code (note GPL 2.0 licenced).

Thursday, August 09, 2012

Image To ZX Spec 1.3.3 Released

Version 1.3.3_01 of Image To ZX Spec is now freely available!
Image to ZX Spec is written in Java and will work on Windows, Linux (tested on Ubuntu) or any Java 6 capable operating system.

Full colour conversion

Image To ZX Spec is an image and video converter that can produce "Spectrumized" retro art images of any size and convert real work to use on the ZX Spectrum, an emulator as a slideshow or video. This is useful to create music videos, posters, mock screenshots, to name a few - you do not even need a Spectrum to use this program!

Features:
  • Convert most avi formats/divx video to anim gifs or virtual tapes (for use in an emulator or on a real Spectum)!
  • Convert any image to a format a real Spectrum can display.
  • Convert any image to a full (original) size image with a retro Spectrum effect.
  • Multi core high speed conversion - configurable!
  • Fully automatic conversion, you just choose how you want to apply the effects.
  • Pre processing (brightness colour etc.) options.
  • Multiple dither (colour correction) options - 15 in total, that's excluding image to text and no dither options!
  • Multiple previews of all the dither options.
  • Many colour modes, such as monochrome, full 15 colour and the exotic "Gigascreen" colour mode (102 colours on a ZX Spectrum!)
  • Localised GUI - German, Greek, Italian, Polish and Spanish
Text conversion

Changes (since 1.3.1):

Version 1.3.3_01
  • Added internationalisation support.
  • Added new languages - German, Greek, Italian, Polish and Spanish.
Version 1.3.3
  • Added random single frame video preview.
  • Added improved video format support.
  • More monochrome dither fixes.
  • More UI changes.
  • Added serpentine error diffusion option.
  • Added error diffusion constraining option.
  • Improved error diffusion accuracy.
Version 1.3.2
  • Added Character Conversion (image to text).
  • Fixed long standing monochrome dithering bug (loss of detail).
  • UI changes for new options and usability changes.
  • Source code contains initial ground work for Muffin web proxy.
Gigascreen (102 colour) conversion

Downloads:

Image to ZX Spec 1.3.3 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.3 online.
Image to ZX Spec 1.3.3 source code (note GPL 2.0 licenced).

Sunday, July 29, 2012

Saturday, July 28, 2012

Downloads Broken, Hosting Offline

It seems like my hosting is offline, I don't know how long this will be but if it doesn't come back up sadly my most recent backup doesn't contain some of the most recent builds or source of software and this may be permanently lost. Apologies for the inconvenience - if you were after apps like Aerofoil please check the Softpedia mirror which are mentioned on the blog posts.

Tuesday, January 17, 2012

Image To ZX Spec 1.3.1 Released

Version 1.3.1 of Image To ZX Spec (more details) has now been released and is freely available.
Image to ZX Spec is written in Java and will work on Windows, Linux (tested on Ubuntu) or any Java 6 capable operating system.

Version 1.3.1
- Added Anim Gif export feature.
- Updated licence/about information.

Downloads:

Image to ZX Spec 1.3.1 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.1 online.
Image to ZX Spec 1.3.1 Source code and Javadoc (note GPL 2.0 licenced).
Tutorial and demo videos

Sunday, August 14, 2011

Reebok i-Run (Reebok Pure?) - Change KPH to MPH


The Reebok i-Run treadmill manual is poor and doesn't explain how to change the distance metric (from KPH to MPH or vice versa) and I know it's really annoying when you accidentally switch the modes during usage but can't work out how it was done (or if it was a software bug in the console).

There appears to be many versions of this treadmill (and I think it's now named the Reebok Pure), at least 2 i-Run and an i-Run plus so the following may not work but did for me:

Instructions to change distance metric:

  1. Plug in treadmill.
  2. Remove safety key.
  3. On the console hold down the Down Arrow button and Start button with one hand, and plug the safety key back in with the other,
  4. The display should show the current mode ("KM" or "ML"), press the Start button to choose your preferred mode.
  5. Press the Stop/Enter button to save and start the regular treadmill display, distances and speed will now be in your chosen metric.


Hope this helps, if it does just drop me a thank you below! :)

Tuesday, July 19, 2011

Sinclair Spectrum +3 to Amstrad CTM644 Monitor



I had a small amount of free time recently and rather than program I decided to hook up my old Speccy to an Amstrad CPC monitor to get an improved picture of scart quality. The old Amstrad CPC CTM 644 monitors are very cheap at car boot sales these days (if you can find them) but brilliant for retro gaming as Amigas and other computers can be connected to them. Here's a short how to on how I made a Spectrum +3 RGB cable (should also work for black +2A/2B) which connects to an Amstrad CTM644 monitor

I've never made a cable before and just needed a soldering iron and the parts below. You need the following components from Maplin:


Maplin CodeDetails
FJ91Y1x DIN Plug 8-Pin Circ
HH45Y1x DIN Line Scket 6-Pin
XS42V 1x 9 Way Cable (1 metre of screened scart cable)
M330R3x 330 Ohm Resistors (Optional! See below)


Total cost is £5.23 at today's prices.


The 8 pin DIN plug is the end for the Spectrum, the 6 pin socket connects to the CTM644's plug lead.

Only 5 wires are connected in the cable, red, green, blue, composite sync, and ground. The cable does not transfer sound as the CTM644 does not have any speakers. It has been mentioned on World Of Spectrum forums that the Spectrum's output to the monitor is too bright - I haven't had a problem and I assume below you won't be using/connecting the resistors, do this at your own risk, but should you need to they should go on the red green and blue pins. The resistors can be fitted any way around (but try and remain consistent). When using the monitor I found the brightness setting on the CTM644 needs to be at minimum.

The DIN socket has small "sewing needle" holed hooks to run stripped back wire into which can then be soldered to hold the wires in place. The DIN plug has tiny holes in the end of the pins for which stripped back wires can be inserted slightly, enough to hold for soldering.

The following image shows the pins from the back, i.e. the side you are soldering on. Apologies I'm not an electrician, my schematics are a bit naff :)



Things to watch for:

  • The 8 pin plug is "reversible", i.e. don't solder the pins on the wrong side otherwise the pins don't go into the spectrum all the way (yes I did this before I realised the pins had holes down the length on one side).
  • Be careful that solder doesn't join the pins.
  • The DIN plastic melts if you apply the iron too long to the pins so make sure you solder quickly.
  • There are metal pincer like pieces on the DINs' inner metal shielding (under the plug plastic cover). This is intended to clamp the cable (not the inner wires) after you have finished soldering so that the outer plastic cover, which fits the shielding grooves, holds the outer cable when you force it into the Spectrum/insert CTM plug.

Disclaimer:
I take no responsibility for mistakes in the above, if you break or hurt anything following these instructions, including exploding your monitor!

Saturday, June 18, 2011

Image to ZX Spec 1.3.0_01 Released

Update: Version 1.3.1 is now available.

Version 1.3.0_01 of Image To ZX Spec (more details) has now been released and is freely available.
Image to ZX Spec is written in Java and will work on Windows, Linux (tested on Ubuntu) or any Java 6 capable operating system.



Changes:

Version 1.3.0_01
- Added support for drag and drop on Ubuntu.
- Minor Ubuntu window size issue fixed.
- Fixed bad line numbering in Simple BASIC Loader.

Downloads:

Image to ZX Spec 1.3.0_01 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.0_01 online.
Image to ZX Spec 1.3.0_01 Source code and Javadoc (note GPL 2.0 licenced).
Tutorial and demo videos

Thursday, March 17, 2011

Thursday, March 03, 2011

Image To ZX Spec 1.3.0 Released

Update: Version 1.3.1 is now available here.

Version 1.3.0(_01) of this application has now been released and is freely available.



Image To ZX Spec 1.3.0 is a multi core capable image and video converter that can produce vintage computer art images (jpeg/png) of any size and can even convert work to a real ZX Spectrum (or an emulator) as a slideshow or video. This is useful to create retro 8bit music videos, posters, tshirts, mock screenshots etc etc - you do not even need a Spectrum to use this program!



New for 1.3.0 - With the exception of the first Ubuntu (15 colour) screenshot above (the tool works on Windows and Ubuntu), the other screenshots illustrate the new GigaScreen 102 colour palette option. For more images and information on Image To ZX Spec's full capabilities read here. GigaScreen images are viewable on any Spectrum with a suitable GigaScreen viewer program. The large palette is a product of flashing two specially prepared images in sequence and due to persistence of vision extra colours can be seen. The real colours are displayed in Image To ZX Spec's preview and saved in other image file formats (png/jpeg) capable of being shown on a PC.



What reviewers have had to say:
"Great tool..."
(kgmcneil, World Of Spectrum)

Amazing stuff and works perfectly with SpecEmu.
(Pegaz, World Of Spectrum)

Awesome...
(orange, World Of Spectrum)

I like the option that you can see the result of different methods at the same time and can choose the one I like the best.

(Ralf, World Of Spectrum)

5/5 stars
(Editor, Softoxi)

5/5 stars
(Softpedia users' rating of Image To ZX Spec)



Third party artwork using Image To ZX Spec:
Changes in version 1.3.0
  • Added "GigaScreen" palette mode (102 colours).
  • Added "Reduced Set Colours" attribute favouritism.
  • Added drag and drop support.
  • Added proportional 256x192 preview capability to the dither preview dialog.
  • Removed lesser used tape loaders.
  • Fixed main window size bug.
  • Fixed missing dialog icon bug.
  • Improved Contrast slider sensitivity.
  • Improved preview repaint for Java >1.6.0_2x.
  • Updated readme and about dialog text.
  • Updated copyrights.

Image To ZX Spec antivirus scan report at softoxi.com

Downloads (updated for version 1.3.0_01):

Image to ZX Spec 1.3.0_01 Standalone (Softpedia mirror)
Image to ZX Spec 1.3.0_01 Standalone (direct download, just unzip and double click jar file to start).
Try Image to ZX Spec 1.3.0_01 online.
Image to ZX Spec 1.3.0_01 Source code and Javadoc (note GPL 2.0 licenced).
Tutorial and demo videos

Sunday, December 05, 2010

Baps Delay

I was hitting a wall of bugs with my original version of the Baps app due to having to break requests in Bluetooth messages so I decided to re-write using streams (which is how data travels over regular network connections), which seemed like a really good idea but thanks to this 512 byte Nokia limitation/bug in JavaME it's going to take a bit longer to work around.

Monday, November 29, 2010

Bluetooth Access Point Service (Baps) Progress


Following on from this post I'm now adding new longer status updates as new posts.

The design of Baps has meant that the current implementation is mostly transparent and does not know about any of the underlying data being sent, contrasted with Hiisi which re-interpreted each http request. The benefit to my approach this is that there is less likely to be an error on my part in resending any type of data onwards, however the difficulty lies in that I still need to establish the destination addresses, ports and length from the data, but I don't have easy access to this information (technically I'm using raw sockets to send bytes rather than a http connection and APIs which could do this for me). This approach has led to delays such as working out content length resulting in "chunked" data and HTTP 1.0 data not being sent correctly (thankfully HTTP 1.0 is not too common and both have an easyish fix but I digress).

I've already started thinking about bluetooth drop out protection but this will be quite difficult to get right (the whole system needs to freeze immediately until the connection is re-established meaning existing requests and results are queued) or else the browser will not receive the results. For this reason it unlikely to be perfect or even in the first release.