Facebook Embed
01 May 2020
Standards have fallen. Disappointed by IEEE
25 March 2019
Wooting LEDs from Java
While waiting for things at work, threw together a bit of Java code to tinker with the keyboard LEDs.. Pointless but fun. 😁 Note to self: Should make time to open source it this weekend so that other people can waste their time.
Posted by Antony T Curtis on Wednesday, 20 March 2019
https://github.com/atcurtis/wooting-java
https://www.instagram.com/explore/tags/wooting/
https://www.instagram.com/wootingkb/?hl=en
21 February 2017
Lazy UPS drivers, again.
22 September 2016
Open Source Silicon?
I think it would be interesting if there was an open-source chip, perhaps based upon RISC-V, maybe based upon cores from SiFive, which are as easy to wire together into a mesh network with little-to-no external glue logic, to make massively parallel computing a commodity. Think of it like an open source Transputer. The Transputer processors had 4 I/O buses which could each directly interface with other processors, peripherals or there was a switch.
Today, we should be able to do better. Imagine a processor module which has perhaps 64 interconnected cores per package and 8 I/O channels and perhaps a couple of gigs of DRAM.
Hobbyists will then be able to experiment with different computing topologies:
or even
What makes this interesting is that this has been a largely dormant area of computer science for more than 20 years and I think with the possibility of open silicon, there's a lot of exciting areas for research and hobby tinkering.
07 September 2016
Java Rock Stars
The rock stars of the Java world never stay on a project long enough, departing immediately when it starts to need cleanup. That way, they're getting the accolades for their achievements and of the people left behind, managers think "these guys are so much less productive than the rock star; we were lucky to have the rock star to get the project started."
14 August 2016
Java 8 Streams
public synchronized void unregister(AsciiString uri, ChannelHandler handler) { Optional .ofNullable(_handlerMap.get(uri)) .flatMap(l -> Optional.ofNullable( l.stream().filter(p -> p.second == handler) .filter(l::remove).findAny().isPresent() ? l : null)) .filter(List::isEmpty) .ifPresent(l -> _handlerMap.remove(uri, l));}
28 March 2016
Upgrading a Rapide Lite 200 with a Smoothieboard 5x
Original Rapide controller |
I had a Smoothieboard from a Kickstarter which I had intended to use for a CNC router project but I decided to repurpose it for upgrading the Rapide printer. The Smoothieware web site does have extensive information on making use of the Smoothieboard.
Smoothieboard 5x |
The printer has 5 stepper motors, of which two are used to drive the y-axis. I could have chosen to drive both from the same driver chip but I decided to drive each of the stepper motors from their own driver. To make the two stepper motors step together, a few links had to be soldered onto the Smoothieboard. In order to keep things as simple as possible, I decided to keep the order in which the stepper motors plug onto the controller board the same. I also soldered the same connectors to the Smoothieboard to avoid needing to recrimp new connectors onto the cables.
Three jumpers centered |
Be mindful to make sure that the polarity is correct.
The HB-PWR cables was then connected to the PWR IN connector at the bottom centre of the board and JP28 was jumpered for the fan power. The heater bed HB-OUT was then connected to P2_7 connector and the head heater HE0 connected to P2_5.
The thermistor and endstops were plugged in as one would expect.
Thermistor and endstop connections on original controller board |
Initial install of smoothieboard |
Cables tidied a bit and heatsinks added |
A copy of my current config.txt is available here: config.txt
I do have my Smoothieboard plugged into my network so I have the ethernet enabled in my config.
12 October 2015
ILI9341 SPI Display on RISCOS Pico
There is a third-party module available to do communications on RISCOS, called PiSPI, but it is very basic and it takes more than a second to send all the data for refreshing the screen once. This effort started because I wanted to progress to investigating using the DMA engine on the Raspberry Pi, which is why the variable
dmabuffer%
contains the data in a format ready to be sent via the DMA engine. In any case, there is a lot of RAM available on the Raspberry Pi.
What is very convenient on RISCOS is the
OS_SpriteOp
system calls, which support creating sprites in many bit depths and sizes. It supports the 16bit format used by the display. Unfortunately, there is no call to rotate sprites and because the display is a 240x320 portrait display and I wanted to use it as if it was a 320x240 landscape display, I had to do that transformation for myself.
A few notes about this implementation:
- GPIO25 is attached to the command/data pin of the display.
- GPIO24 is attached to the reset pin of the display.
- The SPI pins are attached as one would expect.
Since this now works "good enough", I will proceed with other parts of my project and I may return to it when I need to get the DMA stuff working... Most likely because I'd like to find ways to reduce power consumption.
10 REM >DMA9341 20 30 spiclk%=4 40 50 SYS "OS_SWINumberFromString",,"OS_SpriteOp" TO spriteOp% 60 SYS "OS_SWINumberFromString",,"ColourTrans_SetGCOL" TO setGCOL% 70 SYS "OS_SWINumberFromString",,"ColourTrans_ReturnColourNumber" TO getColourNumber% 80 90 DIM vdurestore%(3) 100 110 DIM code% 4096 120 PRINT "Allocating scratchpad at ";~code% 130 140 REM 320 * 240 * 16bit + 44 sprite header + 16 area header = 1536460 150 DIM spritearea% 153660 160 170 REM 320 * 240 * 16bit * 32bit words = 614400 180 DIM dmabuffer% 614400 190 200 spritearea%!0=153660 210 spritearea%!4=0 220 spritearea%!8=16 230 spritearea%!12=16 240 250 PRINT "Initializing sprite area at ";~spritearea% 260 SYS spriteOp%,256+15,spritearea%,"lcd",0,320,240,&78a04001 270 spriteptr%=spritearea%+16 280 290 PRINT "Initializing sprite at ";~spriteptr% 300 SYS spriteOp%,512+62,spritearea%,spriteptr% TO sarsize% 310 320 DIM savearea% sarsize% 330 PRINT "Initializing savearea at ";~savearea% 340 savearea%!0=0 350 360 SYS "OS_Memory",13,&20200000,&100 TO ,,,gpio% 370 PRINT "GPIO mapped at ";~gpio% 380 SYS "OS_Memory",13,&20204000,&100 TO ,,,spi% 390 PRINT "SPI mapped at ";~spi% 400 410 PROCinitGPIO 420 430 DIM spiSendCode% 1024 440 FOR pass%=0 TO 2 STEP 2 450 P%=spiSendCode% : [ OPT pass% 460 .spiSend 470 SWI "OS_EnterOS" 480 ; SWI 256+65 490 LDR R3,gpiov 500 MOV R4,#1 510 MOV R2,R4,LSL #25 520 STR R2,[R3,#40] 530 MCR cp15,0,R3,c7,c10,5 540 : 550 LDR R3,spiv 560 LDR R2,[R3,#0] 570 AND R2,R2,#&0c 580 ORR R2,R2,#&6b0 590 STR R2,[R3,#0] 600 : 610 MCR cp15,0,R3,c7,c10,5 620 STR R0,[R3,#4] 630 : 640 .cmdwait 650 MCR cp15,0,R3,c7,c10,5 660 LDR R2,[R3,#0] 670 TST R2,#1<<16 680 BEQ cmdwait 690 ; SWI 256+66 700 TST R2,#1<<17 710 LDRNE R0,[R3,#4] 720 ;ORR R2,R2,#&30 730 ;STR R2,[R3,#0] 740 : 750 LDR R3,gpiov 760 MOV R4,#1 770 MOV R2,R4,LSL #25 780 STR R2,[R3,#28] 790 MCR cp15,0,R3,c7,c10,5 800 : 810 LDR R3,spiv 820 : 830 .isdone 840 MOV R0,R1 850 ADD R0,R0,#64 860 CMP R0,R5 870 BHI sendrem 880 : 890 ;SWI 256+67 900 LDR R0,[R1],#4 910 STR R0,[R3,#4] 920 LDR R0,[R1],#4 930 STR R0,[R3,#4] 940 LDR R0,[R1],#4 950 STR R0,[R3,#4] 960 LDR R0,[R1],#4 970 STR R0,[R3,#4] 980 : 990 LDR R0,[R1],#4 1000 STR R0,[R3,#4] 1010 LDR R0,[R1],#4 1020 STR R0,[R3,#4] 1030 LDR R0,[R1],#4 1040 STR R0,[R3,#4] 1050 LDR R0,[R1],#4 1060 STR R0,[R3,#4] 1070 : 1080 LDR R0,[R1],#4 1090 STR R0,[R3,#4] 1100 LDR R0,[R1],#4 1110 STR R0,[R3,#4] 1120 LDR R0,[R1],#4 1130 STR R0,[R3,#4] 1140 LDR R0,[R1],#4 1150 STR R0,[R3,#4] 1160 : 1170 LDR R0,[R1],#4 1180 STR R0,[R3,#4] 1190 LDR R0,[R1],#4 1200 STR R0,[R3,#4] 1210 LDR R0,[R1],#4 1220 STR R0,[R3,#4] 1230 LDR R0,[R1],#4 1240 STR R0,[R3,#4] 1250 : 1260 CMP R1,R5 1270 BEQ endsend 1280 : 1290 .bulk 1300 ; SWI 256+72 1310 MCR cp15,0,R3,c7,c10,5 1320 .busyloop 1330 LDR R2,[R3,#0] 1340 TST R2,#1<<16 1350 BNE isdone 1360 TST R2,#1<<19 1370 ;MCREQ cp15,0,R3,c7,c0,4 ;wait for interrupt 1380 BEQ busyloop 1390 : 1400 ; SWI 256+73 1410 MOV R0,R1 1420 ADD R0,R0,#48 1430 CMP R0,R5 1440 BHI sendrem 1450 : 1460 ; SWI 256+74 1470 LDR R2,[R3,#4] 1480 LDR R0,[R1],#4 1490 STR R0,[R3,#4] 1500 LDR R2,[R3,#4] 1510 LDR R0,[R1],#4 1520 STR R0,[R3,#4] 1530 LDR R2,[R3,#4] 1540 LDR R0,[R1],#4 1550 STR R0,[R3,#4] 1560 LDR R2,[R3,#4] 1570 LDR R0,[R1],#4 1580 STR R0,[R3,#4] 1590 : 1600 LDR R2,[R3,#4] 1610 LDR R0,[R1],#4 1620 STR R0,[R3,#4] 1630 LDR R2,[R3,#4] 1640 LDR R0,[R1],#4 1650 STR R0,[R3,#4] 1660 LDR R2,[R3,#4] 1670 LDR R0,[R1],#4 1680 STR R0,[R3,#4] 1690 LDR R2,[R3,#4] 1700 LDR R0,[R1],#4 1710 STR R0,[R3,#4] 1720 : 1730 LDR R2,[R3,#4] 1740 LDR R0,[R1],#4 1750 STR R0,[R3,#4] 1760 LDR R2,[R3,#4] 1770 LDR R0,[R1],#4 1780 STR R0,[R3,#4] 1790 LDR R2,[R3,#4] 1800 LDR R0,[R1],#4 1810 STR R0,[R3,#4] 1820 LDR R2,[R3,#4] 1830 LDR R0,[R1],#4 1840 STR R0,[R3,#4] 1850 : 1860 CMP R1,R5 1870 BNE bulk 1880 : 1890 .endsend 1900 ; SWI 256+69 1910 .endloop 1920 MCR CP15,0,R3,c7,c10,5 1930 LDR R2,[R3,#0] 1940 TST R2,#1<<17 1950 LDRNE R0,[R3,#4] 1960 TST R2,#1<<16 1970 BEQ endloop 1980 : 1990 ORR R2,R2,#&30 2000 BIC R2,R2,#&80 2010 STR R2,[R3,#0] 2020 : 2030 SWI "OS_LeaveOS" 2040 : 2050 MOV PC,R14 2060 : 2070 .sendrem 2080 ; SWI 256+68 2090 CMP R1,R5 2100 BEQ endsend 2110 LDR R0,[R1],#4 2120 STR R0,[R3,#4] 2130 BAL sendrem 2140 : 2150 .gpiov 2160 EQUD gpio% 2170 .spiv 2180 EQUD spi% 2190 .SPI_AND_MASK 2200 EQUD &0000000c 2210 .SPI_OR_MASK 2220 EQUD &000006b0 2230 : 2240 2250 .lineblt 2260 LDR R1,[R0],#4 2270 MOV R4,R1,LSR #8 2280 AND R3,R1,#&ff 2290 AND R4,R4,#&ff 2300 STR R4,[R2],#4 2310 STR R3,[R2],#-&784 2320 MOV R4,R1,LSR #24 2330 MOV R3,R1,LSR #16 2340 AND R4,R4,#&ff 2350 AND R3,R3,#&ff 2360 STR R4,[R2],#4 2370 STR R3,[R2],#-&784 2380 CMP R5,R2 2390 MOVHI PC,R14 2400 BAL lineblt 2410 : 2420 ] : NEXT pass% 2430 2440 PRINT "Resetting LCD display" 2450 PROClcdReset 2460 PRINT "Initializing LCD display" 2470 PROClcdSetup 2480 PRINT "Performing first update" 2490 start%=TIME:PROClcdUpdate:PRINT "Took ";(TIME-start%)/100;" seconds" 2500 REM PRINT "again" 2510 REM PROClcdUpdate 2520 REM END 2530 PRINT "Running PROCtest" 2540 PROCtest 2550 2560 END 2570 2580 DEF PROCspi(cmd%,addr%,end%) 2590 REM PRINT "PROCspi(&";~cmd%;",&";~addr%;",&";~end%;")" 2600 A%=cmd%:B%=addr%:F%=end% 2610 CALL spiSend 2620 ENDPROC 2630 2640 DEF PROClcdUpdate 2650 LOCAL y% 2660 A%=spriteptr%+44 2670 FOR y%=dmabuffer% TO dmabuffer%+&778 STEP 8 2680 C%=y%+&95880:F%=y%:A%=USR lineblt 2690 NEXT y% 2700 PROCspi(&2c,dmabuffer%,dmabuffer%+614400) 2710 ENDPROC 2720 2730 DEF PROCsetGCOL(rgb%) 2740 SYS setGCOL%,rgb%,,,0,3 2750 ENDPROC 2760 2770 DEF PROCsetColour(rgb%) 2780 LOCAL colour% 2790 SYS getColourNumber,rgb% TO colour% 2800 COLOUR colour% 2810 ENDPROC 2820 2830 DEF PROCtest2 2840 LOCAL x%,y%,p% 2850 p%=spriteptr%+44 2860 FOR y%=0 TO 239 2870 FOR x%=0 TO 319 2880 IF (x% AND &4)=(y% AND &4) THEN 2890 p%?0 = &ff 2900 p%?1 = &ff 2910 ELSE 2920 p%?0 = &00 2930 p%?1 = &00 2940 ENDIF 2950 p%=p%+2 2960 NEXT x% 2970 NEXT y% 2980 PROClcdUpdate 2990 ENDPROC 3000 3010 DEF PROCtest 3020 LOCAL start%,end%,c% 3030 PROCvduLcdSprite 3040 3050 PRINT "Hello World from RISCOS" 3060 start%=TIME:PROClcdUpdate:end%=TIME 3070 PRINT 3080 3090 PRINT "frame refresh takes ";(end%-start%)/100;" seconds" 3100 3110 FOR c%=0 TO 63 3120 COLOUR c% 3130 PRINT "*"; 3140 NEXT c% 3150 PRINT:PRINT 3160 3170 PROCvduRestore 3180 PROClcdUpdate 3190 ENDPROC 3200 3210 DEF PROCvduLcdSprite 3220 IF vdurestore%(0) THEN 3230 ERR 6,"Cannot switch" 3240 ELSE 3250 SYS spriteOp%,60+512,spritearea%,spriteptr%,savearea% TO vdurestore%(0),vdurestore%(1),vdurestore%(2),vdurestore%(3) 3260 ENDIF 3270 ENDPROC 3280 3290 DEF PROCvduRestore 3300 IF vdurestore%(0) THEN 3310 SYS spriteOp%,vdurestore%(0),vdurestore%(1),vdurestore%(2),vdurestore%(3) 3320 vdurestore%(0)=0 3330 ELSE 3340 ERR 6,"Cannot restore" 3350 ENDIF 3360 ENDPROC 3370 3380 DEF PROCinitGPIO 3390 LOCAL pass% 3400 FOR pass%=0 TO 2 STEP 2 3410 P%=code% : [ OPT pass% 3420 .start 3430 SWI "OS_EnterOS" 3440 LDR R0, GPSEL0_OR_MASK 3450 LDR R2,[R1,#0] 3460 ORR R2,R2,R0 3470 LDR R0, GPSEL0_AND_MASK 3480 AND R2,R2,R0 3490 STR R2,[R1,#0] 3500 LDR R0,GPSEL1_OR_MASK 3510 LDR R2,[R1,#4] 3520 ORR R2,R2,R0 3530 LDR R0,GPSEL1_AND_MASK 3540 AND R2,R2,R0 3550 STR R2,[R1,#4] 3560 ;LDR R0,GPSEL2_OR_MASK 3570 ;LDR R2,[R1,#8] 3580 ;ORR R2,R2,R0 3590 ;LDR R0,GPSEL2_AND_MASK 3600 ;AND R2,R2,R0 3610 ;STR R2,[R1,#8] 3620 MOV R0,#%11<<6 3630 STR R0,[R1,#&1c] 3640 MOV R0,#%111<<9 3650 STR R0,[R1,#&28] 3660 MOV R0,#&3c 3670 STR R0,[R3,#0] 3680 MOV R0,#spiclk% 3690 STR R0,[R3,#&8] 3700 SWI "OS_LeaveOS" 3710 MOV PC,R14 3720 : 3730 .GPSEL0_OR_MASK 3740 EQUD &24800000 3750 : 3760 .GPSEL0_AND_MASK 3770 EQUD &249fffff 3780 : 3790 .GPSEL1_OR_MASK 3800 EQUD &00000024 3810 : 3820 .GPSEL1_AND_MASK 3830 EQUD &2fffffe4 3840 : 3850 .GPSEL2_OR_MASK 3860 EQUD &00024000 3870 : 3880 .GPSEL2_AND_MASK 3890 EQUD &fffc0fff 3900 ] : NEXT pass% 3910 B%=gpio%:D%=spi% 3920 CALL start 3930 SYS "GPIO_WriteMode",24,1 3940 SYS "GPIO_WriteMode",25,1 3950 ENDPROC 3960 3970 DEF PROClcdSetup 3980 LOCAL DATA 3990 RESTORE +0 4000 DATA &1ef,&03,&80,&02 4010 DATA &1cf,&00,&c1,&30 4020 DATA &1ed,&64,&03,&12,&81 4030 DATA &1e8,&85,&00,&78 4040 DATA &1cb,&39,&2c,&00,&34,&02 4050 DATA &1f7,&20 4060 DATA &1ea,&00,&00 4070 DATA &1c0,&23 4080 DATA &1c1,&10 4090 DATA &1c5,&3e,&28 4100 DATA &1c7,&86 4110 DATA &136,&48 4120 DATA &13a,&55 4130 DATA &1b1,&00,&18 4140 DATA &1b6,&08,&82,&27 4150 DATA &1f2,&00 4160 DATA &126,&01 4170 DATA &1e0,&0f,&31,&2b,&0c,&0e,&08,&4e,&f1,&37,&07,&10,&03,&0e,&09,&00 4180 DATA &1e1,&00,&0e,&14,&03,&11,&07,&31,&c1,&48,&08,&0f,&0c,&31,&36,&0f 4190 DATA &111 4200 DATA -1 4210 PROClcdSendInitData 4220 PROCsleep(0.120) 4230 PROCspi(&29,code%,code%) 4240 RESTORE DATA 4250 ENDPROC : 4260 : 4270 DEF PROClcdSendInitData 4280 LOCAL ptr% 4290 ptr%=code% 4300 READ !ptr% 4310 WHILE -1<!ptr% 4320 !ptr%=&ff AND !ptr% 4330 ptr%=ptr%+4 4340 READ !ptr% 4350 WHILE (&100 AND !ptr%)=0 4360 ptr%=ptr%+4 4370 READ !ptr% 4380 ENDWHILE 4390 PROCspi(!code%,code%+4,ptr%) 4400 !code%=!ptr% 4410 ptr%=code% 4420 ENDWHILE 4430 ENDPROC 4440 : 4450 DEF PROCsleep(d) 4460 ptr%=d*100+TIME:REPEAT:WAIT:UNTIL TIME>=ptr% 4470 ENDPROC 4480 : 4490 DEF PROClcdReset 4500 SYS "GPIO_WriteData",24,1 4510 PROCsleep(0.005) 4520 SYS "GPIO_WriteData",24,0 4530 PROCsleep(0.020) 4540 SYS "GPIO_WriteData",24,1 4550 PROCsleep(0.150) 4560 ENDPROC
01 July 2015
A random thought regarding copyrights...
a random thought entered my mind: The HTTP protocol may be considered an API and every access to some URL which causes code to be executed is an API... Perhaps Google could stop indexing all Oracle properties on the web because they could "fear" being sued for misappropriating Oracle's APIs and require that Oracle submit by postal mail a letter from their lawyers with permission to index a page, including the URL and SHA2 hash of each page where Oracle gives Google permission to copy for indexing purposes. Then Google will only list pages which matches the provided SHA2 hash.
21 June 2015
Mucking around with ZooKeeper and Netty 4
Would be trivial to switch it to use the Netty 4 epoll implementation.
Now... To continue what I started hacking on ...
0 [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Server environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
...
39 [main] INFO org.apache.zookeeper.server.ZooKeeperServer - Created server with tickTime 3000 minSessionTimeout 6000 maxSessionTimeout 60000 datadir /var/folders/4l/kmd0x0_x0q587n81vrrfjks40000z9/T/org.xiphis.zookeeper.TestZookeeper/zksnap/version-2 snapdir /var/folders/4l/kmd0x0_x0q587n81vrrfjks40000z9/T/org.xiphis.zookeeper.TestZookeeper/zklog/version-2
54 [main] DEBUG io.netty.util.internal.logging.InternalLoggerFactory - Using SLF4J as the default logging framework
60 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Buffer.address: available
61 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.theUnsafe: available
61 [main] DEBUG io.netty.util.internal.PlatformDependent0 - sun.misc.Unsafe.copyMemory: available
62 [main] DEBUG io.netty.util.internal.PlatformDependent0 - java.nio.Bits.unaligned: true
64 [main] DEBUG io.netty.util.internal.PlatformDependent - Java version: 8
65 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noUnsafe: false
65 [main] DEBUG io.netty.util.internal.PlatformDependent - sun.misc.Unsafe: available
66 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noJavassist: false
68 [main] DEBUG io.netty.util.internal.PlatformDependent - Javassist: unavailable
68 [main] DEBUG io.netty.util.internal.PlatformDependent - You don't have Javassist in your class path or you don't have enough permission to load dynamically generated classes. Please check the configuration for better performance.
69 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.tmpdir: /var/folders/4l/kmd0x0_x0q587n81vrrfjks40000z9/T (java.io.tmpdir)
69 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.bitMode: 64 (sun.arch.data.model)
69 [main] DEBUG io.netty.util.internal.PlatformDependent - -Dio.netty.noPreferDirect: false
111 [main] DEBUG io.netty.channel.MultithreadEventLoopGroup - -Dio.netty.eventLoopThreads: 8
172 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.noKeySetOptimization: false
172 [main] DEBUG io.netty.channel.nio.NioEventLoop - -Dio.netty.selectorAutoRebuildThreshold: 512
208 [main] INFO org.apache.zookeeper.server.Netty4ServerCnxnFactory - binding to port 0.0.0.0/0.0.0.0:62326
236 [main] DEBUG io.netty.util.internal.ThreadLocalRandom - -Dio.netty.initialSeedUniquifier: 0x1216b72d21d3cb0f (took 13 ms)
278 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.allocator.type: unpooled
278 [main] DEBUG io.netty.buffer.ByteBufUtil - -Dio.netty.threadLocalDirectBufferSize: 65536
282 [main] DEBUG io.netty.util.NetUtil - Loopback interface: lo0 (lo0, 0:0:0:0:0:0:0:1)
282 [main] DEBUG io.netty.util.NetUtil - /proc/sys/net/core/somaxconn: 128 (non-existent)
19 January 2015
Global Internet Access
I would wager that if we have had good affordable internet in our first-world abodes, the wealthy would not be so inclined to think of such schemes. Like as like not, for a new third-party to compete on the ground is practically impossible due to legal red tape and so the space option becomes the most practical, in spite of being a bit inefficient. It's easy to imagine the Elon Musks of the world venting frustration about lack of coverage or simply being unable to cancel Comcast without losing sanity...
Of course, when the time comes, the legacy telcos will complain about unfair competition from these upstarts and will campaign for government hand-outs to help modernise their networks; something which they should already be doing instead of accumulating profit and giving the money to their directors and shareholders.
It will be curious to see what happens. Ideally, the telcos will see the light; otherwise, I won't lose any sleep as their networks decay into obsolescence.
13 January 2015
Fox news Christian terrorists
Christian terrorist Jeanine Pirro, calling for a jihad/crusade to mass murder other people because other places which have tried mass murder worked out great.
I'm all for free speech except when it's threats, advocating violence or inciting violence.
Unlike the fox gaffe earlier this week, this is not funny.
#FoxNewsFacts
01 December 2014
Rowhammer: ECC DRAM by default?
Apparently, there has been a weakness in modern DRAM which had been known within the computing industry since 2012 which has been given name rowhammer. It is particularly the interesting because if how nearby memory locations have their bits flipped which violates the very foundation of our modern multiprocess systems.
Perhaps, it is time that all our PCs should have ECC memory by default which would at least fix single bit disturbances?
25 November 2014
Some project foundation classes for Java.
13 November 2014
Oh, how editing standards at The Guardian has fallen.
"They’re sci-fi saddos; they’re World of Warcraft weirdos"As someone who enjoys sci-fi and whose name is in the credits for more than one WoW game, this is inappropriate offensive mischaracterization. Some people are jerks because that is simply what they are and it has nothing to do with what fiction genre they enjoy or what computer games they have played.
I guess The Guardian is becoming just another sleazy tabloid with ineffective editors.
#TheGuardian
Originally posted at Facebook
07 August 2014
The right tool for the job...
Imagine that a team has an OKR:
- Objective: Secure a piece of wood to another piece of wood.
- Key Results:
- Select a suitable fastener.
- Select a suitable tool.
- Fasten the pieces of wood together.
The team chooses a good wood screw.
The team chooses a good electric screwdriver.
The two items are designed to work together.
The team puts the wood screw into the hole.
The team then proceeds to use the electric screwdriver as a hammer,
hammering the screw into the hole.
Bits of the electric screwdriver shatter. The head of the screw is mangled.
OKR objective and key results achieved.
Now imagine that someone needs to fix this, afterwards.
31 July 2014
Opinion: Blogging about homophones and homonyms.
31 May 2014
On Intelligence
Before going on holiday, I grabbed a book from my "to be read" pile and this time, it was the book "On Intelligence" by Jeff Hawkins.
This is, by far, the most approachable book I have read on the topic in about 15 years and even though the first 100 pages of this 245 page book hasn't yet expounded upon the meat of the topic which the author wants to discuss, he does excellent job of using analogies to bring readers of many levels to the same point.
Jeff Hawkins puts together a very convincing case and I think that this book is a "must read" for everyone who, at least, has a passing curiosity on the nature and nurture of consciousness.
30 May 2014
Google Play Services
Why must "Google Play Services" use up 40% of my phone's power consumption? Ugh.
#android #googlefail
16 May 2014
OsmAnd is better than Google Maps
I am using a HTC One M7 phone and to maximise battery life, I have mine configured to not use WiFi+Data to determine location. Because of this, Google Maps gets in a pouty mess and refuses to work even though it may use the GPS to directly acquire the location. OsmAnd doesn't throw such tantrums and works fine.
I should note that this tantrum of Google Maps appears to be a recent change, possibly related to their "show nearby offers" feature. In any case, it is a huge step backwards in functionality.
Do no evil, Google?
Actually, I'd settle for "no regression".
I can no longer recommend Google Maps for mapping on Android. It is broken. However, Open Street Maps' OsmAnd works great and did not balk when used 6500 miles apart without rebooting the phone.
01 May 2014
Dear HTC, a suggestion for M9
Dear HTC, Please bring back the pogo-pin dock connectors for charging and auto-pairing to Bluetooth audio devices. I do enjoy your HTC One (M7) phone but the lack of pogo-pin connectors was a disappointment; I lived with it but I do not like the daily wear on the micro USB connector. I was further disappointed when you launched the One successor (M8) without it either. As a result, I'm willing to wait and see what your M9 offering brings - I can wait. We know you can do it - your HTC Nexus One had the pogo pins for its docks but possibly, the lack of documentation over it was disappointing, even though it is somewhat trivial to reverse engineer. Please reintroduce the pogo pins for charging and docks in your future phones. Thanks, Antony.
#HTC
#HTCOne
29 April 2014
Thought for the day:
People will try to use every feature of a product to be "cool".What does the interwebs think?
Therefore, any build tool which permits circular dependencies is a broken tool.
24 April 2014
Internet and net-neutrality.
I think that the word, internet, should be restricted to mean networks which allow free and equal access for packets from other networks... As in an "inter-network network".
Networks which do not permit free and equal networks should be named for their controlling interest. So company owned and moderated networks, like Comcast, which limit bandwidth or filter content are not "internets" but are, in Comcast's case, Comcast's network which has a moderated gateway to the internet. Similarly, people in China or Turkey don't have internet service providers: they have "turknet" or "chinet" service providers which has a moderated gateway to the internet.
I think we do need to make this distinction so that users are not misled.
21 April 2014
I don't care for Gradle.
Useless error messages
Executed 0 tests: 0 succeeded, 0 failed, 0 skipped. Unexpected exception thrown. :integration-test-impl -- Executed 0 tests: 0 succeeded, 0 failed, 0 skipped. :compileJava FAILED
11 April 2014
10 second thoughts: Gradle
17 March 2014
H41-08U: Caravan of Ignorance
02 January 2014
colordiff trailing whitespace again
I think I shall leave this version of the patch right here for future reference.
--- /usr/bin/colordiff 2010-06-01 12:47:41.000000000 -0700 +++ colordiff 2014-01-02 13:29:03.954751310 -0800 @@ -61,4 +61,5 @@ my $diff_stuff = $colour{magenta}; my $cvs_stuff = $colour{darkyellow}; +my $trailing_whitespace = "\033[0;41m"; # Locations for personal and system-wide colour configurations @@ -311,4 +312,5 @@ foreach (@inputstream) { + my $added_line = 0; if ($diff_type eq 'diff') { if (/^</) { @@ -317,4 +319,5 @@ elsif (/^>/) { print "$file_new"; + $added_line = 1; } elsif (/^[0-9]/) { @@ -337,4 +340,5 @@ elsif (/^\+ /) { print "$file_new"; + $added_line = 1; } elsif (/^\*{4,}/) { @@ -379,4 +383,5 @@ elsif (/^\+/) { print "$file_new"; + $added_line = 1; } elsif (/^\@/) { @@ -406,4 +411,5 @@ elsif ($sepchars eq ' >') { print "$file_new"; + $added_line = 1; } else { @@ -426,4 +432,5 @@ $_ =~ s/(\{\+[^]]*?\+\})/$file_new$1$colour{off}/g; } + s/(\s+)$/$trailing_whitespace$1/ if $added_line; s/$/$colour{off}/; print "$_";
kthxbai!
01 January 2014
Goodbye 2013... Hello 2014.
That was one fast year... Zoom!
When it comes to personal objectives, not a particularly successful year.
Retrospective
As a courtesy, the link to last year's retrospective is right here.As with last year, lets start with the notable flubs:
- Failed to spend enough time to relearn the piano.
- FOSS flubs - failed to get code out there and adopted.
- Continued to fail to maintain fitness... I end this year at 211lbs vs last year's 206lbs.
- 400KHz I2C on Raspberry Pi to a PIC16 microcontroller slave.
- Managed to test OQGraph3 with TokuDB on MariaDB.
- Reduced by 20% the reading list backlog.
- Did manage to get together for a few meetups with other Blizzard alumni.
Wish list for 2014
- Free and Open Source Software projects
- Dedicate some hours to help polish OQGraph by March.
- Split the WL#820 project into lots of separate commits.
- Personal development:
- This time, really do set aside some time to relearn the piano.
- Complete at least one large project (electronics, pi, etc).
- Organise the office, really! It's a dump!
tldr?
2013 was a forgettable year except for time with my daughter.16 October 2013
Accurate notifications: 249,561,088 Invitations!
08 October 2013
Kickstarter: Smoothieboard
http://www.kickstarter.com/projects/logxen/smoothieboard-the-future-of-cnc-motion-control
29 September 2013
I like modern phones
I really do like our modern era of customisable smart phones... The HTC One is truly the best phone I have ever owned.
The point if this posting: The recent Android 4.3 upgrade also upgraded the system apps. This meant that it came bundled with Google Hangouts and Google Maps 7. Both of these apps are a UI nightmare and so, I have removed them and installed the older Google Talk 4.1.2 and Google Maps 6.14.4 apps.
Much nicer!
#HTCOne #Android
05 September 2013
Google Contacts UI fail
There is clearly enough room to not truncate the name if the name was shifted up.
#google #android #fail
The flute makers and the rebellious child.
Imagine a happy functioning society of flute makers, who spend their time toiling the fields, making beautiful flutes with intricate carved patterns and playing music which is a joy to listen to. However, they are all born blind but to them, this is completely normal.
One day, a child is born but she could see: She learned growing up to pretend to be as blind as her brethren but in her rebellious teens she decided she wanted to paint the colours she saw.
Such blasphemy! Colours! Her parents were so sad that they gave birth to such a deformed and mentally insane child that did not want to make flutes and play music but instead she wanted to paint imaginary "pictures" that no one can feel and she talked about "colour" nonsense that no one can hear. How does one hear the colour "red"?
The child was obviously insane.
However, the village elders know a cure. They can put out her "eyes", obviously a physical defect, and she would be just like everyone else: Normal.
01 September 2013
Battle for the post smart-watch era...
I was considering how there are many players in the space, with Google acquiring a player, Samsung about to launch a product, there is also Pebble, Sony already entrenched and even Apple looking like it's interested in playing.
One of the biggest criticisms I have seen with several reviews of products is over integration and battery life. Random neurons fired and I recall reading that there was already a fuel cell developed that could generate electricity from blood plasma.
So, here is the idea: A subcutaneous implant with an OLED display, a digital smart tattoo, fuelled by the wearer's blood, Bluetooth connectivity to a phone and maybe a bunch of medical applications, like monitoring blood glucose, etc.
03 August 2013
Twinkle, twinkle, little star...
While on FaceBook, I had encountered the following take on Twinkle Twinkle Little Star and it didn't seem to flow right for me and didn't feel adequate, scientifically.
Twinkle, twinkle, little star;
how I admire what you are!
Giant ball of incandescent gas,
Compressed under its own mass.
Twinkle, twinkle, little star;
how I admire what you are!
Glowing bright, nuclear fusion:
Hydrogen to helium, C-N-O!
Billions of years of fuel to burn
until the iron cools the core.
Red dwarf, white dwarf, Supernova!
Infinite universe, full of awe.
Twinkling star, far away:
Distorted by our own atmosphere.
Scientists with their adaptive optics,
study the night sky, beauty abound.
Twinkle, twinkle, little star;
Science tells us what you are.
I give it to the world under the following license:
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
24 July 2013
13 July 2013
Recording ideas
Being conscious of the weird ways that our minds work is a useful thing. One if the more interesting studies in recent years revealed that our minds scrub some information when passing through doorways. Recently, I have adopted the policy of not passing through a doorway if I am incubating a new idea and will try to record the idea before I leave the room. For this, I have found that the Google Keep app is really quite useful.
10 June 2013
20 May 2013
A tale of two Pis
Since I have two different Raspberry Pis, both model B but one is made in China, the other is made in the UK, I may as well post a picture of them side by side.
11 May 2013
HTC One charging oddity
After mucking around with the phone, plugging in and unplugging things from its USB port, the port may suddenly stop working and the phone won't even initiate charging when the charger is plugged in. Soft reboots or soft power-down/power-up doesn't appear to fix it and the phone won't appear when plugged into a computer's USB port.
The solution is somewhat simple: Force a hard reboot by holding down the power button for 10 seconds. The following reboot, it appears to work again.
01 January 2013
Goodbye 2012. Hello 2013.
It's that time of year again: Reflect on the year's successes and flubs... Of which some were "resolutions" and some were merely wish-list items.
Notable flubs:
- Practically all work-related items were flubs but there again, I didn't seriously expect Blizzard to give me the "pink slip".
- Most FOSS project items were flubs but there again, changing job and relocating puts a serious crimp on one's free time.
- Failed to maintain the fitness improvement - Finished 2010 at 235lbs, 2011 at 198lbs and I'm finishing 2012 at 206lbs. Could be worse, I suppose.
Anyways, on to non-work wish-list for 2013... Not solid resolutions because, meh.
- Would be nice to get back to under 200lbs again.
- I am going to make time for Free and Open Source projects:
- OQGraph for MariaDB
- Cleanup the v3 work
- Get it merged into trunk.
- External Stored Procedures for MariaDB
- Cleanup the current work.
- Include the proof-of-concept work to split the parser so that the stored procedure parser is plugable.
- Get it merged into trunk.
- Playing with Raspberry Pi
- I plan to outfit my Pi with more IO using cheap PIC16 parts and make all the source and schematics open.
- I want to make a small bipedal robot, powered by a Pi or two.
- Is it possible to use I2C as a Transport for NDBCluster?
- Just for fun:
- Participate in more get togethers with other Blizzard alumni who are now in the SF Bay area.
- Personal development:
- I'm planning to relearn the piano.
- Read more books. I have a backlog of books, including fiction books, that I want to read.
- Eventually get my home office organised.
03 March 2011
27 December 2009
Tip: Automounting NFS
11 December 2009
17 July 2009
Things to do...
31 May 2009
An idea to increase power/efficiency of a Natural Gas (CH4) Internal Combustion Engine (ICE).
Essentially, the waste gases of a natural gas engine is water vapor and carbon dioxide with trace amounts of other pollutants.
A major waste product of the engine is heat, especially excess heat in the exhaust gasses. What do I define as excess heat in the exhaust? Quite simply it is heat above the point required to keep the water content of the exhaust in its vapor phase. At standard atmospheric pressure, it would be 100ºC. With an engine with a 12:1 compression ratio, this temperature would be at least 182ºC, plus a bit more for the motive power of the engine - so lets say around 200ºC.
The exhaust gases could be condensed to form mildly acidic but otherwise pure water. This water could be warmed by the engine's cooling system up to equal the temperature of the engine block, which would be a little under 100ºC. At the point of the engine cycle just after the intake valves close at roughly the point where compression begins, a small amount of this warmed water could be injected as a fine aerosol spray. The subsequent combustion of the natural gas could provide enough energy to also change the injected water into its vapor phase, increasing the post-combustion pressure within the engine, providing more motive power.
The key thing to do would be to monitor the temperature of the exhaust from the engine to ensure that there is excess heat within the system to vaporise the injected water so that the water is not injected at a time when there is insufficient energy to support it as it would likely result in reduced engine performance.
How well would this perform? Well, to be honest, I have not run any detailed numbers but I don't think it would be too far fetched to imagine this improving power by as much as 10%, maybe even significantly more. Increased performance would mean less time spent accelerating and perhaps less fuel to maintain steady velocity which both would mean significant gains in fuel efficiency.
What other uses for the condensed water can I think of? Perhaps some form of evaporative cooling system for the intake air? Another idea to entertain.
If only I had the time to play...
22 May 2009
21 May 2009
08 May 2009
Verizon has awful customer service!
VERIZON CUSTOMER SERVICE SUCKS.
And for a phone company, the call quality of their customer service sucks -- as they transfer you from one call centre to another, the voice quality gets progressively worse and worse.
Perhaps the poor line call quality is intentional - so that after an hour and being bounced from one call centre to another, you're forced to disconnect and try again because everything becomes unintelligible.
Even though you enter in your "BTN" number, you get sent to a call centre on the other side of the country just to be sent back...
I am so tempted to just cancel.
22 January 2009
W the hell is "Cyberinfrastructure"
(aka I expected better from the IEEE Computer Society Magazine)
What is the subject of my wrath? Quite simple really.... The use of the prefix "cyber-" to mean "The Inter-Network".
Cyber-this... Cyber-that... What a load of rubbish. It is diluting the real meaning of Cybernetics, which is the science of feedback and control engineering.
And this rubbish word "Cyberinfrastructure", as seen at the top of page 40 of the January 2009 edition of the IEEE Computer Society magazine "Computer", is a case of a few people wanting to sound "smarter" by abusing a word used in science and engineering.
To me, they have just made themselves sound less educated.
Instead of the abomnation "cyberinfrastructure", why not use "network infrastructure" or "data grid".
Bah!
You may choose to blame my rant on the fact that I have a degree in Cybernetics.
15 January 2009
Random thought
Makes something like the MacBook Air a tempting choice for the future: 2010 is the year when I will replace my personal laptop.
(Katie would disagree: She uses her laptop as a personal DVD player)
23 December 2008
Actually, it very good and tasty dogfood!
Personally, I am very happy to receive the dev G1 phone... It wasn't something I would have purchased for myself (tough economic times ahead yadda yadda yadda) nor was it something that I would have asked anyone else to get for me. It gives me the opportunity to play with it and maybe develop a few stupid little applications, just for fun: It will be a much appreciated toy for Christmas.
Will it replace my old phone? Don't know yet. It is a lot bulkier than my Samsung Trace. For now, I'm giving it a test-drive.
In any case, this is the most valuable Christmas bonus that I have received in recent years - so I kinda feel that anyone complaining about it are kinda being ungrateful. I am used to getting perhaps a company-branded backpack, shot glass, towel or USB pen drive as a Christmas bonus from my previous employer so this phone gift is positively extravagant by comparison. Even considering that I occasionally worked long hours and was key in developing a few features which formed the foundation of my then-CEO's promise, I appreciated the small token gifts and I still enjoy using them today.
I never expected, nor did I ever receive, a large bonus from my previous employer.
I never expected any bonus from Google this year, especially considering the current economy.
Just my 2c opinion..
07 October 2008
Bumper sticker
07 September 2008
Nine Inch Nails
25 August 2008
The cost of Natural Gas
It is quite amusing sometimes to look at official statistics: 4 times more natural gas is lost in storage and in the natural gas pipe network than is used for transportation.
This means that they (Sempra etc) could in theory sell natural gas for use in transportation for free and write it off as 20% increase in network storage losses.
However, the cost of fuel to owners of natural gas vehicles in California is up to 3 times higher than the cost of fuel to vehicle owners in Utah. Given that the wholesale price of natural gas is prroximately $9.03 per 1000 cu.ft. and the retail price to CNG vehicle owners in California is around $2.89 / gge (1 gge = 127.77 cu.ft.), then the natural gas companies have a profit margin of approximately 150%. If California is really serious about reducing pollution, natural gas vehicles needs to be encouraged since natural gas is the source fuel used by all hydrogen fuel cell vehicles, whether the natural gas is cracked in a converter at home, within the vehicle itself (natural gas fuel cell) or done industrially at the filling station. Price gouging by the natural gas suppliers needs to stop - CNG vehicle owners should not have to have a home filling station fitted just to avoid the inflated prices at the filling stations.
20 August 2008
There can be a whole new service industry,
For a nominal fee, perhaps $5-$10 per week, a company can provide a junk call phone screening service. Here is the details:
- A FXO/FXS device is plugged into your PC which is wired to the internet.
- The phone line from customer's phone service plugs into the PC.
- All the home phones are connected to the PC.
- Outgoing calls are unhindered... The service may optionally route the call through cheapest path.
- VOIP-based phone services, such as Vonage, can skip some of the above.
- An incoming call which matches customer-supplied list of phone numbers causes home phones to ring.
- All other incoming calls are immediately picked up by the computer.
- If it sounds like a FAX, receive it and store on hard drive.
- Otherwise, call is routed to phone-screening operator, perhaps in India or wherever is cheap.
- If caller can identify themselves, matching supplied list (such as credit card account number), the call may be forwarded to the customer's home phones or a pre-recorded message can be played back at the caller.
- Forwarding services can be provided for extra $$ subscription... No need to miss an important call. Forward to a VOIP target, or a cellphone perhaps...
- All received non-personal calls can be recorded. The operator will notify the caller immediately after answering the call.
- The audio file will be stored (long term) on the customer's PC.
- Short-term audio retrieval would be available online from the service's web site.
- All received calls, (CID details, date, time, duration) are logged/archived on customer's PC.
- Recent calls list may be viewed online.
Now, wouldn't it be funny when a Telemarketer from India is received by an operator in India, and you never need be bothered by a phone call in the middle of the night?
03 July 2008
Call came through.
Cannot say that I am surprised.
16 June 2008
Speculations
My opinions and speculations:
- We will see $5/gallon during 3Q08.
- Federal Reserve base interest rates will rise by 0.5% before end of FY08
- Residential property prices will bottom out during 4Q08.
02 April 2008
MSOOXML has been made an ISO Standard,
Given the penchant for largely undocumented binary globs in the file, I should imagine that this should be possible - because by the nature of being undocumented, they are not part of the standard so a document which has an 'invalid' binary glob would still be conforming to the OOXML standard.
Anyways, it is not a disaster - I am sure that there must be plenty of ISO standards which are defunct or rarely used because they are irrelevant or unimplementable. OOXML is likely to become another one. Where people fail to specify exactly which ISO document standard, that is their own problem. Supporters of ODF should continue doing what they were doing - refining their specification and making it good and stop wasting time trying to berate their competitor.
Besides, now you have an easy way to tell PHBs about what each of the two standards are about:
- When archiving legacy documents, use ISO/IEC DIS 29500, Information technology – Office Open XML.
- For all new documents, use ISO/IEC 26300 Information technology - Open Document Format.
22 March 2008
I now have Time!
I am now officially a jobless lazy bum. On the plus side - I now have time!
Time to think about relaxing properly. Time to read one of those dozens of books I never seemed to have time for.
There are a few things I need to do - but there is no work stress or pressure. This weekend will be the first in years where I have no deadlines to think about. Okay - I did have a couple of deadlines but they don't matter anymore.
Important things have happened - Iain M Banks has published a new Culture novel: Matter. I plan to read it this coming week... but not too fast - I shall wait until I have a nice open slot for that activity so I can enjoy his work fully.
10 March 2008
"Chick-Kut-Teh"
This evening, I prepared it using about 2 lbs of chicken with some baby carrots and sliced white onions thrown in near the end (the two vegetables which Katie readily eats). Served with steamed Jasmine rice. Perfect.
Of course, the best is yet to come... Tomorrow, it would taste even better!
26 February 2008
Early morning activity...
Used the opportunity to vacuum the cooler fins inside the Quad G5 - it was truely impressive how much dirt had collected there - amazing that the machine did not suffer badly from overheating problems.
05 February 2008
The sorry state of computing literature
Imagine in a bookshop that there is a "Food" section where there are hundreds, perhaps thousands, of books, all quite clearly divided into sections:
- How to eat Pizza
- How to eat quiche
- How to eat soup
- Serving food
- Table settings
- The Art of Plating
- Slicing Turkey
- Serving Pie
- Reheating Dinners
Dozens of sections about food... yet none of them actually tell you how to make anything. No ingredients. No recipes.
That is the state of the majority of computer books and computing magazines today.
14 November 2007
Tower of Hanoi
My arms are aching though.
05 November 2007
Leopard Spaces...
02 November 2007
Book browsing
*sighs*
So I purchased a Terry Pratchett book. I much prefer the artwork on his UK books than the artwork over here.
30 October 2007
Time Machine
Now... I just need some more storage space...
29 October 2007
Leopard is a bit spotty
- Unable to move windows on to secondary displays
- Unable to be configured to use TCP connections, except by manual startup (Do we really need multiple Xquartz processes?)
- DPI is fubar - I prefer to set 75DPI even though I have large displays - I have large displays because I want more stuff on the screen!
- Display feels slower.
Some of the other new features are nice - the new SSH AskPasswd program is a nice new touch but I think I shall just have to bite the bullet and 'upgrade' to the Tiger X11 release. I shall be following the instructions detailed at http://aaroniba.net/articles/x11-leopard.html
28 October 2007
Leopard's CUPS defaults
I found the answer at http://mcdevzone.com/2007/10/28/printer-fix-for-leopard
27 October 2007
Leopard Review
Installation was pretty painless - I uninstalled things like APE beforehand and after reading the various blogs where people had hanging installs, I am sure glad that I did take the precaution. It feels faster on my Quad-G5 PowerMac - things seem to respond faster. Visually - I'm going to have to change the default background - some of the annoying artifacts on the menu bar are from the background image. The work done to Mail - is excellent. Much improved responsiveness. The iChat improvements are very welcome - it can now be signed-in on multiple accounts.
I have not managed to get Time Machine working from using a FreeBSD fileserver, even when I have netatalk installed and operational - There has been some skectchy reports of workarounds but its not working here. I really don't want to have an external drive for each Mac for backup - I would prefer to be able to back them up centrally over the network.
With respect to software development - time will tell. There is already some indication that the assembler/linker may have some problems with some inline PowerPC assembler which prevents the build of the glib macport from completing successfully.
26 October 2007
Mac OS X Leopard has arrived
24 October 2007
All throughout today and yesterday, there has been ash falling from the sky from all the fires around near Los Angeles. We have had all the windows closed to keep the dust and ash out - going outside for a short while irritates my eyes something awful and that is even though I take a powerful anti-allergy medicine daily.
17 September 2007
What can be done about it? Quite simple. It is within the EU's power to void Microsoft's copyrights, patents, trademarks and all other intellectual property in Europe.
Radical, yes. But it would also serve as a warning for all other companies that they are not above the law. Europe is a big market for Microsoft ... bigger than their American market.
I doubt that would ever happen but it doesn't hurt to dream.
14 September 2007
*sighs*
It was a trusty workhorse, from 1997 to 2007.
Only one question plagues me.... What machine should I butcher in order to have a working OS/2 machine or do I wait until eComStation goes GA and buy a modern machine?
06 September 2007
Would you accept that kind of situation? I doubt it. You purchased the computer whole and complete from one vendor, you do not expect to go to the suppliers of the computer's vendor in order to have it fixed. You'd think it to be unacceptable... What if there was a faulty diode on the motherboard... Would your PC vendor expect you to go to IR for a replacement diode?
Ugh!
Anyways.... Our car has been having problems. It isn't even two years old yet but it has already spent about two months sitting at a Saturn dealership. It has had 3 steering columns replaced. 2 drive wheel bearings. a transmission control modules and an engine management module ... and thats only the expensive parts. Now, we have had the driver's side front drive tyre blow out two times in as many months: Both times, the tyre failed in an identical fashion. Now we (the end user) must send the tyre to the manufacturer to be examined for defects... The first tyre came with the vehicle, the second was purchased from a Saturn dealer.. ie. Both failed tyres came to us via Saturn. WHY DO WE HAVE TO TAKE THE TYRE TO THE MANUFACTURER? Absolutely non-existent customer service: They should be bending over backwards for us, especially when you consider the entire catalogue of faults that this vehicle has had to date.
I am not a happy Saturn customer.
I cannot in good consciousness recommend anyone else to buy a Saturn vehicle.
I wish I had purchased a Volkswagen.
05 September 2007
Windows XP rebooted and I began to use it but when I copied files over the network, I had a nagging feeling that the performance wasn't quite up to par.
Today, I have tried transferring larger files and I notice that it appears to stall frequently while performing the file transfer. So I started "ping -t" ... and wouldn't you know, this machine which used to have no problems is now dropping about 1 in 10 packets over my fully switched network. Just in case it was a faulty port on the switch, I changed the port and ethernet cable. No change.
Is this some sinister plot to make Vista "better" by crippling older XP installations?
In any case, it is stupid - and dropping that many packets causes a lot of problems. I cannot believe that everyone are experiencing this or else there would be a worldwide outcry - a revolt. Perhaps its just a coincidence that the network card is now faulty but it's a bit awkward to resolve as the NIC is the on-board integrated port on a laptop. I guess I will have to try with a PC Card device and see if that rectifies it.
29 August 2007
What I would like to know is.... Why would anyone want an incomplete operating system? I don't care if it is the "most complete". I want an operating system which is "complete".
Still, I have to admit that the most expensive software purchases I have personally paid for in the past couple of years has been 2 retail boxes of Windows XP Professional. Of all the people I know personally who have tried Windows Vista (usually bundled with their computers), almost all of them have either purchased Windows XP or have somehow acquired a DVD. One person even considers installing XP Home an upgrade over the bundled Vista Home Premium. For all of Windows XP's flaws, it never drove people to install Windows ME. I have to confess that I haven't actually used Vista long enough to be as frustrated with it as those people but to be perfectly frank, Windows XP Pro does everything I need out of an OS when I need to use it.
There are a few new pieces of software which I will purchase in the near future when they are released: Mac OS 10.5 which I will probably buy the family pack and the expensive one: eComStation 2.0 - partly for nostalgia's sake but I also have a unopened, still in shrink wrap, Hopkins FBI for OS/2 which I have been thinking about trying for the past couple of years.
20 August 2007
On a little side note - I tried to post this message earlier today but the Google Blogger site appeared to be down for maintenance.
07 August 2007
05 August 2007
2MEM/1/4:DIMM3/J7000
It's well beyond the Fry's 30day replacement but definitely less than a year... so I will have to call Kingston on Monday for a RMA number for it. Meanwhile, I'll order some replacement memory so that the machine won't be crippled for too long... besides which, when the replacement memory comes back, I will have a bit more memory to do stuff with.
05 July 2007
03 July 2007
28 June 2007
13 June 2007
*** sighs ***
With the recent release from Perdue detailing a computer simulation of the 9/11 WTC attack, the fierce debates that it spawns as to the "It's an inside job" vs. "No it's not," camps and their arguments miss the point of the simulation.
I have looked at the short video clip and I would say that it seems plausible: I could imagine a aeroplane causing that kind of damage. It is also clear to me that the damage rendered to the core columns is inadequate to cause a complete structural failure of the whole building, especially considering that the aeroplanes hit quite high up on the building. There was relatively little load being supported by the core columns at that level.
Of course, the "Terrorists hate us" camp would trot out the argument that steel only needs to be heated up to half it's melting temperature in order to begin to warp and fail. Given that the buildings were hit some 400m above ground level, assuming that there was enough fuel burning to heat the core columns via radiation, and assuming that 100% of the radiation was absorbed with no radiative losses... for that heat to propagate down the core columns such that all the columns were heated sufficiently that a cascade "pancake" collapse would occur, hmm... after some scribblings on a back of a napkin.... assuming a rather light core column at an average cross section of .34 sq m per column... it would take as much energy as released in 18 million pounds of TNT to raise all the core columns to 800 degrees Celsius... Or expressed as a speed of a 747 aeroplane if translated into kinetic energy - about the same as if it was traveling at around 10,000 miles per hour.
Pretty fast, innit?
Oh well... People never let facts bother their perception of the world. Unfortunately, they let any idiot vote nowadays.
31 May 2007
Apologies to all those people who have seen it in March but here is the link:
George Orwell's former house surrounded by 32 CCTV cameras, all within 200 yards.
22 May 2007
So much has happened during th past week but due to the happenings, I have not been able to post any news.
Easter Sunday at around 3:30am, my mother in law suffered a severe heart attack. She passed away early on Tuesday at about 4:30am. These events were completly unexpected due to the full exam she had a month ago and of her mere hours before the heart attack. We held her funeral and burial on Friday. There was quite a good turnout.
18 April 2007
29 March 2007
Kind of like trains in the UK.
08 March 2007
I am returning back to Los Angeles today. It was nice to work and chat with Bran but I do miss Katie... and the messed up cat Sweety.
Here is a random thought which just struck me: Freedom is having a wide range of choices available and not having to make a decision.
23 February 2007
A case in point: The debate on the origin of the phase "Rule of Thumb" which people parrot as being a part of British Common Law permitting husbands to beat their wives, which is then used as an explanation as to why it is not written down. A few problems: English Common Law is written down as it utilises past precedent and that the earlist reference to "Rule of Thumb" as an defense for beating a wife in a case near the beginning of the 20th century. The best explanation is this: The phrase has its origins in the textile industry as a way to measure fabrics. Half the circumference of the thumb does approximate an inch. It was well established as a phrase when the English went to the New World. In the Americas, some pious preacher then invented the concept that it was ok to discpline an errant wife whereupon it entered into American folklore. That concept was then exported back to Britian at the turn of the 20th century through literature and by US servicemen who served in Europe.
Another thing which does irk me some is the ancient nursery rhyme which Americans know as "Ring around a Rosie". Here is the version I learnt as a child:
- Ring-a-ring o' roses,
A pocket full of posies,
ah-tishoo, ah-tishoo (like sneezing)
We all fall down
It is popular to attribute this rhyme as related to the Black Plague... However another interpretation which is not concidered much is the ancient pre-Christian practice of dancing around the maypole, which is an ancient fertility ritual.
Isn't history so much fun?