Day: December 7, 2015

This article is intent as a complement for article Template Metaprogramming in C++. CRC (Cyclic Redundancy Code) Checker is a simple application that implementing Template Metaprogramming concept in real life. It create a lookup table at compile time. Create a header fileCRC.h

C++

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

/***

* filename: CRC.h

*

*

***/

#ifndef TRUE

#define TRUE 1

#endif

#ifndef FALSE

#define FALSE 0

#endif

#define CRC_NAME "CRC16-ARC"

#define CRC_WIDTH 16

#define CRC_POLY 0x8005

#define CRC_INIT 0x0000

#define CRC_REFIN TRUE

#define CRC_REFOUT TRUE

#define CRC_XOROUT 0000

#define CRC_CHECKSTRING "123456789"

#define CRC_CHECK 0xBB3D

// == MACRO definitions

// mask bit X

#define BITMASK(X) (1L << (X))

// mask bits 0-X

#define BITMASK0(X) ~( (-1) << (X) )

// simplify code

#define BYTE_SHIFT (CRC_WIDTH-8)

#define TOPBIT BITMASK(CRC_WIDTH-1)

// FIRST/FINAL used to create table (to simplify code when reflection is used)

In any part of this world, people would agree that information should be stored in minimum size. Ideally, any information gained can be stored with size as small as possible but can contain data as large as possible. In the past, size would be really matter. A bigger storage device such as floppy disk would […]

Whoever can conclude that kernel is the core / brain of Operating System. Yet, computer with kernel only is useless because operating system only do managing computer while task we need such as writing document, watching video, listening to music, etc are a user programs. All of our concern is programs, not the kernel. Operating […]

In this article we will discuss about how to create TAP bridge network for QEMU. In this article I use Slackware64 14.0 as my host machine. I also use QEMU as described in this article. What is Bridge? By definition, bridge is action taken by network equipment (can be router, switch, or even our machine) […]

7zip is award winning open source file archiver. Although mainly employ its own archive format – 7z format – it also support many other popular archive formats and can seamlessly work on them. 7zip claims to have the highest compression ratio. The application itself is distributed under LGPL license as a free software to use […]

In two previous articles (OpenWRT installation and OpenWRT failsave) so far we have build our box. In this article we will try to experience what we have built 🙂 Login to the box is as simple as another router does. You can do it by telnet, ssh, or even web UI. By default, there is […]

My other paper for completing lecture. This paper for lecture IF3058: Kriptografi (Cryptography). Main topic is about block cipher. This paper will presents about the use of genetic concept in use of cryptography area. If3058 concept and design of genetic cryptography using bdg48 from xathrya

In earlier article we have discussed about how to install VirtualBox on Slackware64. VirtualBox has a graphical front end which gives us easy access to manage and utilize our virtual machines. In some condition, we are restricted to use GUI while we want to manage virtual machine(s). This such condition might occur when we deal […]

Sometimes, we are in situation where a large file is too large to be stored on a single Flash Drive. Or maybe our file is too big to be and exceed file size limit. In these cases we need to split file into smaller files. Fortunately, Linux has a built in utility to do split […]

Kernel Versioning Anyone can build Linux kernel. Linux Kernel is provided freely on http://www.kernel.org/. From the earlier version until the latest version are available. Kernel is release regularly and use a versioning system to distinguish earlier and later kernel. To know Linux Kernel version, a simple command uname can be used. For example, I invoke […]