|
Posted
11 days
ago
When last time I was in Cambridge we had a discussion about ARM processors. Paweł used term “ARMology” then. And with recent announcement of Cortex-A12 cpu core I thought that it may be a good idea to write a blog post about
... [More]
it.
Please note that my knowledge of ARM processors started in 2003 so I can make mistakes in everything older. Tried to understand articles about old times but sometimes they do not keep one version of story. Ancient times ARM1 got released in 1985 as CPU add-on to BBC Micro manufactured by Acorn Computers Ltd. as result of few years of research work. They wanted to have new processor to replace ageing 6502 used in BBC Micro and Acorn Electron and none of existing ones did not fit their requirements. Note that it was not market product but rather development tool made available for selected users. But it was ARM2 which landed in new computers — Acorn Archimedes (1987 year). Had multiply instructions added so new version of instruction set was created: ARMv2. Just 8MHz clock but remember that it was first computer with new CPU… Then ARM3 came — with cache controller integrated and 25MHz clock. ISA was bumped to ARMv2a due to SWP instruction added. And it was released in another Acorn computer: A5000. This was also used in Acorn A4 which was first ARM powered laptop (but term “ARM Powered” was created few years later). I hope that one day I will be able to play with all those old machines… There was also ARM250 processor with ARMv2a instruction set like in ARM3 but no cache controller. But it is worth mentioning as it can be seen as first SoC due to ARM, MEMC, VIDC, IOC chips integrated in one piece of silicon. This allowed to create budget versions of computers. ARM Ltd. In 1990 Acorn, Apple and VLSI co-founded Advanced RISC Machines Ltd. company which took over research and development of ARM processors. Their business model was simple: “we work on cpu cores and other companies pay us license costs to make chips”. Their first cpu was ARM60 with new instruction set: ARMv3. It had 32bit address space (compared to 26bit in older versions), was endian agnostic (so both big and little endian was possible) and there were other improvements. Please note lack of ARM4 and ARM5 processors. I heard some rumours about that but will not repeat them here as some of them just do not fit when compared against facts. ARM610 was powering Apple Newton PDA and first Acorn RiscPC machines where it was replaced by ARM710 (still ARMv3 instruction set but ~30% faster). First licensees You can create new processor cores but someone has to buy them and manufacture… In 1992 GEC Plessey and Sharp licensed ARM technology, next year added Cirrus Logic and Texas Instruments, then AKM (Asahi Kasei Microsystems) and Samsung joined in 1994 and then others… From that list I recognize only Cirrus Logic (used their crazy EP93xx family), TI and Samsung as vendors of processors ;D Thumb One of next cpu cores was ARM7TDMI (Thumb+Debug+Multiplier+ICE) which added new instruction set: Thumb. The Thumb instructions were not only to improve code density, but also to bring the power of the ARM into cheaper devices which may primarily only have a 16 bit datapath on the circuit board (for 32 bit paths are costlier). When in Thumb mode, the processor executes Thumb instructions. While most of these instructions directly map onto normal ARM instructions, the space saving is by reducing the number of options and possibilities available — for example, conditional execution is lost, only branches can be conditional. Fewer registers can be directly accessed in many instructions, etc. However, given all of this, good Thumb code can perform extremely well in a 16 bit world (as each instruction is a 16 bit entity and can be loaded directly). ARM7TDMI landed nearly everywhere – MP3 players, cell phones, microwaves and any place where microcontroller could be used. I heard that few years ago half of ARM Ltd. income was from license costs of this cpu core… ARM7 But ARM7 did not ended at ARM7TDMI… There was ARM7EJ-S core which used ARMv5TE instruction set and also ARM720T and ARM740T with ARMv4T. You can run Linux on Cirrus Logic CLPS711x/EP721x/EP731x ones ;) According to ARM Ltd. page about ARM7 the ARM7 family is the world’s most widely used 32-bit embedded processor family, with more than 170 silicon licensees and over 10 Billion units shipped since its introduction in 1994. ARM8 I heard that ARM8 is one of those things you should not ask ARM Ltd. people about. Nothing strange when you look at history… ARM810 processor made use of ARMv4 instruction set and had 72MHz clock. At same time DEC released StrongARM with 200MHz clock… 1996 was definitively year of StrongARM. In 2004 I bought my first Linux/ARM powered device: Sharp Zaurus SL-5500. ARM9 Ah ARM9… this was huge family of processor cores… ARM moved from a von Neumann architecture (Princeton architecture) to a Harvard architecture with separate instruction and data buses (and caches), significantly increasing its potential speed. There were two different instruction sets used in this family: ARMv4T and ARMv5TE. Also some kind of Java support was added in the latter one but who knows how to use it — ARM keeps details of Jazelle behind doors which can be open only with huge amount of money. ARMv4T Here we have ARM9TDMI, ARM920T, ARM922T, ARM925T and ARM940T cores. I mostly saw 920T one in far too many chips. My collection includes: ep93xx from Cirrus Logic (with their sick VFP unit) omap1510 from Texas Instruments s3c2410 from Samsung (note that some s3c2xxx processors are ARMv5T) ARMv5T Note: by ARMv5T I mean every cpu never mind which extensions it has built-in (Enhanced DSP, Jazelle etc). I consider this one to be most popular one (probably after ARM7TDMI). Countless companies had own processors based on those cores (mostly on ARM926EJ-S one). You can get them even in QFP form so hand soldering is possible. CPU frequency goes over 1GHz with Kirkwood cores from Marvell. In my collection I have: at91sam9263 from Atmel pxa255 from Intel st88n15 from ST Microelectronics Had also at91sam9m10, Kirkwood based Sheevaplug and ixp425 based NSLU2 but they found new home. ARM10 Another quiet moment in ARM history. ARM1020E, ARM1022E, ARM1026EJ-S cores existed but did not looked popular. UPDATE: Conexant uses ARM10 core in their next generation DSL CPE systems such as bridge/routers, wireless DSL routers and DSL VoIP IADs. ARM11 Released in 2002 as four new cores: ARM1136J, ARM1156T2, ARM1176JZ and ARM11 MPCore. Several improvements over ARM9 family including optional VFP unit. New instruction set: ARMv6 (and ARMv6K extensions). There was also Thumb2 support in arm1156 core (but I do not know did someone made chips with it). arm1176 core got TrustZone support. I have: omap2430 from Texas Instruments i.mx35 from Freescale Currently most popular chip with this family is BCM2835 GPU which got arm1136 cpu core on die because there was some space left and none of Cortex-A processor core fit there. Cortex New family of processor cores was announced in 2004 with Cortex-M3 as first cpu. There are three branches: Aplication Realtime Microcontroller All of them (with exception of Cortex-M0 which is ARMv6) use new instruction sets: ARMv7 and Thumb-2 (some from R/M lines are Thumb-2 only). Several cpu modules were announced (some with newer cores): NEON for SIMD operations VFP3 and VFP4 Jazelle RCT (aka ThumbEE). LPAE for more then 4GB ram support (Cortex A7/12/15) virtualization support (A7/12/15) big.LITTLE TrustZone I will not cover R/M lines as did not played with them. Cortex-A8 Announced in 2006 single core ARMv7a processor core. Released in chips by Texas Instruments, Samsung, Allwinner, Apple, Freescale, Rockchip and probably few others. Has higher clocks than ARM11 cores and achieves roughly twice the instructions executed per clock cycle due to dual-issue superscalar design. So far collected: am3358 from Texas Instruments i.mx515 from Freescale omap3530 from Texas Instruments Cortex-A9 First multiple core design in Cortex family. Allows up to 4 cores in one processor. Announced in 2007. Looks like most of companies which had previous cores licensed also this one but there were also new vendors. There are also single core Cortex-A9 processors on a market. I have products based on omap4430 from Texas Instruments and Tegra3 from NVidia. Cortex-A5 Announced around the end of 2009 (I remember discussion about something new from ARM with someone at ELC/E). Up to 4 cores, mostly for use in all designs where ARM9 and ARM11 cores were used. In other words new low-end cpu with modern instruction set. Cortex-A15 The fastest (so far) core in ARMv7a part of Cortex family. Up to 4 cores. Announced in 2010 and expanded ARM line with several new things: 40-bit LPAE which extends address range to 1TB (but 32-bit per process) VFPv4 Hardware virtualization support TrustZone security extensions I have Chromebook with Exynos5250 cpu and have to admit that it is best device for ARM software development. Fast, portable and hackable. Cortex-A7 Announced in 2011. Younger brother of Cortex-A15 design. Slower but eats much less power. Cortex-A12 Announced in 2013 as modern replacement for Cortex-A9 designs. Has everything from Cortex-A15/A7 and is ~40% faster than Cortex-A9 at same clock frequency. No chips on a market yet. big.LITTLE That’s interesting part which was announced in 2011. It is not new core but combination of them. Vendor can mix Cortex-A7/12/15 cores to have kind of dual-multicore processor which runs different cores for different needs. For example normal operation on A7 to save energy but go up for A15 when more processing power is needed. And amount of cores in each of them does not even have to match. It is also possible to make use of all cores all together which may result in 8-core ARM processor scheduling tasks on different cpu cores. There are few implementations already: ARM TC2 testing platform, HiSilicon K3V3, Samsung Exynos 5 Octa and Renesas Mobile MP6530 were announced. They differ in amount of cores but all (except TC2) use the same amount of A7/A15 cores. ARMv8 In 2011 ARM announced new 64-bit architecture called AArch64. There will be two cores: Cortex-A53 and Cortex-A57 and big.LITTLE combination will be possible as well. Lot of things got changed here. VFP and NEON are parts of standard. Lot of work went into making sure that all designs will not be so fragmented like 32-bit architecture is. I worked on AArch64 bootstrapping in OpenEmbedded build system and did also porting of several applications. Hope to see hardware in 2014 with possibility to play with it to check how it will play compared to current systems. Other designs ARM Ltd. is not the only company which releases new cpu cores. That’s due to fact that there are few types of license you can buy. Most vendors just buy licence for existing core and make use of it in their designs. But some companies (Intel, Marvell, Qualcomm, Microsoft, Apple, Faraday and others) paid for ‘architectural license’ which allows to design own cores. XScale Probably oldest one was StrongARM made by DEC, later sold to Intel where it was used as a base for XScale family with ARMv5TEJ instruction set. Later IWMMXT got added in PXA27x line. In 2006 Intel sold whole ARM line to Marvell which released newer processor lines and later moved to own designs. There were few lines in this family: Application Processors (with the prefix PXA). I/O Processors (with the prefix IOP) Network Processors (with the prefix IXP) Control Plane Processors (with the prefix IXC). Consumer Electronics Processors (with the prefix CE). One day I will undust my Sharp Zaurus c760 just to check how recent kernels work on PXA255 ;D Marvell Their Feroceon/PJ1/PJ4 cores were independent ARMv5TE implementations. Feroceon was Marvell’s own ARM9 compatible CPU in Kirkwood and others, while PJ1 was based on that and replaced XScale in later PXA chips. PJ4 is the ARMv7 compatible version used in all modern Marvell designs, both the embedded and the PXA side. Qualcomm Company known mostly from wireless networks (GSM/CDMA/3G) released first ARM based processors in 2007. First ones were based on ARM11 core (ARMv6 instruction set) and in next year also ARMv7a were available. Their high-end designs (Scorpion and Krait) are similar to Cortex family but have different performance. Company also has Cortex-A5 and A7 in low-end products. Nexus 4 uses Snapdragon S4 Pro and I also have S4 Plus based Snapdragon development board. Faraday Faraday Technology Corporation released own processors which used ARMv4 instruction set (ARMv5TE in newer cores). They were FA510, FA526, FA626 for v4 and FA606TE, FA626TE, FMP626TE and FA726TE for v5te. Note that FMP626TE is dual core! They also have license for Cortex-A5 and A9 cores. Project Denver Quoting Wikipedia article about Project Denver: Project Denver is an ARM architecture CPU being designed by Nvidia, targeted at personal computers, servers, and supercomputers. The CPU package will include an Nvidia GPU on-chip. The existence of Project Denver was revealed at the 2011 Consumer Electronics Show. In a March 4, 2011 Q&A article CEO Jen-Hsun Huang revealed that Project Denver is a five year 64-bit ARM architecture CPU development on which hundreds of engineers had already worked for three and half years and which also has 32-bit ARM architecture backward compatibility. The Project Denver CPU may internally translate the ARM instructions to an internal instruction set, using firmware in the CPU. X-Gene AppliedMicro announced that they will release AArch64 processors based on own cores. Final note If you spotted any mistakes please write in comments and I will do my best to fix them. If you have something interesting to add also please do a comment. I used several sources to collect data for this post. Wikipedia articles helped me with details about Acorn products and ARM listings. ARM infocenter provided other information. Dates were taken from Wikipedia or ARM Company Milestones page. Ancient times part based on The ARM Family and The history of the ARM CPU articles. The history of the ARM architecture was interesting and helpful as well. Please do not copy this article without providing author information. Took me quite long time to finish it. Changelog 8 June evening Thanks to notes from Arnd Bergmann I did some changes: added ARM7, Marvell, Faraday, Project Denver, X-Gene sections fixed Cortex-A5 to be up to 4 cores instead of single. mentioned Conexant in ARM10 section. improved Qualcomm section to mention which cores are original ARM ones, which are modified. David Alan Gilbert mentioned that ARM1 was not freely available on a market. Added note about it. Related content: Samsung will have big.LITTLE. So what? What interest me in ARM world Death to Raspberry/Pi — Beaglebone Black is on a market Calxeda announced ARM server product Speeding up BitBake builds All rights reserved © Marcin Juszkiewicz ARMology was originally posted on Marcin Juszkiewicz website [Less] |
||||||
|
Posted
13 days
ago
The LinuxTag 2013 is over, and I want to share some brief impressions I got during our stay in Berlin.
The LinuxTag is a nice and well organized FOSS exhibition in Germany, attracting more than 10.000 visitors during 4 days. We gave ... [More] a talk about the OpenPhoenux project at the 2nd evening and had about 60 listeners. Some of them got very interested and followed us to the booth afterwards. For everyone who couldn’t participate, the slides are available online: Slides.pdf We shared a booth with some other “Linux & Embedded” projects, namely: OpenEmbedded, Ethernut, Nut/OS, Oswald/Metawatch. Our Booth was professionally looking and I think we got quite some people interested in the project. Basically we had a constant flow of people at the booth during our 3 days stay and the overall feedback was rather positive! We got interviewed by the “GNU funzt!” team, as well. The (german) video is now available on Youtube (OpenPhoenux interview is starting at 5:00): All in all it was a very nice stay in Berlin. I especially enjoyed meeting and chatting with guys who already owned a GTA04. It looks like the community is growing again! Links: OpenPhoenux Project GTA04 Board [Less] |
||||||
|
Posted
15 days
ago
It is my pleasure to attend the HITCON
2013 and COSCUP 2013 conferences in July/August this year. They are both in Taipei. HITCON is a hacker/security event, while COSCUP is a pure Free/Open Source Software conference. At ... [More] both events I will be speaking at the growing list of GSM related tools that are available these days, like OpenBSC, OsmcoomBB, SIMtrace, OsmoSGSN, OsmoBTS, OsmoSDR, etc. As they are both FOSS projects and useful in a security context, this fits well within the scope of both events. Given that I'm going to be back to Taiwan, I'm looking very much forward to meeting old friends and former colleagues from my Openmoko days in Taipei. God, do I miss those days. While terribly stressful, they still are the most exciting days of my career so far. And yes, I'm also going to use the opportunity for a continuation of my motorbike riding in this beautiful country. [Less] |
||||||
|
Posted
25 days
ago
Public Service Announcement
I have a number of colleagues who are die-hard Facebook users but due to relentless assimilation by the evangelizing hegemonistic swarm that is the Big G, they have been forced to try Google+ for the first time. ... [More] I’ve noticed them all struggling with similar incongruencies. Posts are not chat channels The biggest difference is controlling distribution; for instance, the following scenario is common: George Jones shared a photo of their “business” trip with all his friends! Andrew Cowie writes a comment praising the beach and sunset in said photo. George Jones replies “Hey, yeah, it’s great. So I heard you were in Europe last week?” What George doesn’t seem to realize is that he just asked that question not of me but of the thirty people he shared the original post with. Which is probably not what he had in mind. I’ve run into this with my parents a fair bit; Dad keeps commenting personally on my public posts. Not sure he quite realizes several thousand people will see his remark :) Circles aren’t as useful as they seem Which brings me to posting publicly vs sharing with a given circle or circles. Most of the people I know gave up on circles and just publishing most things they write as “public” — which makes Google+ posts a long-hand version of Twitter. I certainly am followed by tons of people who aren’t in my circles, so they only see my posts if I hit “public”, which is annoying: because I don’t really want to bombard my family with my professional and technology posts. But there’s no “public except this circle” visibility setting, so if I want a wider audience for my general posts, I’m sorta stuck with it. This leads to a much lower signal-to-noise ratio for my friends (the people I care about the most!) for the dubious benefit of writing to people I don’t know, and also leads to the aforementioned friends and family thinking they have to make personal commenting on such posts. Posts are not really a communication channel Using Hangouts for casual 1:1 chat is much easier than trying to conduct chat in the comments of a formal post. Someone commenting on a post does raise it to the top of your stream, but when that happens it’s not obvious that a comment on that post is actually the continuation of a personal discussion; all you see is “The post about the Muppets has a new comment!”. Yeah, I bet. Meanwhile, after years of being a disaster zone, Google has finally merged GTalk, Google Video, the former Google Hangouts, the in-browser Chat sidebar, Gmail chat, the Android G+ app messenger, and lord knows what else under the banner “Hangouts”. So it’s unified now, which is a big advance, and at last you can rather seamlessly and in a device independent way switch between chat and video. This is very awesome. Name prefixing considered useful If you are going to reply to someone in a comment stream on a (public or otherwise) post, you might consider prefacing the comment with the person’s G+ username; that way a) they’ll [likely] get a notification and b) it’s obvious you’re speaking to that person and not to everyone. “Hey +Andrew Cowie, I’m glad you like the picture. Heard you passed through Europe last week. Pity we didn’t quite connect. Catch you next trip!” Or so. Build it and they will [be forced to] come Google Plus has been a hodge-podge since the beginning, but it’s also evident that they’re working really hard to improve the integration between services (interesting read about “cleaning up the mess” over at the Verge about this). I don’t want to seem that enthusiastic about it, because frankly it’s absurd that they didn’t have this wired tight before they launched in the first place. For me the fact that Hangouts are now an integrated messaging system is a watershed; I can only hope this model of cross functional team collaboration helps Google improve other areas of their services so desperately in need of some QA. AfC [Less] |
||||||
|
Posted
about 1 month
ago
For the last week I’ve been using a Geeksphone Keon as my only phone. There’s been no cheating here, I don’t have a backup Android phone and I’ve not taken to carrying around a tablet everywhere I go (though its use has
... [More]
increased at home slightly…) On the whole, the experience has been positive. Considering how entrenched I was in Android applications and Google services, it’s been surprisingly easy to make the switch. I would recommend anyone getting the Geeksphones to build their own OS images though, the shipped images are pretty poor.
Among the many things I missed (Spotify is number 1 in that list btw), I could have done with a countdown timer. Contrary to what the interfaces of most Android timer apps would have you believe, it’s not rocket-science to write a usable timer, so I figured this would be a decent entry-point into writing mobile web applications. For the most part, this would just be your average web-page, but I did want it to feel ‘native’, so I started looking at the new building blocks site that documents the FirefoxOS shared resources. I had elaborate plans for tabs and headers and such, but turns out, all I really needed was the button style. The site doesn’t make hugely clear that you’ll actually need to check out the shared resources yourself, which can be found on GitHub. Writing the app was easy, except perhaps for getting things to align vertically (for which I used the nested div/”display: table-cell; vertical-alignment: middle;” trick), but it was a bit harder when I wanted to use some of the new APIs. In particular, I wanted the timer to continue to work when the app is closed, and I wanted it to alert you only when you aren’t looking at it. This required use of the Alarm API, the Notifications API and the Page Visibility API. The page visibility API was pretty self-explanatory, and I had no issues using it. I use this to know when the app is put into the background (which, handily, always happens before closing it. I think). When the page gets hidden, I use the Alarm API to set an alarm for when the current timer is due to elapse to wake up the application. I found this particularly hard to use as the documentation is very poor (though it turns out the code you need is quite short). Finally, I use the Notifications API to spawn a notification if the app isn’t visible when the timer elapses. Notifications were reasonably easy to use, but I’ve yet to figure out how to map clicking on a notification to raising my application – I don’t really know what I’m doing wrong here, any help is appreciated! Update: Thanks to Thanos Lefteris in the comments below, this now works – activating the notification will bring you back to the app. The last hurdle was deploying to an actual device, as opposed to the simulator. Apparently the simulator has a deploy-to-device feature, but this wasn’t appearing for me and it would mean having to fire up my Linux VM (I have my reasons) anyway, as there are currently no Windows drivers for the Geeksphone devices available. I obviously don’t want to submit this to the Firefox marketplace yet, as I’ve barely tested it. I have my own VPS, so ideally I could just upload the app to a directory, add a meta tag in the header and try it out on the device, but unfortunately it isn’t as easy as that. Getting it to work well as a web-page is a good first step, and to do that you’ll want to add a meta viewport tag. Getting the app to install itself from that page was easy to do, but difficult to find out about. I think the process for this is harder than it needs to be and quite poorly documented, but basically, you want this in your app: if (navigator.mozApps) { var request = navigator.mozApps.getSelf(); request.onsuccess = function() { if (!this.result) { request = navigator.mozApps.install(location.protocol + "//" + location.host + location.pathname + "manifest.webapp"); request.onerror = function() { console.log("Install failed: " + this.error.name); }; } }; } And you want all paths in your manifest and appcache manifest to be absolute (you can assume the host, but you can’t have paths relative to the directory the files are in). This last part makes deployment very awkward, assuming you don’t want to have all of your app assets in the root directory of your server and you don’t want to setup vhosts for every app. You also need to make sure your server has the webapp mimetype setup. Mozilla has a great online app validation tool that can help you debug problems in this process. And we’re done! (Ctrl+Shift+M to toggle responsive design mode in Firefox) Visiting the page will offer to install the app for you on a device that supports app installation (i.e. a Firefox OS device). Not bad for a night’s work! Feel free to laugh at my n00b source and tell me how terrible it is in the comments [Less] |
||||||
|
Posted
about 1 month
ago
by
nore...@blogger.com (zecke)
Are you running Qt on a MIPS based system? Is your toolchain using UCLIBC? Do plan to use Qt with DirectFB? If not you can probably stop reading.
During the Qt5 development the above was my primary development platform and I spent hours ... [More] improving the platform and the Qt support. I descended down to the kernel and implemented (and later moved) userspace callchain support for MIPS [1][2] in perf. This allows to get stacktraces/callchains for userspace binaries even when there is no framepointer. I stress-tested the DirectFB platform plugin and found various issues in DirectFB, e.g. this memleak. I modified the V8 MIPS JIT to provide the necessary routines for QML. While doing this I noticed that the ARM implementation is broken and helped to fix it. At the time Nokia was still using Puls. This meant that getting an external build to integrate with their infrastructure was not possible. So I started to setup a Jenkins for DirectFB and Qt myself. The Qt Jenkins is compiling QtBase, QtJsBackend, QtXmlPatterns, QtDeclarative and QtWebKit for MIPS/Linux/UCLIBC. On top of these there a daily builds for the various QtBase configurations (dist, large, full, medium, small, minimal) and running the V8 unit tests using the built-in simulator for ARM and MIPS. The goal was to extend this to run the all the Qt tests on real hardware. The unit that supported my work was shut-down before I could implement it and the platform work has mostly been in maintenance mode since then. This has all worked nicely for the release up to Qt 5.0 but when Qt5.1 got merged into the stable branch and received some updates the build started to break and I don't have enough spare time to fix that. If anyone is interested in either taking over the CI or helping to make this part of my work again I would be very happy. [Less] |
||||||
|
Posted
about 1 month
ago
I’ve done some internal work on my http-streams package. Quite a number of bug fixes, which I’m pleased about, but two significant qualitative improvements as well.
First we have rewritten the “chunked” transfer ... [More] encoding logic. The existing code would accept chunks from the server, and feed them as received up to the user. The problem with this is the server is the one deciding the chunk size, and that means you can end up being handed multi-megabyte ByteStrings. Not exactly streaming I/O. So I’ve hacked that logic so that it yield‘s bites of maximum 32 kB until it has iterated through the supplied chunk, then moves on to the next. Slight increase in code complexity internally, but much smoother streaming behaviour for people using the library. Secondly I’ve brought in the highly tuned HTTP header parsing code from Gregory Collins’s new snap-server. Our parser was already pretty fast, but this gave us a 13% performance improvement. Nice. We changed the types in the openConnection functions; Hostname and Port are ByteString and Word16 now, so there’s an API version bump to 0.5.0. Literals will continue to work so most people shouldn’t be affected. AfC [Less] |
||||||
|
Posted
2 months
ago
by
nore...@blogger.com (zecke)
Yesterday I migrated all trac installations but openbsc.osmocom.org to a new host. We are now running trac version 0.12 and all the used plugins should be installed. As part of the upgrade all tracs should be available via https.
There are ... [More] various cleanups to do in the next couple of weeks. We should run a similar trac.ini on all the installations, we need to migrate from SQLite to MySQL/MariaDB, all login pages/POSTS should redirect to the https instead of doing a POST/basic auth in plain text. We are now using a frontend nginx and the /trac/chrome/* are served from a cache and your browser is asked to cache them for 90 hours. This should already reduce the load on the server a bit and should result in better page loads. [Less] |
||||||
|
Posted
3 months
ago
Quick update to http-streams, making a requested API change to the signature of the buildRequest function as well as pushing out some bug fixes and performance improvements.
You no longer need to pass the Connection object when composing a ... [More] Request, meaning you can prepare it before opening the connection to the target web server. The required HTTP 1.1 Host: header is added when sendRequest is called, when the request is written to the server. If you need to see the value of the Host: field that will be sent (ie when debugging) you can call the getHostname function. I’ve added an “API Change Log” to the README file on GitHub, and the blog post introducing http-streams has been updated reflect the signature change. Thanks to Jeffrey Chu for his contributions and to Gregory Collins for his advice on performance improvement; this second release is about 9% faster than the original. AfC [Less] |
||||||
|
Posted
3 months
ago
This site is using cookies. Some of them are to track you as I use Google Analytics. Other may keep your name/email/website when you write comments on my blog.
We have new law here in European Union that visitors should get notification when ... [More] website is using cookies. You know — privacy stuff etc. Lot of people does not even have any idea what this whole noise is about. There are websites for them with all that not even needed information — your search engine will point you there (and use few cookies in meantime). I do not plan to add any of those annoying popups which will tell that there are cookies in use. Once you see such one you get cookie — cause website needs a way to remember that you clicked “yes, I know, get off my screen” button. You will not see such one here. There is a text box in right column about cookies — go, read, decide would you read my blog or not. It is your choice and always was. PS. I added tags into post just to get this post shown on each RSS aggregator I am/was listed. All rights reserved © Marcin Juszkiewicz Cookies blabla… was originally posted on Marcin Juszkiewicz website [Less] |
||||||
Copyright
©
2013
Black Duck Software, Inc.
and its contributors, Some Rights Reserved. Unless otherwise marked, this work is licensed under a
Creative Commons Attribution 3.0 Unported License
. Ohloh
®
and the Ohloh logo are trademarks of
Black Duck Software, Inc.
in the United States and/or other jurisdictions. All other trademarks are the property of their respective holders.